Li4gU2VxdWVuY2VzL0NvbmNlcHRzLy9SYW5kb20gQWNjZXNzIFNlcXVlbmNlIHwzMAoKUmFuZG9tIEFjY2VzcyBTZXF1ZW5jZQo9PT09PT09PT09PT09PT09PT09PT09CgpEZXNjcmlwdGlvbgotLS0tLS0tLS0tLQoKQSB8UmFuZG9tIEFjY2VzcyBTZXF1ZW5jZXwgaXMgYSB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwgd2hvc2UgaXRlcmF0b3JzIG1vZGVsCnxSYW5kb20gQWNjZXNzIEl0ZXJhdG9yfC4gQSByYW5kb20gYWNjZXNzIHNlcXVlbmNlIGd1YXJhbnRlZXMgYW1vcnRpemVkIGNvbnN0YW50IAp0aW1lIGFjY2VzcyB0byBhbiBhcmJpdHJhcnkgc2VxdWVuY2UgZWxlbWVudC4gCgpSZWZpbmVtZW50IG9mCi0tLS0tLS0tLS0tLS0KCnxCaWRpcmVjdGlvbmFsIFNlcXVlbmNlfAoKCkV4cHJlc3Npb24gcmVxdWlyZW1lbnRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJbiBhZGRpdGlvbiB0byB0aGUgcmVxdWlyZW1lbnRzIGRlZmluZWQgaW4gfEJpZGlyZWN0aW9uYWwgU2VxdWVuY2V8LCAKZm9yIGFueSB8UmFuZG9tIEFjY2VzcyBTZXF1ZW5jZXwgYGBzYGAgdGhlIGZvbGxvd2luZyBtdXN0IGJlIG1ldDoKCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEV4cHJlc3Npb24gICAgICAgICAgICAgICAgfCBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb21wbGV4aXR5ICAgICAgICAgICAgICAgIHwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT0rCnwgYGBiZWdpbjxzPjo6dHlwZWBgICAgICAgICB8IHxSYW5kb20gQWNjZXNzIEl0ZXJhdG9yfCAgICAgICAgICB8IEFtb3J0aXplZCBjb25zdGFudCB0aW1lICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYGVuZDxzPjo6dHlwZWBgICAgICAgICAgIHwgfFJhbmRvbSBBY2Nlc3MgSXRlcmF0b3J8ICAgICAgICAgIHwgQW1vcnRpemVkIGNvbnN0YW50IHRpbWUgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgYXQ8cyxuPjo6dHlwZWBgICAgICAgICAgfCBBbnkgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbW9ydGl6ZWQgY29uc3RhbnQgdGltZSAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKRXhwcmVzc2lvbiBzZW1hbnRpY3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0KClNlbWFudGljcyBvZiBhbiBleHByZXNzaW9uIGlzIGRlZmluZWQgb25seSB3aGVyZSBpdCBkaWZmZXJzIGZyb20sIG9yIGlzIG5vdCAKZGVmaW5lZCBpbiB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwuCgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEV4cHJlc3Npb24gICAgICAgICAgICAgICAgfCBTZW1hbnRpY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorPT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kwp8IGBgYXQ8cyxuPjo6dHlwZWBgICAgICAgICAgfCBUaGUgYGBuYGBcIHRoIGVsZW1lbnQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZXF1ZW5jZTsgc2VlIHxhdHwuICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKCk1vZGVscwotLS0tLS0KCiogfHZlY3RvcnwKKiB8cmFuZ2VfY3wKCgpTZWUgYWxzbwotLS0tLS0tLQoKfFNlcXVlbmNlc3wsIHxCaWRpcmVjdGlvbmFsIFNlcXVlbmNlfCwgfEV4dGVuc2libGUgU2VxdWVuY2V8LCB8UmFuZG9tIEFjY2VzcyBJdGVyYXRvcnwsIAp8YmVnaW58IC8gfGVuZHwsIHxhdHwKCgouLiBjb3B5cmlnaHQ6OiBDb3B5cmlnaHQgqSAgMjAwMS0yMDA5IEFsZWtzZXkgR3VydG92b3kgYW5kIERhdmlkIEFicmFoYW1zCiAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCg==