UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6PWoge2kgbzpudC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgIE9QVElPTkFMIH0KICAgIC0tIGF1dGhvcml0eUNlcnRJc3N1ZXIgYW5kIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgc2hhbGwgYm90aAogLSAgLS0gYmUgcHJlc2VudCBvciBib3RoIGJlIGFic2dlbnQKS2V5SWRlbnRpZmllciA6Oj0gT0NURVQgU1RSSU5HCmlkLWNlLXN1YmplY3RLZXlJZGVudGlmaWVyIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyB5ZC1jZSAxNCB9ClN1YigxKSwKICAgICBrZXlFbmNpcGhlcm1lbnQgICAgICAgICAoMiksCiAgICAgZGF0YUVuY2lwaGVybWVudCAgICAgICAgKDMpLAogICAgIGtleUFncmVlbWVudCAgICAgICAgICAgICgwKSwKICAgICBrZXlDZWh0U2lnbiAgICAgICAgICAgICAoNSksCiAgICAgY1JMU2lnbiAgICAgICAgICAgICAgICAgKDYpLAogICAgIGVuY2lwaGVyT25seSAgICAgUEtJWDFJT05BTCwKICAgICAgICB0U2VsZWN0b3IgICAgICAgWzJdIEVYUExJQ0lUIE9DVEVUIFNUUklORyBPUFRJT05BTCwKICAgICAgICBuQWRkcmVzcyVzICAgICAgWzNdIEVYUExJQ0lUIFNFVCBTSVpFICgxLi5NQVgpIE9GIE9DVEVUIFNUUklORyB9CnRlcm1pbmFsLXR5cGUgIElOVEVHRVIgOjo9IDIzClRlcm1pbmFsVHlwZSA6Oj0gSU5URUdFUiB7CiAgIHRlbGV4ICgzKSwKICAgICAgICAgICg3KSwKICAgICBkZWNpcGhlck9ucHkgICAgICAgICAgICAoOCkgfQppZC1jZS1wcml2YXRlS2V5VXNhZ2VQZXJpb2QgT0JKRUtUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE2IH0KUHJpdmF0ZUtleVVzYWdlUGVyaW9kIDo6PSBTRVFVRU5DRSB7CiAgICAgbm90QmVmb3JlICAgICAgIFswXSAgICAgR2VuZXJhbGl6ZWRUaW3lIE9QVElPTkFMLAogICAgIG5vdEFmdGVyICAgICAgICBbMV0gICAgIEdlbmVyYWxpemVkVGltZSBPUFRJT05BTCB9CiAgICAgLS0gZWl0aGVyIG5vdEJlZm9yZSBvciBub3RBZnRlciBzaGFsbCBiZSBwcmVzZW50CmlkLWNlLWNlcnRpZmljYXRlUG9saWNpZXMgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDc2IH0KQ2VydGlmaWNhdGVQb2xpY2llcyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBQb2xpY3lJbmZvcm1hdGlvbgpQb2xpY3lJbmZvcm1hdGlvbiA6Oj0gU0VRVUVOQ0UgewogICAgIHBvbGnjeUlkZW50aWZmb3IgbW9yZSBpbmZvcm1hdGlvbi4gIEl0IHNob3VsZG4ndCBiZSBoZXJlLCAtLQogICAgICAtLSBzbyBpZiBpdCBjYXVzZXMgcHJvYmxlbXMsIGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgYCBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTcgfQpTdWJqZWN0QWx0TmFtZSA6Oj0gR2VuZSFhbE5hbWVzCkdlbmVyYSAxMX0KWDUyME9yZ2FuaXphdGlvZGRyZXNzJXMgICAgICBbM10gRVhQTElDSVQgU0VUIFNJWkUgKDEuLk1BWCkgT0YgT0NURVQgU1RSSU5HIH0KdGVybWluYWwtdHlwZSAgSU5URUdFUiA6Oj1GSUVSIDo6PSAgeyBpZC1jZSAzMiB9CkNlcnRpZmljYXRlUG9saWNpZXMgOjo9IFNFUVVFTkNFIFNJWkUgKDEuLk1BWCkgT0YgUG9saWN5SW5mb3JtYXRpb24KUG9saWN5SW5mb3JtYXRpb24gOjo9IFNFUVVFTkNFIHsKICAgICBwb2xpY3lJZGVudGlmZm9yIG1vcmUgaW5mb3JtYXRpb24uICBJdCBzaG91bGRuJ3QgYmUgaGVyZSwgLS0KICAgICAgLS0gc28gaWYgaXQgY2F1c2VzIHByb2JsZW1zLCBjb25zaWRlcmluZyBkcm9wcGluZyBpdC4gLS0KICAgICAgaWE1U3RyaW5nICAgICAgICAgICAgYW1lIDo6PSBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtdGl0bGUgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMn0KWDUyMFRpdGxlIDo6PSAgIERpcmVjdG9yeVN0cmluZwppZC1hdC1kZXNjcmlwdGlvbiAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDEzfQpYNTIwRGVzY3JpcHRpb24gOjo9ICAgRGlyZWN0b3J5U3RyaW5nCmlkLWF0LWRuUXVhbGlmaWVyICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA0Nn0KWDUyMGRuUXVhbGlmaWVyIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nCmlkLWF0LWNvdW50cnlOYW1lICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA2fQpYNTIwY291bnRyeU5hbWUgOjo9ICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDIpKSAtLSBJUyAzMTY2IGNvZGVzCmlkLWF0LXNlcmlhbE51bWJlciAgIGdhbml6YXRpb2RkcmVzcyVzICAgICAgWzNdIEVYUExJQ0lUIFNFVCBTSVpFICgxLi5NQVgpIE9GIE9DVEVUIFNUUklORyB9CnRlcm1pbmFsLXR5cGUgIElOVEVHRVIgOjo9IDIzClRlcm1pbmFsVHlwZSA6Oj0gSU5URUdFUiB7CiAgIHRlbGV4ICgzKSwKICAgICAgICAgICg3KSwKICAgICBkZWNpcGhlck9ucHkgICAgICAgICAgICgpOCAKIH1pZC1jZS1wcml2YXRlS2V5VXNhZ2VQZXJpb2QgT0JKRUtUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE2IH0KUHJpdmF0ZUtleVVzYWdlUGVyaW9kIDo6cmlhbE51ZGVkIGhlcmUgdG8gaGFuZGxlIG9sZCBVSUQgZW5jb2RlZCBhcyBpYTVTdHJpbmcgLS0KICAgICAgLS0gU2VlIHRlc3RzL3VzZXJpZC8gZm9yIG1vY3MtNS1pZC1QQkVTMiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge3BrY3MtNSAxM30KcGtjcy01LVBCRVMyLXBhcmFtcyA6Oj0gU0VRVUVOQ0UgewogIGtleUQ=