LyoKICogV3JpdHRlbiBieSBKLlQuIENvbmtsaW4gPGp0Y0BuZXRic2Qub3JnPi4KICogUHVibGljIGRvbWFpbi4KICovCgojaW5jbHVkZSA8bWFjaGluZS9hc20uaD4KI2luY2x1ZGUgPGkzODYtbWF0aC1hc20uaD4KClJDU0lEKCIkTmV0QlNEOiBzX2xvZzFwZi5TLHYgMS40IDE5OTUvMDUvMDkgMDA6MTM6MDUganRjIEV4cCAkIikKCgkuc2VjdGlvbiAucm9kYXRhCgoJLmFsaWduIEFMSUdOQVJHKDQpCgkvKiBUaGUgZnlsMnhwMSBjYW4gb25seSBiZSB1c2VkIGZvciB2YWx1ZXMgaW4KCQktMSArIHNxcnQoMikgLyAyIDw9IHggPD0gMSAtIHNxcnQoMikgLyAyCgkgICAwLjI5IGlzIGEgc2FmZSB2YWx1ZS4KCSovCmxpbWl0OgkuZmxvYXQgMC4yOQpvbmU6CS5mbG9hdCAxLjAKCkRFRklORV9GTFRfTUlOCgojaWZkZWYgUElDCiMgZGVmaW5lIE1PKG9wKSBvcCMjQEdPVE9GRiglZWR4KQojZWxzZQojIGRlZmluZSBNTyhvcCkgb3AKI2VuZGlmCgovKgogKiBVc2UgdGhlIGZ5bDJ4cDEgZnVuY3Rpb24gd2hlbiB0aGUgYXJndW1lbnQgaXMgaW4gdGhlIHJhbmdlIC0wLjI5IHRvIDAuMjksCiAqIG90aGVyd2lzZSBmeWwyeCB3aXRoIHRoZSBuZWVkZWQgZXh0cmEgY29tcHV0YXRpb24uCiAqLwoJLnRleHQKRU5UUlkoX19sb2cxcGYpCglmbGRsbjIKCglmbGRzCTQoJWVzcCkKCiNpZmRlZglQSUMKCUxPQURfUElDX1JFRyAoZHgpCiNlbmRpZgoKCWZ4YW0KCWZuc3RzdwoJZmxkCSVzdAoJc2FoZgoJamMJM2YJCS8vIGluIGNhc2UgeCBpcyBOYU4gb3IgsUluZgo0OglmYWJzCglmY29tcHMJTU8obGltaXQpCglmbnN0c3cKCXNhaGYKCWpjCTJmCgoJZmFkZHMJTU8ob25lKQoJZnlsMngKCXJldAoKMjoJZnlsMnhwMQoJRkxUX0NIRUNLX0ZPUkNFX1VGTE9XX05PTk5BTgoJcmV0CgozOglqcAk0YgkJLy8gaW4gY2FzZSB4IGlzILFJbmYKCWZzdHAJJXN0KDEpCglmc3RwCSVzdCgxKQoJcmV0CgpFTkQgKF9fbG9nMXBmKQo=