DQpUcmFjZWFseXplciBUcmFjZSBSZWNvcmRlciBMaWJyYXJ5DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpQZXJjZXBpbyBBQg0Kd3d3LnBlcmNlcGlvLmNvbQ0KDQpUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0aGUgYSBnZW5lcmljIHRyYWNlIHJlY29yZGVyIGxpYnJhcnkgZm9yIFRyYWNlYWx5emVyIHYzLjAuMi4NCg0KRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1cGxvYWQgdGhlIHRyYWNlIGRhdGEgZnJvbSB5b3VyIHRhcmdldCBzeXN0ZW0gUkFNIHRvIA0KVHJhY2VhbHl6ZXIsIHNlZSB0aGUgVXNlciBNYW51YWwuDQoNCkZpbGVzIGluY2x1ZGVkDQotLS0tLS0tLS0tLS0tLQ0KLSB0cmNDb25maWcuaCAgICAgICAgICAgICAJCS0gVGhlIHJlY29yZGVyJ3MgY29uZmlndXJhdGlvbiBmaWxlLCBzZXQgeW91ciByZWNvcmRlciBjb25maWd1cmF0aW9uIGhlcmUhDQotIHRyY1VzZXIuYy8uaCAgICAgICAgICAgIAkJLSBUaGUgbWFpbiBBUEkgdG93YXJkcyB0aGUgYXBwbGljYXRpb24gKHRyY1VzZXIuaCBpbiB0aGUgb25seSBpbmNsdWRlIG5lY2Vzc2FyeSkuDQotIHRyY0tlcm5lbC5jLy5oICAgICAgICAgIAkJLSBJbnRlcm5hbCByb3V0aW5lcyBmb3Igc3RvcmluZyBrZXJuZWwgZXZlbnRzLg0KLSB0cmNCYXNlLmMvLmggICAgICAgICAgICAJCS0gSW50ZXJuYWwgcm91dGluZXMgZm9yIG1hbmlwdWxhdGluZyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBjYWxjdWxhdGluZyB0aW1lc3RhbXBzLg0KLSB0cmNIYXJkd2FyZVBvcnQuYy8uaCAgICAJCS0gVGhlIGhhcmR3YXJlIGludGVyZmFjZSwgZXNwZWNpYWxseSBmb3IgdGltZXN0YW1waW5nLg0KLSB0cmNLZXJuZWxQb3J0LmggIAkJCQktIFdyYXBwZXIgZm9yIHRyY0tlcm5lbFBvcnRGcmVlUlRPUy5oIChmb3IgcG9ydGFiaWxpdHkpLg0KLSB0cmNLZXJuZWxQb3J0RnJlZVJUT1MuYy8uaCAgCS0gRnJlZVJUT1Mtc3BlY2lmaWMgdHJhY2UgbWFjcm9zIGFuZCBoZWxwZXIgZnVuY3Rpb25zLg0KLSB0cmNLZXJuZWxIb29rcy5oICAgICAgICAJCS0gR2VuZXJpYyB0cmFjZSBtYWNyb3MgKE9TIGluZGVwZW5kZW50KSwgdXNlZCBieSB0cmNLZXJuZWxQb3J0RnJlZVJUT1MuDQotIHRyY1R5cGVzLmggICAgICAgICAgICAgIAkJLSBUeXBlIGRlZmluaXRpb25zIHVzZWQuDQoNCkhhcmR3YXJlIFRpbWVyIFBvcnRzDQotLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVGhpcyByZWxlYXNlIGNvbnRhaW5zIGhhcmR3YXJlIHRpbWVyIHBvcnRzIGZvciB0aGUgZm9sbG93aW5nIGhhcmR3YXJlIGFyY2hpdGVjdHVyZXM6DQoNCi0gQVJNIENvcnRleCBNMy9NNC9NMC9NMCsgKGFsbCBicmFuZHMsIHN1Y2ggYXMgQXRtZWwgU0FNM3gvU0FNNHgvU0FNIEQyMCwgTlhQIDE3eHgsIDE4eHgsIDQzeHgsIFNUTTMyLCBGcmVlc2NhbGUgS2luZXRpcywgLi4uKQ0KLSBBdG1lbCBBVDkxU0FNN3gNCi0gQXRtZWwgQVQzMlVDMyAoQVZSMzIpDQotIFJlbmVzYXMgUlg2MDAgKGUuZy4sIFJYNjJOKQ0KLSBNaWNyb2NoaXAgZHNQSUMvUElDMjQNCi0gTWljcm9jaGlwIFBJQzMyTVgNCi0gTWljcm9jaGlwIFBJQzMyTVoNCi0gTlhQIExQQzIxMDYNCi0gVGV4YXMgSW5zdHJ1bWVudHMgVE1TNTcwIChDb3J0ZXgtUjQpDQotIFRleGFzIEluc3RydW1lbnRzIE1TUDQzMA0KLSBYaWxpbnggUG93ZXJQQyA0MDUNCi0gWGlsaW54IFBvd2VyUEMgNDQwDQotIFhpbGlueCBNaWNyb2JsYXplDQotIEFSTSBDb3J0ZXgtQTkNCg0KVGhlc2UgYXJlIGRlZmluZWQgaW4gdHJjSGFyZHdhcmVQb3J0LmguIFNvbWUgb2YgdGhlc2UgYXJlICJ1bm9mZmljaWFsIiBwb3J0cywgcHJvdmlkZWQgYnkgZXh0ZXJuYWwgY29udHJpYnV0b3JzLg0KQnkgdW5vZmZpY2lhbCwgaXQgbWVhbnMgdGhhdCB0aGV5IGFyZSBub3QgeWV0IHZlcmlmaWVkIGJ5IFBlcmNlcGlvIEFCLiBQbGVhc2UgcmVmZXIgdG8gdHJjSGFyZHdhcmVQb3J0LmggZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLiANCklmIHlvdSB1c2UgYW4gdW5vZmZpY2lhbCBwb3J0IGFuZCBiZWxpZXZlIGl0IGlzIGluY29ycmVjdCwgcGxlYXNlIGxldCB1cyBrbm93ISAoc3VwcG9ydEBwZXJjZXBpby5jb20pDQoNCkluIGNhc2UgeW91ciBNQ1UgaXMgbm90IHlldCBzdXBwb3J0ZWQgZGlyZWN0bHksIGRldmVsb3BpbmcgYSBuZXcgcG9ydCBpcyBxdWl0ZSBlYXN5LCBqdXN0IGEgbWF0dGVyIG9mIGRlZmluaW5nIGEgZmV3IG1hY3Jvcw0KYWNjb3JkaW5nIHRvIHlvdXIgc3BlY2lmaWMgTUNVLiBTZWUgdHJjSGFyZHdhcmVQb3J0LmggZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uDQoNCkluIGNhc2UgeW91IGhhdmUgYW55IHF1ZXN0aW9ucywgZG8gbm90IGhlc2l0YXRlIHRvIGNvbnRhY3Qgc3VwcG9ydEBwZXJjZXBpby5jb20NCg0KUGVyY2VwaW8gQUINCkv2cG1hbmdhdGFuIDFBDQo3MjIxNSBW5HN0ZXLlcw0KU3dlZGVuDQoNCnd3dy5wZXJjZXBpby5jb20=