Ly8gdGVzdDoKLy8gLSBsYWJlbCBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcgovLyAtIGMuIGlzIHZhbGlkIFVURi04Ci8vIC0gZC4gaGFzIGludmFsaWQgVVRGLTggY29kZSBmb3IgdGhlIFRMRAovLwovLyBiZXN0IHZpZXdlZCB3aXRoICdMQ19BTEw9QyB2aSA8ZmlsZW5hbWU+JwoKLy8gPT09QkVHSU4gSUNBTk4gRE9NQUlOUz09PQoKYS5leGFtI3BsZS5jb20KYi5leGFtIHBsZS5jb20KYy7mtYvor5UKZC7mtYvorwoKLy8gPT09RU5EIElDQU5OIERPTUFJTlM9PT0K