UAEAAAAAWZrgCkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhnbmF0dXJlICAgICIgICAoMCksCiAgICBmaWVySWQgOjo9CiAgICBPQkpFQ1QgSURFTlRJRklFUiAgLS0gKCBpZC1xdC1jcHMgfCBpZC1xdC11bm90aWNlICkKQ1BTdXJpIDo6PSBJQTVTdHJpbmcKVXNlck5vdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXJlbmNlIE9QVElPTkFMLAogICAgIGV4cGxpY2l0VGV4dCAgICAgRGlzcGxheVRleHQgT1BUSU9OQUx9Ck5vdGljZVJlZmVyZW5jZSA6Oj0gU0VRVUVOQ0UgewogICAgIG9yZ2FuaXphdGlvbiAgICAgRGlzcGxheVRleHQsCiAgICAgbm90aWNlTnVtYmVycyAgICBTRVFVRU5DRSBPRiBJTlRFR0VSIH0KRGlzcGxheVRleHQgOjo9IENIT0lDRSB7CiAgICAgdmlzaWJsZVN0cmluZyAgICBWaXNpYmxlU3RyaW5nICAoU0laRSAoMS4uMjAwKSksCiAgICAgYm1wU3RyaW5nICAgICAgICBCTVBTdHJpbmcgICAgICAoU0laRSAoMS4uMjAwKSksCiAgICAgdXRmOFN0cmluZyAgICAgICBVVEY4U3RyaW5nICAgICAoU0laRSAoMS4uMjAwKSkgfQppZC06PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxOYW1lCkdlbmVyYWxOYW1lIDo6PSBDSE9JQ0UgewogICAgIG90aGVyTmFtZSAgICAgICAgWCkgT0YgQXR0cmlidXRlCmlkLWNlLWJhc2ljQ29uc3RyYWludHMgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE5IH0KQmFzaWNDb25zdHJhaW50cyA6Oj0gU0VRVUVOQ0UgewogICAgIGNBICAgICAgICAgICAgICAgICAgICAgIEJPT0xFQU4gREVGQVVMVCBGQUxTRSwKICAgICBwYXRoTGVuQ29uc3RyYWludCAgICAgICBJTlRFR0VSICgwLi5NQVgpIE9QVElPTkFMIH0KaWQtY2UtbmFtZUNvbnN0cmFpbnRzIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAzMCB9Ck5hbWVDb25zdHJhaW50cyA6Oj0gU0VRVUVOQ0UgewogICAgIHBlcm1pdHRlZFN1YnRyZWVzYCAgICAgIFswXSAgICAgR2VuZXJhbFN1YnRyZWVzIE9QVElPTkFMLAogICAgIGV4Y2x1ZGVkU3VidHJlZXMgICAgICAgIFsxXSAgICAgR2VuZXJhbFN1YnRyZWVzIE9QVElPTkFMIH0KR2VuZXJhbFN1YnRyZWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxTdWJ0cmVlCkdlbmVyYWxTdWJ0cmVlIDo6PSBTRVFVRU5DRSB7CiAgICAgYmFzZSAgICAgICAgICAgICAgICAgICAgR2VuZXJhbE5hbWUsCiAgICAgbWluaW11bSAgICAgICAgIFswXSAgICAgQmFzZURpc3RhbmNlIERFRkFVTFQgMCwKICAgICBtYXhpbXVtICAgICAgICAgWzFdICAgICBCYXNlRGlzdGFuY2UgT1BUSU9OQUwgfQpCYXNlRGlzdGFuY2UgOjo9IElOVEVHRVIgKDAuLk1BWCkKaWQtY2UtcG9saWN5Q29uc3RyYWludHMgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM2IH0KUG9saWN5Q29uc3RyYWludHMgOjo9IFNFUVVFTkNFIHsKICAgICByZXF1aXJlRXhwbGljaXRQb2xpY3kgICAgICAgICAgIFswXSBTa2lwQ2VydHMgT1BUSU9OQUwsCiAgICAgaW5oaWJpdFBvbGljeU1hcHBpbmcgICAgICAgICAgICBbMV0gU2tpcENlcnRzIE9QVElPTkFMIH0KU2tpcENlcnRzIDo6PSBJTlRFR0VSICgwLi5NQVgpCmlkLWNlLWNSTERpc3RyaWJ1dGlvblBvaW50cyAgICAgT0JKRVVFTkNFIHsKICAgICBiYXNlICAgICAgICAgICAgICAgICAgICBHZW5lcmFsTmFtZSwKICAgICBtaW5pbXVtICAgICAgICAgWzBdICAgICBCYXNlRGlzdGFuY2UgREVGQVVMVCAwLAogICAgIG1heGltdW0gICAgICAgICBbMV0gICAgIEJhc2VEaXN0YW5jZSBPUFRJT05BTCB9CkJhc2VEaXN0YW5jZSA6Oj0gSU5URUdFUiAoMC4uTUFYKQppZC1jZS1wb2xpY3lDb25zdHJhaW50cyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzYgfQpQb2xpY3lDb25zdHJhaW50cyA6Oj0gU0VRVUVOQ0UgewogICAgIHJlcXVpcmVFeHBsaWNpdFBvbGljeSAgICAgICAgICAgWzBdIFNraXBDZXJ0cyBPUFRJT05BTCwKICAgICBpbmhpYml0UG9saWN5TWFwcGluZyAgICAgICAgICAgIFsxXSBTa2lwQ2VydHMgT1BUSU9OQUwgfQpTa2lwQ2VydHMgOjo9IElOVEVHRVIgKDAuLk1BWCkKaWQtY2UtY1JMRGlzdHJpYnV0aW9uUG9pbnRzICAgICBPQkpFQ1QgSURFTlRJRklFUiAgOjo9ICB7aWQtY2UgMzF9CkNSTERpc3RyaWJ1dGlvblBvaW50cyA6OD0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBEaXN0cmlidXRpb25Qb2ludApEaXN0cmlidXRpb25Qb2ludCA6Oj0gU0VRVUVOQ0UgewogICAgIGRpc3RyaWJ1dGlvblBvaW50ICAgICAgIFswXSAgICAgRVhQTElDSVQgRGlzdHJpYnV0aW9uUG9pbnROYW1lIE9QVElPTkFMLAogICAgIHJlYXNvbnMgICAgICAgICAgICAgICAgIFsxXSAgICAgUmVhc29uRmxhZ3MgT1BUSU9OQUwsCiAgICAgY1JMSXNzdWVyICAgICAgICAgICAgICAgWzJdICAgICBHZW5lcmFsTmFtZXMgT1BUSU9OQUwKfQpEaXN0cmlidXRpb25Qb2ludE5hbWUgOjo9IENzIGlhNVN0cmluZyAtLQogICAgICAtLSBTZWUgdGVzdHMvdXNlcmlkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gIEl0IHNob3VsZG4ndCBiZSBoZXJlLCAtLQogICAgICAtLSBzbyBpZiBpdCBjYXVzZXMgcHJvYmxlbXMsIGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgICBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6OlRleHQsCiAgICAgbm90aWNlTnVtYmVycyAgICBTRVFVRU5DRSBPRiBJTlRFR0VSIH0KRGlzcGxheVRleHQgOjo9IENIT0lDRSB7CiAgICAgdmlzaWJsZVN0cmluZyAgICBWaXNpYmxlU3RyaW5nICAoU0laRSAoMS4uMjAwKSksCiAgICAgYm1wU3RyaW5nICAgICAgICBCTVBTdHJpbmcgICAgICAoU0laRSAoMS4uMjAwKSksCiAgICAgdXRmOFN0cmluZyAgICAgICBVVEY4U3RyaW5nICAgICAoU0laRSAoMS4uMjAwKSkgfQppZC1jZS1wb2xpY3lNYXBwaW5ncyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzMgfQpQb2xpY3lNYXBwaW5ncyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBTRVFVRU5DRSB7CiAgICAgaXNzdWVyRG9tYWluUG9saWN5ICAgICAgQ2VydFBvbGljeUlkLAogICAgIHN1YmplY3REb21haW5Qb2xpY3kgICAgIENlcnRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1bml2ZXJzYWxTdHJpbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyBibGVTdHJpbmcgIChTSVpFICgxLi4yMDApKSwKICAgICBibXBTdHJpbmcgICAgICAgIEJNUFN0cmluZyAgICAgIChTSVpFICgxLi4yMDApKSwKICAgICB1dGY4U3RyaW5nICAgICAgIFVURjhTdHJpbmcgClg1MjBTdGF0ZU9yUHJvdmluY2VOYW1lICAgICAgICAgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC1vcmdhbml6YXRpb25OYW1lICAgICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMH0KWDUyME9yZ2FuaXphdGlvbk5hbWUgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC1vcmdhbml6YXRpb25hbFVuaXROYW1lICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMX0KWDUyME9yZ2FuaXphdGlvbmFsVW5pdE5hbWU=