dXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQp1c2luZyBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzOw0KDQovLw0KLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCi8vIHNldCBvZiBhdHRyaWJ1dGVzLiBDaGFuZ2UgdGhlc2UgYXR0cmlidXRlIHZhbHVlcyB0byBtb2RpZnkgdGhlIGluZm9ybWF0aW9uDQovLyBhc3NvY2lhdGVkIHdpdGggYW4gYXNzZW1ibHkuDQovLw0KW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJWaXN1YWwgU3R1ZGlvIFBsdWdpbiBGb3IgRXRjaCIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseURlc2NyaXB0aW9uKCJWaXN1YWwgU3R1ZGlvIFBsdWdpbiBGb3IgRXRjaCIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIkNpc2NvIFN5c3RlbXMsIEluYyIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIkV0Y2giKV0NClthc3NlbWJseTogQXNzZW1ibHlDb3B5cmlnaHQoIkNvcHlyaWdodCCpIENpc2NvIFN5c3RlbXMgMjAwOCIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseVRyYWRlbWFyaygiIildDQpbYXNzZW1ibHk6IEFzc2VtYmx5Q3VsdHVyZSgiIildDQoNCi8vDQovLyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhbiBhc3NlbWJseSBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGZvdXIgdmFsdWVzOg0KLy8NCi8vICAgICAgTWFqb3IgVmVyc2lvbg0KLy8gICAgICBNaW5vciBWZXJzaW9uIA0KLy8gICAgICBSZXZpc2lvbg0KLy8gICAgICBCdWlsZCBOdW1iZXINCi8vDQovLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZSBvciB5b3UgY2FuIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZCBCdWlsZCBOdW1iZXJzIA0KLy8gYnkgdXNpbmcgdGhlICcqJyBhcyBzaG93biBiZWxvdzoNCg0KW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjEuMC4qIildDQoNCi8vDQovLyBJbiBvcmRlciB0byBzaWduIHlvdXIgYXNzZW1ibHkgeW91IG11c3Qgc3BlY2lmeSBhIGtleSB0byB1c2UuIFJlZmVyIHRvIHRoZSANCi8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQovLw0KLy8gVXNlIHRoZSBhdHRyaWJ1dGVzIGJlbG93IHRvIGNvbnRyb2wgd2hpY2gga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmcuIA0KLy8NCi8vIE5vdGVzOiANCi8vICAgKCopIElmIG5vIGtleSBpcyBzcGVjaWZpZWQgLSB0aGUgYXNzZW1ibHkgY2Fubm90IGJlIHNpZ25lZC4NCi8vICAgKCopIEtleU5hbWUgcmVmZXJzIHRvIGEga2V5IHRoYXQgaGFzIGJlZW4gaW5zdGFsbGVkIGluIHRoZSBDcnlwdG8gU2VydmljZQ0KLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiANCi8vICAgKCopIElmIHRoZSBrZXkgZmlsZSBhbmQgYSBrZXkgbmFtZSBhdHRyaWJ1dGVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KLy8gICAgICAgZm9sbG93aW5nIHByb2Nlc3Npbmcgb2NjdXJzOg0KLy8gICAgICAgKDEpIElmIHRoZSBLZXlOYW1lIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ1NQIC0gdGhhdCBrZXkgaXMgdXNlZC4NCi8vICAgICAgICgyKSBJZiB0aGUgS2V5TmFtZSBkb2VzIG5vdCBleGlzdCBhbmQgdGhlIEtleUZpbGUgZG9lcyBleGlzdCwgdGhlIGtleSANCi8vICAgICAgICAgICBpbiB0aGUgZmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KLy8gICAoKikgRGVsYXkgU2lnbmluZyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gLSBzZWUgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yaw0KLy8gICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLg0KLy8NClthc3NlbWJseTogQXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseUtleUZpbGUoIiIpXQ0KW2Fzc2VtYmx5OiBBc3NlbWJseUtleU5hbWUoIiIpXQ0K