LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCgojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKI2RlZmluZSBjb25maWdfYmVsb25nc19pbih4KQoKI2RlZmluZSBjb25maWdfZXhjbHVkZSh4KQoKI2RlZmluZSBjb25maWdfYXJjaF9yZXF1aXJlKHgseSkKCiNkZWZpbmUgY29uZmlnX3ZlcnNpb25fcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfYWRkX21pYih4KQoKI2RlZmluZSBjb25maWdfcGFyc2VfZG90X2NvbmYodyx4LHkseikKCiNkZWZpbmUgY29uZmlnX2Vycm9yKHgpCgojZGVmaW5lIGNvbmZpZ193YXJuaW5nKHgpCgovKiBEZWZpbmUgaWYgYnVpbGRpbmcgdW5pdmVyc2FsIChpbnRlcm5hbCBoZWxwZXIgbWFjcm8pICovCiN1bmRlZiBBQ19BUFBMRV9VTklWRVJTQUxfQlVJTEQKCi8qIERlZmluZSB0byBvbmUgb2YgYF9nZXRiNjcnLCBgR0VUQjY3JywgYGdldGI2NycgZm9yIENyYXktMiBhbmQgQ3JheS1ZTVAKICAgc3lzdGVtcy4gVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBmb3IgYGFsbG9jYS5jJyBzdXBwb3J0IG9uIHRob3NlIHN5c3RlbXMuCiAgICovCiN1bmRlZiBDUkFZX1NUQUNLU0VHX0VORAoKLyogRGVmaW5lIHRvIDEgaWYgdXNpbmcgYGFsbG9jYS5jJy4gKi8KI3VuZGVmIENfQUxMT0NBCgovKiBsb2NhdGlvbiBvZiBzd2FwIGRldmljZSAqLwojdW5kZWYgRE1FTV9MT0MKCi8qIGxvY2F0aW9uIG9mIG1vdW50IHRhYmxlIGxpc3QgKi8KI3VuZGVmIEVUQ19NTlRUQUIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgQUVTX2NmYjEyOF9lbmNyeXB0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgYWxsb2NhJywgYXMgYSBmdW5jdGlvbiBvciBtYWNyby4gKi8KI3VuZGVmIEhBVkVfQUxMT0NBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBpdCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuCiAgICovCiN1bmRlZiBIQVZFX0FMTE9DQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvaW5ldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVJQQV9JTkVUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3BhZ2UuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FTTV9QQUdFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fVFlQRVNfSAoKLyogRGVmaW5lIGlmIHVzaW5nIE1ZX0lOSVQoKSBjYXVzZXMgYSBsaW5rZXIgZXJyb3IgKi8KI3VuZGVmIEhBVkVfQlJPS0VOX0xJQk1ZU1FMQ0xJRU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNnZXRuZXh0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0dFVE5FWFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2hvd24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9DSE9XTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjbG9zZWRpcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0NMT1NFRElSCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgQ291bnRlcjY0Jy4gKi8KI3VuZGVmIEhBVkVfQ09VTlRFUjY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHNlbnNvcnNfZ2V0X2FsbF9zdWJmZWF0dXJlcycsCiAgIGFuZCB0byAwIGlmIHlvdSBkb24ndC4gKi8KI3VuZGVmIEhBVkVfREVDTF9TRU5TT1JTX0dFVF9BTExfU1VCRkVBVFVSRVMKCi8qIGRlZmluZSB0byAxIGlmIHlvdSBoYXZlIElSRV9DQUNIRSBkZWZpbmVkIGluIDxpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ERUZJTkVEX0lSRV9DQUNIRQoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGRldnN0YXRfZ2V0ZGV2cygpICovCiN1bmRlZiBIQVZFX0RFVlNUQVRfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9ESVJFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRExGQ05fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbG9wZW4nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9ETE9QRU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRE1BTExPQ19ICgovKiBTZXQgaWYgdGhlIGRwa2ctcXVlcnkgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfRFBLR19RVUVSWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxlcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGV2YWxfcHYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9FVkFMX1BWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfY3JlYXRlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZQX01EX0NUWF9DUkVBVEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgRVZQX01EX0NUWF9kZXN0cm95JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZQX01EX0NUWF9ERVNUUk9ZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGV4ZWN2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVhFQ1YKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0ZDTlRMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZm9yaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0ZPUksKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZnN0YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0ZTVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FpX3N0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0FJX1NUUkVSUk9SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGFkZHJpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUQUREUklORk8KCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBnZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkdGFibGVzaXplJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VURFRBQkxFU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRmc3N0YXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRGU1NUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0Z3JuYW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRHUk5BTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUyCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVE5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aXBub2RlYnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSVBOT0RFQllOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRMT0FEQVZHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRvcHQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRPUFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Z2V0b3B0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9HRVRPUFRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwYWdlc2l6ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBBR0VTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHBpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwd25hbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBXTkFNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHRpbWVvZmRheScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFRJTUVPRkRBWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXR2ZnNzdGF0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUVkZTU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxncnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0dSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGhhc21udG9wdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0hBU01OVE9QVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9mcmVlbmFtZWluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfRlJFRU5BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX0lOREVYVE9OQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9uYW1ldG9pbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvY29tbW9uLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTkVUX0NPTU1PTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbmV0L21pYjIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfTUlCMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lORVRfTlRPUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X3B0b24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9JTkVUX1BUT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5pdGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lOSVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX0lOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9JTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGluX2FkZHJfdCcuICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPQ1RMU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlwaGxwYXBpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JUEhMUEFQSV9ICgovKiBTZXQgaWYgSVBfUEtUSU5GTyBpcyB1c2FibGUgKi8KI3VuZGVmIEhBVkVfSVBfUEtUSU5GTwoKLyogU2V0IGlmIElQX1JFQ1ZEU1RBRERSIGlzIHVzYWJsZSAqLwojdW5kZWYgSEFWRV9JUF9SRUNWRFNUQUREUgoKLyoga2Vybi5jcF90aW1lcyBkaXNwbGF5cyBtdWx0aSBjcHUgbG9hZCBvbiBGcmVlQlNELi4uICovCiN1bmRlZiBIQVZFX0tFUk5fQ1BfVElNRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga2luZm9fZ2V0X2NwdXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LSU5GT19HRVRfQ1BVUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LTkxJU1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3JiNV9hdXRoX2Nvbl9nZXRzZW5kc3Via2V5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1JCNV9BVVRIX0NPTl9HRVRTRU5EU1VCS0VZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGtzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9LU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRwcm9jMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRQUk9DMgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm1fZ2V0cHJvY3MnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fR0VUUFJPQ1MKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHN3YXBpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFNXQVBJTkZPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGt2bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfS1ZNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX29wZW5maWxlcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9PUEVORklMRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBPcGVuU1NMIGxpYnJhcnkgKC1sY3J5cHRvIG9yIC1sZWF5MzIpLiAqLwojdW5kZWYgSEFWRV9MSUJDUllQVE8KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZWxmJyBsaWJyYXJ5ICgtbGVsZikuICovCiN1bmRlZiBIQVZFX0xJQkVMRgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrc3RhdCcgbGlicmFyeSAoLWxrc3RhdCkuICovCiN1bmRlZiBIQVZFX0xJQktTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1sZCcgbGlicmFyeSAoLWxtbGQpLiAqLwojdW5kZWYgSEFWRV9MSUJNTEQKCi8qIERlZmluZSB0byAxIGlmIDxuZXRsaW5rL25ldGxpbmsuaD4gcHJvdmlkZXMgdGhlIGxpYm5sMyBBUEkgKi8KI3VuZGVmIEhBVkVfTElCTkwzCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgbGlibm0gKi8KI3VuZGVmIEhBVkVfTElCTk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCiN1bmRlZiBIQVZFX0xJQk5TTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaWJwZXJmc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElCUEVSRlNUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwa2NzMTEnIGxpYnJhcnkgKC1scGtjczExKS4gKi8KI3VuZGVmIEhBVkVfTElCUEtDUzExCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbScgbGlicmFyeSAoLWxycG0pLiAqLwojdW5kZWYgSEFWRV9MSUJSUE0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgUlNBZ2x1ZScgbGlicmFyeSAoLWxSU0FnbHVlKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBR0xVRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByc2FyZWYnIGxpYnJhcnkgKC1scnNhcmVmKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBUkVGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNzaDInIGxpYnJhcnkgKC1sc3NoMikuICovCiN1bmRlZiBIQVZFX0xJQlNTSDIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NsJyBsaWJyYXJ5ICgtbHNzbCkuICovCiN1bmRlZiBIQVZFX0xJQlNTTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91ciBgc3NsJyBsaWJyYXJ5IHN1cHBvcnRzIERUTFMgKC1sc3NsKS4gKi8KI3VuZGVmIEhBVkVfTElCU1NMX0RUTFMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGltaXRzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU1JVFNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9ldGh0b29sLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9FVEhUT09MX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaGRyZWcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX0hEUkVHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfTkVUTElOS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3J0bmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfUlRORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvdGFza3MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX1RBU0tTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bG9jYWxlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MT0NBTEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsb2NhbHRpbWVfcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0xPQ0FMVElNRV9SCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbG9uZyBsb25nIGludCcuICovCiN1bmRlZiBIQVZFX0xPTkdfTE9OR19JTlQKCi8qIFNldCBpZiB0aGUgbHBzdGF0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBIQVZFX0xQU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBscmFuZDQ4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFJBTkQ0OAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsc2VlazY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFNFRUs2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9wdGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfUFRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFMTE9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NRU1PUllfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG1pYjJfaXBJZlN0YXRzRW50cnlfdCcuICovCiN1bmRlZiBIQVZFX01JQjJfSVBJRlNUQVRTRU5UUllfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta3N0ZW1wJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTUtTVEVNUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta3RpbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9NS1RJTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bW50ZW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NTlRFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmJ1dGlsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9OQlVUSUxfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KI3VuZGVmIEhBVkVfTkRJUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGRiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVREQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2luNl9wY2IuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lONl9QQ0JfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pbjZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JTjZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaXA2X3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSVA2X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L25kNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfTkQ2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl9mc20uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfRlNNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfdGltZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfVElNRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2ljbXA2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lDTVA2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pY21wX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JQ01QX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWZfZXRoZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUZfRVRIRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbl9wY2IuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fUENCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbl9zeXN0bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9TWVNUTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaXA2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQNl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwX2ljbXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVBfSUNNUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaXBfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF9mc20uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX0ZTTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwX3RpbWVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9USU1FUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC91ZHAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVURQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC91ZHBfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1VEUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpcHgvaXB4Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJUFhfSVBYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0bGluay9uZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRMSU5LX05FVExJTktfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfYXJwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfQVJQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX2RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfRExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9taWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9NSUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvcm91dGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9ST1VURV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbmZkc190Jy4gKi8KI3VuZGVmIEhBVkVfTkZEU19UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5saXN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTkxJU1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbmxpc3Q2NCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX05MSVNUNjQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmxpc3QuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05MSVNUX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBvZmY2NF90Jy4gKi8KI3VuZGVmIEhBVkVfT0ZGNjRfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBvcGVuZGlyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfT1BFTkRJUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2Flcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9BRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2Rlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9ERVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2RoLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0RIX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9ldnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfRVZQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9obWFjLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0hNQUNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvc3JlbGRhdGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09TUkVMREFURV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBjaS9wY2kuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BDSV9QQ0lfSAoKLyogb24gYWl4LCBpZiB5b3UgaGF2ZSBwZXJmc3RhdCAqLwojdW5kZWYgSEFWRV9QRVJGU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgYHRoZSBwZXJsX2V2YWxfcHYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFZfTEMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgUGVybF9ldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUEVSTF9FVkFMX1BWX1VDCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBpY2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BJQ0xfSAoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIHBrZ2luZm8gKi8KI3VuZGVmIEhBVkVfUEtHSU5GTwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2dpbmZvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QS0dJTkZPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGtnbG9jcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUEtHTE9DU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBvbGwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QT0xMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkNjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QUkVBRDY0CgovKiBTZXQgaWYgL2V0Yy9wcmludGNhcCBleGlzdHMgKi8KI3VuZGVmIEhBVkVfUFJJTlRDQVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHRocmVhZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUFRIUkVBRF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHB3ZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUFdEX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmFuZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JBTkQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmFuZG9tJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkFORE9NCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlYWRkaXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SRUFERElSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlZ2NvbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SRUdDT01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJlZ2V4Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SRUdFWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbUdldFBhdGgnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SUE1HRVRQQVRICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9oZWFkZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9IRUFERVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vcnBtZmlsZXV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1GSUxFVVRJTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG1saWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1MSUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vcnBtdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JQTV9SUE1UU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlYXJjaC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VBUkNIX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VjdXJpdHkvY3J5cHRva2kuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NFQ1VSSVRZX0NSWVBUT0tJX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VsZWN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VMRUNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlbnNvcnMvc2Vuc29ycy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VOU09SU19TRU5TT1JTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0ZW52JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VURU5WCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGdpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEdJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRncm91cHMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0aXRpbWVyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUSVRJTUVSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVExPQ0FMRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRtbnRlbnQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRNTlRFTlQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0c2lkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUU0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHVpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVFVJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0dUVFlfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdBQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWxybScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0FMUk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYmxvY2snIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdCTE9DSwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdob2xkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHSE9MRAoKLyogRGVmaW5lIGlmIFNJR0hVUCBpcyBkZWZpbmVkIGluIDxzaWduYWwuaD4uICovCiN1bmRlZiBIQVZFX1NJR0hVUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWduYWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdOQUwKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lncHJvY21hc2snIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdQUk9DTUFTSwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdzZXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdTRVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TTlBSSU5URgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzb2NrZXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TT0NLRVQKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzb2NrbGVuX3QnLiAqLwojdW5kZWYgSEFWRV9TT0NLTEVOX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzc2l6ZV90Jy4gKi8KI3VuZGVmIEhBVkVfU1NJWkVfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0ZnMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVEFURlMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RhdHZmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRWRlMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVERJTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NURExJQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0aW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RJTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyY2FzZXN0cicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkNBU0VTVFIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZHVwJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSRFVQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSRVJST1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RSSU5HU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RSSU5HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybGNhdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkxDQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybGNweScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkxDUFkKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybmNhc2VjbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJOQ0FTRUNNUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b2tfcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPS19SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUlRPVUxMCgovKiBEZWZpbmUgdG8gMSBpZiBgYXRfbmV4dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgYXJwaGQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfQVJQSERfQVRfTkVYVAoKLyogRGVmaW5lIHRvIDEgaWYgYHdlYWtfa2V5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBkZXNfa3Nfc3RydWN0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RFU19LU19TVFJVQ1RfV0VBS19LRVkKCi8qIERlZmluZSB0byAxIGlmIGBkX3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGRpcmVudCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9ESVJFTlRfRF9UWVBFCgovKiBEZWZpbmUgdG8gMSBpZiBgc3BlZWRfaGknIGlzIG1lbWJlciBvZiBgc3RydWN0IGV0aHRvb2xfY21kJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0VUSFRPT0xfQ01EX1NQRUVEX0hJCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZhX25leHQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRkFERFJfSUZBX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRyaGVhZC50cWhfZmlyc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJIRUFEX1RRSF9GSVJTVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2FkZHJsaXN0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9BRERSTElTVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2JhdWRyYXRlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2JhdWRyYXRlLmlmc192YWx1ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQkFVRFJBVEVfSUZTX1ZBTFVFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaWJ5dGVzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JQllURVMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pbWNhc3RzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JTUNBU1RTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaXFkcm9wcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSVFEUk9QUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2xhc3RjaGFuZ2UudHZfbnNlYycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfTEFTVENIQU5HRV9UVl9OU0VDCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9zZWMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfU0VDCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbXR1JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9NVFUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9ub3Byb3RvJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9OT1BST1RPCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfb2J5dGVzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9PQllURVMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9vbWNhc3RzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9PTUNBU1RTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfc3BlZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1NQRUVECgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfVFlQRQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX3huYW1lJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9YTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50Zm9yd2FyZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfQ0FOVEZPUldBUkQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfY2FudGZyYWcnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0NBTlRGUkFHCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2RlbGl2ZXJlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfREVMSVZFUkVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdkcm9wcGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHRFJPUFBFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFnbWVudGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHTUVOVEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWd0aW1lb3V0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHVElNRU9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19sb2NhbG91dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfTE9DQUxPVVQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9wcm90bycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfTk9QUk9UTwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19ub3JvdXRlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1JPVVRFCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29kcm9wcGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19PRFJPUFBFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19vZnJhZ21lbnRzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19PRlJBR01FTlRTCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX3JlYXNzZW1ibGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19SRUFTU0VNQkxFRAoKLyogRGVmaW5lIHRvIDEgaWYgYG1fY2xmcmVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xGUkVFCgovKiBEZWZpbmUgdG8gMSBpZiBgbV9jbHVzdGVycycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX01CU1RBVF9NX0NMVVNURVJTCgovKiBEZWZpbmUgdG8gMSBpZiBgbV9tYnVmcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX01CU1RBVF9NX01CVUZTCgovKiBEZWZpbmUgdG8gMSBpZiBgbl92YWx1ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3Q2NCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9OTElTVDY0X05fVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBuX3ZhbHVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfZHN0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfRFNUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfaGFzaCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX0hBU0gKCi8qIERlZmluZSB0byAxIGlmIGBydF9uZXh0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfTkVYVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3JlZmNudCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1JFRkNOVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VuaXQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9VTklUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfdXNlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfVVNFCgovKiBEZWZpbmUgdG8gMSBpZiBgc2Ffc2lnYWN0aW9uJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzaWdhY3Rpb24nLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRAoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX2xlbicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHInLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU0FfTEVOCgovKiBEZWZpbmUgdG8gMSBpZiBgc2FfdW5pb24uc2FfZ2VuZXJpYy5zYV9mYW1pbHkyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdAogICBzb2NrYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9VTklPTl9TQV9HRU5FUklDX1NBX0ZBTUlMWTIKCi8qIERlZmluZSB0byAxIGlmIGBzc19mYW1pbHknIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9TU19GQU1JTFkKCi8qIERlZmluZSB0byAxIGlmIGBfX3NzX2ZhbWlseScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX19fU1NfRkFNSUxZCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mYXZhaWwnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GQVZBSUwKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZmcmVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZpbGVzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRklMRVMKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkxBR1MKCi8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZSU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZSU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgYG1udF9kaXInIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19NTlRfRElSCgovKiBEZWZpbmUgdG8gMSBpZiBgc3dfbmJsa3NlbmFibGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzd2RldnQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1dERVZUX1NXX05CTEtTRU5BQkxFRAoKLyogRGVmaW5lIHRvIDEgaWYgYHRjcF9yY3ZtZW1kcm9wJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB0Y3BzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RDUFNUQVRfVENQX1JDVk1FTURST1AKCi8qIERlZmluZSB0byAxIGlmIGB0el9kc3R0aW1lJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB0aW1lem9uZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9USU1FWk9ORV9UWl9EU1RUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgdG1fZ210b2ZmJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB0bScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Rpc2NhcmQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0RJU0NBUkQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Z1bGxzb2NrJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19GVUxMU09DSwoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19OT1BPUlQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX25vcG9ydGJjYXN0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19OT1BPUlRCQ0FTVAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfb3BhY2tldHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX09QQUNLRVRTCgovKiBEZWZpbmUgdG8gMSBpZiBgcGdzd2FwaW4nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdXZtZXhwJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VWTUVYUF9QR1NXQVBJTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNjb25mJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1lTQ09ORgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXNsb2cuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU0xPR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c3RlbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NZU1RFTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY2RlZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19DREVGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jb25mLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfQ09ORl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9TWVNfRElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpc2tpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RJU0tJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXNrbGFiZWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ESVNLTEFCRUxfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGtpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGtzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfREtTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2RtYXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ETUFQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSUxFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklMSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZml4cG9pbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSVhQT0lOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2hhc2hpbmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19IQVNISU5HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfSU9DVExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbG9hZGF2Zy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0xPQURBVkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbWJ1Zi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01CVUZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW50ZW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU5URU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21udHRhYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01OVFRBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tb3VudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01PVU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9TWVNfTkRJUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QT0xMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Bvb2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QT09MX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Byb2MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QUk9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Byb3Rvc3cuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QUk9UT1NXX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFNUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19RVUVVRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zZWxlY3QuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TRUxFQ1RfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VtYS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NFTUFfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0dmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0VUVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdGZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVEZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXR2ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFUVkZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0cmVhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zd2FwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1dBUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNjdGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNDVExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzZ2V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTR0VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c21wLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTTVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzdGVtY2ZnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTVEVNQ0ZHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c3RlbWluZm8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNURU1JTkZPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RjcGlwc3RhdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19UQ1BJUFNUQVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWViLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZW91dC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVPVVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91bi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VzZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VU0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bW1hYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNTUFDX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtbWV0ZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTU1FVEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVBBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Ztc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVNZU1RNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8c3lzL3dhaXQuaD4gdGhhdCBpcyBQT1NJWC4xIGNvbXBhdGlibGUuICovCiN1bmRlZiBIQVZFX1NZU19XQUlUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGNnZXRhdHRyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVENHRVRBVFRSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHRpbWVzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVElNRVMKCi8qIERlZmluZSBpZiBhIHRpbWV6b25lIHZhcmlhYmxlIGlzIGRlY2xhcmVkIGluIDxzeXMvdGltZS5oPiAqLwojdW5kZWYgSEFWRV9USU1FWk9ORV9WQVJJQUJMRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvZmZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRkZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2Rpbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19ESU5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2lub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfVUZTX0lOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9xdW90YS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19RVU9UQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludG1heF90Jy4gKi8KI3VuZGVmIEhBVkVfVUlOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludHB0cl90Jy4gKi8KI3VuZGVmIEhBVkVfVUlOVFBUUl9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVU5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VTklTVERfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQnLiAqLwojdW5kZWYgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVzbGVlcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VTTEVFUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dG1weC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRNUFhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9leHRlcm4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fRVhURVJOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVZNX1VWTV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3N3YXBfcGFnZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1NXQVBfUEFHRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9leHRlcm4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1ZNX0VYVEVSTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3ZtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3ZtX3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHZzbnByaW50ZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1ZTTlBSSU5URgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3aW5kb3dzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5ET1dTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luc29jazIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTlNPQ0syX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luc29jay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lOU09DS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XUzJUQ1BJUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHh0aS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfWFRJX0gKCi8qIGxvY2F0aW9uIG9mIFVOSVgga2VybmVsICovCiN1bmRlZiBLRVJORUxfTE9DCgovKiBQYXRoIHRvIHRoZSBscHN0YXQgY29tbWFuZCAqLwojdW5kZWYgTFBTVEFUX1BBVEgKCi8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCiAgICovCiN1bmRlZiBMVF9PQkpESVIKCi8qIGRlZmluZSBpZiBhZ2VudHggdHJhbnNwb3J0IGlzIHRvIHVzZSBkb21haW4gc29ja2V0cyBvbmx5ICovCiN1bmRlZiBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCgovKiBVbml4IGRvbWFpbiBzb2NrZXQgZm9yIEFnZW50WCBtYXN0ZXItc3ViYWdlbnQgY29tbXVuaWNhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9BR0VOVFhfU09DS0VUCgovKiBEZWZpbmUgaWYgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgYXJlIHVuc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0JST0tFTl9JTkxJTkUKCi8qICJEZWZpbmUgaWYgY3J5dG9ncmFwaHkgc3VwcG9ydCBpcyBwb3NzaWJsZSIgKi8KI3VuZGVmIE5FVFNOTVBfQ0FOX0RPX0NSWVBUTwoKLyogc3lzY3RsIHdvcmtzIHRvIGdldCBib290dGltZSwgZXRjLi4uICovCiN1bmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCgovKiBjb25maWd1cmUgb3B0aW9ucyBzcGVjaWZpZWQgKi8KI3VuZGVmIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMKCi8qIGRlZmF1bHQgbG9jYXRpb24gdG8gbG9vayBmb3IgbWlicyB0byBsb2FkIHVzaW5nIHRoZSBhYm92ZSB0b2tlbnMgYW5kL29yCiAgIHRob3NlIGluIHRoZSBNSUJTIGVudnJpb25tZW50IHZhcmlhYmxlICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwoKLyogZGVmYXVsdCBtaWIgZmlsZXMgdG8gbG9hZCwgc3BlY2lmaWVkIGJ5IHBhdGguICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKCi8qIERlZmluZSBpZiBERVMgZW5jcnlwdGlvbiBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX0RFUwoKLyogRGVmaW5lIGlmIE1ENSBhdXRoZW50aWNhdGlvbiBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX01ENQoKLyogRGVmaW5lIGlmIG1pYiBsb2FkaW5nIGFuZCBwYXJzaW5nIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCgovKiBEZWZpbmUgaWYgU05NUCBTRVQgc3VwcG9ydCBzaG91bGQgYmUgZGlzYWJsZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAoKLyogRGVmaW5lIGlmIFNOTVB2MSBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKCi8qIERlZmluZSBpZiBTTk1QdjJjIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKCi8qIERlZmluZSBpZiB5b3UgYXJlIGVtYmVkZGluZyBwZXJsIGluIHRoZSBtYWluIGFnZW50LiAqLwojdW5kZWYgTkVUU05NUF9FTUJFRERFRF9QRVJMCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIElQdjYgc3VwcG9ydCAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfSVBWNgoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IFNNVVggY29ubmVjdGlvbnMgdG8gbG9jYWxob3N0IGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byBidWlsZCBNRkQgbW9kdWxlIHJld3JpdGVzICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9NRkRfUkVXUklURVMKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byBjb21waWxlIHN1cHBvcnQgZm9yIGJvdGggYXV0aGVudGljYXRpb24gYW5kIHByaXZhY3kKICAgc3VwcG9ydC4gKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCgovKiB0ZXN0aW5nIGNvZGUgc2VjdGlvbnMuICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKCi8qIFNob3VsZCBldmFsdWF0ZSB0byB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiBpZiBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0ZVTkNUSU9OCgovKiBpZm5ldCBuZWVkcyB0byBoYXZlIF9LRVJORUwgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUwKCi8qIGlmbmV0IG5lZWRzIHRvIGhhdmUgX0tFUk5FTF9TVFJVQ1RVUkVTIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX1NUUlVDVFVSRVMKCi8qIERlZmluZSB0byBzdXBwcmVzcyBpbmNsdXNpb24gb2YgZGVwcmVjYXRlZCBmdW5jdGlvbnMgKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVQUkVDQVRFRF9GVU5DVElPTlMKCi8qIElmIHlvdSBkb24ndCB3YW50IHRoZSBhZ2VudCB0byByZXBvcnQgb24gdmFyaWFibGVzIGl0IGRvZXNuJ3QgaGF2ZSBkYXRhIGZvcgogICAqLwojdW5kZWYgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKCi8qIElmIHdlIGRvbid0IHdhbnQgdG8gdXNlIGttZW0uICovCiN1bmRlZiBORVRTTk1QX05PX0tNRU1fVVNBR0UKCi8qIElmIHlvdSBkb24ndCBoYXZlIHJvb3QgYWNjZXNzIGRvbid0IGV4aXQgdXBvbiBrbWVtIGVycm9ycyAqLwojdW5kZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwoKLyogdW1hc2sgcGVybWlzc2lvbnMgdG8gc2V0IHVwIHBlcnNpc3RlbnQgZmlsZXMgd2l0aCAqLwojdW5kZWYgTkVUU05NUF9QRVJTSVNURU5UX01BU0sKCi8qIFNpemUgcHJlZml4IHRvIHVzZSB0byBwcmludGYgYSB1aW50MzJfdCAqLwojdW5kZWYgTkVUU05NUF9QUkkzMgoKLyogU2l6ZSBwcmVmaXggdG8gdXNlIHRvIHByaW50ZiBhIHNpemVfdCBvciBzc2l6ZV90ICovCiN1bmRlZiBORVRTTk1QX1BSSXoKCi8qIERlZmluZSB0byAxIGlmIHlvdSB3YW50IHRvIGJ1aWxkIHdpdGggcmVlbnRyYW50L3RocmVhZGVkIGNvZGUgKGluY29tcGxldGUpLgogICAqLwojdW5kZWYgTkVUU05NUF9SRUVOVFJBTlQKCi8qIGRlZmluZSBpZiB5b3UgZG8gbm90IHdhbnQgc25tcHRyYXBkIHRvIHJlZ2lzdGVyIGFzIGFuIEFnZW50WCBzdWJhZ2VudCAqLwojdW5kZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKCi8qIFBhdHRlcm4gb2YgdGVtcG9yYXJ5IGZpbGVzICovCiN1bmRlZiBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOCgovKiAiRGVmaW5lIGlmIGludGVybmFsIGNyeXB0b2dyYXBoeSBjb2RlIHNob3VsZCBiZSB1c2VkIiAqLwojdW5kZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPCgovKiBkZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgTUQ1IGNvZGUgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKCi8qIERlZmluZSB0aGlzIGlmIHlvdSdyZSB1c2luZyBIZWltZGFsIEtlcmJlcm9zICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCgovKiBEZWZpbmUgdGhpcyBpZiB3ZSdyZSB1c2luZyB0aGUgbmV3IE1JVCBjcnlwdG8gQVBJICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKCi8qIGRlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBteXNxbCBjb2RlIGZvciBzbm1wdHJhcGQgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9NWVNRTAoKLyogRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIGNvZGVTMTEgbGlicmFyeSAuLi4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQoKLyogRGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgbG1fc2Vuc29ycyB2MyBvciBsYXRlciAqLwojdW5kZWYgTkVUU05NUF9VU0VfU0VOU09SU19WMwoKLyogU2hvdWxkIHdlIGNvbXBpbGUgdG8gdXNlIHNwZWNpYWwgb3BhcXVlIHR5cGVzOiBmbG9hdCwgZG91YmxlLCBjb3VudGVyNjQsCiAgIGk2NCwgdWk2NCwgdW5pb24/ICovCiN1bmRlZiBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKCi8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwojaWZuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCiN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX05BTUUKI3VuZGVmIFBBQ0tBR0VfTkFNRQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1NUUklORwojdW5kZWYgUEFDS0FHRV9TVFJJTkcKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9UQVJOQU1FCiN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVkVSU0lPTgojdW5kZWYgUEFDS0FHRV9WRVJTSU9OCiNlbmRpZgoKLyogQ29tbWFuZCB0byBnZW5lcmF0ZSBwcyBvdXRwdXQsIHRoZSBmaW5hbCBjb2x1bW4gbXVzdCBiZSB0aGUgcHJvY2VzcyBuYW1lCiAgIHdpdGhPVVQgYXJndW1lbnRzICovCiN1bmRlZiBQU0NNRAoKLyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMgKGBpbnQnIG9yIGB2b2lkJykuICovCiN1bmRlZiBSRVRTSUdUWVBFCgovKiBkZWZpbmUgcnRlbnRyeSB0byBvcnRlbnRyeSBvbiBTWVNWIG1hY2hpbmVzIChhbHBoYXMpICovCiN1bmRlZiBSVEVOVFJZCgovKiBVc2UgQlNEIDQuNCByb3V0aW5nIHRhYmxlIGVudHJpZXM/ICovCiN1bmRlZiBSVEVOVFJZXzRfNAoKLyogVGhlIHNpemUgb2YgYGludCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9JTlQKCi8qIFRoZSBzaXplIG9mIGBpbnRtYXhfdCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9JTlRNQVhfVAoKLyogVGhlIHNpemUgb2YgYGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9ORwoKLyogVGhlIHNpemUgb2YgYGxvbmcgbG9uZycsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9MT05HX0xPTkcKCi8qIFRoZSBzaXplIG9mIGBzaG9ydCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9TSE9SVAoKLyogVGhlIHNpemUgb2YgYHNvY2thZGRyX3VuLnN1bl9wYXRoJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX1NPQ0tBRERSX1VOX1NVTl9QQVRICgovKiBJZiB1c2luZyB0aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2EsIGRlZmluZSBpZiB5b3Uga25vdyB0aGUKICAgZGlyZWN0aW9uIG9mIHN0YWNrIGdyb3d0aCBmb3IgeW91ciBzeXN0ZW07IG90aGVyd2lzZSBpdCB3aWxsIGJlCiAgIGF1dG9tYXRpY2FsbHkgZGVkdWNlZCBhdCBydW50aW1lLgoJU1RBQ0tfRElSRUNUSU9OID4gMCA9PiBncm93cyB0b3dhcmQgaGlnaGVyIGFkZHJlc3NlcwoJU1RBQ0tfRElSRUNUSU9OIDwgMCA9PiBncm93cyB0b3dhcmQgbG93ZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPSAwID0+IGRpcmVjdGlvbiBvZiBncm93dGggdW5rbm93biAqLwojdW5kZWYgU1RBQ0tfRElSRUNUSU9OCgovKiBEZWZpbmUgaWYgc3RhdGZzIHRha2VzIDIgYXJncyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBoYXMgdHlwZSBzdHJ1Y3QKICAgZnNfZGF0YS4gW1VsdHJpeF0gKi8KI3VuZGVmIFNUQVRfU1RBVEZTX0ZTX0RBVEEKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwojdW5kZWYgU1REQ19IRUFERVJTCgovKiBkZWZpbmUgaWYgU0lPQ0dJRkFERFIgZXhpc3RzIGluIHN5cy9pb2N0bC5oICovCiN1bmRlZiBTWVNfSU9DVExfSF9IQVNfU0lPQ0dJRkFERFIKCi8qIERlZmluZSBpZiB0aGUgVENQIHRpbWVyIGNvbnN0YW50cyBpbiA8bmV0aW5ldC90Y3BfdGltZXIuaD4gZGVwZW5kIG9uIHRoZQogICBpbnRlZ2VyIHZhcmlhYmxlICdoeicuIFtGcmVlQlNEIDQueF0gKi8KI3VuZGVmIFRDUFRWX05FRURTX0haCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KI3VuZGVmIFRJTUVfV0lUSF9TWVNfVElNRQoKLyogV2hlcmUgaXMgdGhlIHVuYW1lIGNvbW1hbmQgKi8KI3VuZGVmIFVOQU1FUFJPRwoKLyogRW5hYmxlIGV4dGVuc2lvbnMgb24gQUlYIDMsIEludGVyaXguICAqLwojaWZuZGVmIF9BTExfU09VUkNFCiMgdW5kZWYgX0FMTF9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KI2lmbmRlZiBfR05VX1NPVVJDRQojIHVuZGVmIF9HTlVfU09VUkNFCiNlbmRpZgovKiBFbmFibGUgdGhyZWFkaW5nIGV4dGVuc2lvbnMgb24gU29sYXJpcy4gICovCiNpZm5kZWYgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCiMgdW5kZWYgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCiNlbmRpZgovKiBFbmFibGUgZXh0ZW5zaW9ucyBvbiBIUCBOb25TdG9wLiAgKi8KI2lmbmRlZiBfVEFOREVNX1NPVVJDRQojIHVuZGVmIF9UQU5ERU1fU09VUkNFCiNlbmRpZgovKiBFbmFibGUgZ2VuZXJhbCBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLwojaWZuZGVmIF9fRVhURU5TSU9OU19fCiMgdW5kZWYgX19FWFRFTlNJT05TX18KI2VuZGlmCgoKLyogRGVmaW5lIFdPUkRTX0JJR0VORElBTiB0byAxIGlmIHlvdXIgcHJvY2Vzc29yIHN0b3JlcyB3b3JkcyB3aXRoIHRoZSBtb3N0CiAgIHNpZ25pZmljYW50IGJ5dGUgZmlyc3QgKGxpa2UgTW90b3JvbGEgYW5kIFNQQVJDLCB1bmxpa2UgSW50ZWwpLiAqLwojaWYgZGVmaW5lZCBBQ19BUFBMRV9VTklWRVJTQUxfQlVJTEQKIyBpZiBkZWZpbmVkIF9fQklHX0VORElBTl9fCiMgIGRlZmluZSBXT1JEU19CSUdFTkRJQU4gMQojIGVuZGlmCiNlbHNlCiMgaWZuZGVmIFdPUkRTX0JJR0VORElBTgojICB1bmRlZiBXT1JEU19CSUdFTkRJQU4KIyBlbmRpZgojZW5kaWYKCi8qIERlZmluZSB0byAxIGlmIG9uIE1JTklYLiAqLwojdW5kZWYgX01JTklYCgovKiBEZWZpbmUgdG8gMiBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IHByb3ZpZGUgUE9TSVguMSBmZWF0dXJlcyBleGNlcHQgd2l0aAogICB0aGlzIGRlZmluZWQuICovCiN1bmRlZiBfUE9TSVhfMV9TT1VSQ0UKCi8qIERlZmluZSB0byAxIGlmIHlvdSBuZWVkIHRvIGluIG9yZGVyIGZvciBgc3RhdCcgYW5kIG90aGVyIHRoaW5ncyB0byB3b3JrLiAqLwojdW5kZWYgX1BPU0lYX1NPVVJDRQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIFJQTSA0LjYgb3IgbmV3ZXIgdG8gdHVybiBvbiBsZWdhY3kgQVBJICovCiN1bmRlZiBfUlBNXzRfNF9DT01QQVQKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDMyX3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQzMl9UCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQ2NF90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UNjRfVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50OF90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UOF9UCgovKiBEZWZpbmUgdG8gZW1wdHkgaWYgYGNvbnN0JyBkb2VzIG5vdCBjb25mb3JtIHRvIEFOU0kgQy4gKi8KI3VuZGVmIGNvbnN0CgovKiBEZWZpbmUgdG8gYF9faW5saW5lX18nIG9yIGBfX2lubGluZScgaWYgdGhhdCdzIHdoYXQgdGhlIEMgY29tcGlsZXIKICAgY2FsbHMgaXQsIG9yIHRvIG5vdGhpbmcgaWYgJ2lubGluZScgaXMgbm90IHN1cHBvcnRlZCB1bmRlciBhbnkgbmFtZS4gICovCiNpZm5kZWYgX19jcGx1c3BsdXMKI3VuZGVmIGlubGluZQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAxNiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQxNl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMzIgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50MzJfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDY0IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDY0X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA4IGJpdHMgaWYgc3VjaAogICBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDhfdAoKLyogRGVmaW5lIHRvIHRoZSB3aWRlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSBpZiA8c3RkaW50Lmg+IGFuZCA8aW50dHlwZXMuaD4gZG8KICAgbm90IGRlZmluZS4gKi8KI3VuZGVmIGludG1heF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIHdpZGUgZW5vdWdoIHRvIGhvbGQgYSBwb2ludGVyLAogICBpZiBzdWNoIGEgdHlwZSBleGlzdHMsIGFuZCBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludHB0cl90CgovKiBEZWZpbmUgdG8gYGxvbmcgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIG9mZl90CgovKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCiN1bmRlZiBwaWRfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDE2IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQxNl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMzIgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDMyX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA2NCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50NjRfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDggYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDhfdAoKLyogRGVmaW5lIHRvIHRoZSB3aWRlc3QgdW5zaWduZWQgaW50ZWdlciB0eXBlIGlmIDxzdGRpbnQuaD4gYW5kIDxpbnR0eXBlcy5oPgogICBkbyBub3QgZGVmaW5lLiAqLwojdW5kZWYgdWludG1heF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIHdpZGUgZW5vdWdoIHRvIGhvbGQgYQogICBwb2ludGVyLCBpZiBzdWNoIGEgdHlwZSBleGlzdHMsIGFuZCBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnRwdHJfdAoKLyogZW5kIG9mIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgovKiBJZiB5b3UgaGF2ZSBvcGVuc3NsIDAuOS43IG9yIGFib3ZlLCB5b3UgbGlrZWx5IGhhdmUgQUVTIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiNpZiAoZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfT1BFTlNTTF9BRVNfSCkgJiYgZGVmaW5lZChIQVZFX0FFU19DRkIxMjhfRU5DUllQVCkpIHx8IGRlZmluZWQoTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPKQojZGVmaW5lIEhBVkVfQUVTIDEKI2VuZGlmCgovKiBkZWZpbmUgcmFuZG9tIGZ1bmN0aW9ucyAqLwoKI2lmbmRlZiBIQVZFX1JBTkRPTQojaWZkZWYgSEFWRV9MUkFORDQ4CiNkZWZpbmUgcmFuZG9tIGxyYW5kNDgKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kNDgocykKI2Vsc2UKI2lmZGVmIEhBVkVfUkFORAojZGVmaW5lIHJhbmRvbSByYW5kCiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZChzKQojZW5kaWYKI2VuZGlmCiNlbmRpZgoKLyogZGVmaW5lIHNpZ25hbCBpZiBETkUgKi8KCiNpZm5kZWYgSEFWRV9TSUdOQUwKI2lmZGVmIEhBVkVfU0lHU0VUCiNkZWZpbmUgc2lnbmFsKGEsYikgc2lnc2V0KGEsYikKI2VuZGlmCiNlbmRpZgoKI2lmZGVmIEhBVkVfRE1BTExPQ19ICiNkZWZpbmUgRE1BTExPQ19GVU5DX0NIRUNLCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMgKi8KCgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fQ0xFQU5fTkFNRVNQQUNFICoqKioqKioqKiAqLwovKiAKICogcHV0IGFsbCBuZXcgbmV0LXNubXAtc3BlY2lmaWMgZGVmaW5pdGlvbnMgaGVyZQogKgogKiBhbGwgZGVmaW5pdGlvbnMgTVVTVCBoYXZlIGEgTkVUU05NUF8gcHJlZml4CiAqCiAqLwoKLyogRGVmYXVsdCAoU05NUCkgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSB0b29scyB0byB1c2UgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OIDMKCi8qIGRvbid0IGNoYW5nZSB0aGVzZSB2YWx1ZXMhICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjEgICAgICAweEFBQUEgICAgICAgLyogcmVhZGFibGUgYnkgYW55b25lICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBTlkgICAweEEwMDAgICAgICAgLyogVjIgQW55IHR5cGUgKGluY2x1ZGVzIE5vQXV0aCkgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFVVEggIDB4ODAwMCAgICAgICAvKiBWMiBBdXRoZW50aWNhdGVkIHJlcXVlc3RzIG9ubHkgKi8KCi8qIGRlZmF1bHQgbGlzdCBvZiBtaWJzIHRvIGxvYWQgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfTUlCUyAiSVAtTUlCOklGLU1JQjpUQ1AtTUlCOlVEUC1NSUI6U05NUHYyLU1JQjpSRkMxMjEzLU1JQiIKCi8qIGRlYnVnZ2luZyBzdHVmZiAqLwovKiBpZiBkZWZpbmVkLCB3ZSBvcHRpbWl6ZSB0aGUgY29kZSB0byBleGNsdWRlIGFsbCBkZWJ1Z2dpbmcgY2FsbHMuICovCiN1bmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwovKiBpZ25vcmUgdGhlIC1EIGZsYWcgYW5kIGFsd2F5cyBwcmludCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gKi8KI2RlZmluZSBORVRTTk1QX0FMV0FZU19ERUJVRyAwCgovKiByZXZlcnNlIGVuY29kaW5nIEJFUiBwYWNrZXRzIGlzIGJvdGggZmFzdGVyIGFuZCBtb3JlIGVmZmljaWVudCBpbiBzcGFjZS4gKi8KI2RlZmluZSBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HICAgICAgIDEKI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIDEgLyogMSA9IHJldmVyc2UsIDAgPSBmb3J3YXJkcyAqLwoKLyogUEVSU0lTVEVOVF9ESVJFQ1RPUlk6IElmIGRlZmluZWQsIHRoZSBsaWJyYXJ5IGlzIGNhcGFiaWxlIG9mIHNhdmluZwogICBwZXJzaXNhbnQgaW5mb3JtYXRpb24gdG8gdGhpcyBkaXJlY3RvcnkgaW4gdGhlIGZvcm0gb2YgY29uZmlndXJhdGlvbgogICBsaW5lczogUEVSU0lTVEVOVF9ESVJFQ1RPUlkvTkFNRS5wZXJzaXN0ZW50LmNvbmYgKi8KI2RlZmluZSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZICIvdmFyL3NubXAiCgovKiBBR0VOVF9ESVJFQ1RPUllfTU9ERTogdGhlIG1vZGUgdGhlIGFnZW50cyBzaG91bGQgdXNlIHRvIGNyZWF0ZQogICBkaXJlY3RvcmllcyB3aXRoLiBTaW5jZSB0aGUgZGF0YSBzdG9yZWQgaGVyZSBpcyBwcm9iYWJseSBzZW5zaXRpdmUsIGl0CiAgIHByb2JhYmx5IHNob3VsZCBiZSByZWFkLW9ubHkgYnkgcm9vdC9hZG1pbmlzdHJhdG9yLiAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUgMDcwMAoKLyogTUFYX1BFUlNJU1RFTlRfQkFDS1VQUzoKICogICBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVyc2lzdGVudCBiYWNrdXBzIHRoZSBsaWJyYXJ5IHdpbGwgdHJ5IHRvCiAqICAgcmVhZCBmcm9tIHRoZSBwZXJzaXN0ZW50IGNhY2hlIGRpcmVjdG9yeS4gIElmIGFuIGFwcGxpY2F0aW9uIGZhaWxzIHRvCiAqICAgY2xvc2UgZG93biBzdWNjZXNzZnVsbHkgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIHRpbWVzLCBkYXRhIHdpbGwgYmUgbG9zdC4KICovCiNkZWZpbmUgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTIDEwCgovKiBkZWZpbmUgdGhlIHN5c3RlbSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFIDxuZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBtYWNoaW5lIChjcHUpIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFIDxuZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgVURQIGJ1ZmZlciBkZWZhdWx0cyB1bmRlZmluZWQgbWVhbnMgdXNlIHRoZSBPUyBidWZmZXJzCiAqIGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKCi8qIG5ldC1zbm1wJ3MgbWFqb3IgcGF0aCBuYW1lcyAqLwojdW5kZWYgU05NUExJQlBBVEgKI3VuZGVmIFNOTVBTSEFSRVBBVEgKI3VuZGVmIFNOTVBDT05GUEFUSAojdW5kZWYgU05NUERMTU9EUEFUSAoKLyogTkVUU05NUF9MT0dGSUxFOiAgSWYgZGVmaW5lZCBpdCBjbG9zZXMgc3Rkb3V0L2Vyci9pbiBhbmQgb3BlbnMgdGhpcyBpbiAKICAgb3V0L2VycidzIHBsYWNlLiAgKHN0ZGluIGlzIGNsb3NlZCBzbyB0aGF0IHNoIHNjcmlwdHMgd29uJ3Qgd2FpdCBmb3IgaXQpICovCiN1bmRlZiBORVRTTk1QX0xPR0ZJTEUKCi8qIGRlZmF1bHQgc3lzdGVtIGNvbnRhY3QgKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKCi8qIHN5c3RlbSBsb2NhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9TWVNfTE9DCgovKiBVc2UgbGlid3JhcCB0byBoYW5kbGUgYWxsb3cvZGVueSBob3N0cz8gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKCi8qIE1pYi0yIHRyZWUgSW5mbyAqLwovKiBUaGVzZSBhcmUgdGhlIHN5c3RlbSBpbmZvcm1hdGlvbiB2YXJpYWJsZXMuICovCgojZGVmaW5lIE5FVFNOTVBfVkVSU19ERVNDICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KI2RlZmluZSBORVRTTk1QX1NZU19OQU1FICAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCgovKiBjb21tZW50IG91dCB0aGUgc2Vjb25kIGRlZmluZSB0byB0dXJuIG9mZiBmdW5jdGlvbmFsaXR5IGZvciBhbnkgb2YKICAgdGhlc2U6IChTZWUgUkVBRE1FIGZvciBkZXRhaWxzKSAqLwoKLyogICBwcm9jIFBST0NFU1NOQU1FIFtNQVhdIFtNSU5dICovCiNkZWZpbmUgTkVUU05NUF9QUk9DTUlCTlVNIDIKCi8qICAgZXhlYy9zaGVsbCBOQU1FIENPTU1BTkQgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfU0hFTExNSUJOVU0gOAoKLyogICBzd2FwIE1JTiAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9NRU1NSUJOVU0gNAoKLyogICBkaXNrIERJU0sgTUlOU0laRSAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9ESVNLTUlCTlVNIDkKCi8qICAgbG9hZCAxIDUgMTUgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTE9BREFWRU1JQk5VTSAxMAoKLyogd2hpY2ggdmVyc2lvbiBhcmUgeW91IHVzaW5nPyBUaGlzIG1pYmxvYyB3aWxsIHRlbGwgeW91ICovCiNkZWZpbmUgTkVUU05NUF9WRVJTSU9OTUlCTlVNIDEwMAoKLyogUmVwb3J0cyBlcnJvcnMgdGhlIGFnZW50IHJ1bnMgaW50byAqLwovKiAodHlwaWNhbGx5IGl0cyAiY2FuJ3QgZm9yaywgbm8gbWVtIiBwcm9ibGVtcykgKi8KI2RlZmluZSBORVRTTk1QX0VSUk9STUlCTlVNIDEwMQoKLyogVGhlIHN1YiBpZCBvZiBFWFRFTlNJQkxFTUlCIHJldHVybmVkIHRvIHF1ZXJpZXMgb2YKICAgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIuc3lzdGVtLnN5c09iamVjdElELjAgKi8KI2RlZmluZSBORVRTTk1QX0FHRU5USUQgMjUwCgovKiBUaGlzIElEIGlzIHJldHVybmVkIGFmdGVyIHRoZSBBR0VOVElEIGFib3ZlLiAgSUUsIHRoZSByZXN1bHRpbmcKICAgdmFsdWUgcmV0dXJuZWQgYnkgYSBxdWVyeSB0byBzeXNPYmplY3RJRCBpcwogICBFWFRFTlNJQkxFTUlCLkFHRU5USUQuPz8/LCB3aGVyZSA/Pz8gaXMgZGVmaW5lZCBiZWxvdyBieSBPU1RZUEUgKi8KCiNkZWZpbmUgTkVUU05NUF9IUFVYOUlEIDEKI2RlZmluZSBORVRTTk1QX1NVTk9TNElEIDIgCiNkZWZpbmUgTkVUU05NUF9TT0xBUklTSUQgMwojZGVmaW5lIE5FVFNOTVBfT1NGSUQgNAojZGVmaW5lIE5FVFNOTVBfVUxUUklYSUQgNQojZGVmaW5lIE5FVFNOTVBfSFBVWDEwSUQgNgojZGVmaW5lIE5FVFNOTVBfTkVUQlNEMUlEIDcKI2RlZmluZSBORVRTTk1QX0ZSRUVCU0RJRCA4CiNkZWZpbmUgTkVUU05NUF9JUklYSUQgOQojZGVmaW5lIE5FVFNOTVBfTElOVVhJRCAxMAojZGVmaW5lIE5FVFNOTVBfQlNESUlEIDExCiNkZWZpbmUgTkVUU05NUF9PUEVOQlNESUQgMTIKI2RlZmluZSBORVRTTk1QX1dJTjMySUQgMTMKI2RlZmluZSBORVRTTk1QX0hQVVgxMUlEIDE0CiNkZWZpbmUgTkVUU05NUF9BSVhJRCAxNQojZGVmaW5lIE5FVFNOTVBfTUFDT1NYSUQgMTYKI2RlZmluZSBORVRTTk1QX0RSQUdPTkZMWUlEIDE3CiNkZWZpbmUgTkVUU05NUF9VTktOT1dOSUQgMjU1CgojaWZkZWYgaHB1eDkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVg5SUQKI2VuZGlmCiNpZmRlZiBocHV4MTAKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMElECiNlbmRpZgojaWZkZWYgaHB1eDExCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTFJRAojZW5kaWYKI2lmZGVmIHN1bm9zNAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU1VOT1M0SUQKI2VuZGlmCiNpZmRlZiBzb2xhcmlzMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU09MQVJJU0lECiNlbmRpZgojaWYgZGVmaW5lZChvc2YzKSB8fCBkZWZpbmVkKG9zZjQpIHx8IGRlZmluZWQob3NmNSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09TRklECiNlbmRpZgojaWZkZWYgdWx0cml4NAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVUxUUklYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG5ldGJzZDEpIHx8IGRlZmluZWQobmV0YnNkMikKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX05FVEJTRDFJRAojZW5kaWYKI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9GUkVFQlNESUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9EUkFHT05GTFlJRAojZW5kaWYKI2lmIGRlZmluZWQoaXJpeDYpIHx8IGRlZmluZWQoaXJpeDUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9JUklYSUQKI2VuZGlmCiNpZmRlZiBsaW51eAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTElOVVhJRAojZW5kaWYKI2lmIGRlZmluZWQoYnNkaTIpIHx8IGRlZmluZWQoYnNkaTMpIHx8IGRlZmluZWQoYnNkaTQpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9CU0RJSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9wZW5ic2QpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PUEVOQlNESUQKI2VuZGlmCiNpZmRlZiBXSU4zMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfV0lOMzJJRAojZW5kaWYKI2lmIGRlZmluZWQoYWl4MykgfHwgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQUlYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGRhcndpbikgJiYgKGRhcndpbiA+PSA4KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTUFDT1NYSUQKI2VuZGlmCi8qIHVua25vd24gKi8KI2lmbmRlZiBORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVU5LTk9XTklECiNlbmRpZgoKLyogVGhlIGVudGVycHJpc2UgbnVtYmVyIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IHRoZSBJQU5BIGdyb3VwLiAgICovCi8qIE9wdGlvbmFsbHksIHRoaXMgbWF5IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgdHJlZSB5b3VyICAqLwovKiBjb21wYW55L29yZ2FuaXphdGlvbiBoYXMgYmVlbiBhbGxvY2F0ZWQuICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciB0aGUgTkVUX1NOTVAgTUlCIG1vZHVsZXMuICovCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX09JRAkJCTgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCQkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICTcKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igc3lzT2JqZWN0SUQuICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDMsMixORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuMy4yLk5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgJMTAKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igbm90aWZpY2F0aW9ucy4gKi8KI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICTgKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSB1Y2RhdmlzIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX09JRAkJMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19NSUIJCTEsMyw2LDEsNCwxLDIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQgkJMS4zLjYuMS40LjEuMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAk3CgovKiBob3cgbG9uZyB0byB3YWl0IChzZWNvbmRzKSBmb3IgZXJyb3IgcXVlcnlzIGJlZm9yZSByZXNldGluZyB0aGUgZXJyb3IgdHJhcC4qLwojZGVmaW5lIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RIIDYwMCAKCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggUFJPQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9QUk9DRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IEVYRUMgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZXhlYy9zY3JpcHQgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX0VYRUNGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIFNob3VsZCBleGVjIG91dHB1dCBDYXNoaW5nIGJlIHVzZWQgKHNwZWVkcyB1cCB0aGluZ3MgZ3JlYXRseSksIGFuZAogICBpZiBzbywgQWZ0ZXIgaG93IG1hbnkgc2Vjb25kcyBzaG91bGQgdGhlIGNhY2hlIHJlLW5ld2VkPyAgTm90ZToKICAgRG9uJ3QgZGVmaW5lIENBU0hFVElNRSB0byBkaXNhYmxlIGNhc2hpbmcgY29tcGxldGVseSAqLwoKI2RlZmluZSBORVRTTk1QX0VYQ0FDSEVUSU1FIDMwCiNkZWZpbmUgTkVUU05NUF9DQUNIRUZJTEUgIi5zbm1wLWV4ZWMtY2FjaGUiCiNkZWZpbmUgTkVUU05NUF9NQVhDQUNIRVNJWkUgKDE1MDAqODApICAgLyogcm91Z2hseSAxNTAwIGxpbmVzIG1heCAqLwoKLyogbWlzYyBkZWZhdWx0cyAqLwoKLyogZGVmYXVsdCBvZiAxMDAgbWVnIG1pbmltdW0gaWYgdGhlIG1pbmltdW0gc2l6ZSBpcyBub3Qgc3BlY2lmaWVkIGluCiAgIHRoZSBjb25maWcgZmlsZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRSAxMDAwMDAKCi8qIGRlZmF1bHQgbWF4aW11bSBsb2FkIGF2ZXJhZ2UgYmVmb3JlIGVycm9yICovCiNkZWZpbmUgTkVUU05NUF9ERUZNQVhMT0FEQVZFIDEyLjAKCi8qIG1heCB0aW1lcyB0byBsb29wIHJlYWRpbmcgb3V0cHV0IGZyb20gZXhlY3MuICovCi8qIEJlY2F1c2Ugb2Ygc2xlZXAoMSlzLCB0aGlzIHdpbGwgYWxzbyBiZSB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpIGZvciBleGVjCiAgIHRvIGZpbmlzaCAqLwojZGVmaW5lIE5FVFNOTVBfTUFYUkVBRENPVU5UIDEwMAoKLyogU2V0IGlmIHNubXBnZXRzIHNob3VsZCBibG9jayBhbmQgbmV2ZXIgdGltZW91dCAqLwovKiBUaGUgb3JpZ2luYWwgQ01VIGNvZGUgaGFkIHRoaXMgaGFyZGNvZGVkIGFzID0gMSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUEJMT0NLIDEKCi8qIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlc3RhcnRpbmcgdGhlIGFnZW50IGFmdGVyIGEgc25tcHNldCB0bwogICBFWFRFTlNJQkxFTUlCLlZFUlNJT05NSUJOVU0uVkVSUkVTVEFSVEFHRU5ULiAgVGhpcyBpcwogICBuZWNlc3NhcnkgdG8gZmluaXNoIHRoZSBzbm1wc2V0IHJlcGx5IGJlZm9yZSByZXN0YXJ0aW5nLiAqLwojZGVmaW5lIE5FVFNOTVBfUkVTVEFSVFNMRUVQIDUKCi8qIFVOZGVmaW5lIHRvIGFsbG93IHNwZWNpZnlpbmcgemVyby1sZW5ndGggY29tbXVuaXR5IHN0cmluZyAqLwovKiAjZGVmaW5lIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgMSAqLwoKLyogTnVtYmVyIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIHN0b3JlICovCiNkZWZpbmUgTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMJNQoKLyogaW50ZXJuYWwgZGVmaW5lICovCiNkZWZpbmUgTkVUU05NUF9MQVNURklFTEQgLTEKCi8qICBQbHVnZ2FibGUgdHJhbnNwb3J0cy4gICovCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSAiY2FsbGJhY2siIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVuaXggdHJhbnNwb3J0IGRvbWFpbgogICAgKGEuay5hLiAibG9jYWwgSVBDIikgaXMgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBQUw1IFBWQyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQWCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU0JBU0VfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBbGlhcyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FMSUFTX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgU1NIIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1NIX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgRFRMUy9VRFAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9EVExTVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVExTL1RDUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3Igc3RkaW4vb3V0IHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUHY0QmFzZSB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBWNEJBU0VfRE9NQUlOCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgVVNNIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIEtTTSAoa2VyYmVyb3MgYmFzZWQgc25tcCkgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfS1NNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgbG9jYWwgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTQoKLyogZGVmaW5lIGlmIGNvbmZpZ3VyZWQgYXMgYSAibWluaS1hZ2VudCIgKi8KI3VuZGVmIE5FVFNOTVBfTUlOSV9BR0VOVAoKLyogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldC1zbm1wIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9PSUQJCTgwNzIKI2RlZmluZSBORVRTTk1QX01JQgkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQl9MRU5HVEgJNwoKLyogcGF0dGVybiBmb3IgdGVtcG9yYXJ5IGZpbGUgbmFtZXMgKi8KI2RlZmluZSBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOICIvdG1wL3NubXBkWFhYWFhYIgoKLyoKICogdGhpcyBtdXN0IGJlIGJlZm9yZSB0aGUgc3lzdGVtL21hY2hpbmUgaW5jbHVkZXMsIHRvIGFsbG93IHRoZW0gdG8KICogb3ZlcnJpZGUgYW5kIHR1cm4gb2ZmIGlubGluaW5nLiBUbyBkbyBzbywgdGhleSBzaG91bGQgZG8gdGhlCiAqIGZvbGxvd2luZzoKICoKICogICAgI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lOTElORQogKiAgICAjZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiAqCiAqIEEgdXNlciBoYXZpbmcgcHJvYmxlbXMgd2l0aCB0aGVpciBjb21waWxlciBjYW4gYWxzbyB0dXJuIG9mZgogKiB0aGUgdXNlIG9mIGlubGluZSBieSBkZWZpbmluZyBORVRTTk1QX05PX0lOTElORSB2aWEgdGhlaXIgY2ZsYWdzOgogKgogKiAgICAtRE5FVFNOTVBfTk9fSU5MSU5FCiAqCiAqIEhlYWRlciBhbmQgc291cmNlIGZpbGVzIHNob3VsZCBvbmx5IHRlc3QgYWdhaW5zdCBORVRTTk1QX1VTRV9JTkxJTkU6CiAqCiAqICAgI2lmZGVmIE5FVFNOTVBfVVNFX0lOTElORQogKiAgIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqICAgI2VuZGlmCiAqCiAqIEZ1bmN0aW9ucyB3aGljaCBzaG91bGQgYmUgc3RhdGljLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IGlubGluZQogKiBpcyBhdmFpbGFibGUgb3IgZW5hYmxlZCBzaG91bGQgdXNlIHRoZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgbWFjcm8sCiAqIGxpa2Ugc286CiAqCiAqICAgIE5FVFNOTVBfU1RBVElDX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKiBOT1QgbGlrZSB0aGlzOgogKgogKiAgICBzdGF0aWMgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICovCiNpZmRlZiBORVRTTk1QX0JST0tFTl9JTkxJTkUKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAxCiNlbmRpZgoKI2luY2x1ZGUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNpbmNsdWRlIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUgJiYgIWRlZmluZWQoTkVUU05NUF9OT19JTkxJTkUpCiMgICBkZWZpbmUgTkVUU05NUF9VU0VfSU5MSU5FIDEKIyAgIGlmbmRlZiBORVRTTk1QX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIGlubGluZQojICAgZW5kaWYKIyAgIGlmbmRlZiBORVRTTk1QX1NUQVRJQ19JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljIGlubGluZQojICAgZW5kaWYKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0lOTElORSAKIyAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljCiNlbmRpZgoKI2lmbmRlZiBORVRTTk1QX0lNUE9SVAojICBkZWZpbmUgTkVUU05NUF9JTVBPUlQgZXh0ZXJuCiNlbmRpZgoKLyogY29tbWVudCB0aGUgbmV4dCBsaW5lIGlmIHlvdSBhcmUgY29tcGlsaW5nIHdpdGggbGlic25tcC5oIAogICBhbmQgYXJlIG5vdCB1c2luZyB0aGUgVUMtRGF2aXMgU05NUCBsaWJyYXJ5LiAqLwojZGVmaW5lIFVDRF9TTk1QX0xJQlJBUlkgMQoKLyogYWRkIGluIHJlY2VudCBDTVUgbGlicmFyeSBleHRlbnNpb25zIChub3QgY29tcGxldGUpICovCiN1bmRlZiBDTVVfQ09NUEFUSUJMRQoKLyogZmluYWwgY29uY2x1c2lvbiBvbiBubGlzdCB1c2FnZSAqLwojaWYgZGVmaW5lZChIQVZFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX05MSVNUX05fVkFMVUUpICYmICFkZWZpbmVkKE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QpICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fS01FTV9VU0FHRSkKI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9MRUdBQ1lfREVGSU5JVElPTlMgKioqKioqKioqLwovKiAKICogZXhpc3RpbmcgZGVmaW5pdGlvbnMgcHJpb3IgdG8gTmV0LVNOTVAgNS40CiAqCiAqIGRvIG5vdCBhZGQgYW55dGhpbmcgbmV3IGhlcmUKICoKICovCgojaWZuZGVmIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojIGRlZmluZSBERUZBVUxUX1NOTVBfVkVSU0lPTiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYxCiMgZGVmaW5lIFNOTVBWMSBORVRTTk1QX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFOWQojIGRlZmluZSBTTk1QVjJBTlkgTkVUU05NUF9TTk1QVjJBTlkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBVVRICiMgZGVmaW5lIFNOTVBWMkFVVEggTkVUU05NUF9TTk1QVjJBVVRICiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJTCiMgZGVmaW5lIERFRkFVTFRfTUlCUyBORVRTTk1QX0RFRkFVTFRfTUlCUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojIGRlZmluZSBERUZBVUxUX01JQkRJUlMgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiMgZGVmaW5lIERFRkFVTFRfTUlCRklMRVMgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojIGRlZmluZSBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKIyBkZWZpbmUgU0NBUElfQVVUSFBSSVYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiMgZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQojIGRlZmluZSBVU0VfUEtDUyBORVRTTk1QX1VTRV9QS0NTMTEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojIGRlZmluZSBVU0VfT1BFTlNTTCBORVRTTk1QX1VTRV9PUEVOU1NMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCiMgZGVmaW5lIFNOTVBfTk9fREVCVUdHSU5HIE5FVFNOTVBfTk9fREVCVUdHSU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiMgZGVmaW5lIFNOTVBfQUxXQVlTX0RFQlVHIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKIyBkZWZpbmUgVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KIyBkZWZpbmUgREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojZW5kaWYKCiNkZWZpbmUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWQojZGVmaW5lIFBFUlNJU1RFTlRfTUFTSyBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwojZGVmaW5lIEFHRU5UX0RJUkVDVE9SWV9NT0RFIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUKI2RlZmluZSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUwojZGVmaW5lIFNZU1RFTV9JTkNMVURFX0ZJTEUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNkZWZpbmUgTUFDSElORV9JTkNMVURFX0ZJTEUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0xPR0ZJTEUKIyBkZWZpbmUgTE9HRklMRSBORVRTTk1QX0xPR0ZJTEUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfQ09OVEFDVAojIGRlZmluZSBTWVNfQ09OVEFDVCBORVRTTk1QX1NZU19DT05UQUNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0xPQwojIGRlZmluZSBTWVNfTE9DIE5FVFNOTVBfU1lTX0xPQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCiMgZGVmaW5lIFVTRV9MSUJXUkFQIE5FVFNOTVBfVVNFX0xJQldSQVAKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAojIGRlZmluZSBTTk1QX1RFU1RJTkdfQ09ERSBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojIGRlZmluZSBOT19ST09UX0FDQ0VTUyBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojIGRlZmluZSBOT19LTUVNX1VTQUdFIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojIGRlZmluZSBOT19EVU1NWV9WQUxVRVMgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKI2VuZGlmCgojZGVmaW5lIFZFUlNfREVTQyAgICAgTkVUU05NUF9WRVJTX0RFU0MKI2RlZmluZSBTWVNfTkFNRSAgICAgIE5FVFNOTVBfU1lTX05BTUUKCiNkZWZpbmUgUFJPQ01JQk5VTSAgICBORVRTTk1QX1BST0NNSUJOVU0KI2RlZmluZSBTSEVMTE1JQk5VTSAgIE5FVFNOTVBfU0hFTExNSUJOVU0KI2RlZmluZSBNRU1NSUJOVU0gICAgIE5FVFNOTVBfTUVNTUlCTlVNCiNkZWZpbmUgRElTS01JQk5VTSAgICBORVRTTk1QX0RJU0tNSUJOVU0KCiNkZWZpbmUgTE9BREFWRU1JQk5VTSBORVRTTk1QX0xPQURBVkVNSUJOVU0KI2RlZmluZSBWRVJTSU9OTUlCTlVNIE5FVFNOTVBfVkVSU0lPTk1JQk5VTQojZGVmaW5lIEVSUk9STUlCTlVNICAgTkVUU05NUF9FUlJPUk1JQk5VTQojZGVmaW5lIEFHRU5USUQgICAgICAgTkVUU05NUF9BR0VOVElECgojZGVmaW5lIEhQVVg5SUQgICAgICAgTkVUU05NUF9IUFVYOUlECiNkZWZpbmUgU1VOT1M0SUQgICAgICBORVRTTk1QX1NVTk9TNElECiNkZWZpbmUgU09MQVJJU0lEICAgICBORVRTTk1QX1NPTEFSSVNJRAojZGVmaW5lIE9TRklEICAgICAgICAgTkVUU05NUF9PU0ZJRAojZGVmaW5lIFVMVFJJWElEICAgICAgTkVUU05NUF9VTFRSSVhJRAojZGVmaW5lIEhQVVgxMElEICAgICAgTkVUU05NUF9IUFVYMTBJRAojZGVmaW5lIE5FVEJTRDFJRCAgICAgTkVUU05NUF9ORVRCU0QxSUQKI2RlZmluZSBGUkVFQlNESUQgICAgIE5FVFNOTVBfRlJFRUJTRElECiNkZWZpbmUgSVJJWElEICAgICAgICBORVRTTk1QX0lSSVhJRAojZGVmaW5lIExJTlVYSUQgICAgICAgTkVUU05NUF9MSU5VWElECiNkZWZpbmUgQlNESUlEICAgICAgICBORVRTTk1QX0JTRElJRAojZGVmaW5lIE9QRU5CU0RJRCAgICAgTkVUU05NUF9PUEVOQlNESUQKI2RlZmluZSBXSU4zMklEICAgICAgIE5FVFNOTVBfV0lOMzJJRAojZGVmaW5lIEhQVVgxMUlEICAgICAgTkVUU05NUF9IUFVYMTFJRAojZGVmaW5lIEFJWElEICAgICAgICAgTkVUU05NUF9BSVhJRAojZGVmaW5lIE1BQ09TWElEICAgICAgTkVUU05NUF9NQUNPU1hJRAojZGVmaW5lIFVOS05PV05JRCAgICAgTkVUU05NUF9VTktOT1dOSUQKCiNkZWZpbmUgRU5URVJQUklTRV9PSUQgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfT0lECiNkZWZpbmUgRU5URVJQUklTRV9NSUIgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEggTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFNZU1RFTV9NSUIJCSAgTkVUU05NUF9TWVNURU1fTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUIJCSAgTkVUU05NUF9TWVNURU1fRE9UX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIE5PVElGSUNBVElPTl9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBVQ0RBVklTX09JRAkJICBORVRTTk1QX1VDREFWSVNfT0lECiNkZWZpbmUgVUNEQVZJU19NSUIJCSAgTkVUU05NUF9VQ0RBVklTX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQgkJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgRVJST1JUSU1FTEVOR1RIIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RICgojaWZkZWYgTkVUU05NUF9QUk9DRklYQ01ECiMgZGVmaW5lIFBST0NGSVhDTUQgTkVUU05NUF9QUk9DRklYQ01ECiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRVhFQ0ZJWENNRAojIGRlZmluZSBFWEVDRklYQ01EIE5FVFNOTVBfRVhFQ0ZJWENNRAojZW5kaWYKCiNkZWZpbmUgRVhDQUNIRVRJTUUgIE5FVFNOTVBfRVhDQUNIRVRJTUUKI2RlZmluZSBDQUNIRUZJTEUgICAgTkVUU05NUF9DQUNIRUZJTEUKI2RlZmluZSBNQVhDQUNIRVNJWkUgTkVUU05NUF9NQVhDQUNIRVNJWkUKCiNkZWZpbmUgREVGRElTS01JTklNVU1TUEFDRSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UKI2RlZmluZSBERUZNQVhMT0FEQVZFIE5FVFNOTVBfREVGTUFYTE9BREFWRQojZGVmaW5lIE1BWFJFQURDT1VOVCBORVRTTk1QX01BWFJFQURDT1VOVAoKI2RlZmluZSBTTk1QQkxPQ0sgTkVUU05NUF9TTk1QQkxPQ0sKI2RlZmluZSBSRVNUQVJUU0xFRVAgTkVUU05NUF9SRVNUQVJUU0xFRVAKCiNkZWZpbmUgTlVNX0NPTU1VTklUSUVTCU5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCgojaWZkZWYgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojIGRlZmluZSBOT19aRVJPTEVOR1RIX0NPTU1VTklUWSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiNlbmRpZgoKI2RlZmluZSBMQVNURklFTEQgTkVUU05NUF9MQVNURklFTEQKCiNkZWZpbmUgQ09ORklHVVJFX09QVElPTlMgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9VU00gTkVUU05NUF9TRUNNT0RfVVNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9LU00gTkVUU05NUF9TRUNNT0RfS1NNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00gCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0xPQ0FMU00gTkVUU05NUF9TRUNNT0RfTE9DQUxTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1JFRU5UUkFOVAojIGRlZmluZSBOU19SRUVOVFJBTlQgTkVUU05NUF9SRUVOVFJBTlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgojIGRlZmluZSBJTkVUNiBORVRTTk1QX0VOQUJMRV9JUFY2CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKIyBkZWZpbmUgTE9DQUxfU01VWCBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKIyBkZWZpbmUgQUdFTlRYX0RPTV9TT0NLX09OTFkgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojIGRlZmluZSBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiMgZGVmaW5lIE1JVF9ORVdfQ1JZUFRPIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiMgZGVmaW5lIEhFSU1EQUwgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKIyBkZWZpbmUgQUdFTlRYX1NPQ0tFVCBORVRTTk1QX0FHRU5UWF9TT0NLRVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiMgZGVmaW5lIERJU0FCTEVfTUlCX0xPQURJTkcgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjEgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojIGRlZmluZSBESVNBQkxFX1NOTVBWMkMgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiMgZGVmaW5lIERJU0FCTEVfU0VUX1NVUFBPUlQgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKIyBkZWZpbmUgRElTQUJMRV9ERVMgTkVUU05NUF9ESVNBQkxFX0RFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiMgZGVmaW5lIERJU0FCTEVfTUQ1IE5FVFNOTVBfRElTQUJMRV9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ET05UX1VTRV9OTElTVAojIGRlZmluZSBET05UX1VTRV9OTElTVCBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojIGRlZmluZSBDQU5fVVNFX05MSVNUIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiMgZGVmaW5lIENBTl9VU0VfU1lTQ1RMIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgKi8KCgojZW5kaWYgLyogTkVUX1NOTVBfQ09ORklHX0ggKi8K