LyoKKiogQ29weXJpZ2h0IKkgMjAwNyBieSBTaWxpY29uIExhYm9yYXRvcmllcwoqKgoqKiAkSWQ6IHByb3NsaWNfYXBpX2NvbmZpZy5oLHYgMS4xIDIwMDgvMTEvMjcgMDc6Mjk6MzggcmFqaXZrdW1hci52aXNod2FrYXJtYSBFeHAgJAoqKgoqKgoqKiBBdXRob3Iocyk6IAoqKiBsYWoKKioKKiogRGlzdHJpYnV0ZWQgYnk6IAoqKiBTaWxpY29uIExhYm9yYXRvcmllcywgSW5jCioqCioqIFRoaXMgZmlsZSBjb250YWlucyBwcm9wcmlldGFyeSBpbmZvcm1hdGlvbi4JIAoqKiBObyBkaXNzZW1pbmF0aW9uIGFsbG93ZWQgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24gZnJvbQoqKiBTaWxpY29uIExhYm9yYXRvcmllcywgSW5jLgoqKgoqKgoqLwoKLy8jZGVmaW5lIERJU0FCTEVfRFRNRl9TRVRVUCAKLy8jZGVmaW5lIERJU0FCTEVfRlNLX1NFVFVQIAovLyNkZWZpbmUgRElTQUJMRV9UT05FX1NFVFVQIAovLyNkZWZpbmUgRElTQUJMRV9SSU5HX1NFVFVQIAovLyNkZWZpbmUgRElTQUJMRV9BVURJT0dBSU5fU0VUVVAgCi8vI2RlZmluZSBESVNBQkxFX0RDRkVFRF9TRVRVUCAKI2RlZmluZSBESVNBQkxFX0dQSU9fU0VUVVAgCiNkZWZpbmUgRElTQUJMRV9QVUxTRV9TRVRVUAovLyNkZWZpbmUgRElTQUJMRV9QQ01fU0VUVVAgCiNkZWZpbmUgRU5BQkxFX0RFQlVHIAovLyNkZWZpbmUgRElTQUJMRV9DSV9TRVRVUCAKLy8jZGVmaW5lIERJU0FCTEVfWlNZTlRIX1NFVFVQIAovLyNkZWZpbmUgRElTQUJMRV9NQUxMT0MKLy8jZGVmaW5lIEdDSV9NT0RFICAKCiNpZiAwIC8vUmFqaXYKI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgojZW5kaWYKI2RlZmluZSBMT0dQUklOVChzdHIsIGFyZ3MuLi4pIHByaW50ZihzdHIsICMjIGFyZ3MpCgovKnNpMzIxeCBoYXJkd2FyZSBzcGVjaWZpYyBzZXR0aW5ncwoqIElmIHRoZXNlIGFyZSBub3QgZGVmaW5lZCB0aGUgZGVmYXVsdAoqIHZhbHVlcyBhcmUgbG9hZGVkICovCiNkZWZpbmUJSU5JVF9QV1JfQUxBUk1fUTFRMgkJMHg3YzAgIAkJCiNkZWZpbmUJSU5JVF9QV1JfQUxBUk1fUTNRNAkJMHgyNjAwCQojZGVmaW5lCUlOSVRfUFdSX0FMQVJNX1E1UTYJCTB4MUI4MAkJCiNkZWZpbmUJSU5JVF9USEVSTV9MUF9QT0xFX1ExUTIJCTB4MDhjCQojZGVmaW5lCUlOSVRfVEhFUk1fTFBfUE9MRV9RM1E0CQkweDAxMDAJCQojZGVmaW5lCUlOSVRfVEhFUk1fTFBfUE9MRV9RNVE2CQkweDAxMAojZGVmaW5lIFNJMzIxNV9UT05FIC8qd2Ugd2FudCB0byBzdXBwb3J0IFNpMzIxNS8xNiB0b25lcyovCiNkZWZpbmUgU0kzMjEwX1RPTkUgLyp3ZSB3YW50IHRvIHN1cHBvcnQgU2kzMjEwIHRvbmVzKi8K