dHJlZSAzMDIyMDM4MjdlN2E3OGVhNzRjYTEyMmUwOTVkOTJjZTI0MGUyY2FhCnBhcmVudCA4NDE3YmViN2RhMmIzMmMzM2NkNzAzZTdhMTIzMTI1YzZiMGRmN2IzCmF1dGhvciBGculk6XJpYyBM6WNhaWxsZSA8ZmxlY2FpbGxlQGhhcHJveHkuY29tPiAxNjc1MjcwNjE3ICswMTAwCmNvbW1pdHRlciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTY3NTQ0MzM1NSArMDEwMAplbmNvZGluZyBsYXRpbjEKCk1FRElVTTogcXVpYzogUmVtb3ZlIHFjX2Nvbm5fZmluYWxpemUoKSBmcm9tIHRoZSBDbGllbnRIZWxsbyBUTFMgY2FsbGJhY2tzCgpUaGlzIGlzIGEgYmFkIGlkZWEgdG8gbWFrZSB0aGUgVExTIENsaWVudEhlbGxvIGNhbGxiYWNrIGNhbGwgcWNfY29ubl9maW5hbGl6ZSgpLgpJZiB0aGlzIGxhdHRlciBmYWlscywgdGhpcyB3b3VsZCBnZW5lcmF0ZSBhIFRMUyBhbGVydCBhbmQgbWFrZSB0aGUgY29ubmVjdGlvbgpzZW5kIHBhY2tldCB3aGVyZWFzIGl0IGlzIG5vdCBmdW5jdGlvbmFsLiBCdXQgcWNfY29ubl9maW5hbGl6ZSgpIGpvYiB3YXMgdG8KaW5zdGFsbCB0aGUgdHJhbnNwb3J0IHBhcmFtZXRlcnMgc2VudCBieSB0aGUgUVVJQyBsaXN0ZW5lci4gVGhpcyBpbnN0YWxsYXRpb24KY2Fubm90IGJlIGRvbmUgYXQgYW55IHRpbWUuIFRoaXMgbXVzdCBiZSBkb25lIGFmdGVyIGhhdmluZyBwb3NzaWJseSBuZWdvdGlhdGVkCnRoZSBRVUlDIHZlcnNpb24gYW5kIGJlZm9yZSBzZW5kaW5nIHRoZSBmaXJzdCBIYW5kc2hha2UgcGFja2V0cy4gSXQgc2VlbXMKdGhlIGJldHRlciBtb21lbnQgdG8gZG8gdGhhdCBpbiB3aGVuIHRoZSBIYW5kc2hha2UgVFggc2VjcmV0cyBhcmUgZGVyaXZlZC4gVGhpcwpoYXMgYmVlbiBmb3VuZCBpbnNwZWN0aW5nIHRoZSBuZ3RjcDIgY29kZS4gQ2FsbGluZyBTU0xfc2V0X3F1aWNfdHJhbnNwb3J0X3BhcmFtcygpCnRvbyBsYXRlIHdvdWxkIG1ha2UgdGhlIFNlcnZlckhlbGxvIHRvIGJlIHNlbnQgd2l0aG91dCB0aGUgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCgpUaGUgY29kZSBmb3IgdGhlIGNvbm5lY3Rpb24gdXBkYXRlIHdoaWNoIHdhcyBkb25lIGZyb20gcWNfY29ubl9maW5hbGl6ZSgpIGhhcwpiZWVuIG1vdmVkIHRvIHF1aWNfdHJhbnNwb3J0X3BhcmFtc19zdG9yZSgpLiBTbywgdGhpcyB1cGRhdGUgaXMgZG9uZSBhcyBzb29uIGFzCnBvc3NpYmxlLgoKQWRkIFFVSUNfRkxfQ09OTl9UWF9UUF9SRUNFSVZFRCB0byBmbGFnIHRoZSBjb25uZWN0aW9uIGFzIGhhdmluZyByZWNlaXZlZCB0aGUKcGVlciB0cmFuc3BvcnQgcGFyYW1ldGVycy4gSW5kZWVkIHRoaXMgaXMgcmVxdWlyZWQgd2hlbiB0aGUgQ2xpZW50SGVsbG8gbWVzc2FnZQppcyBzcGxpdHRlZCBiZXR3ZWVuIHBhY2tldHMuCgpBZGQgUVVJQ19GTF9DT05OX0ZJTkFMSVpFRCB0byBwcm90ZWN0IHRoZSBjb25uZWN0aW9uIGZyb20gY2FsbGluZyBxY19jb25uX2ZpbmFsaXplKCkKbW9yZSB0aGFuIG9uZSB0aW1lLiBUaGlzIGxhdHRlciBpcyBjYWxsZWQgb25seSB3aGVuIHRoZSBjb25uZWN0aW9uIGhhcyByZWNlaXZlZAp0aGUgdHJhbnNwb3J0IHBhcmFtZXRlcnMgYW5kIGFmdGVyIHJldHVybmluZyBmcm9tIFNTTF9kb19oYW5zaGFrZSgpIHdoaWNoIGlzIHRoZQpmdW5jdGlvbiB3aGljaCB0cmlnZ2VyIHRoZSBUTFMgQ2xpZW50SGVsbG8gY2FsbGJhY2sgY2FsbC4KClJlbW92ZSB0aGUgY2FsbHMgdG8gcWNfY29ubl9maW5hbGl6ZSgpIGZyb20gZnJvbSB0aGUgVExTIENsaWVudEhlbGxvIGNhbGxiYWNrcy4KCk11c3QgYmUgYmFja3BvcnRlZCB0byAyLjYuIGFuZCAyLjcuCg==