LyoKICogIE5vdGVwYWQgKEVuZ2xpc2ggcmVzb3VyY2VzKQogKgogKiAgQ29weXJpZ2h0IDE5OTcsOTggTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogKiAgUHJvb2ZyZWFkIDE5OTggYnkgRGF2aWQgTGVlIExhbWJlcnQgPGxhbWJlcjQ1QGVnci5tc3UuZWR1PgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICAgICBQdF9icgojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgICAgMAojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgICAgIiZQb3J0dWd16nMiCgoKLyogTWVudSAqLwoKI2RlZmluZSBNRU5VX0ZJTEUgICAgICAgICAgICAgICAgICAgICAgICImQXJxdWl2byIKI2RlZmluZSBNRU5VX0ZJTEVfTkVXICAgICAgICAgICAgICAgICAgICImTm92by4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfT1BFTiAgICAgICAgICAgICAgICAgICJBJmJyaXIiCiNkZWZpbmUgTUVOVV9GSUxFX1NBVkUgICAgICAgICAgICAgICAgICAiJlNhbHZhciIKI2RlZmluZSBNRU5VX0ZJTEVfU0FWRUFTICAgICAgICAgICAgICAgICJTYWx2YXIgJmNvbW8uLi4iCiNkZWZpbmUgTUVOVV9GSUxFX1BSSU5UICAgICAgICAgICAgICAgICAiJkltcHJpbWlyIgojZGVmaW5lIE1FTlVfRklMRV9QQUdFU0VUVVAgICAgICAgICAgICAgIkMmb25maWd1cmFyIFDhZ2luYS4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfUFJJTlRTRVRVUCAgICAgICAgICAgICJDb25maWd1cmFyIEkmbXByZXNzb3JhLi4uIgojZGVmaW5lIE1FTlVfRklMRV9FWElUICAgICAgICAgICAgICAgICAgIiZTYWlyIgoKI2RlZmluZSBNRU5VX0VESVQgICAgICAgICAgICAgICAgICAgICAgICImRWRpdGFyIgojZGVmaW5lIE1FTlVfRURJVF9VTkRPICAgICAgICAgICAgICAgICAgIiZEZXNmYXplclx0Q3RybCtaIgojZGVmaW5lIE1FTlVfRURJVF9DVVQgICAgICAgICAgICAgICAgICAgIkMmb3J0YXJcdEN0cmwrWCIKI2RlZmluZSBNRU5VX0VESVRfQ09QWSAgICAgICAgICAgICAgICAgICImQ29waWFyXHRDdHJsK0MiCiNkZWZpbmUgTUVOVV9FRElUX1BBU1RFICAgICAgICAgICAgICAgICAiQ28mbGFyXHRDdHJsK1YiCiNkZWZpbmUgTUVOVV9FRElUX0RFTEVURSAgICAgICAgICAgICAgICAiJkRlbGV0ZVx0RGVsIgojZGVmaW5lIE1FTlVfRURJVF9TRUxFQ1RBTEwgICAgICAgICAgICAgIlNlbGVjaW9uYXIgJlR1ZG8iCiNkZWZpbmUgTUVOVV9FRElUX1RJTUVEQVRFICAgICAgICAgICAgICAiJkRhdGEvSG9yYVx0RjUiCiNkZWZpbmUgTUVOVV9FRElUX1dSQVAgICAgICAgICAgICAgICAgICAiJlF1ZWJyYXIgbGluaGFzIGxvbmdhcyIKCiNkZWZpbmUgTUVOVV9TRUFSQ0ggICAgICAgICAgICAgICAgICAgICAiJlBlc3F1aXNhIgojZGVmaW5lIE1FTlVfU0VBUkNIX1NFQVJDSCAgICAgICAgICAgICAgIlBlc3F1aXNhci4uLiIKI2RlZmluZSBNRU5VX1NFQVJDSF9ORVhUICAgICAgICAgICAgICAgICImUHJvY3VyYXIgUHLzeGltYVx0RjMiCgojZGVmaW5lIE1FTlVfTEFOR1VBR0UgICAgICAgICAgICAgICAgICAgIiZMaW5ndWFnZW0iCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgICAgIiZBanVkYSIKI2RlZmluZSBNRU5VX0hFTFBfQ09OVEVOVFMgICAgICAgICAgICAgICImQ29udGX6ZG8iCiNkZWZpbmUgTUVOVV9IRUxQX1NFQVJDSCAgICAgICAgICAgICAgICAiJlByb2N1cmFyLi4uIgojZGVmaW5lIE1FTlVfSEVMUF9IRUxQX09OX0hFTFAgICAgICAgICAgIiZBanVkYSBuYSBhanVkYSIKCiNkZWZpbmUgTUVOVV9JTkZPICAgICAgICAgICAgICAgICAgICAgICAiSW5mJm9ybWHn9WVzLi4uIgojZGVmaW5lIE1FTlVfSU5GT19MSUNFTlNFICAgICAgICAgICAgICAgIiZMaWNlbudhIgojZGVmaW5lIE1FTlVfSU5GT19OT19XQVJSQU5UWSAgICAgICAgICAgIiZTRU0gR0FSQU5USUEiCiNkZWZpbmUgTUVOVV9JTkZPX0FCT1VUX1dJTkUgICAgICAgICAgICAiJlNvYnJlIFdpbmUiCgoKLyogRGlhbG9ncyAqLwoKI2RlZmluZSBESUFMT0dfT0sgICAgICAgICAgICAgICAgICAgICAgICJPSyIKI2RlZmluZSBESUFMT0dfQ0FOQ0VMICAgICAgICAgICAgICAgICAgICJDYW5jZWxhciIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICAgICImUHJvY3VyYXIuLi4iCiNkZWZpbmUgRElBTE9HX0hFTFAgICAgICAgICAgICAgICAgICAgICAiJkFqdWRhIgoKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0NBUFRJT04gICAgICAgICJDb25maWd1cmFyIFDhZ2luYSIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0hFQUQgICAgICAgICAgICImQ2FiZedhbGhvOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1RBSUwgICAgICAgICAgICImUm9kYXDpOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX01BUkdJTiAgICAgICAgICImTWFyZ2VuczoiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9MRUZUICAgICAgICAgICAiJkVzcXVlcmRhOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1JJR0hUICAgICAgICAgICImRGlyZWl0YToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9UT1AgICAgICAgICAgICAiJlN1cGVyaW9yOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0JPVFRPTSAgICAgICAgICImSW5mZXJpb3I6IgoKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9IRUFERVJWQUxVRSAgICAiJm4iICAgICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfRk9PVEVSVkFMVUUgICAgIlDhZ2luYSAmcyIgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9MRUZUVkFMVUUgICAgICAiMjAgbW0iICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfUklHSFRWQUxVRSAgICAgIjIwIG1tIiAgICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX1RPUFZBTFVFICAgICAgICIyNSBtbSIgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9CT1RUT01WQUxVRSAgICAiMjUgbW0iICAgICAvKiBGSVhNRSAqLwoKI2RlZmluZSBTVFJJTkdfTk9URVBBRCAgICAgICAgICAgICAgICAgICJOb3RlcGFkIgojZGVmaW5lIFNUUklOR19FUlJPUiAgICAgICAgICAgICAgICAgICAgIkVSUk8iCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAiQVZJU08iCiNkZWZpbmUgU1RSSU5HX0lORk8gICAgICAgICAgICAgICAgICAgICAiSW5mb3JtYefjbyIKCiNkZWZpbmUgU1RSSU5HX1VOVElUTEVEICAgICAgICAgICAgICAgICAiKHNlbSBub21lKSIKCiNkZWZpbmUgU1RSSU5HX0FMTF9GSUxFUyAgICAgICAgICAgICAgICAiVG9kb3Mgb3MgYXJxdWl2b3MgKCouKikiCiNkZWZpbmUgU1RSSU5HX1RFWFRfRklMRVNfVFhUICAgICAgICAgICAiQXJxdWl2b3MgdGV4dG8gKCoudHh0KSIKCiNkZWZpbmUgU1RSSU5HX1RPT0xBUkdFICAgICAgICAgIkFycXVpdm8gJyVzJyDpIG11aXRvIGxvbmdvIHBhcmEgbyBub3RlcGFkLlxuIFwKUG9yIGZhdm9yIHVzZSB1bSBlZGl0b3IgZGlmZXJlbnRlLiIKCiNkZWZpbmUgU1RSSU5HX05PVEVYVCAgICAgICAgICAgIlZvY+ogbuNvIGRpZ2l0b3UgbmVuaHVtIHRleHRvLiBcClxuUG9yIGZhdm9yIGRpZ2l0ZSBhbGd1bWEgY29pc2EgZSB0ZW50ZSBub3ZhbWVudGUiCgojZGVmaW5lIFNUUklOR19OT1RTQVZFRCAgICAgICAgICJBcnF1aXZvICclcydcbmZvaSBtb2RpZmljYWRvXG5cbiBcCkdvc3RhcmlhIGRlIHNhbHZhciBhcyBhbHRlcmHn1WVzID8iCgojZGVmaW5lIFNUUklOR19OT1RGT1VORCAgICAgICAgICInJXMnIG7jbyBwb2RlIHNlciBlbmNvbnRyYWRvLiIKCiNkZWZpbmUgU1RSSU5HX09VVF9PRl9NRU1PUlkgICAgIk7jbyBo4SBtZW3zcmlhIHN1ZmljaWVudGUgcGFyYSBjb21wbGV0YXIgZXNzYSBcCnRhcmVmYS4gXG5GZWNoZSB1bWEgb3UgbWFpcyBhcGxpY2Hn9WVzIHBhcmEgYXVtZW50YXIgYSBxdWFudGlkYWRlIGRlIG1lbfNyaWEgXApsaXZyZS4iCgojaW5jbHVkZSAibm90ZXBhZC5yYyIKCg==