UAEAAAAAAAAACkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgIE9QVElPTkFMIH0KICAgIC0tIGF1dGhvcml0eUNlcnRJc3N1ZXIgYW5kIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgc2hhbGwgYm90aAogICAgLS0gYmUgcHJlc2VudCBvciBib3RoIGJlIGFic2dlbnQKS2V5SWRlbnRpZmllciA6Oj0gT0NURVQgU1RSSU5HCmlkLWNlLXN1YmplY3RLZXlJZGVudGlmaWVyIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNCB9ClN1YmplY3RLZXlJZGVudGlmaWVyIDo6PSBLZXlJZGVudGlmaWVyCmlkLWNlLWtleVVzYWdlIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNSB9CktleVVzYWdlIDo6PSBCSVQgU1RSSU5HIHsKICAgICBkaWdpdGFsU2lnbmF0dXJlICAgICAgICAoMCksCiAgICAgbm9uUmVwdWRpYXRpb24gICAgICAgICAgKDEpLAogICAgIGtleUVuY2lwaGVybWVudCAgICAgICAgICgyKSwKICAgICBkYXRhRW5jaXBoZXJtZW50ICAgICAgICAoMyksCiAgICAga2V5QWeOmpqSmpGL2SAgICAgICAgICAgKDQpLAogICAgIGtleUNlcnRTaWduICAgICAgICAgICAgICg1KSwKICAgICBjUkxTaWduICAgICAgICAgICAgICAgICAoNiksCiAgICAgZW5jaXBoZXJPbmx5ICAgICAgICAgICAgKDcpLAogICAgIGRlY2lwaGVyT25weSAgICAgICAgICAgICg4KSB9CmlkLWNlLXByaXZhdGVLZXlVc2FnZVBlcmlvZCBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTYgfQpQcml2YXRlS2V5VXNhZ2VQZXJpb2QgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICAgWzBdICAgICBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwsCiAgICAgbm90QWZ0ZXIgICAgICAgIFsxXSAgICAgR2VuZXJhbGl6ZWRUaW1lIE9QVElPTkFMIH0KICAgICAtLSBlaXRoZXIgbm90QmVmb3JlIG9yIG5vdEFmdGVyIHNoYWxsIGJlIHByZSB7CiAgICAgbm90aWNlUmVmICAgICAgICBOb3RpY2VSZWZlcmVuY2UgT1BUSU9OQUwsCiAgICAgZXhwbGljaXRUZXh0ICAgICBEaXNwbGF5VGV4dCBPUFRJT05BTH0KTm90aWNlUmVmZXJlbmNlIDo6PSBTRVFVRU5DRSB7CiAgICAgb3JnYW5pemF0aW9uICAgICBEaXNwbGF5VGV4dCwKICAgICBub3RpY2VOdW1iZXJzICAgIFNFUVVFTkNFIE9GIElOVEVHRVIgfQpEaXNwbGF5VGV4dCA6Oj0gQ0hPSUNFIHsKICAgICB2aXNpYmxlU3RyaW5nICAgIFZpc2libGVTdHJpbmcgIB9TSVpFICgxLi4yMDApKSwKICAgICBibXBTdHJpbmcgICAgICAgIEJNUFN0cmluZyAgICAgIChTSVpFICgxLi4yMDApKSwKICAgICB1dGY4U3RyaW5nICAgICAgIFVURjhTdHJpbmcgICAgIChTSVpFICgxLi4yMDApKSB9CmlkLWNlLXBvbGljeU1hcHBpbmdzIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAzMyB9ClBvbGljeU1hcHBpbmdzIDo6PSBTRVFVRU5DRSFTSVpFICgxLi5NQVgpIE9GIFNFUVVFTkNFIHsKICAgICBpc3N1ZXJEb21haW5Qb2xpY3kgICAgICBDZXJ0UG9saWN5SWQsCiAgIFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHVuaXZlcnNhbFN0cmluZyAgICAgICAgICAgVW5pdmVyc2FsU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdXRmOFN0cmluZyAgICAgICAgICAgICAgVVRGOFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIGJtcFN0cmluZyAgICAgICAgICAgICAgIEJNUFN0cmluZyAoU0laRSgxLi5NQVgpKSwKICAgICAgLS0gSUE1U3RyaW5nIGlzIGFkZGVkIGhlcmUgdG8gaGFuZGxlIG9sZCBVSUQgZW5jb2RlZCBhcyBpYTVTdHJpbmcgLS0KICAgICAgLS0gU2VlIHRlc3RzL3VzZXJpZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24uICBJdCBzaG91bGRuJ3QgYmUgaGVyZSwgLS0KICAgICAgLS0gc28gaWYgaXQgY2F1c2VzIHByb2JsZW1zLCBjb25zaWRlcmluZyBkcm9wcGl5UXVhbGlmaWVySWQgfQpQb2xpY3lRdWFsaWZpZXJJZCA6Oj0KICAgIE9CSkVDVCBJREVOVElGSUVSICAtLSAoIGlkLXF0LWNwcyB8IGlkLXF0LXVub3RpY2UgKQpDUFN1cmkgOjo9IElBNVN0cmluZwpVc2VyTm90aWNlIDo6PSBTRVFVRU5DRSB7CiAgICAgbm90aWNlUmVmICAgICAgICBOb3RpY2VSZWZlcmVuY2UgT1BUSU9OQUwsCiAgICAgZXhwbGljaXRUZXh0ICAgICBEaXNwbGF5VGV4dCBPUFRJT05BTH0KTm90aWNlUmVmZXJlbmNlIDo6PSBTRVFVRU5DRSB7CiAgICAgb3JnYW5pemF0aW9uICAgICBEaXNwbGF5VGV4dCwKICAgICBub3RpY2VOdW1iZXJzICAgIFNFUVVFTkNFIE9GIElOVEVHRVIgfQpEaXNwbGF5VGV4dCA6Oj0gQ0hPSUNFIHsKICAgICB2aXNpYmxlU3RyaW5nICAgIFZpc2libGVTdHJpbmcgIB9TSVpFICgxLi4yMDApKSwKICAgICBibXBTdHJpbmcgICAgICAgIEJNUFN0cmluZyAgICAgIChTSVpFICgxLi4yMDApKSwKICAgICB1UVVFTkNFIHsKICAgICBwb2xpY3lJZGVudGlmaWVyICAgQ2VydFBvbGljeUlkLAogICAgIHBvbGljeVF1YWxpZmllcnMgICBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GCiAgICAgICAgICAgICBQb2xpY3lRdWFsaWZpZXJJbmZvIE9QVElPTkFMIH0KQ2VydFBvbGljeUlkIDo6PSBPQkpFQ1QgSURFTlRJRklFUgpQb2xpY3lRdWFsaWZpZXJJbmZvIDo6PSBTRVFVRU5DRSB7CiAgICAgICBwb2xpY3lRdWFsaWZpZXJJZCAgUG9saWN5UXVhbGlmaWVySWQsCiAgICAgICBxdWFsaWZpZXIgICAgICAgIEFOWSBERUZJTkVEIEJZIHBvbGljeVF1YWxpZmllcklkIH0KUG9saWN5UXVhbGlmaWVySWQgOjo9CiAgICBPQkpFQ1QgSURFTlRJRklFUiAgLS0gKCBpZC1xdC1jcHMgfCBpZC1xdC11bm90aWNlICkKQ1BTdXJpIDo6PSBJQTVTdHJpbmcKVXNlck5vdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXJlbmNlIE9QVElPTkFMLAogICAgIGV4cGxpY2l0VGV4dCAgICAgRGlzcGxheVRleHQgT1BUSU9OQUx9Ck5vdGljZVJlZmVyZW5jZSA6Oj0gU0VRVUVOQ0UgewogICAgIG9yZ2FuaXphdGlvbiAgICAgRGlzcGxheVRleHQsCiAgICAgbm90aWNlTnVtYmVycyAgICBTRVFVRU5DRSBPRiBJTlRFR0VSIH0KRGlzcGxheVRleHQgOjo9IENIT0lDRSB7CiAgICAgdmlzaWJsZVN0cmluZyAgICBWaXNpYmxlU3RyaW5nICAfU0laRSAoMS4uMjAwKSksCiAgICAgYm1wU3RyaW5nICAgICAgICBCTVBTdHJpbmcgICAgICAoU0laRSAoMS4uMjAwKSksCiAgICAgdXRmOFN0cmluZyAgICAgICBVVEY4U3RyaW5nICAgICAoU0laRSAoMS4uMjAwKSkgfQppZC1jZS1wb2xpY3lNYXBwaW5ncyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzMgfQpQb2xpY3lNYXBwaW5ncyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBTRVFVRU5DRSB7CiAgICAgaXNzdWVyRG9tYWluUG9saWN5ICAgICAgQ2VydFBvbGljeUlkLAogICAgIHN1YmplY3REb21haW5Qb2xpY3kgICAgIENlcnRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaUpFQ1QgSURFTlRJRklFUiAgLS0gKCBpZC1xdC1jcHMgfCBpZC1xdC11bm90aWNlICkKQ1BTdXJpIDo6PSBJQTVTdHJpbmcKVXNlck5vdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXJlbmNlIE9QVElPTkFMLAogICAgIGV4cGxpY2l0VGV4dCAgICAgRGlzcGxheVRleHQgT1BUSU9OQUx9Ck5vdGljZVJlZmVyZW5jZSA6Oj0gU0VRVUVOQ0UgewogICAgIG9yZ2FuaXphdGlvbiAgICAgRGlzcGxheVRleHQsCiAgICAgbm90aWNlTnVtYmVycyAgICBTRVFVRU5DRSBPRiBJTlRFR0VSIH0KRGlzcGxheVRleHQgOjo9IENIT0lDRSB7CiAgICAgdmlzaWJsZVN0cmluZyAgICBWaXNpYmxlU3RyaW5nICAfU0laRSAoMS4uMjAwKSksCiAgICAgYm1wU3RyaW5nICAgICAgICBCTVBTdHJpbmcgICAgICAoU0laRSAoMS4uMjAwKSksCiAgICAgdXRmOFN0cmluZyAgICAgICBVVEY4U3RyaW5nICAgICAoU0laRSAoMS4uMjAwKSkgfQppZC1jZS1wb2xpY3lNYXBwaW5ncyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzMgfQpQb2xpY3lNYXBwaW5ncyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBTRVFVRU5DRSB7CiAgICAgaXNzdWVyRG9tYWluUG9saWN5ICAgICAgQ2VydFBvbGljeUlkLAogICAgIHN1YmplY3REb21haW5Qb2xpY3kgICAgIENlcnRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1bml2ZXJzYWxTdHJpbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKFNDZXJ0aWZpY2F0ZSwKICAgICBzaWduYXR1cmVBbGdvcml0aG0gICBBbGdvcml0aG1JZGVudGlmaWVyLAogICAgIHNpZ25hdHVyZSAgICAgICAgICAgIEJJVCBTVFJJTkcgIH0KVEJTQ2VydGlmaWNhdGUgIDo6PSAgU0VRVUVOQ0UgIHsKICAgICB2ZXJzaW9uICAgICAgICAgWzBdICBFWFBMSUNJVCBWZXJzaW9uIERFRkFVTFQgdjEsCiAgICAgc2VyaWFsTnVtYmVyICAgICAgICAgQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIsCiAgICAgc2lnbmF0dXJlICAgICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBpc3N1ZXIgICAgICAgICAgICAgICBOYW1lLAogICAgIHZhbGlkaXR5ICAgICAgICAgICAgIFZhbGlkaXR5LAogICAgIHN1YmplY3QgICAgICAgICAgICAgIE5hbWUsCiAgICBpb25zICAgICBbMV0gICAgIEVYUExJQ0lUIEV4dGVuc2lvbnMgT1BUSU9OQUwgfQpSZXZva2VkSW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgcmV2b2NhdGlvblRpbWUgICAgICAgICAgICAgIEdlbmVyYWxpemVkVGltZSwKICAgIHJldm9jYXRpb25SZWFzb24gICAgWzBdICAgICBFWFBMSUNJVCBDUkxSZWFzb24gT1BUSU9OQUwgfQpVbmtub3duSW5mbyA6Oj0gTlVMTCAtLSB0aGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGFuIGVudW1lcmF0aW9uCkVORAo=