simpo-component-library 3.6.992 → 3.6.994
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
- package/esm2022/lib/sections/header-section/header-section.component.mjs +7 -2
- package/fesm2022/simpo-component-library.mjs +8 -3
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/package.json +1 -1
- package/simpo-component-library-3.6.994.tgz +0 -0
- package/simpo-component-library-3.6.992.tgz +0 -0
|
@@ -155,7 +155,12 @@ export class HeaderSectionComponent {
|
|
|
155
155
|
}
|
|
156
156
|
else {
|
|
157
157
|
if (redirectTo == 'SIGNUP' || redirectTo == 'LOGIN')
|
|
158
|
-
|
|
158
|
+
// redirectTo here is just the 'SIGNUP'/'LOGIN' trigger, not a real path - the login page
|
|
159
|
+
// reads this query param as where to navigate back to after auth succeeds (see
|
|
160
|
+
// AuthenticationRequiredComponent's currentPage/navigateByUrl), so it must be the actual
|
|
161
|
+
// current URL, matching every other caller of this same navigation (appointment-booking,
|
|
162
|
+
// book-appointment) - not the literal trigger string, which isn't a valid route.
|
|
163
|
+
this.router.navigate(['/login'], { queryParams: { redirectTo: this.router.url } });
|
|
159
164
|
}
|
|
160
165
|
}
|
|
161
166
|
get loggedIn() {
|
|
@@ -737,4 +742,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
737
742
|
type: HostListener,
|
|
738
743
|
args: ['window:resize', ['$event']]
|
|
739
744
|
}] } });
|
|
740
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9oZWFkZXItc2VjdGlvbi9oZWFkZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2hlYWRlci1zZWN0aW9uL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRXRILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBR3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7OztBQWtDbkUsTUFBTSxPQUFPLHNCQUFzQjtJQWdDakMsWUFDbUIsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLFNBQW9CLEVBQ3BCLGNBQXFDLEVBQzlDLFdBQXdCLEVBQ3hCLFlBQTJCLEVBQ0osT0FBb0IsRUFDdEIsVUFBa0IsRUFDckIsUUFBa0I7SUFDNUMsbUNBQW1DOztRQVZsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQzlDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQ0osWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyQ3JDLFNBQUksR0FBYSxJQUFJLENBQUM7UUFLdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNuQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFNcEMsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixlQUFVLEdBQUcsV0FBVyxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUM7UUFDbEMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBd0IsSUFBSSxDQUFDO1FBd0ZyRCxzQkFBaUIsR0FBWSxLQUFLLENBQUE7UUFpRmxDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVduQzs7MEZBRWtGO1FBQ2xGLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQVd0Qzt5RUFDaUU7UUFDakUsd0JBQW1CLEdBQVEsSUFBSSxDQUFDO1FBVWhDLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFDM0MsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUF5QzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBd0Y3QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQWlIL0IsYUFBUSxHQUFZLEtBQUssQ0FBQTtRQUN6QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUlqQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQTBCL0Isb0JBQWUsR0FBWSxLQUFLLENBQUE7UUFJaEMsV0FBTSxHQUFHLE1BQU0sQ0FBQTtRQWlCZixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsWUFBTyxHQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFXMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQW1CM0Isb0JBQWUsR0FBUTtZQUNyQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixRQUFRLEVBQUUseUVBQXlFO2dCQUNuRixNQUFNLEVBQUUsS0FBSzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLHVFQUF1RTtnQkFDakYsTUFBTSxFQUFFLEtBQUs7YUFDZDtZQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRSxnSEFBZ0g7Z0JBQzFILE1BQU0sRUFBRSxLQUFLO2FBQ2Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLHdFQUF3RTtnQkFDbEYsTUFBTSxFQUFFLEtBQUs7YUFDZDtZQUNEO2dCQUNFLElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsMkVBQTJFO2dCQUNyRixNQUFNLEVBQUUsS0FBSzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFFBQVEsRUFBRSx5RUFBeUU7Z0JBQ25GLE1BQU0sRUFBRSxLQUFLO2FBQ2Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsUUFBUSxFQUFFLDBFQUEwRTtnQkFDcEYsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUE7UUFLRCxhQUFRLEdBQVEsRUFBRSxDQUFBO1FBQ2xCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsdUJBQWtCLEdBQVEsSUFBSSxDQUFDO1FBcUQvQixxQkFBZ0IsR0FBUSxJQUFJLENBQUM7UUExbUIzQixJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQWlCLENBQUM7SUFDbEQsQ0FBQztJQUNELFdBQVcsQ0FBQyxVQUFlO1FBQ3pCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksVUFBVSxJQUFJLFFBQVEsSUFBSSxVQUFVLElBQUksT0FBTztnQkFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1FBRWQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQyxPQUFPLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFDRCx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBRXBDLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsc0NBQXNDO0lBQ3RDLHFEQUFxRDtJQUVyRCxnQ0FBZ0M7SUFDaEMsMkVBQTJFO0lBRTNFLHVDQUF1QztJQUN2QyxtQ0FBbUM7SUFDbkMsSUFBSTtJQUNKLFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFVLEVBQUUsSUFBWTtRQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFJRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLHNFQUFzRTtRQUN0RSxtRUFBbUU7UUFDbkUsK0VBQStFO1FBRS9FLDBCQUEwQjtRQUMxQixrQ0FBa0M7UUFDbEMsZ0JBQWdCO1FBQ2hCLE1BQU07UUFDTixLQUFLO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUU1QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2hGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN4QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQzVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUM7WUFDRixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMscUJBQXNDLENBQUMsQ0FBQztZQUNyRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsc0JBQXVDLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLDBDQUEwQyxDQUFDLENBQUM7UUFDckgsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN4QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQzVELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQy9CLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxxQkFBc0MsQ0FBQyxDQUFDO1lBQzFHLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNoQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsc0JBQXVDLENBQUMsQ0FBQztZQUM1RyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFHRCxnQkFBZ0I7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBTUQsbUJBQW1CO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDNUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBS0Qsc0JBQXNCO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTix1REFBdUQ7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBTUQsYUFBYSxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBRTVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWE7WUFBRSxPQUFPO1FBRW5FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBNEIsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCO1lBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksWUFBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUlELFlBQVksQ0FBQyxNQUFlO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxZQUFZO1lBQ3ZELE9BQU87UUFFVCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxJQUFJLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLFdBQVc7WUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFCLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNuRSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELCtGQUErRjtJQUMvRixxQkFBcUIsQ0FBQyxJQUFTO1FBQzdCLElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWM7WUFBRSxPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTTtZQUFFLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNsRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4RyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDckYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzVFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQzdDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSztZQUN0QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUM7WUFDakcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLO1lBQ3RDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQztZQUM5RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDL0QsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUlELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksOEJBQThCO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNyQyxJQUFJLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzVDLElBQUksSUFBSSxLQUFLLFdBQVcsQ0FBQyxtQkFBbUI7WUFBRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSw4QkFBOEI7UUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO0lBQy9DLENBQUM7SUFDRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDcEIsb0RBQW9EO1FBQ3BELDhDQUE4QztRQUM5QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQVc7UUFDakIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBVztRQUNuQixNQUFNLElBQUksR0FBYyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixNQUFNLElBQUksR0FBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBVyxDQUFDO1FBQ3JELElBQUksSUFBSTtZQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFVLEVBQUUsQ0FBQTtRQUNwQixLQUFLLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3JELElBQUk7Z0JBQ0YsTUFBTTtnQkFDTixxQkFBcUI7Z0JBQ3JCLE1BQU07Z0JBQ04sVUFBVTtnQkFDVixjQUFjO2dCQUNkLGNBQWM7Z0JBQ2QsVUFBVTtnQkFDVixNQUFNO2dCQUNOLHNCQUFzQjtnQkFDdEIsZUFBZTtnQkFDZix5QkFBeUI7YUFDMUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEIsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdELCtCQUErQjtJQUMvQixxQ0FBcUM7SUFDckMscUJBQXFCO0lBQ3JCLDRDQUE0QztJQUM1QyxJQUFJO0lBQ0osUUFBUTtRQUNOLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGtDQUFrQztRQUN6RCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXhELE9BQU8sVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQVNELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQztZQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUE7WUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsQyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbEMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDeEMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakksT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUSxFQUFFLElBQVM7UUFDbkMsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkssQ0FBQztRQUNELElBQUksSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6SixDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQU1ELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBSUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBWSxFQUFFLE9BQWU7UUFDbkMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQzFDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLEtBQUssR0FBRyxJQUFJLFFBQVEsS0FBSyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQXVDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFNRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFTO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsUUFBUTthQUNuQixHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6QixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDeEMsY0FBYyxFQUFFLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGdCQUFnQixJQUFJLEVBQUU7U0FDdkUsQ0FBQyxDQUFDO2FBQ0YsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEgsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUk7WUFDcEMsY0FBYyxFQUFFLElBQUksRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLGdCQUFnQixJQUFJLEVBQUU7WUFDcEUsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBUTtRQUN6QixJQUFJLEdBQUcsRUFBRSxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFJRCxhQUFhLENBQUMsS0FBVSxFQUFFLEtBQVk7UUFDcEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBRXRDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxhQUFtQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUVwQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUF1QixDQUFDO1FBQ2hHLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUV4RCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVEsRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFRO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQzsrR0Fyc0JVLHNCQUFzQix5TkF3Q3ZCLGFBQWEsYUFDYixXQUFXLGFBQ1gsUUFBUTttR0ExQ1Asc0JBQXNCLDhkQ25FbkMsZ3JsRUE0bENjLDBsMEJEbGpDVixZQUFZLHl3QkFDWixvQkFBb0IsbU5BQ3BCLFVBQVUsbURBQ1YsT0FBTywySUFDUCw0QkFBNEIsc0tBQzVCLFdBQVcsK21CQUNYLHNCQUFzQix5SkFDdEIsbUJBQW1CLDBHQUNuQixtQkFBbUIsbUZBQ25CLGNBQWMsZ0ZBQ2QsZ0JBQWdCLHFGQUNoQixvQkFBb0Isa0lBQ3BCLGNBQWMsZ0ZBQ2Qsb0JBQW9CLDhCQUNwQixlQUFlLDJOQUNmLGFBQWEsK0JBQ2IsMEJBQTBCLDJHQUMxQixtQkFBbUIsMEhBQ25CLHdCQUF3Qjs7NEZBT2Ysc0JBQXNCO2tCQTdCbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsNEJBQTRCO3dCQUM1QixXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCOzswQkE0Q0UsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRO3lDQXpDVCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNHLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQXlPNUIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSGVhZGVyQ29udGVudE1vZGVsLCBIZWFkZXJTZWN0aW9uTW9kZWwsIEhlYWRlclN0eWxlTW9kZWwgfSBmcm9tICcuL2hlYWRlci1zZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpbXBvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTmF2YmFyQnV0dG9uRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vZWxlbWVudHMvbmF2YmFyLWJ1dHRvbi1lbGVtZW50L25hdmJhci1idXR0b24tZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uL2NvbXBvbmVudHMvaG92ZXItZWxlbWVudHMvaG92ZXItZWxlbWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb1N0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zdGlja3ktZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xuaW1wb3J0IHsgR2VuZGVySWNvbiB9IGZyb20gJy4uLy4uL3BpcGVzL2dlbmRlci5waXBlJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcbmltcG9ydCB7IENhcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc2VjdGlvbnMvY2FydC9jYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29raW5nQ2FydEdyb3Vwc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyX1R5cGUsIE1vYmlsZV9NZW51X1R5cGUsIFByb2R1Y3RDYXJkVGhlbWUsIFN0aWNreV9UeXBlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IE1vdmluZ1RleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWN0aW9ucy9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291bnRkb3duQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2VjdGlvbnMvY291bnRkb3duLWJhbm5lci9jb3VudGRvd24tYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3ZpbmdUZXh0TW9kYWwgfSBmcm9tICcuLi9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5tb2RhbCc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc29jaWEtaWNvbnMvc29jaWEtaWNvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnRva2VuJztcbmltcG9ydCB7IFN0b3JhZ2VMaWtlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS1saWtlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWhlYWRlci1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0J1dHRvbkNvbXBvbmVudCxcbiAgICBHZW5kZXJJY29uLFxuICAgIE1hdEljb24sXG4gICAgTmF2YmFyQnV0dG9uRWxlbWVudENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxuICAgIENvbG9yRGlyZWN0aXZlLFxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIE1vdmluZ1RleHRDb21wb25lbnQsXG4gICAgQ291bnRkb3duQmFubmVyQ29tcG9uZW50LFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgU29jaWFJY29uc0NvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlclNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGRhdGE/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XG4gIEBWaWV3Q2hpbGQoXCJjaGlsZENvbnRhaW5lclwiKSBjaGlsZENvbnRhaW5lcjogYW55O1xuICBAVmlld0NoaWxkKCdtb2JpbGVPZmZjYW52YXMnKSBtb2JpbGVPZmZjYW52YXM/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIHF1ZXJ5UGFyYW1TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgaXNCcm93c2VyID0gZmFsc2U7XG4gIHB1YmxpYyBpc09mZmNhbnZhc09wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRnVsbFNjcmVlbk1lbnVPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgb2ZmY2FudmFzU2hvd25IYW5kbGVyPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvZmZjYW52YXNIaWRkZW5IYW5kbGVyPzogKCkgPT4gdm9pZDtcbiAgY29udGVudD86IEhlYWRlckNvbnRlbnRNb2RlbCB8IGFueTtcbiAgc3R5bGU/OiBIZWFkZXJTdHlsZU1vZGVsXG4gIGFjdGlvbj86IEFjdGlvbk1vZGVsXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICB0aGVtZSA9IFByb2R1Y3RDYXJkVGhlbWU7XG4gIEhlYWRlclN0eWxpbmcgPSBIZWFkZXJfVHlwZTtcbiAgU3RpY2t5VHlwZSA9IFN0aWNreV9UeXBlO1xuICBNb2JpbGVNZW51VHlwZSA9IE1vYmlsZV9NZW51X1R5cGU7XG4gIHBhcmVudEhlaWdodDogbnVtYmVyID0gNzA7XG4gIGN1cnJlbnRQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIHBsYWNlaG9sZGVySW5kZXg6IG51bWJlciA9IDA7XG4gIGFuaW1hdGVQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2V2ZW50U3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcbiAgICBASW5qZWN0KExPQ0FMX1NUT1JBR0UpIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZUxpa2UsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICAvLyBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XG4gIH1cbiAgc2VhcmNoQ2hhbmdlVGltZW91dDogYW55O1xuICB3YWl0QmVmb3JlU2VhcmNoKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaENoYW5nZVRpbWVvdXQpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hQcm9kdWN0cygpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgc2VhcmNoUHJvZHVjdHMoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IHNlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0IH0gfSk7XG4gIH1cbiAgZ29Ub0ZhdigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93aXNobGlzdCddKTtcbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdvVG9BY2NvdW50KHJlZGlyZWN0VG86IGFueSkge1xuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlZGlyZWN0VG8gPT0gJ1NJR05VUCcgfHwgcmVkaXJlY3RUbyA9PSAnTE9HSU4nKVxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddLCB7IHF1ZXJ5UGFyYW1zOiB7IHJlZGlyZWN0VG86IHJlZGlyZWN0VG8gfSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgbG9nZ2VkSW4oKSB7XG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKVxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgZ2V0VXNlck5hbWUoKSB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIHJldHVybiB1c2VyPy5jb250YWN0Lm5hbWU7XG4gIH1cbiAgLy8gY2hhbmdlUGxhY2Vob2xkZXIoKSB7XG4gIC8vICAgdGhpcy5hbmltYXRlUGxhY2Vob2xkZXIgPSB0cnVlO1xuXG4gIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XG4gIC8vICAgICB0aGlzLnBsYWNlaG9sZGVySW5kZXggPVxuICAvLyAgICAgICAodGhpcy5wbGFjZWhvbGRlckluZGV4ICsgMSkgJVxuICAvLyAgICAgICB0aGlzLnN0eWxlPy5zZWFyY2hCYXJQbGFjZWhvbGRlckxpc3QubGVuZ3RoO1xuXG4gIC8vICAgICB0aGlzLmN1cnJlbnRQbGFjZWhvbGRlciA9XG4gIC8vICAgICAgIHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdFt0aGlzLnBsYWNlaG9sZGVySW5kZXhdLnZhbHVlO1xuXG4gIC8vICAgICB0aGlzLmFuaW1hdGVQbGFjZWhvbGRlciA9IGZhbHNlO1xuICAvLyAgIH0sIDQwMCk7IC8vIGFuaW1hdGlvbiBkdXJhdGlvblxuICAvLyB9XG4gIGdvVG9XaXNobGlzdCgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93aXNobGlzdCddKTtcbiAgfVxuICBnb1RvQ2FydCgpIHtcbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQ2FydENvbXBvbmVudCwgeyB3aWR0aDogJzI4dncnLCBwYW5lbENsYXNzOiAnc2lkZXBhbmVsLWNsYXNzJywgZGF0YTogeyB3aW5kb3c6IHRydWUgfSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddKTtcbiAgICB9XG4gIH1cbiAgZ29Ub0Jvb2tpbmdzKCkge1xuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQm9va2luZ0NhcnRHcm91cHNDb21wb25lbnQsIHsgcGFuZWxDbGFzczogJ3NpZGVwYW5lbC1jbGFzcycgfSk7XG4gIH1cbiAgYXBwbHlGaWx0ZXIodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKSB7XG4gICAgdmFsdWUgPSB2YWx1ZVswXT8ucmVwbGFjZShcIiBcIiwgXCJfXCIpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH0gfSk7XG4gIH1cbiAgbW92aW5nVGV4dD86IE1vdmluZ1RleHRNb2RhbFxuICB0b1Nob3dJbkpld2VsbGVyeTogYm9vbGVhbiA9IGZhbHNlXG4gIGRpZmZlcjogYW55O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuYWN0aW9uID0gdGhpcy5kYXRhPy5hY3Rpb247XG4gICAgdGhpcy5xdWVyeVBhcmFtU3Vic2NyaXB0aW9uID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHFQYXJhbSkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gcVBhcmFtW1wic2VhcmNoVHh0XCJdO1xuICAgIH0pXG4gICAgdGhpcy5nZXRNZW51SXRlbXMoKTtcbiAgICAvLyB0aGlzLmV2ZW50U2VydmljZS5hY3RpdmF0ZVNtYXJ0U2VhcmNoLnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XG4gICAgLy8gICBpZiAodGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0Py5sZW5ndGggPiAwICYmIHJlcykge1xuICAgIC8vICAgICB0aGlzLmN1cnJlbnRQbGFjZWhvbGRlciA9IHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdFswXS52YWx1ZTtcblxuICAgIC8vICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcigpO1xuICAgIC8vICAgICB9LCAzMDAwKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9KVxuICAgIGlmICh0aGlzLmlzQnJvd3NlciAmJiAod2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnY2FyYXRsYW5lJykgfHwgd2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnb3JyYScpKSkge1xuICAgICAgdGhpcy50b1Nob3dJbkpld2VsbGVyeSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZSkge1xuICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzSGVhZGVyKCk7XG4gICAgfVxuICAgIHRoaXMuc2NoZWR1bGVQYXJlbnRIZWlnaHRDYWxjdWxhdGlvbigpO1xuICAgIHRoaXMuY2hlY2tQYXNzYm9va0FwcCgpO1xuICAgIHRoaXMuY2hlY2tBcHBvaW50bWVudEFwcCgpO1xuICAgIHRoaXMuZ2V0QXBwb2ludG1lbnRTZXR0aW5ncygpO1xuXG4gICAgdGhpcy5fZXZlbnRTdWJzY3JpYmVyID0gdGhpcy5fZXZlbnRTZXJ2aWNlLm1lbnVMaXN0LnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5nZXRNZW51SXRlbXMoKTtcbiAgICB9KVxuICAgIFxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmNoaWxkQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50ICYmIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY2hpbGRDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLnNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2JpbGVPZmZjYW52YXM/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IG9mZmNhbnZhc0VsZW1lbnQgPSB0aGlzLm1vYmlsZU9mZmNhbnZhcy5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5vZmZjYW52YXNTaG93bkhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNPZmZjYW52YXNPcGVuID0gdHJ1ZTtcbiAgICAgIH07XG4gICAgICB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNPZmZjYW52YXNPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZ29CYWNrTW9iaWxlTWVudSgpO1xuICAgICAgfTtcbiAgICAgIG9mZmNhbnZhc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvd24uYnMub2ZmY2FudmFzJywgdGhpcy5vZmZjYW52YXNTaG93bkhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICBvZmZjYW52YXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2hpZGRlbi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyICYmIHRoaXMucmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlX01lbnVfVHlwZS5CT1RUT01fU1RJQ0tZKSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1ib3R0b20tbmF2LWhlaWdodCcsICdjYWxjKDY0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMucXVlcnlQYXJhbVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1ib3R0b20tbmF2LWhlaWdodCcpO1xuICAgIGlmICh0aGlzLm1vYmlsZU9mZmNhbnZhcz8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2ZmY2FudmFzRWxlbWVudCA9IHRoaXMubW9iaWxlT2ZmY2FudmFzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAodGhpcy5vZmZjYW52YXNTaG93bkhhbmRsZXIpIHtcbiAgICAgICAgb2ZmY2FudmFzRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzaG93bi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIpIHtcbiAgICAgICAgb2ZmY2FudmFzRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdoaWRkZW4uYnMub2ZmY2FudmFzJywgdGhpcy5vZmZjYW52YXNIaWRkZW5IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHBhc3Nib29rQXBwU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XG4gIGNoZWNrUGFzc2Jvb2tBcHAoKSB7XG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdiSWQnKTtcbiAgICBjb25zdCBiSWQgPSBkZXRhaWxzID8/ICcnO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuUGFzc2Jvb2tBcHBTdGF0dXMoYklkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzPy5kYXRhKSB7XG4gICAgICAgIHRoaXMucGFzc2Jvb2tBcHBTdGF0dXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKiogTG9naW4vc2lnbnVwIGZvciBhIG5vbi1lY29tbWVyY2UgaGVhZGVyIGFsc28gbmVlZHMgdG8gc2hvdyBmb3IgYSBidXNpbmVzcyB3aXRoIG9ubHkgdGhlXG4gICAqIEFwcG9pbnRtZW50IGFwcCBpbnN0YWxsZWQgKGJvb2tpbmcgbm93IHJlcXVpcmVzIGxvZ2luKSAtIG1pcnJvcnMgY2hlY2tQYXNzYm9va0FwcCgpIGV4YWN0bHksXG4gICAqIHJldXNpbmcgdGhlIHNhbWUgZ2VuZXJpYyBcImlzIGFwcCBpbnN0YWxsZWRcIiBjaGVjayBhbHJlYWR5IHVzZWQgZm9yIFBhc3Nib29rLiAqL1xuICBhcHBvaW50bWVudEFwcFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBjaGVja0FwcG9pbnRtZW50QXBwKCkge1xuICAgIGNvbnN0IGRldGFpbHMgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnYklkJyk7XG4gICAgY29uc3QgYklkID0gZGV0YWlscyA/PyAnJztcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrQXBwSW5zdGFsbGVkKGJJZCwgJ0FwcG9pbnRtZW50Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlcz8uZGF0YSkge1xuICAgICAgICB0aGlzLmFwcG9pbnRtZW50QXBwU3RhdHVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIFRoZSBib29raW5nLWNhcnQgaWNvbiBzaG91bGQgb25seSBzaG93IHdoZW4gYSBjdXN0b21lciBjb3VsZCBoYXZlIHNvbWV0aGluZyB0byBib29rIC1cbiAgICogaS5lLiBlaXRoZXIgbW9kZSBpcyBlbmFibGVkLCBub3QgdGllZCB0byBvbmUgc3BlY2lmaWMgbW9kZS4gKi9cbiAgYXBwb2ludG1lbnRTZXR0aW5nczogYW55ID0gbnVsbDtcbiAgZ2V0QXBwb2ludG1lbnRTZXR0aW5ncygpIHtcbiAgICBjb25zdCBiSWQgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnYklkJykgPz8gJyc7XG4gICAgaWYgKCFiSWQpIHJldHVybjtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEJ1c2luZXNzQXBwb2ludG1lbnRTZXR0aW5ncyhiSWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYXBwb2ludG1lbnRTZXR0aW5ncyA9IHJlcztcbiAgICB9LCAoKSA9PiB7XG4gICAgICAvLyBOb24tZmF0YWwgLSB0aGUgYm9va2luZy1jYXJ0IGljb24ganVzdCBzdGF5cyBoaWRkZW4uXG4gICAgfSk7XG4gIH1cbiAgc2hvd1NlYXJjaEJhck1vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTmF2YmFyT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gNDc1O1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XG4gIH1cbiAgaGVpZ2h0OiBhbnlcbiAgcHJpdmF0ZSBzY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5nZXRQYXJlbnRIZWlnaHQoKSwgMCk7XG4gIH1cblxuICBvblN0aWNreVNjcm9sbGVkKHNjcm9sbGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1Njcm9sbGVkID0gc2Nyb2xsZWQ7XG4gIH1cblxuICBnZXRQYXJlbnRIZWlnaHQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCAhdGhpcy5jaGlsZENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY2hpbGRDb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCByZWN0SGVpZ2h0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgdGhpcy5oZWlnaHQgPSBNYXRoLmNlaWwocmVjdEhlaWdodCB8fCBlbGVtZW50Lm9mZnNldEhlaWdodCB8fCBlbGVtZW50LnNjcm9sbEhlaWdodCB8fCAwKTtcbiAgICBpZiAodGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlKVxuICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZWxlbWVudEhlaWdodC5lbWl0KHRoaXMuaGVpZ2h0KVxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS1tYXJnaW4tdG9wXCIsIHRoaXMuaGVpZ2h0ICsgXCJweFwiKVxuICB9XG4gIGdldCBnZXREcm9wZG93bkxpbmtzKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcyAmJiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZSlcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcyk7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGdldCBpc0Vjb21tZXJjZVdlYnNpdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8udHlwZSA9PSBcIkVfQ09NTUVSQ0VcIjtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNOYXZiYXJPcGVuID0gZmFsc2U7XG4gIH1cblxuICBzaG93RWRpdG9yczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xuICB9XG4gIGdvVG9Ib21lKCkge1xuICAgIGlmICh0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnUkVRVUVTVF9GUk9NJykgPT09ICdFX0NPTU1FUkNFJylcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnJ10pO1xuICB9XG4gIGdldCByZXNvbHZlZE1vYmlsZU1lbnVUeXBlKCk6IE1vYmlsZV9NZW51X1R5cGUge1xuICAgIHJldHVybiB0aGlzLnN0eWxlPy5tb2JpbGVNZW51VHlwZSA/PyBNb2JpbGVfTWVudV9UeXBlLkhBTUJVUkdFUjtcbiAgfVxuXG4gIGdldCBib3R0b21TdGlja3lOYXZJdGVtcygpOiBhbnlbXSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZvb3Rlck1lbnU/Lmxlbmd0aCA/IHRoaXMuZm9vdGVyTWVudSA6ICh0aGlzLmNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnMgPz8gW10pO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5zaG93SGVhZGVyICE9PSBmYWxzZSkuc2xpY2UoMCwgNSk7XG4gIH1cblxuICBpc05hdkl0ZW1BY3RpdmUoaXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdXJsID0gKHRoaXMucm91dGVyLnVybCB8fCAnJykuc3BsaXQoJz8nKVswXTtcbiAgICBjb25zdCB0YXJnZXQgPSAoaXRlbT8ucmVkaXJlY3Rpb25VcmwgPz8gaXRlbT8ucmVkaXJlY3Rpb25hbFVybCA/PyAnJykuc3BsaXQoJz8nKVswXTtcbiAgICBpZiAoaXRlbT8udHlwZSA9PT0gJ0hPTUVfUEFHRScpIHJldHVybiB1cmwgPT09ICcnIHx8IHVybCA9PT0gJy8nO1xuICAgIGlmICghdGFyZ2V0KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHVybCA9PT0gdGFyZ2V0IHx8ICh0YXJnZXQgIT09ICcvJyAmJiB1cmwuc3RhcnRzV2l0aCh0YXJnZXQpKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVCb3R0b21OYXZJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5ib3R0b21TdGlja3lOYXZJdGVtcyB8fCBbXSkuZmluZEluZGV4KChpdDogYW55KSA9PiB0aGlzLmlzTmF2SXRlbUFjdGl2ZShpdCkpO1xuICB9XG5cbiAgb3BlbkZ1bGxTY3JlZW5NZW51KCk6IHZvaWQge1xuICAgIHRoaXMuaXNGdWxsU2NyZWVuTWVudU9wZW4gPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gbnVsbDtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICB9XG5cbiAgY2xvc2VGdWxsU2NyZWVuTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRnVsbFNjcmVlbk1lbnVPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZE1vYmlsZU1lbnUgPSBudWxsO1xuICAgIGlmICh0aGlzLmlzQnJvd3NlcikgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gIH1cblxuICAvKiogRnVsbC1zY3JlZW4gbWVudSBpdGVtIHRhcDogZHJpbGwgaW50byBzdWJtZW51IGlmIGl0IGhhcyBjaGlsZHJlbiwgZWxzZSBuYXZpZ2F0ZSArIGNsb3NlLiAqL1xuICBvbkZ1bGxTY3JlZW5JdGVtQ2xpY2soaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKGl0ZW0/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0TW9iaWxlTWVudShpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWRpcmVjdGlvbnNPZk1lbnUoaXRlbSk7XG4gICAgICB0aGlzLmNsb3NlRnVsbFNjcmVlbk1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTdGlja3lUeXBlKCk6IFN0aWNreV9UeXBlIHtcbiAgICBpZiAodGhpcy5zdHlsZT8uc3RpY2t5VHlwZSkgcmV0dXJuIHRoaXMuc3R5bGUuc3RpY2t5VHlwZTtcbiAgICBpZiAodGhpcy5zdHlsZT8uc3RpY2t5ICYmIHRoaXMuc3R5bGU/LnNocmlua09uU2Nyb2xsKSByZXR1cm4gU3RpY2t5X1R5cGUuU0hSSU5LX09OX1NDUk9MTDtcbiAgICBpZiAodGhpcy5zdHlsZT8uc3RpY2t5KSByZXR1cm4gU3RpY2t5X1R5cGUuU1RJQ0tZO1xuICAgIHJldHVybiBTdGlja3lfVHlwZS5OT05FO1xuICB9XG4gIGdldCBpc0hlYWRlclN0aWNreSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFN0aWNreVR5cGUgIT09IFN0aWNreV9UeXBlLk5PTkU7XG4gIH1cbiAgZ2V0IGJhY2tncm91bmRJbmZvKCkge1xuICAgIGlmICh0aGlzLnJlc29sdmVkU3RpY2t5VHlwZSA9PT0gU3RpY2t5X1R5cGUuVFJBTlNQQVJFTlRfT05fU0NST0xMICYmICF0aGlzLmlzU2Nyb2xsZWQgJiYgIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YT8uc3R5bGVzLmJhY2tncm91bmQsIGNvbG9yOiAndHJhbnNwYXJlbnQnLCBzaG93SW1hZ2U6IGZhbHNlIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgJiYgIXRoaXMuaXNTY3JvbGxlZCAmJiAhdGhpcy5pc01vYmlsZVxuICAgICAgPyB7IC4uLnRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZCB9XG4gICAgICA6IHsgLi4udGhpcy5kYXRhPy5zdHlsZXMuYmFja2dyb3VuZCB9O1xuICB9XG4gIGdldCBzaW1wb0NvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2VcbiAgICAgID8gKHRoaXMuaXNTY3JvbGxlZCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQuY29sb3IgOiB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcilcbiAgICAgIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uY29sb3I7XG4gIH1cbiAgZ2V0IGFjY2VudENvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2VcbiAgICAgID8gKHRoaXMuaXNTY3JvbGxlZCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXG4gICAgICA6IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yO1xuICB9XG4gIGdldCBpc1RyYW5zcGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgJiYgIXRoaXMuaXNTY3JvbGxlZDtcbiAgfVxuICByZWRpcmVjdFRvKGNvbnRlbnQ6IGFueSkge1xuICAgIHRoaXMuX2V2ZW50U2VydmljZS5idXR0b25SZWRpcmVjdGlvbi5lbWl0KHsgZGF0YTogY29udGVudCB9KTtcbiAgfVxuXG4gIHNob3dTZWFyY2hCYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgaXNDb21wb25lbnRNZXJnZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZTtcbiAgfVxuICBlZGl0U2VjdGlvbigpIHtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0IGNhblNob3dNb2JpbGVGb290ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlO1xuICB9XG5cbiAgZ2V0IHNob3VsZFJlc2VydmVNb2JpbGVIZWFkZXJTcGFjZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5yZXNvbHZlZFN0aWNreVR5cGU7XG4gICAgaWYgKHR5cGUgPT09IFN0aWNreV9UeXBlLk5PTkUpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodHlwZSA9PT0gU3RpY2t5X1R5cGUuU1RJQ0tZX0FGVEVSX1NDUk9MTCkgcmV0dXJuIHRoaXMuaXNTY3JvbGxlZDtcbiAgICBpZiAodGhpcy5pc01vYmlsZSkgcmV0dXJuICF0aGlzLnNob3VsZFNob3dNb2JpbGVDYXRlZ29yeUhlYWRlcjtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93TW9iaWxlQ2F0ZWdvcnlIZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlICYmIHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5zaG93Q2F0ZWdvcnlNb2JpbGVIZWFkZXIoKSAmJiAodGhpcy5jYXRlZ29yeUxpc3Q/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gIH1cblxuICBnZXQgc2hvd01vYmlsZUhvbWVJY29uKCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIHJldHVybiAhKHVybC5pbmNsdWRlcyhcImNhcnRcIikgfHwgdXJsLmluY2x1ZGVzKFwicHJvZmlsZVwiKSB8fCB1cmwuaW5jbHVkZXMoXCJ3aXNobGlzdFwiKSk7XG4gIH1cbiAgZ2V0IGdldENhcnRJdGVtc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxDYXJ0SXRlbXM7XG4gIH1cbiAgZ2V0IGdldFdpc2hsaXN0SXRlbXNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFRvdGFsV2lzaGxpc3RJdGVtcztcbiAgfVxuICBnZXQgZ2V0Qm9va2luZ0l0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbEJvb2tpbmdJdGVtcztcbiAgfVxuICBnZXQgZ2V0Q2FydFRvdGFsQW1vdW50KCkge1xuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2FydEFtb3VudCgpKTtcbiAgICAvLyByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDYXJ0QW1vdW50KCk7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2FydFRvdGFsQW1vdW50O1xuICB9XG4gIGdldCBnZXRIZWFkZXJTdHlsaW5nKCk6IEhlYWRlcl9UeXBlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHlsZT8uc3R5bGluZztcbiAgfVxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIHRoaXMuc2NyZWVuV2lkdGggPCA0NzU7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xuICB9XG4gIGdldEtleXMob2JqZWN0OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIH1cbiAgZ2V0VmFsdWVzKG9iamVjdDogYW55KTogdW5rbm93bltdIHtcbiAgICBjb25zdCBrZXlzOiB1bmtub3duW10gPSBbXTtcbiAgICBvYmplY3QuZm9yRWFjaCgoa2V5OiBhbnkpID0+IGtleXMucHVzaChPYmplY3QudmFsdWVzKGtleSkpKTtcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQoa2V5cyldO1xuICB9XG4gIGdldCB1c2VyR2VuZGVyKCkge1xuICAgIGNvbnN0IHVzZXIgPSAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcik7XG4gICAgaWYgKHVzZXIpXG4gICAgICByZXR1cm4gdXNlci5nZW5kZXI7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZ2V0TmF2YmFyQnV0dG9uKCkge1xuICAgIGxldCBjb3VudDogbnVtYmVyID0gMDtcbiAgICBsZXQgcGFnZTogYW55W10gPSBbXVxuICAgIGZvciAobGV0IGJ1dHRvbiBvZiB0aGlzLmNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnMgfHwgW10pIHtcbiAgICAgIGlmIChbXG4gICAgICAgICdIb21lJyxcbiAgICAgICAgJ1Byb2R1Y3QgRGVzY3JpcHRpb24nLFxuICAgICAgICAnQ2FydCcsXG4gICAgICAgICdXaXNobGlzdCcsXG4gICAgICAgICdVc2VyIHByb2ZpbGUnLFxuICAgICAgICAnUHJvZHVjdCBMaXN0JyxcbiAgICAgICAgJ0NoZWNrb3V0JyxcbiAgICAgICAgJ0F1dGgnLFxuICAgICAgICAnUGF5bWVudCBWZXJpZmljYXRpb24nLFxuICAgICAgICAnTGlzdCBDYXRlZ29yeScsXG4gICAgICAgICdBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCdcbiAgICAgIF0uaW5jbHVkZXMoYnV0dG9uLmxhYmVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvdW50IDwgNiAmJiBidXR0b24uc2hvd0hlYWRlcikge1xuICAgICAgICBwYWdlLnB1c2goYnV0dG9uKTtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZTtcbiAgfVxuXG5cbiAgLy8gaXNTY3JvbGxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gIC8vIG9uV2luZG93U2Nyb2xsKCkge1xuICAvLyAgIHRoaXMuaXNTY3JvbGxlZCA9ICB3aW5kb3cuc2Nyb2xsWSA+IDUwO1xuICAvLyB9XG4gIHNldENvbG9yKCkge1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IDEzMDsgLy8gQWRqdXN0IHRoaXMgdGhyZXNob2xkIGFzIG5lZWRlZFxuICAgIGNvbnN0IHIgPSBwYXJzZUludCh0aGlzLmJhY2tncm91bmRJbmZvLmFjY2VudENvbG9yLnNsaWNlKDEsIDMpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KHRoaXMuYmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3Iuc2xpY2UoMywgNSksIDE2KTtcbiAgICBjb25zdCBiID0gcGFyc2VJbnQodGhpcy5iYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG5cbiAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcbiAgfVxuICBzaG93TGlzdDogYm9vbGVhbiA9IGZhbHNlXG4gIGRyb3Bkb3duTGVmdDogbnVtYmVyID0gMDtcbiAgZHJvcGRvd25Ub3A6IG51bWJlciA9IDA7XG4gIHNob3dDb2xsZWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuICBjYXRlZ29yeUxpc3Q6IGFueTtcbiAgY29sbGVjdGlvbkxpc3Q6IGFueTtcbiAgc2VsZWN0ZWRDYXRlZ29yeTogYW55O1xuICBzdG9yZUF2YWlhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGdldENhdGVnb3JpZXNIZWFkZXIoKSB7XG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRDYXRlZ29yaWVzSGVhZGVyRGF0YSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc3RvcmVBdmFpYWJsZSA9IHJlcz8uZGF0YT8uc3RvcmVBdmFpbGFibGU7XG4gICAgICB0aGlzLnNjaGVtZUF2YWlsYWJsZSA9IHJlcz8uZGF0YT8uc2NoZW1lc0F2YWlsYWJsZVxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSByZXM/LmRhdGE/LmNhdGVnb3J5RGV0YWlscztcbiAgICAgIHRoaXMuY29sbGVjdGlvbkxpc3QgPSByZXM/LmRhdGE/Lml0ZW1Db2xsZWN0aW9ucztcbiAgICB9KVxuICB9XG5cbiAgcmVzdHJpY3RJblBhZ2VzKCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgcGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgaWYgKHBhdGhuYW1lLmluY2x1ZGVzKCcvbG9naW4nKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXN0cmljdENhcnRCYXJJblBhZ2VzKCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgcGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgaWYgKHBhdGhuYW1lLmluY2x1ZGVzKCcvbG9naW4nKSB8fCBwYXRobmFtZS5pbmNsdWRlcygnL2NhcnQnKSB8fCBwYXRobmFtZS5pbmNsdWRlcygnL3dpc2hsaXN0JykgfHwgcGF0aG5hbWUuaW5jbHVkZXMoJy9kZXRhaWxzJykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc2NoZW1lQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2VcbiAgZ29Ub1N0b3JlcygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zdG9yZS1saXN0J10pO1xuICB9XG4gIE9iamVjdCA9IE9iamVjdFxuICBhcHBseUZpbHRlclRvTGlzdChvYmo6IGFueSwgdHlwZTogYW55KSB7XG4gICAgaWYgKHR5cGUgPT0gJ3ByaWNlJykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5TmFtZSwgbWluUHJpY2U6IG9iaj8ubWluUHJpY2UsIG1heFByaWNlOiBvYmo/Lm1heFByaWNlLCBwYWdlTm86IDEgfSB9KTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT0gJ2NvbGxlY3Rpb24nKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeT8uY2F0ZWdvcnlOYW1lLCBjb2xsZWN0aW9uczogb2JqPy5yZXBsYWNlQWxsKFwiIFwiLCAnXycpLCBwYWdlTm86IDEgfSB9KTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT0gJ2NvbGxlY3Rpb25zJykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNvbGxlY3Rpb25zOiBvYmo/LnJlcGxhY2VBbGwoXCIgXCIsICdfJyksIHBhZ2VObzogMSB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlckJ5Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5TmFtZSwgcGFnZU5vOiAxIH0gfSk7XG4gIH1cblxuICBzaG93UGluY29kZUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIHBpbmNvZGU6IGFueSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdwaW5jb2RlJykgPz8gXCJcIjtcbiAgZ2V0UGluY29kZTogc3RyaW5nID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSB8fCAnJztcbiAgcGluRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2V0UGluY29kZSgpIHtcbiAgICBpZiAodGhpcy5waW5jb2RlICYmIHRoaXMucGluY29kZT8ubGVuZ3RoID09IDYpIHtcbiAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKCdwaW5jb2RlJywgdGhpcy5waW5jb2RlKTtcbiAgICAgIHRoaXMuZ2V0UGluY29kZSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdwaW5jb2RlJykgfHwgJyc7XG4gICAgICB0aGlzLnBpbkVycm9yID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGluRXJyb3IgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNob3dMb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdvVG9TY2hlbWVzKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NjaGVtZS1lbnJvbGxtZW50J10pO1xuICB9XG5cbiAgZ2V0UkdCQShiZ0NvbG9yOiBhbnksIG9wYWNpdHk6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7b3BhY2l0eSAvIDEwMH0pYDtcbiAgfVxuXG4gIHNob3dDYXRlZ29yeU1vYmlsZUhlYWRlcigpIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgcmV0dXJuIHBhdGhuYW1lLmluY2x1ZGVzKCcvbGlzdCcpIHx8IHBhdGhuYW1lID09PSAnLycgfHwgcGF0aG5hbWUgPT09ICcnO1xuICB9XG5cbiAgYnlNZXRhbEFuZFN0b25lOiBhbnkgPSBbXG4gICAge1xuICAgICAgbmFtZTogJ0dvbGQnLFxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvMjJrdC1Hb2xkLTJ4LnBuZycsXG4gICAgICBzdGF0dXM6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnRGlhbW9uZCcsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9EaWFtb25kLTF4LnBuZycsXG4gICAgICBzdGF0dXM6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUGVhcmwnLFxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL3N0YXRpYy9pbWFnZXMvZGlzY292ZXJ5L3Jlc3BvbnNpdmUtaGFtYnVyZ2VyLW1lbnUvcHJvZHVjdHMtYW5kLXNlcnZpY2VzL3BlYXJsLTF4LnBuZycsXG4gICAgICBzdGF0dXM6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnR2Vtc3RvbmUnLFxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvR2Vtc3RvbmUtMXgucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdZZWxsb3cgR29sZCcsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9ZZWxsb3ctR29sZC0xeC5wbmcnLFxuICAgICAgc3RhdHVzOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1Jvc2UgR29sZCcsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9Sb3NlLUdvbGQtMXgucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdXaGl0ZSBHb2xkJyxcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L3doaXRlLUdvbGQtMXgucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9XG4gIF1cbiAgbmF2aWdhdGVMb2dpbigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKVxuICB9XG5cbiAgbWVnYU1lbnU6IGFueSA9IFtdXG4gIGZvb3Rlck1lbnU6IGFueSA9IFtdO1xuICBzZWxlY3RlZE1vYmlsZU1lbnU6IGFueSA9IG51bGw7XG5cbiAgc2VsZWN0TW9iaWxlTWVudShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9iaWxlTWVudSA9IGl0ZW07XG4gIH1cblxuICBnb0JhY2tNb2JpbGVNZW51KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gbnVsbDtcbiAgfVxuICBnZXRNZW51SXRlbXMoKSB7XG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRNZW51SXRlbXModGhpcy5jb250ZW50Py5tZW51SWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAgICB0aGlzLm1lZ2FNZW51ID0gcmVzLmRhdGEuZGF0YSB8fCBbXTtcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IHJlcz8uZGF0YT8uZGF0YSB8fCBbXTtcbiAgICAgIHRoaXMuZm9vdGVyTWVudSA9IG1lbnVJdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5ub3JtYWxpemVNZWdhTWVudUl0ZW0oaXRlbSkpO1xuICAgIH0sIGVyciA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVNZWdhTWVudUl0ZW0oaXRlbTogYW55KSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KGl0ZW0/LmNoaWxkcmVuKSA/IGl0ZW0uY2hpbGRyZW4gOiBbXTtcbiAgICBjb25zdCBwYWdlcyA9IGNoaWxkcmVuXG4gICAgICAubWFwKChjaGlsZDogYW55KSA9PiAoe1xuICAgICAgICBsYWJlbDogY2hpbGQ/LmxhYmVsID8/ICcnLFxuICAgICAgICBwYWdlSWQ6IGNoaWxkPy5wYWdlSWQgPz8gY2hpbGQ/LmlkID8/ICcnLFxuICAgICAgICByZWRpcmVjdGlvblVybDogY2hpbGQ/LnJlZGlyZWN0aW9uVXJsID8/IGNoaWxkPy5yZWRpcmVjdGlvbmFsVXJsID8/ICcnXG4gICAgICB9KSlcbiAgICAgIC5maWx0ZXIoKGNoaWxkOiBhbnkpID0+IGNoaWxkLmxhYmVsIHx8IGNoaWxkLnJlZGlyZWN0aW9uVXJsKTtcbiAgICBjb25zdCBmb2xkZXIgPSBpdGVtPy5mb2xkZXIgPz8gKHBhZ2VzLmxlbmd0aCA/IHsgZm9sZGVySWQ6IGl0ZW0/LmZvbGRlcklkID8/IGl0ZW0/LmlkID8/ICcnLCBwYWdlcyB9IDogdW5kZWZpbmVkKTtcblxuICAgIHJldHVybiB7IFxuICAgICAgLi4uaXRlbSwgXG4gICAgICBzaG93SGVhZGVyOiBpdGVtPy5zaG93SGVhZGVyID8/IHRydWUsXG4gICAgICByZWRpcmVjdGlvblVybDogaXRlbT8ucmVkaXJlY3Rpb25VcmwgPz8gaXRlbT8ucmVkaXJlY3Rpb25hbFVybCA/PyAnJyxcbiAgICAgIGZvbGRlclxuICAgIH07XG4gIH1cblxuICByZWRpcmVjdGlvbnNPZk1lbnUoZWxlOiBhbnkpIHtcbiAgICBpZiAoZWxlPy50eXBlID09PSAnSE9NRV9QQUdFJykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSBlbGU/LnJlZGlyZWN0aW9uYWxVcmwgPz8gZWxlPy5yZWRpcmVjdGlvblVybCA/PyAnJztcbiAgICBpZiAoIXJlZGlyZWN0VXJsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFVybCk7XG4gIH1cblxuICBvcGVuU3VibWVudUNoaWxkOiBhbnkgPSBudWxsO1xuXG4gIHRvZ2dsZVN1Yk1lbnUoY2hpbGQ6IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGQpIHtcbiAgICAgIHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9IGNoaWxkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRHJvcGRvd25Qb3NpdGlvbihldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCAhZXZlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duX21lbnUsIC5kcm9wZG93bl9tZW51X3N0YXRpYycpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgY29uc3QgdGFyZ2V0UmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSB0YXJnZXRSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQ7XG4gICAgdGhpcy5kcm9wZG93blRvcCA9IHRhcmdldFJlY3QuYm90dG9tIC0gY29udGFpbmVyUmVjdC50b3A7XG4gIH1cblxuICB0b2dnbGVDaGlsZE1lbnUoZWxlOiBhbnksIGV2ZW50PzogRXZlbnQpIHtcbiAgICB0aGlzLnVwZGF0ZURyb3Bkb3duUG9zaXRpb24oZXZlbnQpO1xuICAgIGlmICh0aGlzLnNob3dMaXN0ICYmIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9PT0gZWxlLmNoaWxkcmVuKSB7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENoaWxkTWVudShlbGUpO1xuICAgIH1cbiAgfVxuXG4gIHNldENoaWxkTWVudShlbGU6IGFueSkge1xuICAgIHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9IG51bGw7XG4gICAgaWYgKGVsZS5jaGlsZHJlbiAmJiBlbGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93TGlzdCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBlbGUuY2hpbGRyZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGw7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIGNsYXNzPVwidG90YWwtY29udGFpbmVyIHctMTAwXCIgW2NsYXNzLnotaW5kZXgtMTBdPVwiIWlzSGVhZGVyU3RpY2t5ICYmIGlzQ29tcG9uZW50TWVyZ2VkXCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbbmdDbGFzc109XCJ7J2JveC1zaGFkb3cnOiBpc0Vjb21tZXJjZVdlYnNpdGV9XCJcbiAgICBbY2xhc3MubWFyZ2luLWJvdHRvbV09XCJzaG91bGRSZXNlcnZlTW9iaWxlSGVhZGVyU3BhY2VcIj5cbiAgICA8ZGl2IFtzaW1wb1N0aWNreV09XCJyZXNvbHZlZFN0aWNreVR5cGVcIiAoc3RpY2t5U2Nyb2xsZWQpPVwib25TdGlja3lTY3JvbGxlZCgkZXZlbnQpXCJcbiAgICAgIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBjbGFzcz1cInctMTAwXCIgI2NoaWxkQ29udGFpbmVyXG4gICAgICBbY2F0ZWdvcnlIZWFkZXJdPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGNhdGVnb3J5TGlzdD8ubGVuZ3RoID4gMCAmJiAhaXNNb2JpbGUgJiYgIXNob3dDYXRlZ29yeU1vYmlsZUhlYWRlcigpXCJcbiAgICAgIHNpbXBvSG92ZXIgW2NsYXNzLmJnLXRyYW5zcGFyZW50XT1cImlzQ29tcG9uZW50TWVyZ2VkICYmICFpc1Njcm9sbGVkICYmICFpc01vYmlsZVwiXG4gICAgICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbaWRdPVwiZGF0YT8uaWRcIiBbY2xhc3MuZHJvcGRvd24tb3Blbl09XCJzaG93TGlzdFwiPlxuICAgICAgPCEtLSBbY2xhc3MuYmFja2dyb3VuZC1wb3NpdGlvbl09XCJpc0NvbXBvbmVudE1lcmdlZCAmJiBiYWNrZ3JvdW5kSW5mbz8uc2hvd0ltYWdlXCIgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmhlYWRsaW5lPy5kaXNwbGF5XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHNpbXBvLW1vdmluZy10ZXh0IFtlZGl0XT1cImZhbHNlXCIgW2RlbGV0ZV09XCJmYWxzZVwiIFtkYXRhXT1cImRhdGFcIj48L3NpbXBvLW1vdmluZy10ZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmNvdW50ZG93bj8uZGlzcGxheVwiPlxuICAgICAgICA8c2ltcG8tY291bnRkb3duLWJhbm5lciBbZGF0YV09XCJkYXRhPy5jb250ZW50Py5jb3VudGRvd25CYW5uZXJcIiBbZWRpdF09XCJmYWxzZVwiIFtkZWxldGVdPVwiZmFsc2VcIlxuICAgICAgICAgIFtpc0hlYWRlclJlbmRlcmVyXT1cInRydWVcIj5cbiAgICAgICAgPC9zaW1wby1jb3VudGRvd24tYmFubmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjEnICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyMVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjInICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyMlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjMnICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyM1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjQnICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyNFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCIgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCJcbiAgICAgICAgW3NpbXBvTGF5b3V0XT1cInNjcmVlbldpZHRoID4gNDc1ID8gc3R5bGVzTGF5b3V0IDogdW5kZWZpbmVkXCIgW2lzSGVhZGVyXT1cInRydWVcIiBbaWRdPVwiZGF0YT8uaWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21tZXJjZV9oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBteC0yIG1iLTIgdy05NlwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgaXNFY29tbWVyY2VXZWJzaXRlICYmICFyZXN0cmljdENhcnRCYXJJblBhZ2VzKClcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBmb3IgaXRlbXNcIiBhcmlhLWxhYmVsPVwiU2VhcmNoIFByb2R1Y3RcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIndhaXRCZWZvcmVTZWFyY2goKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXInIDogJzFweCBzb2xpZCAnICsgYWNjZW50Q29sb3J9XCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImgtMTAwXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBzdHlsZT8uYmFja2dyb3VuZD8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiAhaXNNb2JpbGUgJiYgZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ01FR0FfTUVOVSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhdGVnb3JpZXNIZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKCkgJiYgZGF0YT8uc3R5bGVzPy5lbmFibGVIZWFkZXJDYXJvdXNlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUNhdGVnb3J5SGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiBpc01vYmlsZSAmJiAhcmVzdHJpY3RJblBhZ2VzKClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlRm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+IC0tPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTiAmJiBpc0Z1bGxTY3JlZW5NZW51T3BlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmdWxsU2NyZWVuTWVudVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5CT1RUT01fU1RJQ0tZICYmIGlzTW9iaWxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvdHRvbVN0aWNreU5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlcjFUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcjFcIj5cbiAgICA8ZGl2IFtjbGFzcy53LTE1XT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgW2NsYXNzLnctNDBdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA8PSA0NzVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCIhaXNNb2JpbGVcIiBbc3R5bGUud2lkdGguJV09XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyA5NCA6ICcnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IGVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXIyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXIxXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCIhaXNNb2JpbGVcIiBbc3R5bGUud2lkdGguJV09XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyA5MyA6ICcnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiIWlzRWNvbW1lcmNlV2Vic2l0ZSA/IGJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCIgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlcjNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcjFcIj5cbiAgICA8ZGl2IFtjbGFzcy53LTE1XT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgW2NsYXNzLnctNDBdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA8PSA0NzVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiIWlzRWNvbW1lcmNlV2Vic2l0ZSA/IGJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIEhBTUJVUkdFUiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiXG4gICAgICBkYXRhLWJzLXRvZ2dsZT1cIm9mZmNhbnZhc1wiIGRhdGEtYnMtdGFyZ2V0PVwiI29mZmNhbnZhc1JpZ2h0XCIgYXJpYS1jb250cm9scz1cIm9mZmNhbnZhc1JpZ2h0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gRlVMTCBTQ1JFRU4gLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyNFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IGVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+IDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCIgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9nb1NlY3Rpb25UZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxuICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb24gJiYgY29udGVudD8ubG9nbz8udGV4dD8udXJsXCI+XG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemUgKyA4MFwiIGxvYWRpbmc9XCJsYXp5XCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cbiAgICAgIDxiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtbGctY2VudGVyIGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPiAtLT5cbiAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIiBbc3R5bGUud2lkdGguJV09XCJzY3JlZW5XaWR0aCA+IDQ3NSB8fCAoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgPCA1MCA/IGNvbnRlbnQ/LmxvZ28/LnNpemUgOiBcbiAgICAoKGNvbnRlbnQ/LmxvZ28/LnNpemUgPj0gNjAgICYmIGNvbnRlbnQ/LmxvZ28/LnNpemUgPD0gMTAwKSA/ICgyMCkgOiAoKGNvbnRlbnQ/LmxvZ28/LnNpemUgfHwgMTApIC0gMTApKVwiXG4gICAgW2NsYXNzLnctNzVdPVwic2NyZWVuV2lkdGggPCA0NzVcIiBsb2FkaW5nPVwibGF6eVwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCJcbiAgICAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIj5cbiAgPCEtLSA8L2Rpdj4gLS0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VMaW5rc1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdiBwYWdlTGlua3NcIiBbbmdDbGFzc109XCJ7J2FsaWduLWl0ZW1zLWNlbnRlcicgOiAhaXNNb2JpbGV9XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNjcmVlbldpZHRoID4gNDc1OyBlbHNlIHBhZ2VMaW5rc0RlZmF1bHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bl9tZW51X3N0YXRpYyB3LTEwMFwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsOyBvcGVuU3VibWVudUNoaWxkID0gbnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtbmF2LXNjcm9sbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTWVudVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXRhYi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRkLXRhYlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kZC10YWItYWN0aXZlXT1cInNob3dMaXN0ICYmIHNlbGVjdGVkQ2F0ZWdvcnkgPT09IGl0ZW0/LmNoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPyB0b2dnbGVDaGlsZE1lbnUoaXRlbSwgJGV2ZW50KSA6IHJlZGlyZWN0aW9uc09mTWVudShpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCIgW3N0eWxlLi0tYm9yZGVyLWNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57e2l0ZW0/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBweFwiIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjcwNzEgMTQuNzA3MUMxMi4zMTY2IDE1LjA5NzYgMTEuNjgzNCAxNS4wOTc2IDExLjI5MjkgMTQuNzA3MUw2LjI5Mjg5IDkuNzA3MTFDNS45MDIzNyA5LjMxNjU4IDUuOTAyMzcgOC42ODM0MiA2LjI5Mjg5IDguMjkyODlDNi42ODM0MiA3LjkwMjM3IDcuMzE2NTggNy45MDIzNyA3LjcwNzExIDguMjkyODlMMTIgMTIuNTg1OEwxNi4yOTI5IDguMjkyODlDMTYuNjgzNCA3LjkwMjM3IDE3LjMxNjYgNy45MDIzNyAxNy43MDcxIDguMjkyODlDMTguMDk3NiA4LjY4MzQyIDE4LjA5NzYgOS4zMTY1OCAxNy43MDcxIDkuNzA3MTFMMTIuNzA3MSAxNC43MDcxWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1wYW5lbFwiICpuZ0lmPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeT8ubGVuZ3RoXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCIgW3N0eWxlLnRvcC5weF09XCJkcm9wZG93blRvcFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1pdGVtXCIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkQ2F0ZWdvcnlcIiBbY2xhc3Mub3Blbi1zdWJtZW51XT1cIm9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcbiAgICAgICAgICAgIChjbGljayk9XCIhY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPyByZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpIDogdG9nZ2xlU3ViTWVudShjaGlsZCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRkLWl0ZW0tYXJyb3dcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoXCI+JiM4MjUwOzwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Ym1lbnVcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoICYmIG9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Yi1pdGVtXCIgKm5nRm9yPVwibGV0IHN1YiBvZiBjaGlsZD8uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7c3ViPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNwYWdlTGlua3NEZWZhdWx0PlxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTWVudVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93XCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShpdGVtKVwiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgaXRlbT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYXdlci1yb3ctY2hldnJvblwiICpuZ0lmPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2Rpdj5cblxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5IG10LTBcIiBbbmdDbGFzc109XCJ7J3ctMTAwIGp1c3RpZnktc3BhY2UtYXJvdW5kJzogaXNNb2JpbGV9XCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWN0aW9uPy5idXR0b25zXCI+XG4gICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIj48L2FwcC1idXR0b24tZWxlbWVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRpY19sb2dpbl9idG4gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZUxvZ2luKClcIiAqbmdJZj1cIihwYXNzYm9va0FwcFN0YXR1cyB8fCBhcHBvaW50bWVudEFwcFN0YXR1cykgJiYgIWxvZ2dlZEluXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPlxuICAgICAgICA8bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICBMb2dpblxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA4cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiXG4gICAgICAgICpuZ0lmPVwibG9nZ2VkSW4gJiYgIWlzTW9iaWxlXCI+XG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInVzZXJHZW5kZXIgfCBnZW5kZXJJY29uXCIgc3R5bGU9XCJoZWlnaHQ6IDI3cHg7XCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxidXR0b24gY2xhc3M9XCJtb2JpbGVMb2dpbkJ1dHRvblwiICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGlzTW9iaWxlICYmICFsb2dnZWRJblwiIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiXG4gICAgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdMT0dJTicpXCI+XG4gICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEzQzE0Ljc2MTQgMTMgMTcgMTAuNzYxNCAxNyA4QzE3IDUuMjM4NTggMTQuNzYxNCAzIDEyIDNDOS4yMzg1OCAzIDcgNS4yMzg1OCA3IDhDNyAxMC43NjE0IDkuMjM4NTggMTMgMTIgMTNaXCJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjAgMjFDMjAgMTguODc4MyAxOS4xNTcxIDE2Ljg0MzQgMTcuNjU2OSAxNS4zNDMxQzE2LjE1NjYgMTMuODQyOSAxNC4xMjE3IDEzIDEyIDEzQzkuODc4MjcgMTMgNy44NDM0NCAxMy44NDI5IDYuMzQzMTUgMTUuMzQzMUM0Ljg0Mjg1IDE2Ljg0MzQgNCAxOC44NzgzIDQgMjFcIlxuICAgICAgICBzdHJva2U9XCIjMzMzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAgICZuYnNwO1xuICAgIExvZ2luPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJtb2JpbGVMb2dpbkJ1dHRvblwiICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGlzTW9iaWxlICYmIGxvZ2dlZEluXCIgW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcbiAgICAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiPlxuICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMiAxM0MxNC43NjE0IDEzIDE3IDEwLjc2MTQgMTcgOEMxNyA1LjIzODU4IDE0Ljc2MTQgMyAxMiAzQzkuMjM4NTggMyA3IDUuMjM4NTggNyA4QzcgMTAuNzYxNCA5LjIzODU4IDEzIDEyIDEzWlwiXG4gICAgICAgIHN0cm9rZT1cIiMzMzMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTIwIDIxQzIwIDE4Ljg3ODMgMTkuMTU3MSAxNi44NDM0IDE3LjY1NjkgMTUuMzQzMUMxNi4xNTY2IDEzLjg0MjkgMTQuMTIxNyAxMyAxMiAxM0M5Ljg3ODI3IDEzIDcuODQzNDQgMTMuODQyOSA2LjM0MzE1IDE1LjM0MzFDNC44NDI4NSAxNi44NDM0IDQgMTguODc4MyA0IDIxXCJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgICAmbmJzcDtBY2NvdW50PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vYmlsZUZvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiY2FydC1mb290ZXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCJcbiAgICAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50ID4gMCAmJiAhcmVzdHJpY3RDYXJ0QmFySW5QYWdlcygpXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBweC0zIHB5LTIgaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb3VudCBmdy1ib2xkXCI+XG4gICAgICAgIHt7IGdldENhcnRJdGVtc0NvdW50ID8/IDMgfX0ge3sgZ2V0Q2FydEl0ZW1zQ291bnQgPiAxID8gJ2l0ZW1zJyA6ICdpdGVtJyB9fSBpbiBjYXJ0XG4gICAgICAgIDwhLS0gVG90YWwgOiDigrl7eyBnZXRDYXJ0VG90YWxBbW91bnQgfX0gLS0+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGZ3LWJvbGRcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxuICAgICAgICBWaWV3IENhcnQgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCI+YXJyb3dfZm9yd2FyZDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vYmlsZS1mb290ZXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+aG9tZTwvbWF0LWljb24+XG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+SG9tZTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5ncmlkX29uPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5TaG9wPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJnb1RvV2lzaGxpc3QoKVwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5mYXZvcml0ZV9ib3JkZXI8L21hdC1pY29uPlxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiPnt7Z2V0V2lzaGxpc3RJdGVtc0NvdW50fX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5zaG9wcGluZ19jYXJ0PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5DYXJ0PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlY29tbWVyY2VCdXR0b25zVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwci0wIGQtZmxleCBwb3NpdGlvbi1yZWxhdGl2ZSBnYXAtMTAgdy0xMDBcIlxuICAgIFtzdHlsZS5mbGV4RGlyZWN0aW9uXT1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0JyA/ICdyb3ctcmV2ZXJzZScgOiAnJ1wiPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInNlYXJjaC1pY29uXCIgKGNsaWNrKT1cInNob3dTZWFyY2hCYXIgPSAhc2hvd1NlYXJjaEJhclwiPlxuICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTc1IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBbbmdDbGFzc109XCJ7J2p1c3RpZnktY29udGVudC1jZW50ZXInIDogIXBhc3Nib29rQXBwU3RhdHVzfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctNzUgbWwtMlwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIEZvciBJdGVtc1wiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwid2FpdEJlZm9yZVNlYXJjaCgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9XCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCI+XG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJhbmltYXRlZC1wbGFjZWhvbGRlciBwb3NpdGlvbi1hYnNvbHV0ZVwiIFxuICAgICAgICAgIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGVQbGFjZWhvbGRlclwiXG4gICAgICAgICAgKm5nSWY9XCJzdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0Lmxlbmd0aCA+IDEgJiYgc3R5bGU/LnNtYXJ0U2VhcmNoQmFyXCI+XG4gICAgICAgICAge3sgY3VycmVudFBsYWNlaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj4gLS0+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImgtMTAwXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09PSAnU29saWQnID8gICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyAgYmFja2dyb3VuZEluZm8/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknfVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyIHB5LTEgcHgtMyBiLTEgc3RvcmVzXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJnb1RvU2NoZW1lcygpXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0UkdCQShiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgLCAxMClcIiAqbmdJZj1cInBhc3Nib29rQXBwU3RhdHVzXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgICAgeG1sbnM6c3ZnanM9XCJodHRwOi8vc3ZnanMuZGV2L3N2Z2pzXCIgaWQ9XCJMYXllcl8yXCIgdmlld0JveD1cIjAgMCA2MCA2MFwiIGRhdGEtbmFtZT1cIkxheWVyIDJcIiB3aWR0aD1cIjMwXCJcbiAgICAgICAgICBoZWlnaHQ9XCIzMFwiIHZlcnNpb249XCIxLjFcIj5cbiAgICAgICAgICA8ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdHJhbnNmb3JtPVwibWF0cml4KDEsMCwwLDEsMCwwKVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIm0xNC4zNiA0Ni42Ni41MS05Ljg2LTExLjkzLTcuMTYtMS45NCA4LjQzelwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJtMTcuMTcgMzguMXMwLS4wMi4wMi0uMDNjMCAwIDAtLjAyLjAyLS4wMi4wNC0uMDUuMS0uMDguMTUtLjExLjAyLS4wMS4wMy0uMDMuMDUtLjA0bDQuNjYtMS45NGgtLjAycy0xLjg3LTEuMjEtMS44Ny0xLjIxbC0zLjE4IDEuNTctMS4wNy41My0uNDMgOC4zMiAxLjU4LTYuOWMuMDEtLjA2LjA1LS4xMi4wOS0uMTd6XCJcbiAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIm0xOS4xNCAzNC4wOC02LjI3LTQuMDRjLS4xOS0uMTItLjI4LS4zNC0uMjMtLjU2bDEuMDgtNC43Mi05Ljk2IDQuMTQgMTEuNjggNy4wMXpcIlxuICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTMwLjkzIDQ2LjQyLS41IDkuNzkgMzIuNTctMTguNjctMS4yMS02LjQtMjMuMTYgMTEuNDZ6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIm0xNiA0Ny42NSAxMy4zOCA4LjU4LjQ5LTkuODYtMTEuOTMtNy4xN3pcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwibTI3Ljg1IDM5LjM0czAgMC0uMDEgMGMwIDAgMCAwLS4wMSAwLS4wOC4wNC0uMTYuMDYtLjI0LjA2LS4wNSAwLS4xLS4wMy0uMTUtLjA0LS4wNC0uMDEtLjA4LS4wMS0uMTEtLjAzbC00LjE2LTIuNjctNC4zNyAxLjgyIDExLjY4IDcuMDEgMzAuNC0xNS4wNS0xMC43MS0zLjg4LTIyLjI4IDEyLjc4elwiXG4gICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiYWNjZW50Q29sb3JcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIm0yOC4yNiAzNi4wMS0uMSAxLjkzIDMyLjU4LTE4LjY5LTEuMjItNi4zOS0zMC44NiAxNS4yOHpcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTI3LjYxIDI4LjA5LTExLjkzLTcuMTYtMS45NCA4LjQzIDEzLjM2IDguNTh6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIm01OC41NyAxMi4xNS0xMi4xLTQuMzgtMjkuOTcgMTIuNDMgMTEuNjggN3pcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIj5TY2hlbWVzPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0b3JlcyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHB5LTIgcHgtM1wiIChjbGljayk9XCJnb1RvU3RvcmVzKClcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJzdG9yZUF2YWlhYmxlXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0UkdCQShiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgLCAxMClcIj5cbiAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5zdG9yZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5TdG9yZXM8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwaW4tdGV4dFwiIChtb3VzZWVudGVyKT1cInNob3dQaW5jb2RlSW5wdXQgPSB0cnVlO3Nob3dMb2dpbiA9IGZhbHNlXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiIWdldFBpbmNvZGVcIj5FbnRlclxuICAgICAgICBQaW5jb2RlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwaW4tdGV4dFwiIChtb3VzZWVudGVyKT1cInNob3dQaW5jb2RlSW5wdXQgPSB0cnVlOztzaG93TG9naW4gPSBmYWxzZVwiXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAqbmdJZj1cImdldFBpbmNvZGUgJiYgZ2V0UGluY29kZS5sZW5ndGggPT0gNlwiPnt7XCJEZWxpdmVyaW5nIHRvOiBcIiArXG4gICAgICAgIGdldFBpbmNvZGV9fTwvZGl2PlxuXG4gICAgICA8IS0tIChtb3VzZWxlYXZlKT1cInNob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInBpbmNvZGUtY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd1BpbmNvZGVJbnB1dFwiIChtb3VzZWxlYXZlKT1cInNob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxuICAgICAgICAgIFlvdXIgUElOIENvZGUgdW5sb2Nrc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTQgcGluY29kZS10ZXh0XCI+XG4gICAgICAgICAgRmFzdGVzdCBkZWxpdmVyeSBkYXRlLCBUcnktYXQtSG9tZSBhdmFpbGFiaWxpdHksXG4gICAgICAgICAgTmVhcmVzdCBzdG9yZSBhbmQgSW4tc3RvcmUgZGVzaWduIVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG10LTIgYnItNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTNcIlxuICAgICAgICAgIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwicGluRXJyb3JcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiUGluY29kZVwiIGFyaWEtbGFiZWw9XCJQaW5jb2RlXCIgWyhuZ01vZGVsKV09XCJwaW5jb2RlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy03NSBwLTBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc3ViLXRleHQgZi0xMSB3LTI1IHRleHQtZW5kIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldFBpbmNvZGUoKVwiPlNVQk1JVDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMiBmLTExXCIgKm5nSWY9XCJwaW5FcnJvclwiPlxuICAgICAgICAgIFBsZWFzZSBlbnRlciBhIHZhbGlkIHBpbmNvZGVcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDVweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvRmF2KClcIj5cbiAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPmZhdm9yaXRlPC9tYXQtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID8gIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgYmFja2dyb3VuZEluZm8/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknICwgJ2NvbG9yJyA6IHNldENvbG9yKCl9XCI+XG4gICAgICAgICAge3tnZXRXaXNobGlzdEl0ZW1zQ291bnR9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxuICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmNvbG9yXCI+c2hvcHBpbmdfY2FydDwvbWF0LWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjYXJ0SXRlbUNvdW50XCIgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID8gIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgYmFja2dyb3VuZEluZm8/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknICwgJ2NvbG9yJyA6IHNldENvbG9yKCl9XCI+XG4gICAgICAgICAge3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbkJ1dHRvblwiICpuZ0lmPVwiIWxvZ2dlZEluXCIgKG1vdXNlZW50ZXIpPVwic2hvd0xvZ2luID0gdHJ1ZTtzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjI3XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTIuMTIgMTIuNzhDMTIuMDUgMTIuNzcgMTEuOTYgMTIuNzcgMTEuODggMTIuNzhDMTAuMTIgMTIuNzIgOC43MTk5NyAxMS4yOCA4LjcxOTk3IDkuNTA5OThDOC43MTk5NyA3LjY5OTk4IDEwLjE4IDYuMjI5OTggMTIgNi4yMjk5OEMxMy44MSA2LjIyOTk4IDE1LjI4IDcuNjk5OTggMTUuMjggOS41MDk5OEMxNS4yNyAxMS4yOCAxMy44OCAxMi43MiAxMi4xMiAxMi43OFpcIlxuICAgICAgICAgICAgZmlsbD1cIiMyOTJEMzJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xOC43NCAxOS4zOEMxNi45NiAyMS4wMSAxNC42IDIyIDEyIDIyQzkuNDAwMDEgMjIgNy4wNDAwMSAyMS4wMSA1LjI2MDAxIDE5LjM4QzUuMzYwMDEgMTguNDQgNS45NjAwMSAxNy41MiA3LjAzMDAxIDE2LjhDOS43NzAwMSAxNC45OCAxNC4yNSAxNC45OCAxNi45NyAxNi44QzE4LjA0IDE3LjUyIDE4LjY0IDE4LjQ0IDE4Ljc0IDE5LjM4WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzI5MkQzMlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTEyIDIyQzE3LjUyMjggMjIgMjIgMTcuNTIyOCAyMiAxMkMyMiA2LjQ3NzE1IDE3LjUyMjggMiAxMiAyQzYuNDc3MTUgMiAyIDYuNDc3MTUgMiAxMkMyIDE3LjUyMjggNi40NzcxNSAyMiAxMiAyMlpcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDwvc3ZnPiA8IS0tIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsIGZzLTZcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiPkxvZ2luPC9zcGFuPiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd0xvZ2luXCIgKG1vdXNlbGVhdmUpPVwic2hvd0xvZ2luID0gZmFsc2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgbWItMiBmLTE4IGZ3LWJvbGRcIj5cbiAgICAgICAgICBZb3VyIEFjY291bnRcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB0ZXh0LWNlbnRlciBmLTE0XCI+XG4gICAgICAgICAgQWNjZXNzIGFjY291bnQgJiBtYW5hZ2UgeW91ciBvcmRlcnMuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWNvbnRhaW5lciB3LTEwMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMyBnYXAtM1wiPlxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdTSUdOVVAnKVwiIGNsYXNzPVwidy01MCB0ZXh0LWNlbnRlciBzaWduLWJ0biBib3JkZXItMFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIj5TaWduIFVwPC9kaXY+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ0xPR0lOJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG5cIlxuICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5Mb2cgSW48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCJcbiAgICAgICAgKm5nSWY9XCJsb2dnZWRJblwiPlxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAyN3B4O1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8ZGl2PiAtLT5cbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoKVwiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJzZWN0aW9uSWQrYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uU3R5bGVcIiBbY29sb3JdPVwiY29sb3JcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIiBbYnV0dG9uRGF0YV09XCJidXR0b25Db250ZW50XCI+e3tidXR0b25Db250ZW50Py5sYWJlbH19PC9idXR0b24+IC0tPlxuICAgIDwhLS0gPC9kaXY+IC0tPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbmF2YmFyTGlua3NUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBmcy02IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleFwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tbGVmdDogMjVweDtcIlxuICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNzY4XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXROYXZiYXJCdXR0b25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cbiAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJpdGVtXCIgW3NlbGVjdGVkU3R5bGVdPVwic3R5bGU/Lm5hdmlnYXRpb25TdHlsZVwiXG4gICAgICAgICAgW2J1dHRvblN0eWxlXT1cInN0eWxlPy5uYXZiYXJCdXR0b25TdHlsZVwiIFtiZ0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBnZXREcm9wZG93bkxpbmtzOyBsZXQgaWR4ID0gaW5kZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5lY29tbGlua3M/LltsaW5rXT8ubGVuZ3RoIFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cIm1hdC1idG4gZHJvcGRvd24tdG9nZ2xlXCIgdHlwZT1cImJ1dHRvblwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiBpZD1cImxpbmtcIlxuICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICB7e2xpbmsgfCB1cHBlcmNhc2V9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwibGlua1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IG1lbnUgb2YgZ2V0VmFsdWVzKGNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlcihtZW51LCBsaW5rKVwiPnt7bWVudX19PC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIj5cbiAgPGRpdiAjbW9iaWxlT2ZmY2FudmFzIGNsYXNzPVwib2ZmY2FudmFzXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwib2ZmY2FudmFzUmlnaHRcIiBhcmlhLWxhYmVsbGVkYnk9XCJvZmZjYW52YXNSaWdodExhYmVsXCJcbiAgICBkYXRhLWJzLWJhY2tkcm9wPVwiZmFsc2VcIlxuICAgIFtuZ0NsYXNzXT1cInsnb2ZmY2FudmFzLWVuZCcgOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjEnIHx8IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMycsICdvZmZjYW52YXMtc3RhcnQnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjInIHx8IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyNCd9XCI+XG5cbiAgICA8IS0tIFRPUCBCQVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci10b3BiYXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWxvZ29cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcmF3ZXItY2xvc2UtYnRuXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCIgYXJpYS1sYWJlbD1cIkNsb3NlIG1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQk9EWSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwib2ZmY2FudmFzLWJvZHkgZHJhd2VyLWJvZHlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZU1lbnVMaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRElWSURFUiArIFFVSUNLIEFDVElPTlMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1mb290ZXJcIiAqbmdJZj1cImFjdGlvbj8uZGlzcGxheSAmJiBhY3Rpb24/LmJ1dHRvbnM/Lmxlbmd0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kaXZpZGVyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiYWNjZW50Q29sb3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWFjdGlvblwiICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWN0aW9uPy5idXR0b25zXCI+XG4gICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgICBbZWRpdF09XCJlZGl0XCIgW2NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbYnV0dG9uSWRdPVwiYnV0dG9uLmlkXCJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbaXNGdWxsV2lkdGhdPVwidHJ1ZVwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Vjb21Qcm9maWxlVGVtcGxhdGU+XG4gIDwhLS0gPG1hdC1pY29uIGNsYXNzPVwiaC0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJyLTUwIGZzLTIyIHB4LTMgcHktMVwiXG4gICAgKGNsaWNrKT1cInNob3dTZWFyY2hCYXJNb2JpbGUgPSAhc2hvd1NlYXJjaEJhck1vYmlsZVwiXG4gICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID8gICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxuICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uY29sb3JcIj5zZWFyY2g8L21hdC1pY29uPiAtLT5cblxuXG4gIDwhLS0gPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbW9iLWZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2R1Y3RcIiBhcmlhLWxhYmVsPVwiU2VhcmNoIFByb2R1Y3RcIlxuICAgICpuZ0lmPVwic2hvd1NlYXJjaEJhck1vYmlsZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIndhaXRCZWZvcmVTZWFyY2goKVwiXG4gICAgW25nU3R5bGVdPVwieydib3JkZXInIDogJzFweCBzb2xpZCAnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yfVwiPiAtLT5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA4cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiXG4gICAgKm5nSWY9XCJsb2dnZWRJblwiPlxuICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInVzZXJHZW5kZXIgfCBnZW5kZXJJY29uXCIgc3R5bGU9XCJoZWlnaHQ6IDI3cHg7XCI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2JpbGVMb2dvU2VjdGlvblRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWNlbnRlciBjdXJzb3ItcG9pbnRlciBoLTEwMFwiXG4gICAgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxuICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb24gJiYgY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgY2xhc3M9XCJoLTEwMFwiPlxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIGNsYXNzPVwiaC0xMDBcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxuICAgICAgPGI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+IC0tPlxuICA8aW1nIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIiBjbGFzcz1cImgtMTAwXCIgbG9hZGluZz1cImxhenlcIlxuICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XG4gIDwhLS0gPC9kaXY+IC0tPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYXRlZ29yaWVzSGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy13cmFwcGVyXCIgKm5nSWY9XCIhaXNNb2JpbGVcIiAobW91c2VsZWF2ZSk9XCJzaG93TGlzdCA9IGZhbHNlOyBzaG93Q29sbGVjdGlvbnMgPSBmYWxzZVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImJsdXItb3ZlcmxheVwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd0xpc3QgfHwgc2hvd0NvbGxlY3Rpb25zXCI+PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkZXIgZC1mbGV4IGdhcC0zIHB5LTIgcG9zaXRpb24tcmVsYXRpdmVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5IGN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cInNldENoaWxkTWVudShlbGUpXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShlbGUpXCI+XG4gICAgICAgIHt7ZWxlPy5sYWJlbH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gW2NsYXNzLmhpZGUtZHJvcGRvd25dPVwiIXNob3dMaXN0XCIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtY2F0ZWdvcnlcIiBbY2xhc3Muc2hvdy1kcm9wZG93bl09XCJzaG93TGlzdFwiIFtjbGFzcy5oaWRlLWRyb3Bkb3duXT1cIiFzaG93TGlzdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBoLTEwMCBtZWdhLW1lbnUtc2Nyb2xsLXJvd1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRDYXRlZ29yeTsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lZ2EtbWVudS1zY3JvbGwtY29sXCIgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgICBlbGU/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoZWxlLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgZWxlLnR5cGU9PSdDQVRFR09SSUVTJykgPyAnY29sLTMnIDogJ2NvbC0yJyxcbiAgICAgICAgICAgICAgZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiAhbGFzdCA/ICdoYXMtcmlnaHQtYm9yZGVyJyA6ICcnXG4gICAgICAgICAgICBdXCI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoZWxlLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgZWxlLnR5cGU9PSdDQVRFR09SSUVTJyApXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc3VibWVudS1jYXJkIG1iLTNcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIiAqbmdJZj1cImVsZS5pbWFnZVVybFwiPlxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJlbGUuaW1hZ2VVcmxcIiBbYWx0XT1cImVsZT8ubGFiZWxcIiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWltYWdlIGNvbGxlY3Rpb25JbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcHRpb25cIj57e2VsZT8ubGFiZWwgfCB1cHBlcmNhc2V9fTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaGVhZGVyIG1iLTMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIiAqbmdJZj1cIiFlbGUuaW1hZ2VVcmxcIj5cbiAgICAgICAgICAgICAgICB7e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1oZWFkZXIgbWItMyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICB7e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlPy5jaGlsZHJlbiAmJiBlbGU/LmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMyBsaXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBlbGU/LmNoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJjaGlsZD8ubG9nb1VybFwiIFtzcmNdPVwiY2hpbGQ/LmxvZ29VcmxcIiBbYWx0XT1cImNoaWxkPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZWdhLW1lbnUtY2hpbGQtbG9nb1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj57e2NoaWxkPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoaWxkPy5kZXNjcmlwdGlvblwiIGNsYXNzPVwibWVnYS1tZW51LWNoaWxkLWRlc2NcIj57e2NoaWxkPy5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2JpbGVNZW51TGlzdFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtY29udGFpbmVyXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvd3NcIiAqbmdJZj1cIiFzZWxlY3RlZE1vYmlsZU1lbnVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93XCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudVwiXG4gICAgICAgIChjbGljayk9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPyBzZWxlY3RNb2JpbGVNZW51KGVsZSkgOiByZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiXG4gICAgICAgIFthdHRyLmRhdGEtYnMtZGlzbWlzc109XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPyBudWxsIDogJ29mZmNhbnZhcydcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmF3ZXItcm93LWxhYmVsXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7IGVsZT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYXdlci1yb3ctY2hldnJvblwiICpuZ0lmPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsXCIgKm5nSWY9XCJzZWxlY3RlZE1vYmlsZU1lbnVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsLWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7c2VsZWN0ZWRNb2JpbGVNZW51Py5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsLXNlY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkTW9iaWxlTWVudT8uY2hpbGRyZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRldGFpbC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoY2hpbGQudHlwZT09J0NPTExFQ1RJT05TJyB8fCBjaGlsZC50eXBlPT0nQ0FURUdPUklFUycgKVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FyZFwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkLmltYWdlVXJsXCI+XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNoaWxkLmltYWdlVXJsXCIgW2FsdF09XCJjaGlsZD8ubGFiZWxcIiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWltYWdlIGNvbGxlY3Rpb25JbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcHRpb25cIj57e2NoaWxkPy5sYWJlbCB8IHVwcGVyY2FzZX19PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhKGNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoID09IDAgJiYgKGNoaWxkLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgY2hpbGQudHlwZT09J0NBVEVHT1JJRVMnICkgJiYgY2hpbGQuaW1hZ2VVcmwpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93IGRyYXdlci1yb3ctLXN1YlwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCI+XG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImNoaWxkPy5sb2dvVXJsXCIgW3NyY109XCJjaGlsZD8ubG9nb1VybFwiIFthbHRdPVwiY2hpbGQ/LmxhYmVsXCIgY2xhc3M9XCJtZWdhLW1lbnUtY2hpbGQtbG9nb1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmF3ZXItcm93LWxhYmVsXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7IGNoaWxkPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtZ3JpZFwiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWNoaXBcIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKVwiXG4gICAgICAgICAgICAgICAgICBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIj5cbiAgICAgICAgICAgICAgICAgIHt7c3ViPy5sYWJlbCB8IHRpdGxlY2FzZX19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vYmlsZUNhdGVnb3J5SGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkZXIgZC1mbGV4IGdhcC0zICBweS0yIG92ZXJmbG93LWF1dG9cIiAqbmdJZj1cImNhdGVnb3J5TGlzdD8ubGVuZ3RoID4gMCAmJiBpc01vYmlsZVwiXG4gICAgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtjbGFzcy5tYXJnaW4tdG9wLW1vYl09XCJpc0hlYWRlclN0aWNreVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeSBjdXJzb3ItcG9pbnRlciBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTNcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIGNhdGVnb3J5TGlzdDtsZXQgaSA9IGluZGV4XCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInNlbGVjdGVkQ2F0ZWdvcnkgPSBlbGU7IGZpbHRlckJ5Q2F0ZWdvcnkoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhdC1pbWcgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJlbGU/LmltYWdlVXJsc1swXVwiIFthbHRdPVwiZWxlPy5jYXRlZ29yeU5hbWVcIiBjbGFzcz1cImJyLTEyIG1vYmlsZS1jYXRlZ29yeS1pbWFnZVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPnt7ZWxlPy5jYXRlZ29yeU5hbWV9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZWNvbW1lcmNlX2hlYWRlcj5cbiAgPGhlYWRlciBjbGFzcz1cInNpdGUtaGVhZGVyXCIgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Vjb20taGVhZGVyMSc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMScsXG4gICAgICAnZWNvbS1oZWFkZXIyJzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIyJyxcbiAgICAgICdlY29tLWhlYWRlcjMnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjMnLFxuICAgICAgJ2Vjb20taGVhZGVyNCc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyNCdcbiAgICB9XCI+XG4gICAgPCEtLSBUb3AgQmFyOiBMb2dvLCBTZWFyY2gsIFVzZXIgQWN0aW9ucyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwidG9wLWJhclwiPlxuXG4gICAgICA8IS0tIE1vYmlsZSBNZW51IFRvZ2dsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItbG9nby1hcmVhXCIgW25nQ2xhc3NdPVwieydtb2JpbGUtaGVhZGVyLWxlZnQtc2lkZSc6IHNjcmVlbldpZHRoIDw9IDQ3NX1cIj5cbiAgICAgICAgPCEtLSBIQU1CVVJHRVIgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiIGZvcj1cIm1vYmlsZS1tZW51LWNoZWNrYm94XCJcbiAgICAgICAgICBjbGFzcz1cIm1vYmlsZS1tZW51LWJ0blwiIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIlxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgbWVudVwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzT2ZmY2FudmFzT3BlblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjEyXCIgeDI9XCIyMFwiIHkyPVwiMTJcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjZcIiB4Mj1cIjIwXCIgeTI9XCI2XCI+PC9saW5lPlxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxOFwiIHgyPVwiMjBcIiB5Mj1cIjE4XCI+PC9saW5lPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc09mZmNhbnZhc09wZW5cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgPGxpbmUgeDE9XCI2XCIgeTE9XCI2XCIgeDI9XCIxOFwiIHkyPVwiMThcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjE4XCIgeDI9XCIxOFwiIHkyPVwiNlwiPjwvbGluZT5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwicmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIiBjbGFzcz1cIm1vYmlsZS1tZW51LWJ0blwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlRvZ2dsZSBtZW51XCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjEyXCIgeDI9XCIyMFwiIHkyPVwiMTJcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjZcIiB4Mj1cIjIwXCIgeTI9XCI2XCI+PC9saW5lPlxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxOFwiIHgyPVwiMjBcIiB5Mj1cIjE4XCI+PC9saW5lPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDwhLS0gTG9nbyBTZWN0aW9uIC0tPlxuICAgICAgICA8YSBjbGFzcz1cImxvZ29cIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwiTG9nb1wiIGNsYXNzPVwibG9nby1pbWdcIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZSAgKyAxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxhIGNsYXNzPVwidGV4dFBsdXNsb2dvXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSBcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHQgXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uIFxuICAgICAgICAgICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxuXG4gICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwiSWNvblwiIGNsYXNzPVwibG9nby1pY29uXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplICsgMTVcIiBbaGVpZ2h0XT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIj5cblxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nby10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzVcIj5cbiAgICAgICAgICAgIHt7IGNvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxhIGNsYXNzPVwibG9nb1wiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0IFxuICAgICAgICAgICYmICFjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb25cIj5cblxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nby1tYWluXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxuICAgICAgICAgICAge3sgY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBTZWFyY2ggQmFyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCJcbiAgICAgICAgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NSAmJiBjb250ZW50Py5zaG93U2VhcmNoQmFyICYmIGRhdGE/LnN0eWxlcz8ubWVudVR5cGUgIT09ICdEUk9QRE9XTl9NRU5VJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhclwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBpdGVtXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlYXJjaFByb2R1Y3RzKClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBEcm9wZG93biBtZW51IHN0eWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duX21lbnVcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNDc1ICYmIGRhdGE/LnN0eWxlcz8ubWVudVR5cGUgPT09ICdEUk9QRE9XTl9NRU5VJ1wiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXYtc2Nyb2xsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLW5hdlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXRhYi13cmFwXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRkLXRhYlwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRkLXRhYi1hY3RpdmVdPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeSA9PT0gZWxlPy5jaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHRvZ2dsZUNoaWxkTWVudShlbGUsICRldmVudCkgOiByZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIiBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3tlbGU/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43MDcxIDE0LjcwNzFDMTIuMzE2NiAxNS4wOTc2IDExLjY4MzQgMTUuMDk3NiAxMS4yOTI5IDE0LjcwNzFMNi4yOTI4OSA5LjcwNzExQzUuOTAyMzcgOS4zMTY1OCA1LjkwMjM3IDguNjgzNDIgNi4yOTI4OSA4LjI5Mjg5QzYuNjgzNDIgNy45MDIzNyA3LjMxNjU4IDcuOTAyMzcgNy43MDcxMSA4LjI5Mjg5TDEyIDEyLjU4NThMMTYuMjkyOSA4LjI5Mjg5QzE2LjY4MzQgNy45MDIzNyAxNy4zMTY2IDcuOTAyMzcgMTcuNzA3MSA4LjI5Mjg5QzE4LjA5NzYgOC42ODM0MiAxOC4wOTc2IDkuMzE2NTggMTcuNzA3MSA5LjcwNzExTDEyLjcwNzEgMTQuNzA3MVpcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1wYW5lbFwiICpuZ0lmPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeT8ubGVuZ3RoXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCIgW3N0eWxlLnRvcC5weF09XCJkcm9wZG93blRvcFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1pdGVtXCIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkQ2F0ZWdvcnlcIiBbY2xhc3Mub3Blbi1zdWJtZW51XT1cIm9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcbiAgICAgICAgICAgIChjbGljayk9XCIhY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPyByZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpIDogdG9nZ2xlU3ViTWVudShjaGlsZCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRkLWl0ZW0tYXJyb3dcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoXCI+JiM4MjUwOzwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Ym1lbnVcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoICYmIG9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Yi1pdGVtXCIgKm5nRm9yPVwibGV0IHN1YiBvZiBjaGlsZD8uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7c3ViPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG5cbiAgICAgIDwhLS0gUmlnaHQgQWN0aW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWFjdGlvbnNcIj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ0RST1BET1dOX01FTlUnICYmIHNjcmVlbldpZHRoID4gNDc1ICYmIGNvbnRlbnQ/LnNob3dTZWFyY2hCYXJcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBkcm9wZG93bi1zZWFyY2gtdG9nZ2xlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoID0gIXNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2hcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIHNlYXJjaFwiPlxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yZUF2YWlhYmxlXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBzdG9yZS1saW5rXCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7c2hvd0xvZ2luID0gZmFsc2VcIlxuICAgICAgICAgICAgKm5nSWY9XCIhZ2V0UGluY29kZVwiPlxuICAgICAgICAgICAgPCEtLSA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOC41IDAuNWMtMy4wMzIgMC01LjUgMi40NjctNS41IDUuNSAwIDQuMzczIDQuOTEzIDEwLjA4NiA1LjEyMiAxMC4zMjhsMC4zNzggMC40MzUgMC4zNzgtMC40MzZjMC4yMDktMC4yNDEgNS4xMjItNS45NTQgNS4xMjItMTAuMzI3IDAtMy4wMzMtMi40NjgtNS41LTUuNS01LjV6TTguNSAxNS4yMTVjLTEuMTQ2LTEuNDI0LTQuNS01Ljg3OS00LjUtOS4yMTUgMC0yLjQ4MSAyLjAxOS00LjUgNC41LTQuNXM0LjUgMi4wMTkgNC41IDQuNWMwIDMuMzMzLTMuMzU0IDcuNzkxLTQuNSA5LjIxNXpNOC41IDMuMTM5Yy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzIDMtMS4zNDYgMy0zLTEuMzQ2LTMtMy0zek04LjUgOC4xMzljLTEuMTAzIDAtMi0wLjg5Ny0yLTJzMC44OTctMiAyLTIgMiAwLjg5NyAyIDItMC44OTcgMi0yIDJ6XCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz4gLS0+XG5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiXG4gICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgIDxnPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBkPVwiTTM0MS40NzYgMzM4LjI4NWM1NC40ODMtODUuNDkzIDQ3LjYzNC03NC44MjcgNDkuMjA0LTc3LjA1NkM0MTAuNTE2IDIzMy4yNTEgNDIxIDIwMC4zMjIgNDIxIDE2NiA0MjEgNzQuOTggMzQ3LjEzOSAwIDI1NiAwIDE2NS4xNTggMCA5MSA3NC44MzIgOTEgMTY2YzAgMzQuMyAxMC43MDQgNjguMDkxIDMxLjE5IDk2LjQ0Nmw0OC4zMzIgNzUuODRDMTE4Ljg0NyAzNDYuMjI3IDMxIDM2OS44OTIgMzEgNDIyYzAgMTguOTk1IDEyLjM5OCA0Ni4wNjUgNzEuNDYyIDY3LjE1OUMxNDMuNzA0IDUwMy44ODggMTk4LjIzMSA1MTIgMjU2IDUxMmMxMDguMDI1IDAgMjI1LTMwLjQ3MiAyMjUtOTAgMC01Mi4xMTctODcuNzQ0LTc1Ljc1Ny0xMzkuNTI0LTgzLjcxNXptLTE5NC4yMjctOTIuMzRhMTUuNTcgMTUuNTcgMCAwIDAtLjUxNy0uNzU4QzEyOS42ODUgMjIxLjczNSAxMjEgMTkzLjk0MSAxMjEgMTY2YzAtNzUuMDE4IDYwLjQwNi0xMzYgMTM1LTEzNiA3NC40MzkgMCAxMzUgNjEuMDA5IDEzNSAxMzYgMCAyNy45ODYtOC41MjEgNTQuODM3LTI0LjY0NiA3Ny42NzEtMS40NDUgMS45MDYgNi4wOTQtOS44MDYtMTEwLjM1NCAxNzIuOTE4TDE0Ny4yNDkgMjQ1Ljk0NXpNMjU2IDQ4MmMtMTE3Ljk5NCAwLTE5NS0zNC42ODMtMTk1LTYwIDAtMTcuMDE2IDM5LjU2OC00NC45OTUgMTI3LjI0OC01NS45MDFsNTUuMTAyIDg2LjQ2M2ExNC45OTggMTQuOTk4IDAgMCAwIDI1LjI5OCAwbDU1LjEwMS04Ni40NjNDNDExLjQzMSAzNzcuMDA1IDQ1MSA0MDQuOTg0IDQ1MSA0MjJjMCAyNS4xMDItNzYuMzEzIDYwLTE5NSA2MHpcIj5cbiAgICAgICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMjU2IDkxYy00MS4zNTUgMC03NSAzMy42NDUtNzUgNzVzMzMuNjQ1IDc1IDc1IDc1IDc1LTMzLjY0NSA3NS03NS0zMy42NDUtNzUtNzUtNzV6bTAgMTIwYy0yNC44MTMgMC00NS0yMC4xODctNDUtNDVzMjAuMTg3LTQ1IDQ1LTQ1IDQ1IDIwLjE4NyA0NSA0NS0yMC4xODcgNDUtNDUgNDV6XCI+XG4gICAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9yZS10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPkVudGVyIFBpbmNvZGU8L3NwYW4+XG5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIHN0b3JlLWxpbmtcIiAobW91c2VlbnRlcik9XCJzaG93UGluY29kZUlucHV0ID0gdHJ1ZTs7c2hvd0xvZ2luID0gZmFsc2VcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiZ2V0UGluY29kZSAmJiBnZXRQaW5jb2RlLmxlbmd0aCA9PSA2XCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwibTIgNyA0LjQxLTQuNDFBMiAyIDAgMCAxIDcuODMgMmg4LjM0YTIgMiAwIDAgMSAxLjQyLjU5TDIyIDdcIj48L3BhdGg+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOFwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSAyMnYtNGEyIDIgMCAwIDAtMi0yaC0yYTIgMiAwIDAgMC0yIDJ2NFwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDdoMjBcIj48L3BhdGg+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0yMiA3djNhMiAyIDAgMCAxLTIgMnYwYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgMTYgMTJhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSAxMiAxMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDggMTJhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSA0IDEydjBhMiAyIDAgMCAxLTItMlY3XCI+XG4gICAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9yZS10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7XCJEZWxpdmVyaW5nIHRvOiBcIiArXG4gICAgICAgICAgICAgIGdldFBpbmNvZGV9fTwvc3Bhbj5cblxuICAgICAgICAgIDwvYT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaW5jb2RlLWNvbnRhaW5lciBwLTNcIiAqbmdJZj1cInNob3dQaW5jb2RlSW5wdXRcIiAobW91c2VsZWF2ZSk9XCJzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIG1iLTIgZi0xOCBmdy1ib2xkXCI+XG4gICAgICAgICAgICAgIFlvdXIgUElOIENvZGUgdW5sb2Nrc1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdGV4dC1jZW50ZXIgZi0xNCBwaW5jb2RlLXRleHRcIj5cbiAgICAgICAgICAgICAgRmFzdGVzdCBkZWxpdmVyeSBkYXRlLCBUcnktYXQtSG9tZSBhdmFpbGFiaWxpdHksXG4gICAgICAgICAgICAgIE5lYXJlc3Qgc3RvcmUgYW5kIEluLXN0b3JlIGRlc2lnbiFcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG10LTIgYnItNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTNcIlxuICAgICAgICAgICAgICBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInBpbkVycm9yXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJQaW5jb2RlXCIgYXJpYS1sYWJlbD1cIlBpbmNvZGVcIiBbKG5nTW9kZWwpXT1cInBpbmNvZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy03NSBwLTBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXN1Yi10ZXh0IGYtMTEgdy0yNSB0ZXh0LWVuZCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzZXRQaW5jb2RlKClcIj5TVUJNSVQ8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMiBmLTExXCIgKm5nSWY9XCJwaW5FcnJvclwiPlxuICAgICAgICAgICAgICBQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaW5jb2RlXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgbG9naW4tYnRuXCIgKm5nSWY9XCIhbG9nZ2VkSW5cIlxuICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dMb2dpbiA9IHRydWU7c2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCIgKGNsaWNrKT1cInNob3dMb2dpbiA9ICFzaG93TG9naW5cIj5cbiAgICAgICAgICA8IS0tIFVzZXIgSWNvbiBTVkcgLS0+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djJcIj48L3BhdGg+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjdcIiByPVwiNFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHlcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiICpuZ0lmPVwibG9nZ2VkSW5cIj5cbiAgICAgICAgICA8IS0tIFVzZXIgSWNvbiBTVkcgLS0+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djJcIj48L3BhdGg+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjdcIiByPVwiNFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd0xvZ2luXCIgKG1vdXNlbGVhdmUpPVwic2hvd0xvZ2luID0gZmFsc2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxuICAgICAgICAgICAgWW91ciBBY2NvdW50XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTRcIj5cbiAgICAgICAgICAgIEFjY2VzcyBhY2NvdW50ICYgbWFuYWdlIHlvdXIgb3JkZXJzLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyIHctMTAwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGdhcC0zXCI+XG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnb1RvQWNjb3VudCgnU0lHTlVQJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG4gYm9yZGVyLTBcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlNpZ24gVXA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdMT0dJTicpXCIgY2xhc3M9XCJ3LTUwIHRleHQtY2VudGVyIHNpZ24tYnRuXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5Mb2cgSW48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgaWNvbi1jb250YWluZXIgd2lzaGxpc3QtaWNvblwiIChjbGljayk9XCJnb1RvV2lzaGxpc3QoKVwiPlxuICAgICAgICAgIDwhLS0gSGVhcnQgSWNvbiBTVkcgLS0+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTE5IDE0YzEuNDktMS40NiAzLTMuMjEgMy01LjVBNS41IDUuNSAwIDAgMCAxNi41IDNjLTEuNzYgMC0zIC41LTQuNSAyLTEuNS0xLjUtMi43NC0yLTQuNS0yQTUuNSA1LjUgMCAwIDAgMiA4LjVjMCAyLjMgMS41IDQuMDUgMyA1LjVsNyA3WlwiPlxuICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgKm5nSWY9XCJnZXRXaXNobGlzdEl0ZW1zQ291bnRcIj57e2dldFdpc2hsaXN0SXRlbXNDb3VudH19PC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgaWNvbi1jb250YWluZXIgY2FydC1pY29uXCIgKGNsaWNrKT1cImdvVG9DYXJ0KClcIj5cbiAgICAgICAgICA8IS0tIFNob3BwaW5nIEJhZyBJY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAyIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNmwtMy00WlwiPjwvcGF0aD5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyA2aDE4XCI+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNiAxMGE0IDQgMCAwIDEtOCAwXCI+PC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiPnt7Z2V0Q2FydEl0ZW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGljb24tY29udGFpbmVyIGJvb2tpbmdzLWljb25cIiAoY2xpY2spPVwiZ29Ub0Jvb2tpbmdzKClcIlxuICAgICAgICAgICpuZ0lmPVwiYXBwb2ludG1lbnRTZXR0aW5ncz8uaG9tZVZpc2l0UHJvZHVjdHNFbmFibGVkIHx8IGFwcG9pbnRtZW50U2V0dGluZ3M/LnZpZGVvQ2FsbFByb2R1Y3RzRW5hYmxlZFwiPlxuICAgICAgICAgIDwhLS0gQm9va2luZ3MgKGNhbGVuZGFyLWNoZWNrKSBJY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjcuNVwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxMi41XCIgcng9XCIyXCI+PC9yZWN0PlxuICAgICAgICAgICAgPHBhdGggZD1cIk04IDcuNVY2YTQgNCAwIDAgMSA4IDB2MS41XCI+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjIgMTMuNmwxLjkgMS45IDMuNy0zLjlcIj48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAqbmdJZj1cImdldEJvb2tpbmdJdGVtc0NvdW50XCI+e3tnZXRCb29raW5nSXRlbXNDb3VudH19PC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1leHBhbmRcIlxuICAgICAgICAgICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ0RST1BET1dOX01FTlUnICYmIHNjcmVlbldpZHRoID4gNDc1ICYmIGNvbnRlbnQ/LnNob3dTZWFyY2hCYXIgJiYgc2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1zZWFyY2gtYm94XCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvci4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlYXJjaFByb2R1Y3RzKClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWFyY2gtY2xvc2VcIiAoY2xpY2spPVwic2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaCA9IGZhbHNlXCIgYXJpYS1sYWJlbD1cIkNsb3NlIHNlYXJjaFwiPlxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjE4XCIgeTE9XCI2XCIgeDI9XCI2XCIgeTI9XCIxOFwiPjwvbGluZT5cbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCI2XCIgeTE9XCI2XCIgeDI9XCIxOFwiIHkyPVwiMThcIj48L2xpbmU+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPD0gNDc1ICYmIGNvbnRlbnQ/LnNob3dTZWFyY2hCYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmFyXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBpdGVtXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWFyY2hQcm9kdWN0cygpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWljb24gc2VhcmNoLWJ0blwiIChjbGljayk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2hlYWRlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZnVsbFNjcmVlbk1lbnVUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZzLW1lbnVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1iZ1wiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1pbm5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtaGVhZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1sb2dvXCIgKGNsaWNrKT1cImNsb3NlRnVsbFNjcmVlbk1lbnUoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVMb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZnMtbWVudS1jbG9zZVwiIChjbGljayk9XCJjbG9zZUZ1bGxTY3JlZW5NZW51KClcIiBhcmlhLWxhYmVsPVwiQ2xvc2UgbWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBNYWluIGxldmVsIC0tPlxuICAgICAgPG5hdiBjbGFzcz1cImZzLW1lbnUtbmF2XCIgKm5nSWY9XCIhc2VsZWN0ZWRNb2JpbGVNZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTWVudVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiZnMtbWVudS1saW5rXCIgW2NsYXNzLmFjdGl2ZV09XCJpc05hdkl0ZW1BY3RpdmUoaXRlbSlcIiBbc3R5bGUuLS1hY2NlbnRdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GdWxsU2NyZWVuSXRlbUNsaWNrKGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtbWVudS1kb3RcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy1tZW51LXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgaXRlbT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZzLW1lbnUtYXJyb3dcIiAqbmdJZj1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25hdj5cblxuICAgICAgPCEtLSBTdWJtZW51IChkcmlsbC1pbikgbGV2ZWwgLS0+XG4gICAgICA8bmF2IGNsYXNzPVwiZnMtbWVudS1uYXYgZnMtbWVudS1zdWJcIiAqbmdJZj1cInNlbGVjdGVkTW9iaWxlTWVudVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZnMtbWVudS1iYWNrXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgc2VsZWN0ZWRNb2JpbGVNZW51Py5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkTW9iaWxlTWVudT8uY2hpbGRyZW5cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImZzLW1lbnUtbGlua1wiIFtzdHlsZS4tLWFjY2VudF09XCJhY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKTsgY2xvc2VGdWxsU2NyZWVuTWVudSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLW1lbnUtdGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZnMtbWVudS1zdWJsaW5rXCIgKm5nRm9yPVwibGV0IHN1YiBvZiBjaGlsZD8uY2hpbGRyZW5cIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgY2xvc2VGdWxsU2NyZWVuTWVudSgpXCI+e3sgc3ViPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25hdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWN0YVwiICpuZ0lmPVwiYWN0aW9uPy5kaXNwbGF5ICYmIGFjdGlvbj8uYnV0dG9ucz8ubGVuZ3RoXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnMgfCBzbGljZTowOjFcIj5cbiAgICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50IFtidXR0b25Db250ZW50XT1cImJ1dHRvbi5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxuICAgICAgICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiIFtpc0Z1bGxXaWR0aF09XCJ0cnVlXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib3R0b21TdGlja3lOYXZUZW1wbGF0ZT5cbiAgPG5hdiBjbGFzcz1cImJzLW5hdlwiPlxuICAgIDxkaXYgY2xhc3M9XCJicy1uYXYtYmFyXCIgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJzLXRhYlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJvdHRvbVN0aWNreU5hdkl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBhY3RpdmVCb3R0b21OYXZJbmRleFwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoaXRlbSlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJicy10YWItbGFiZWxcIiBbc3R5bGUuY29sb3JdPVwiaSA9PT0gYWN0aXZlQm90dG9tTmF2SW5kZXggPyBhY2NlbnRDb2xvciA6IG51bGxcIlxuICAgICAgICAgIFtzaW1wb0NvbG9yXT1cImkgPT09IGFjdGl2ZUJvdHRvbU5hdkluZGV4ID8gbnVsbCA6IHNpbXBvQ29sb3JcIj57eyBpdGVtPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25hdj5cbjwvbmctdGVtcGxhdGU+Il19
|
|
745
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9oZWFkZXItc2VjdGlvbi9oZWFkZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2hlYWRlci1zZWN0aW9uL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRXRILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7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QUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNHLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQThPNUIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSGVhZGVyQ29udGVudE1vZGVsLCBIZWFkZXJTZWN0aW9uTW9kZWwsIEhlYWRlclN0eWxlTW9kZWwgfSBmcm9tICcuL2hlYWRlci1zZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpbXBvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTmF2YmFyQnV0dG9uRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vZWxlbWVudHMvbmF2YmFyLWJ1dHRvbi1lbGVtZW50L25hdmJhci1idXR0b24tZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uL2NvbXBvbmVudHMvaG92ZXItZWxlbWVudHMvaG92ZXItZWxlbWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb1N0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zdGlja3ktZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xuaW1wb3J0IHsgR2VuZGVySWNvbiB9IGZyb20gJy4uLy4uL3BpcGVzL2dlbmRlci5waXBlJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcbmltcG9ydCB7IENhcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc2VjdGlvbnMvY2FydC9jYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29raW5nQ2FydEdyb3Vwc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2Jvb2tpbmctY2FydC1ncm91cHMvYm9va2luZy1jYXJ0LWdyb3Vwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyX1R5cGUsIE1vYmlsZV9NZW51X1R5cGUsIFByb2R1Y3RDYXJkVGhlbWUsIFN0aWNreV9UeXBlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IE1vdmluZ1RleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWN0aW9ucy9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291bnRkb3duQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2VjdGlvbnMvY291bnRkb3duLWJhbm5lci9jb3VudGRvd24tYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3ZpbmdUZXh0TW9kYWwgfSBmcm9tICcuLi9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5tb2RhbCc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc29jaWEtaWNvbnMvc29jaWEtaWNvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnRva2VuJztcbmltcG9ydCB7IFN0b3JhZ2VMaWtlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS1saWtlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWhlYWRlci1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0J1dHRvbkNvbXBvbmVudCxcbiAgICBHZW5kZXJJY29uLFxuICAgIE1hdEljb24sXG4gICAgTmF2YmFyQnV0dG9uRWxlbWVudENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxuICAgIENvbG9yRGlyZWN0aXZlLFxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIE1vdmluZ1RleHRDb21wb25lbnQsXG4gICAgQ291bnRkb3duQmFubmVyQ29tcG9uZW50LFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgU29jaWFJY29uc0NvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlclNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGRhdGE/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XG4gIEBWaWV3Q2hpbGQoXCJjaGlsZENvbnRhaW5lclwiKSBjaGlsZENvbnRhaW5lcjogYW55O1xuICBAVmlld0NoaWxkKCdtb2JpbGVPZmZjYW52YXMnKSBtb2JpbGVPZmZjYW52YXM/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIHF1ZXJ5UGFyYW1TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgaXNCcm93c2VyID0gZmFsc2U7XG4gIHB1YmxpYyBpc09mZmNhbnZhc09wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRnVsbFNjcmVlbk1lbnVPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgb2ZmY2FudmFzU2hvd25IYW5kbGVyPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvZmZjYW52YXNIaWRkZW5IYW5kbGVyPzogKCkgPT4gdm9pZDtcbiAgY29udGVudD86IEhlYWRlckNvbnRlbnRNb2RlbCB8IGFueTtcbiAgc3R5bGU/OiBIZWFkZXJTdHlsZU1vZGVsXG4gIGFjdGlvbj86IEFjdGlvbk1vZGVsXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICB0aGVtZSA9IFByb2R1Y3RDYXJkVGhlbWU7XG4gIEhlYWRlclN0eWxpbmcgPSBIZWFkZXJfVHlwZTtcbiAgU3RpY2t5VHlwZSA9IFN0aWNreV9UeXBlO1xuICBNb2JpbGVNZW51VHlwZSA9IE1vYmlsZV9NZW51X1R5cGU7XG4gIHBhcmVudEhlaWdodDogbnVtYmVyID0gNzA7XG4gIGN1cnJlbnRQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIHBsYWNlaG9sZGVySW5kZXg6IG51bWJlciA9IDA7XG4gIGFuaW1hdGVQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2V2ZW50U3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcbiAgICBASW5qZWN0KExPQ0FMX1NUT1JBR0UpIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZUxpa2UsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgICAvLyBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XG4gIH1cbiAgc2VhcmNoQ2hhbmdlVGltZW91dDogYW55O1xuICB3YWl0QmVmb3JlU2VhcmNoKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaENoYW5nZVRpbWVvdXQpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hQcm9kdWN0cygpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgc2VhcmNoUHJvZHVjdHMoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IHNlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0IH0gfSk7XG4gIH1cbiAgZ29Ub0ZhdigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93aXNobGlzdCddKTtcbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdvVG9BY2NvdW50KHJlZGlyZWN0VG86IGFueSkge1xuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlZGlyZWN0VG8gPT0gJ1NJR05VUCcgfHwgcmVkaXJlY3RUbyA9PSAnTE9HSU4nKVxuICAgICAgICAvLyByZWRpcmVjdFRvIGhlcmUgaXMganVzdCB0aGUgJ1NJR05VUCcvJ0xPR0lOJyB0cmlnZ2VyLCBub3QgYSByZWFsIHBhdGggLSB0aGUgbG9naW4gcGFnZVxuICAgICAgICAvLyByZWFkcyB0aGlzIHF1ZXJ5IHBhcmFtIGFzIHdoZXJlIHRvIG5hdmlnYXRlIGJhY2sgdG8gYWZ0ZXIgYXV0aCBzdWNjZWVkcyAoc2VlXG4gICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQncyBjdXJyZW50UGFnZS9uYXZpZ2F0ZUJ5VXJsKSwgc28gaXQgbXVzdCBiZSB0aGUgYWN0dWFsXG4gICAgICAgIC8vIGN1cnJlbnQgVVJMLCBtYXRjaGluZyBldmVyeSBvdGhlciBjYWxsZXIgb2YgdGhpcyBzYW1lIG5hdmlnYXRpb24gKGFwcG9pbnRtZW50LWJvb2tpbmcsXG4gICAgICAgIC8vIGJvb2stYXBwb2ludG1lbnQpIC0gbm90IHRoZSBsaXRlcmFsIHRyaWdnZXIgc3RyaW5nLCB3aGljaCBpc24ndCBhIHZhbGlkIHJvdXRlLlxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddLCB7IHF1ZXJ5UGFyYW1zOiB7IHJlZGlyZWN0VG86IHRoaXMucm91dGVyLnVybCB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsb2dnZWRJbigpIHtcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpXG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBnZXRVc2VyTmFtZSgpIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LmNvbnRhY3QubmFtZTtcbiAgfVxuICAvLyBjaGFuZ2VQbGFjZWhvbGRlcigpIHtcbiAgLy8gICB0aGlzLmFuaW1hdGVQbGFjZWhvbGRlciA9IHRydWU7XG5cbiAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgLy8gICAgIHRoaXMucGxhY2Vob2xkZXJJbmRleCA9XG4gIC8vICAgICAgICh0aGlzLnBsYWNlaG9sZGVySW5kZXggKyAxKSAlXG4gIC8vICAgICAgIHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdC5sZW5ndGg7XG5cbiAgLy8gICAgIHRoaXMuY3VycmVudFBsYWNlaG9sZGVyID1cbiAgLy8gICAgICAgdGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0W3RoaXMucGxhY2Vob2xkZXJJbmRleF0udmFsdWU7XG5cbiAgLy8gICAgIHRoaXMuYW5pbWF0ZVBsYWNlaG9sZGVyID0gZmFsc2U7XG4gIC8vICAgfSwgNDAwKTsgLy8gYW5pbWF0aW9uIGR1cmF0aW9uXG4gIC8vIH1cbiAgZ29Ub1dpc2hsaXN0KCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dpc2hsaXN0J10pO1xuICB9XG4gIGdvVG9DYXJ0KCkge1xuICAgIGlmIChmYWxzZSkge1xuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihDYXJ0Q29tcG9uZW50LCB7IHdpZHRoOiAnMjh2dycsIHBhbmVsQ2xhc3M6ICdzaWRlcGFuZWwtY2xhc3MnLCBkYXRhOiB7IHdpbmRvdzogdHJ1ZSB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jYXJ0J10pO1xuICAgIH1cbiAgfVxuICBnb1RvQm9va2luZ3MoKSB7XG4gICAgdGhpcy5tYXREaWFsb2cub3BlbihCb29raW5nQ2FydEdyb3Vwc0NvbXBvbmVudCwgeyBwYW5lbENsYXNzOiAnc2lkZXBhbmVsLWNsYXNzJyB9KTtcbiAgfVxuICBhcHBseUZpbHRlcih2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICB2YWx1ZSA9IHZhbHVlWzBdPy5yZXBsYWNlKFwiIFwiLCBcIl9cIik7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IFt0eXBlXTogdmFsdWUgfSB9KTtcbiAgfVxuICBtb3ZpbmdUZXh0PzogTW92aW5nVGV4dE1vZGFsXG4gIHRvU2hvd0luSmV3ZWxsZXJ5OiBib29sZWFuID0gZmFsc2VcbiAgZGlmZmVyOiBhbnk7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5hY3Rpb24gPSB0aGlzLmRhdGE/LmFjdGlvbjtcbiAgICB0aGlzLnF1ZXJ5UGFyYW1TdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocVBhcmFtKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XG4gICAgfSlcbiAgICB0aGlzLmdldE1lbnVJdGVtcygpO1xuICAgIC8vIHRoaXMuZXZlbnRTZXJ2aWNlLmFjdGl2YXRlU21hcnRTZWFyY2guc3Vic2NyaWJlKChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAvLyAgIGlmICh0aGlzLnN0eWxlPy5zZWFyY2hCYXJQbGFjZWhvbGRlckxpc3Q/Lmxlbmd0aCA+IDAgJiYgcmVzKSB7XG4gICAgLy8gICAgIHRoaXMuY3VycmVudFBsYWNlaG9sZGVyID0gdGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0WzBdLnZhbHVlO1xuXG4gICAgLy8gICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAvLyAgICAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKCk7XG4gICAgLy8gICAgIH0sIDMwMDApO1xuICAgIC8vICAgfVxuICAgIC8vIH0pXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyICYmICh3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdjYXJhdGxhbmUnKSB8fCB3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdvcnJhJykpKSB7XG4gICAgICB0aGlzLnRvU2hvd0luSmV3ZWxsZXJ5ID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlKSB7XG4gICAgICB0aGlzLmdldENhdGVnb3JpZXNIZWFkZXIoKTtcbiAgICB9XG4gICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XG4gICAgdGhpcy5jaGVja1Bhc3Nib29rQXBwKCk7XG4gICAgdGhpcy5jaGVja0FwcG9pbnRtZW50QXBwKCk7XG4gICAgdGhpcy5nZXRBcHBvaW50bWVudFNldHRpbmdzKCk7XG5cbiAgICB0aGlzLl9ldmVudFN1YnNjcmliZXIgPSB0aGlzLl9ldmVudFNlcnZpY2UubWVudUxpc3Quc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmdldE1lbnVJdGVtcygpO1xuICAgIH0pXG4gICAgXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuY2hpbGRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQgJiYgdHlwZW9mIFJlc2l6ZU9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVQYXJlbnRIZWlnaHRDYWxjdWxhdGlvbigpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jaGlsZENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuc2NoZWR1bGVQYXJlbnRIZWlnaHRDYWxjdWxhdGlvbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vYmlsZU9mZmNhbnZhcz8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2ZmY2FudmFzRWxlbWVudCA9IHRoaXMubW9iaWxlT2ZmY2FudmFzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc09mZmNhbnZhc09wZW4gPSB0cnVlO1xuICAgICAgfTtcbiAgICAgIHRoaXMub2ZmY2FudmFzSGlkZGVuSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc09mZmNhbnZhc09wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5nb0JhY2tNb2JpbGVNZW51KCk7XG4gICAgICB9O1xuICAgICAgb2ZmY2FudmFzRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzaG93bi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICAgIG9mZmNhbnZhc0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZGVuLmJzLm9mZmNhbnZhcycsIHRoaXMub2ZmY2FudmFzSGlkZGVuSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIgJiYgdGhpcy5yZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVfTWVudV9UeXBlLkJPVFRPTV9TVElDS1kpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWJvdHRvbS1uYXYtaGVpZ2h0JywgJ2NhbGMoNjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSknKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5xdWVyeVBhcmFtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWJvdHRvbS1uYXYtaGVpZ2h0Jyk7XG4gICAgaWYgKHRoaXMubW9iaWxlT2ZmY2FudmFzPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBvZmZjYW52YXNFbGVtZW50ID0gdGhpcy5tb2JpbGVPZmZjYW52YXMubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlcikge1xuICAgICAgICBvZmZjYW52YXNFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nob3duLmJzLm9mZmNhbnZhcycsIHRoaXMub2ZmY2FudmFzU2hvd25IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub2ZmY2FudmFzSGlkZGVuSGFuZGxlcikge1xuICAgICAgICBvZmZjYW52YXNFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2hpZGRlbi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcGFzc2Jvb2tBcHBTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2hlY2tQYXNzYm9va0FwcCgpIHtcbiAgICBjb25zdCBkZXRhaWxzID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2JJZCcpO1xuICAgIGNvbnN0IGJJZCA9IGRldGFpbHMgPz8gJyc7XG4gICAgdGhpcy5yZXN0U2VydmljZS5QYXNzYm9va0FwcFN0YXR1cyhiSWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXM/LmRhdGEpIHtcbiAgICAgICAgdGhpcy5wYXNzYm9va0FwcFN0YXR1cyA9IHRydWU7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBMb2dpbi9zaWdudXAgZm9yIGEgbm9uLWVjb21tZXJjZSBoZWFkZXIgYWxzbyBuZWVkcyB0byBzaG93IGZvciBhIGJ1c2luZXNzIHdpdGggb25seSB0aGVcbiAgICogQXBwb2ludG1lbnQgYXBwIGluc3RhbGxlZCAoYm9va2luZyBub3cgcmVxdWlyZXMgbG9naW4pIC0gbWlycm9ycyBjaGVja1Bhc3Nib29rQXBwKCkgZXhhY3RseSxcbiAgICogcmV1c2luZyB0aGUgc2FtZSBnZW5lcmljIFwiaXMgYXBwIGluc3RhbGxlZFwiIGNoZWNrIGFscmVhZHkgdXNlZCBmb3IgUGFzc2Jvb2suICovXG4gIGFwcG9pbnRtZW50QXBwU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XG4gIGNoZWNrQXBwb2ludG1lbnRBcHAoKSB7XG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdiSWQnKTtcbiAgICBjb25zdCBiSWQgPSBkZXRhaWxzID8/ICcnO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuY2hlY2tBcHBJbnN0YWxsZWQoYklkLCAnQXBwb2ludG1lbnQnKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzPy5kYXRhKSB7XG4gICAgICAgIHRoaXMuYXBwb2ludG1lbnRBcHBTdGF0dXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKiogVGhlIGJvb2tpbmctY2FydCBpY29uIHNob3VsZCBvbmx5IHNob3cgd2hlbiBhIGN1c3RvbWVyIGNvdWxkIGhhdmUgc29tZXRoaW5nIHRvIGJvb2sgLVxuICAgKiBpLmUuIGVpdGhlciBtb2RlIGlzIGVuYWJsZWQsIG5vdCB0aWVkIHRvIG9uZSBzcGVjaWZpYyBtb2RlLiAqL1xuICBhcHBvaW50bWVudFNldHRpbmdzOiBhbnkgPSBudWxsO1xuICBnZXRBcHBvaW50bWVudFNldHRpbmdzKCkge1xuICAgIGNvbnN0IGJJZCA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdiSWQnKSA/PyAnJztcbiAgICBpZiAoIWJJZCkgcmV0dXJuO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QnVzaW5lc3NBcHBvaW50bWVudFNldHRpbmdzKGJJZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hcHBvaW50bWVudFNldHRpbmdzID0gcmVzO1xuICAgIH0sICgpID0+IHtcbiAgICAgIC8vIE5vbi1mYXRhbCAtIHRoZSBib29raW5nLWNhcnQgaWNvbiBqdXN0IHN0YXlzIGhpZGRlbi5cbiAgICB9KTtcbiAgfVxuICBzaG93U2VhcmNoQmFyTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNOYXZiYXJPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBnZXRTY3JlZW5TaXplKGV2ZW50PzogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB0aGlzLnNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKTtcbiAgfVxuICBoZWlnaHQ6IGFueVxuICBwcml2YXRlIHNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdldFBhcmVudEhlaWdodCgpLCAwKTtcbiAgfVxuXG4gIG9uU3RpY2t5U2Nyb2xsZWQoc2Nyb2xsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU2Nyb2xsZWQgPSBzY3JvbGxlZDtcbiAgfVxuXG4gIGdldFBhcmVudEhlaWdodCgpIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICF0aGlzLmNoaWxkQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jaGlsZENvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3RIZWlnaHQgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICB0aGlzLmhlaWdodCA9IE1hdGguY2VpbChyZWN0SGVpZ2h0IHx8IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IHx8IDApO1xuICAgIGlmICh0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UpXG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5lbGVtZW50SGVpZ2h0LmVtaXQodGhpcy5oZWlnaHQpXG4gICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLW1hcmdpbi10b3BcIiwgdGhpcy5oZWlnaHQgKyBcInB4XCIpXG4gIH1cbiAgZ2V0IGdldERyb3Bkb3duTGlua3MoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudD8uZWNvbWxpbmtzICYmIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlKVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udGVudD8uZWNvbWxpbmtzKTtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgZ2V0IGlzRWNvbW1lcmNlV2Vic2l0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhPy50eXBlID09IFwiRV9DT01NRVJDRVwiO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc05hdmJhck9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dFZGl0b3JzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2hvd0VkaXRUYWJzKGlzU2hvdzogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd0VkaXRvcnMgPSBpc1Nob3c7XG4gIH1cbiAgZ29Ub0hvbWUoKSB7XG4gICAgaWYgKHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdSRVFVRVNUX0ZST00nKSA9PT0gJ0VfQ09NTUVSQ0UnKVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XG4gIH1cbiAgZ2V0IHJlc29sdmVkTW9iaWxlTWVudVR5cGUoKTogTW9iaWxlX01lbnVfVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/Lm1vYmlsZU1lbnVUeXBlID8/IE1vYmlsZV9NZW51X1R5cGUuSEFNQlVSR0VSO1xuICB9XG5cbiAgZ2V0IGJvdHRvbVN0aWNreU5hdkl0ZW1zKCk6IGFueVtdIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9vdGVyTWVudT8ubGVuZ3RoID8gdGhpcy5mb290ZXJNZW51IDogKHRoaXMuY29udGVudD8ubmF2YmFyQnV0dG9ucyA/PyBbXSk7XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtLnNob3dIZWFkZXIgIT09IGZhbHNlKS5zbGljZSgwLCA1KTtcbiAgfVxuXG4gIGlzTmF2SXRlbUFjdGl2ZShpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmwgPSAodGhpcy5yb3V0ZXIudXJsIHx8ICcnKS5zcGxpdCgnPycpWzBdO1xuICAgIGNvbnN0IHRhcmdldCA9IChpdGVtPy5yZWRpcmVjdGlvblVybCA/PyBpdGVtPy5yZWRpcmVjdGlvbmFsVXJsID8/ICcnKS5zcGxpdCgnPycpWzBdO1xuICAgIGlmIChpdGVtPy50eXBlID09PSAnSE9NRV9QQUdFJykgcmV0dXJuIHVybCA9PT0gJycgfHwgdXJsID09PSAnLyc7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdXJsID09PSB0YXJnZXQgfHwgKHRhcmdldCAhPT0gJy8nICYmIHVybC5zdGFydHNXaXRoKHRhcmdldCkpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZUJvdHRvbU5hdkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmJvdHRvbVN0aWNreU5hdkl0ZW1zIHx8IFtdKS5maW5kSW5kZXgoKGl0OiBhbnkpID0+IHRoaXMuaXNOYXZJdGVtQWN0aXZlKGl0KSk7XG4gIH1cblxuICBvcGVuRnVsbFNjcmVlbk1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0Z1bGxTY3JlZW5NZW51T3BlbiA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZE1vYmlsZU1lbnUgPSBudWxsO1xuICAgIGlmICh0aGlzLmlzQnJvd3NlcikgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gIH1cblxuICBjbG9zZUZ1bGxTY3JlZW5NZW51KCk6IHZvaWQge1xuICAgIHRoaXMuaXNGdWxsU2NyZWVuTWVudU9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkTW9iaWxlTWVudSA9IG51bGw7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgfVxuXG4gIC8qKiBGdWxsLXNjcmVlbiBtZW51IGl0ZW0gdGFwOiBkcmlsbCBpbnRvIHN1Ym1lbnUgaWYgaXQgaGFzIGNoaWxkcmVuLCBlbHNlIG5hdmlnYXRlICsgY2xvc2UuICovXG4gIG9uRnVsbFNjcmVlbkl0ZW1DbGljayhpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RNb2JpbGVNZW51KGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZGlyZWN0aW9uc09mTWVudShpdGVtKTtcbiAgICAgIHRoaXMuY2xvc2VGdWxsU2NyZWVuTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZXNvbHZlZFN0aWNreVR5cGUoKTogU3RpY2t5X1R5cGUge1xuICAgIGlmICh0aGlzLnN0eWxlPy5zdGlja3lUeXBlKSByZXR1cm4gdGhpcy5zdHlsZS5zdGlja3lUeXBlO1xuICAgIGlmICh0aGlzLnN0eWxlPy5zdGlja3kgJiYgdGhpcy5zdHlsZT8uc2hyaW5rT25TY3JvbGwpIHJldHVybiBTdGlja3lfVHlwZS5TSFJJTktfT05fU0NST0xMO1xuICAgIGlmICh0aGlzLnN0eWxlPy5zdGlja3kpIHJldHVybiBTdGlja3lfVHlwZS5TVElDS1k7XG4gICAgcmV0dXJuIFN0aWNreV9UeXBlLk5PTkU7XG4gIH1cbiAgZ2V0IGlzSGVhZGVyU3RpY2t5KCkge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkU3RpY2t5VHlwZSAhPT0gU3RpY2t5X1R5cGUuTk9ORTtcbiAgfVxuICBnZXQgYmFja2dyb3VuZEluZm8oKSB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lfVHlwZS5UUkFOU1BBUkVOVF9PTl9TQ1JPTEwgJiYgIXRoaXMuaXNTY3JvbGxlZCAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhPy5zdHlsZXMuYmFja2dyb3VuZCwgY29sb3I6ICd0cmFuc3BhcmVudCcsIHNob3dJbWFnZTogZmFsc2UgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiAhdGhpcy5pc1Njcm9sbGVkICYmICF0aGlzLmlzTW9iaWxlXG4gICAgICA/IHsgLi4udGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5iYWNrZ3JvdW5kIH1cbiAgICAgIDogeyAuLi50aGlzLmRhdGE/LnN0eWxlcy5iYWNrZ3JvdW5kIH07XG4gIH1cbiAgZ2V0IHNpbXBvQ29sb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZVxuICAgICAgPyAodGhpcy5pc1Njcm9sbGVkID8gdGhpcy5zdHlsZT8uYmFja2dyb3VuZC5jb2xvciA6IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yKVxuICAgICAgOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvcjtcbiAgfVxuICBnZXQgYWNjZW50Q29sb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZVxuICAgICAgPyAodGhpcy5pc1Njcm9sbGVkID8gdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgOiB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcbiAgICAgIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3I7XG4gIH1cbiAgZ2V0IGlzVHJhbnNwYXJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiAhdGhpcy5pc1Njcm9sbGVkO1xuICB9XG4gIHJlZGlyZWN0VG8oY29udGVudDogYW55KSB7XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoeyBkYXRhOiBjb250ZW50IH0pO1xuICB9XG5cbiAgc2hvd1NlYXJjaEJhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBpc0NvbXBvbmVudE1lcmdlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlO1xuICB9XG4gIGVkaXRTZWN0aW9uKCkge1xuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBnZXQgY2FuU2hvd01vYmlsZUZvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Vjb21tZXJjZVdlYnNpdGU7XG4gIH1cblxuICBnZXQgc2hvdWxkUmVzZXJ2ZU1vYmlsZUhlYWRlclNwYWNlKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJlc29sdmVkU3RpY2t5VHlwZTtcbiAgICBpZiAodHlwZSA9PT0gU3RpY2t5X1R5cGUuTk9ORSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlID09PSBTdGlja3lfVHlwZS5TVElDS1lfQUZURVJfU0NST0xMKSByZXR1cm4gdGhpcy5pc1Njcm9sbGVkO1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSByZXR1cm4gIXRoaXMuc2hvdWxkU2hvd01vYmlsZUNhdGVnb3J5SGVhZGVyO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHNob3VsZFNob3dNb2JpbGVDYXRlZ29yeUhlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Vjb21tZXJjZVdlYnNpdGUgJiYgdGhpcy5pc01vYmlsZSAmJiB0aGlzLnNob3dDYXRlZ29yeU1vYmlsZUhlYWRlcigpICYmICh0aGlzLmNhdGVnb3J5TGlzdD8ubGVuZ3RoID8/IDApID4gMDtcbiAgfVxuXG4gIGdldCBzaG93TW9iaWxlSG9tZUljb24oKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgcmV0dXJuICEodXJsLmluY2x1ZGVzKFwiY2FydFwiKSB8fCB1cmwuaW5jbHVkZXMoXCJwcm9maWxlXCIpIHx8IHVybC5pbmNsdWRlcyhcIndpc2hsaXN0XCIpKTtcbiAgfVxuICBnZXQgZ2V0Q2FydEl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbENhcnRJdGVtcztcbiAgfVxuICBnZXQgZ2V0V2lzaGxpc3RJdGVtc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxXaXNobGlzdEl0ZW1zO1xuICB9XG4gIGdldCBnZXRCb29raW5nSXRlbXNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFRvdGFsQm9va2luZ0l0ZW1zO1xuICB9XG4gIGdldCBnZXRDYXJ0VG90YWxBbW91bnQoKSB7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5zdG9yYWdlU2VydmljZS5nZXRDYXJ0QW1vdW50KCkpO1xuICAgIC8vIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENhcnRBbW91bnQoKTtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDYXJ0VG90YWxBbW91bnQ7XG4gIH1cbiAgZ2V0IGdldEhlYWRlclN0eWxpbmcoKTogSGVhZGVyX1R5cGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0eWxlPy5zdHlsaW5nO1xuICB9XG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDQ3NTtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA0NzU7XG4gIH1cbiAgZ2V0S2V5cyhvYmplY3Q6IGFueSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgfVxuICBnZXRWYWx1ZXMob2JqZWN0OiBhbnkpOiB1bmtub3duW10ge1xuICAgIGNvbnN0IGtleXM6IHVua25vd25bXSA9IFtdO1xuICAgIG9iamVjdC5mb3JFYWNoKChrZXk6IGFueSkgPT4ga2V5cy5wdXNoKE9iamVjdC52YWx1ZXMoa2V5KSkpO1xuICAgIHJldHVybiBbLi4ubmV3IFNldChrZXlzKV07XG4gIH1cbiAgZ2V0IHVzZXJHZW5kZXIoKSB7XG4gICAgY29uc3QgdXNlciA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyKTtcbiAgICBpZiAodXNlcilcbiAgICAgIHJldHVybiB1c2VyLmdlbmRlcjtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldCBnZXROYXZiYXJCdXR0b24oKSB7XG4gICAgbGV0IGNvdW50OiBudW1iZXIgPSAwO1xuICAgIGxldCBwYWdlOiBhbnlbXSA9IFtdXG4gICAgZm9yIChsZXQgYnV0dG9uIG9mIHRoaXMuY29udGVudD8ubmF2YmFyQnV0dG9ucyB8fCBbXSkge1xuICAgICAgaWYgKFtcbiAgICAgICAgJ0hvbWUnLFxuICAgICAgICAnUHJvZHVjdCBEZXNjcmlwdGlvbicsXG4gICAgICAgICdDYXJ0JyxcbiAgICAgICAgJ1dpc2hsaXN0JyxcbiAgICAgICAgJ1VzZXIgcHJvZmlsZScsXG4gICAgICAgICdQcm9kdWN0IExpc3QnLFxuICAgICAgICAnQ2hlY2tvdXQnLFxuICAgICAgICAnQXV0aCcsXG4gICAgICAgICdQYXltZW50IFZlcmlmaWNhdGlvbicsXG4gICAgICAgICdMaXN0IENhdGVnb3J5JyxcbiAgICAgICAgJ0F1dGhlbnRpY2F0aW9uIFJlcXVpcmVkJ1xuICAgICAgXS5pbmNsdWRlcyhidXR0b24ubGFiZWwpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY291bnQgPCA2ICYmIGJ1dHRvbi5zaG93SGVhZGVyKSB7XG4gICAgICAgIHBhZ2UucHVzaChidXR0b24pO1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWdlO1xuICB9XG5cblxuICAvLyBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgLy8gb25XaW5kb3dTY3JvbGwoKSB7XG4gIC8vICAgdGhpcy5pc1Njcm9sbGVkID0gIHdpbmRvdy5zY3JvbGxZID4gNTA7XG4gIC8vIH1cbiAgc2V0Q29sb3IoKSB7XG4gICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXG4gICAgY29uc3QgciA9IHBhcnNlSW50KHRoaXMuYmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQodGhpcy5iYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludCh0aGlzLmJhY2tncm91bmRJbmZvLmFjY2VudENvbG9yLnNsaWNlKDUsIDcpLCAxNik7XG4gICAgY29uc3QgYnJpZ2h0bmVzcyA9IChyICogMjk5ICsgZyAqIDU4NyArIGIgKiAxMTQpIC8gMTAwMDtcblxuICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xuICB9XG4gIHNob3dMaXN0OiBib29sZWFuID0gZmFsc2VcbiAgZHJvcGRvd25MZWZ0OiBudW1iZXIgPSAwO1xuICBkcm9wZG93blRvcDogbnVtYmVyID0gMDtcbiAgc2hvd0NvbGxlY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TGlzdDogYW55O1xuICBjb2xsZWN0aW9uTGlzdDogYW55O1xuICBzZWxlY3RlZENhdGVnb3J5OiBhbnk7XG4gIHN0b3JlQXZhaWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZ2V0Q2F0ZWdvcmllc0hlYWRlcigpIHtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldENhdGVnb3JpZXNIZWFkZXJEYXRhKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zdG9yZUF2YWlhYmxlID0gcmVzPy5kYXRhPy5zdG9yZUF2YWlsYWJsZTtcbiAgICAgIHRoaXMuc2NoZW1lQXZhaWxhYmxlID0gcmVzPy5kYXRhPy5zY2hlbWVzQXZhaWxhYmxlXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YT8uY2F0ZWdvcnlEZXRhaWxzO1xuICAgICAgdGhpcy5jb2xsZWN0aW9uTGlzdCA9IHJlcz8uZGF0YT8uaXRlbUNvbGxlY3Rpb25zO1xuICAgIH0pXG4gIH1cblxuICByZXN0cmljdEluUGFnZXMoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICBpZiAocGF0aG5hbWUuaW5jbHVkZXMoJy9sb2dpbicpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJlc3RyaWN0Q2FydEJhckluUGFnZXMoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICBpZiAocGF0aG5hbWUuaW5jbHVkZXMoJy9sb2dpbicpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKCcvY2FydCcpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKCcvd2lzaGxpc3QnKSB8fCBwYXRobmFtZS5pbmNsdWRlcygnL2RldGFpbHMnKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzY2hlbWVBdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZVxuICBnb1RvU3RvcmVzKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3N0b3JlLWxpc3QnXSk7XG4gIH1cbiAgT2JqZWN0ID0gT2JqZWN0XG4gIGFwcGx5RmlsdGVyVG9MaXN0KG9iajogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBpZiAodHlwZSA9PSAncHJpY2UnKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeT8uY2F0ZWdvcnlOYW1lLCBtaW5QcmljZTogb2JqPy5taW5QcmljZSwgbWF4UHJpY2U6IG9iaj8ubWF4UHJpY2UsIHBhZ2VObzogMSB9IH0pO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnY29sbGVjdGlvbicpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjYXRlZ29yeTogdGhpcy5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeU5hbWUsIGNvbGxlY3Rpb25zOiBvYmo/LnJlcGxhY2VBbGwoXCIgXCIsICdfJyksIHBhZ2VObzogMSB9IH0pO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnY29sbGVjdGlvbnMnKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY29sbGVjdGlvbnM6IG9iaj8ucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgcGFnZU5vOiAxIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyQnlDYXRlZ29yeSgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeT8uY2F0ZWdvcnlOYW1lLCBwYWdlTm86IDEgfSB9KTtcbiAgfVxuXG4gIHNob3dQaW5jb2RlSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGluY29kZTogYW55ID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSA/PyBcIlwiO1xuICBnZXRQaW5jb2RlOiBzdHJpbmcgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgncGluY29kZScpIHx8ICcnO1xuICBwaW5FcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZXRQaW5jb2RlKCkge1xuICAgIGlmICh0aGlzLnBpbmNvZGUgJiYgdGhpcy5waW5jb2RlPy5sZW5ndGggPT0gNikge1xuICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oJ3BpbmNvZGUnLCB0aGlzLnBpbmNvZGUpO1xuICAgICAgdGhpcy5nZXRQaW5jb2RlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSB8fCAnJztcbiAgICAgIHRoaXMucGluRXJyb3IgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5waW5FcnJvciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2hvd0xvZ2luOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ29Ub1NjaGVtZXMoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc2NoZW1lLWVucm9sbG1lbnQnXSk7XG4gIH1cblxuICBnZXRSR0JBKGJnQ29sb3I6IGFueSwgb3BhY2l0eTogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xuICB9XG5cbiAgc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICByZXR1cm4gcGF0aG5hbWUuaW5jbHVkZXMoJy9saXN0JykgfHwgcGF0aG5hbWUgPT09ICcvJyB8fCBwYXRobmFtZSA9PT0gJyc7XG4gIH1cblxuICBieU1ldGFsQW5kU3RvbmU6IGFueSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnR29sZCcsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS8yMmt0LUdvbGQtMngucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdEaWFtb25kJyxcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L0RpYW1vbmQtMXgucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdQZWFybCcsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vc3RhdGljL2ltYWdlcy9kaXNjb3ZlcnkvcmVzcG9uc2l2ZS1oYW1idXJnZXItbWVudS9wcm9kdWN0cy1hbmQtc2VydmljZXMvcGVhcmwtMXgucG5nJyxcbiAgICAgIHN0YXR1czogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdHZW1zdG9uZScsXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9HZW1zdG9uZS0xeC5wbmcnLFxuICAgICAgc3RhdHVzOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1llbGxvdyBHb2xkJyxcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L1llbGxvdy1Hb2xkLTF4LnBuZycsXG4gICAgICBzdGF0dXM6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnUm9zZSBHb2xkJyxcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L1Jvc2UtR29sZC0xeC5wbmcnLFxuICAgICAgc3RhdHVzOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1doaXRlIEdvbGQnLFxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvd2hpdGUtR29sZC0xeC5wbmcnLFxuICAgICAgc3RhdHVzOiBmYWxzZVxuICAgIH1cbiAgXVxuICBuYXZpZ2F0ZUxvZ2luKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pXG4gIH1cblxuICBtZWdhTWVudTogYW55ID0gW11cbiAgZm9vdGVyTWVudTogYW55ID0gW107XG4gIHNlbGVjdGVkTW9iaWxlTWVudTogYW55ID0gbnVsbDtcblxuICBzZWxlY3RNb2JpbGVNZW51KGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gaXRlbTtcbiAgfVxuXG4gIGdvQmFja01vYmlsZU1lbnUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vYmlsZU1lbnUgPSBudWxsO1xuICB9XG4gIGdldE1lbnVJdGVtcygpIHtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldE1lbnVJdGVtcyh0aGlzLmNvbnRlbnQ/Lm1lbnVJZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICAgIHRoaXMubWVnYU1lbnUgPSByZXMuZGF0YS5kYXRhIHx8IFtdO1xuICAgICAgY29uc3QgbWVudUl0ZW1zID0gcmVzPy5kYXRhPy5kYXRhIHx8IFtdO1xuICAgICAgdGhpcy5mb290ZXJNZW51ID0gbWVudUl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLm5vcm1hbGl6ZU1lZ2FNZW51SXRlbShpdGVtKSk7XG4gICAgfSwgZXJyID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU1lZ2FNZW51SXRlbShpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmlzQXJyYXkoaXRlbT8uY2hpbGRyZW4pID8gaXRlbS5jaGlsZHJlbiA6IFtdO1xuICAgIGNvbnN0IHBhZ2VzID0gY2hpbGRyZW5cbiAgICAgIC5tYXAoKGNoaWxkOiBhbnkpID0+ICh7XG4gICAgICAgIGxhYmVsOiBjaGlsZD8ubGFiZWwgPz8gJycsXG4gICAgICAgIHBhZ2VJZDogY2hpbGQ/LnBhZ2VJZCA/PyBjaGlsZD8uaWQgPz8gJycsXG4gICAgICAgIHJlZGlyZWN0aW9uVXJsOiBjaGlsZD8ucmVkaXJlY3Rpb25VcmwgPz8gY2hpbGQ/LnJlZGlyZWN0aW9uYWxVcmwgPz8gJydcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigoY2hpbGQ6IGFueSkgPT4gY2hpbGQubGFiZWwgfHwgY2hpbGQucmVkaXJlY3Rpb25VcmwpO1xuICAgIGNvbnN0IGZvbGRlciA9IGl0ZW0/LmZvbGRlciA/PyAocGFnZXMubGVuZ3RoID8geyBmb2xkZXJJZDogaXRlbT8uZm9sZGVySWQgPz8gaXRlbT8uaWQgPz8gJycsIHBhZ2VzIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgcmV0dXJuIHsgXG4gICAgICAuLi5pdGVtLCBcbiAgICAgIHNob3dIZWFkZXI6IGl0ZW0/LnNob3dIZWFkZXIgPz8gdHJ1ZSxcbiAgICAgIHJlZGlyZWN0aW9uVXJsOiBpdGVtPy5yZWRpcmVjdGlvblVybCA/PyBpdGVtPy5yZWRpcmVjdGlvbmFsVXJsID8/ICcnLFxuICAgICAgZm9sZGVyXG4gICAgfTtcbiAgfVxuXG4gIHJlZGlyZWN0aW9uc09mTWVudShlbGU6IGFueSkge1xuICAgIGlmIChlbGU/LnR5cGUgPT09ICdIT01FX1BBR0UnKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWRpcmVjdFVybCA9IGVsZT8ucmVkaXJlY3Rpb25hbFVybCA/PyBlbGU/LnJlZGlyZWN0aW9uVXJsID8/ICcnO1xuICAgIGlmICghcmVkaXJlY3RVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VXJsKTtcbiAgfVxuXG4gIG9wZW5TdWJtZW51Q2hpbGQ6IGFueSA9IG51bGw7XG5cbiAgdG9nZ2xlU3ViTWVudShjaGlsZDogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5vcGVuU3VibWVudUNoaWxkID09PSBjaGlsZCkge1xuICAgICAgdGhpcy5vcGVuU3VibWVudUNoaWxkID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuU3VibWVudUNoaWxkID0gY2hpbGQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEcm9wZG93blBvc2l0aW9uKGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICFldmVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd25fbWVudSwgLmRyb3Bkb3duX21lbnVfc3RhdGljJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghY29udGFpbmVyKSByZXR1cm47XG5cbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duTGVmdCA9IHRhcmdldFJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdDtcbiAgICB0aGlzLmRyb3Bkb3duVG9wID0gdGFyZ2V0UmVjdC5ib3R0b20gLSBjb250YWluZXJSZWN0LnRvcDtcbiAgfVxuXG4gIHRvZ2dsZUNoaWxkTWVudShlbGU6IGFueSwgZXZlbnQ/OiBFdmVudCkge1xuICAgIHRoaXMudXBkYXRlRHJvcGRvd25Qb3NpdGlvbihldmVudCk7XG4gICAgaWYgKHRoaXMuc2hvd0xpc3QgJiYgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID09PSBlbGUuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Q2hpbGRNZW51KGVsZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2hpbGRNZW51KGVsZTogYW55KSB7XG4gICAgdGhpcy5vcGVuU3VibWVudUNoaWxkID0gbnVsbDtcbiAgICBpZiAoZWxlLmNoaWxkcmVuICYmIGVsZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IGVsZS5jaGlsZHJlbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxufVxuIiwiPHNlY3Rpb24gW2lkXT1cImRhdGE/LmlkXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgdy0xMDBcIiBbY2xhc3Muei1pbmRleC0xMF09XCIhaXNIZWFkZXJTdGlja3kgJiYgaXNDb21wb25lbnRNZXJnZWRcIj5cbiAgPGRpdiBjbGFzcz1cInctMTAwXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtuZ0NsYXNzXT1cInsnYm94LXNoYWRvdyc6IGlzRWNvbW1lcmNlV2Vic2l0ZX1cIlxuICAgIFtjbGFzcy5tYXJnaW4tYm90dG9tXT1cInNob3VsZFJlc2VydmVNb2JpbGVIZWFkZXJTcGFjZVwiPlxuICAgIDxkaXYgW3NpbXBvU3RpY2t5XT1cInJlc29sdmVkU3RpY2t5VHlwZVwiIChzdGlja3lTY3JvbGxlZCk9XCJvblN0aWNreVNjcm9sbGVkKCRldmVudClcIlxuICAgICAgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiIGNsYXNzPVwidy0xMDBcIiAjY2hpbGRDb250YWluZXJcbiAgICAgIFtjYXRlZ29yeUhlYWRlcl09XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgY2F0ZWdvcnlMaXN0Py5sZW5ndGggPiAwICYmICFpc01vYmlsZSAmJiAhc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKClcIlxuICAgICAgc2ltcG9Ib3ZlciBbY2xhc3MuYmctdHJhbnNwYXJlbnRdPVwiaXNDb21wb25lbnRNZXJnZWQgJiYgIWlzU2Nyb2xsZWQgJiYgIWlzTW9iaWxlXCJcbiAgICAgIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiIFtjbGFzcy5kcm9wZG93bi1vcGVuXT1cInNob3dMaXN0XCI+XG4gICAgICA8IS0tIFtjbGFzcy5iYWNrZ3JvdW5kLXBvc2l0aW9uXT1cImlzQ29tcG9uZW50TWVyZ2VkICYmIGJhY2tncm91bmRJbmZvPy5zaG93SW1hZ2VcIiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uaGVhZGxpbmU/LmRpc3BsYXlcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c2ltcG8tbW92aW5nLXRleHQgW2VkaXRdPVwiZmFsc2VcIiBbZGVsZXRlXT1cImZhbHNlXCIgW2RhdGFdPVwiZGF0YVwiPjwvc2ltcG8tbW92aW5nLXRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uY291bnRkb3duPy5kaXNwbGF5XCI+XG4gICAgICAgIDxzaW1wby1jb3VudGRvd24tYmFubmVyIFtkYXRhXT1cImRhdGE/LmNvbnRlbnQ/LmNvdW50ZG93bkJhbm5lclwiIFtlZGl0XT1cImZhbHNlXCIgW2RlbGV0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgW2lzSGVhZGVyUmVuZGVyZXJdPVwidHJ1ZVwiPlxuICAgICAgICA8L3NpbXBvLWNvdW50ZG93bi1iYW5uZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMScgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXIxVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXIyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMycgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXIzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyNCcgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXI0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIlxuICAgICAgICBbc2ltcG9MYXlvdXRdPVwic2NyZWVuV2lkdGggPiA0NzUgPyBzdHlsZXNMYXlvdXQgOiB1bmRlZmluZWRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbW1lcmNlX2hlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG14LTIgbWItMiB3LTk2XCIgKm5nSWY9XCJpc01vYmlsZSAmJiBpc0Vjb21tZXJjZVdlYnNpdGUgJiYgIXJlc3RyaWN0Q2FydEJhckluUGFnZXMoKVwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBpdGVtc1wiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwid2FpdEJlZm9yZVNlYXJjaCgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBhY2NlbnRDb2xvcn1cIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaC0xMDBcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBzdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICAgYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBzdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIHN0eWxlPy5iYWNrZ3JvdW5kPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmICFpc01vYmlsZSAmJiBkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnTUVHQV9NRU5VJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2F0ZWdvcmllc0hlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiBpc01vYmlsZSAmJiBzaG93Q2F0ZWdvcnlNb2JpbGVIZWFkZXIoKSAmJiBkYXRhPy5zdHlsZXM/LmVuYWJsZUhlYWRlckNhcm91c2VsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlQ2F0ZWdvcnlIZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGlzTW9iaWxlICYmICFyZXN0cmljdEluUGFnZXMoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj4gLS0+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOICYmIGlzRnVsbFNjcmVlbk1lbnVPcGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZ1bGxTY3JlZW5NZW51VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkJPVFRPTV9TVElDS1kgJiYgaXNNb2JpbGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm90dG9tU3RpY2t5TmF2VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyMVRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxuICAgIDxkaXYgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIFtzdHlsZS53aWR0aC4lXT1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IDk0IDogJydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNFY29tbWVyY2VXZWJzaXRlID8gZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFpc0Vjb21tZXJjZVdlYnNpdGUgPyBidXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBIQU1CVVJHRVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5tZW51PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwib3BlbkZ1bGxTY3JlZW5NZW51KClcIj5tZW51PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlcjJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcjFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIFtzdHlsZS53aWR0aC4lXT1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IDkzIDogJydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IGVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBIQU1CVVJHRVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIiBbY2xhc3Mudy0xNV09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoID4gNDc1XCJcbiAgICAgIFtjbGFzcy53LTQwXT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPD0gNDc1XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyM1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxuICAgIDxkaXYgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IGVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXI0VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXIxXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFpc0Vjb21tZXJjZVdlYnNpdGUgPyBidXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNFY29tbWVyY2VXZWJzaXRlID8gZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj4gPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBIQU1CVVJHRVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIj5cbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIiBbY2xhc3Mudy0xNV09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoID4gNDc1XCJcbiAgICAgIFtjbGFzcy53LTQwXT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPD0gNDc1XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2dvU2VjdGlvblRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWNlbnRlciBjdXJzb3ItcG9pbnRlciBteC0xXCJcbiAgICAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIHx8ICFjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cbiAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZSArIDgwXCIgbG9hZGluZz1cImxhenlcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxuICAgICAgPGI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+IC0tPlxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiIFtzdHlsZS53aWR0aC4lXT1cInNjcmVlbldpZHRoID4gNDc1IHx8IChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSA8IDUwID8gY29udGVudD8ubG9nbz8uc2l6ZSA6IFxuICAgICgoY29udGVudD8ubG9nbz8uc2l6ZSA+PSA2MCAgJiYgY29udGVudD8ubG9nbz8uc2l6ZSA8PSAxMDApID8gKDIwKSA6ICgoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgLSAxMCkpXCJcbiAgICBbY2xhc3Mudy03NV09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiIGxvYWRpbmc9XCJsYXp5XCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIlxuICAgIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxuICA8IS0tIDwvZGl2PiAtLT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnZUxpbmtzVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJuYXZiYXItbmF2IHBhZ2VMaW5rc1wiIFtuZ0NsYXNzXT1cInsnYWxpZ24taXRlbXMtY2VudGVyJyA6ICFpc01vYmlsZX1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzU7IGVsc2UgcGFnZUxpbmtzRGVmYXVsdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duX21lbnVfc3RhdGljIHctMTAwXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0xpc3QgPSBmYWxzZTsgc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGw7IG9wZW5TdWJtZW51Q2hpbGQgPSBudWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXYtc2Nyb2xsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLW5hdlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb290ZXJNZW51XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtdGFiLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGQtdGFiXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRkLXRhYi1hY3RpdmVdPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeSA9PT0gaXRlbT8uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHRvZ2dsZUNoaWxkTWVudShpdGVtLCAkZXZlbnQpIDogcmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIiBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7aXRlbT8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzA3MSAxNC43MDcxQzEyLjMxNjYgMTUuMDk3NiAxMS42ODM0IDE1LjA5NzYgMTEuMjkyOSAxNC43MDcxTDYuMjkyODkgOS43MDcxMUM1LjkwMjM3IDkuMzE2NTggNS45MDIzNyA4LjY4MzQyIDYuMjkyODkgOC4yOTI4OUM2LjY4MzQyIDcuOTAyMzcgNy4zMTY1OCA3LjkwMjM3IDcuNzA3MTEgOC4yOTI4OUwxMiAxMi41ODU4TDE2LjI5MjkgOC4yOTI4OUMxNi42ODM0IDcuOTAyMzcgMTcuMzE2NiA3LjkwMjM3IDE3LjcwNzEgOC4yOTI4OUMxOC4wOTc2IDguNjgzNDIgMTguMDk3NiA5LjMxNjU4IDE3LjcwNzEgOS43MDcxMUwxMi43MDcxIDE0LjcwNzFaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDAwMDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRkLXBhbmVsXCIgKm5nSWY9XCJzaG93TGlzdCAmJiBzZWxlY3RlZENhdGVnb3J5Py5sZW5ndGhcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRDYXRlZ29yeVwiIFtjbGFzcy5vcGVuLXN1Ym1lbnVdPVwib3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiFjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA/IHJlZGlyZWN0aW9uc09mTWVudShjaGlsZCkgOiB0b2dnbGVTdWJNZW51KGNoaWxkLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGQtaXRlbS1hcnJvd1wiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGhcIj4mIzgyNTA7PC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3VibWVudVwiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggJiYgb3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxuICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3ViLWl0ZW1cIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShzdWIpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3BhZ2VMaW5rc0RlZmF1bHQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvd3NcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb290ZXJNZW51XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2hvd0hlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJhd2VyLXJvdy1sYWJlbFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBpdGVtPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZHJhd2VyLXJvdy1jaGV2cm9uXCIgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwvZGl2PlxuXG5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGRpdiAqbmdJZj1cImFjdGlvbj8uZGlzcGxheVwiIGNsYXNzPVwiYnV0dG9uLWRpc3BsYXkgbXQtMFwiIFtuZ0NsYXNzXT1cInsndy0xMDAganVzdGlmeS1zcGFjZS1hcm91bmQnOiBpc01vYmlsZX1cIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cbiAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgW2VkaXRdPVwiZWRpdFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2J1dHRvbklkXT1cImJ1dHRvbi5pZFwiXG4gICAgICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdGljX2xvZ2luX2J0biBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlTG9naW4oKVwiICpuZ0lmPVwiKHBhc3Nib29rQXBwU3RhdHVzIHx8IGFwcG9pbnRtZW50QXBwU3RhdHVzKSAmJiAhbG9nZ2VkSW5cIlxuICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCI+XG4gICAgICAgIDxtYXQtaWNvbj5wZXJzb25fb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgIExvZ2luXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCJcbiAgICAgICAgKm5nSWY9XCJsb2dnZWRJbiAmJiAhaXNNb2JpbGVcIj5cbiAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwidXNlckdlbmRlciB8IGdlbmRlckljb25cIiBzdHlsZT1cImhlaWdodDogMjdweDtcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZUxvZ2luQnV0dG9uXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgIWxvZ2dlZEluXCIgW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcbiAgICAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ0xPR0lOJylcIj5cbiAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTNDMTQuNzYxNCAxMyAxNyAxMC43NjE0IDE3IDhDMTcgNS4yMzg1OCAxNC43NjE0IDMgMTIgM0M5LjIzODU4IDMgNyA1LjIzODU4IDcgOEM3IDEwLjc2MTQgOS4yMzg1OCAxMyAxMiAxM1pcIlxuICAgICAgICBzdHJva2U9XCIjMzMzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0yMCAyMUMyMCAxOC44NzgzIDE5LjE1NzEgMTYuODQzNCAxNy42NTY5IDE1LjM0MzFDMTYuMTU2NiAxMy44NDI5IDE0LjEyMTcgMTMgMTIgMTNDOS44NzgyNyAxMyA3Ljg0MzQ0IDEzLjg0MjkgNi4zNDMxNSAxNS4zNDMxQzQuODQyODUgMTYuODQzNCA0IDE4Ljg3ODMgNCAyMVwiXG4gICAgICAgIHN0cm9rZT1cIiMzMzMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9zdmc+XG4gICAgJm5ic3A7XG4gICAgTG9naW48L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZUxvZ2luQnV0dG9uXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgbG9nZ2VkSW5cIiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCI+XG4gICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEzQzE0Ljc2MTQgMTMgMTcgMTAuNzYxNCAxNyA4QzE3IDUuMjM4NTggMTQuNzYxNCAzIDEyIDNDOS4yMzg1OCAzIDcgNS4yMzg1OCA3IDhDNyAxMC43NjE0IDkuMjM4NTggMTMgMTIgMTNaXCJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjAgMjFDMjAgMTguODc4MyAxOS4xNTcxIDE2Ljg0MzQgMTcuNjU2OSAxNS4zNDMxQzE2LjE1NjYgMTMuODQyOSAxNC4xMjE3IDEzIDEyIDEzQzkuODc4MjcgMTMgNy44NDM0NCAxMy44NDI5IDYuMzQzMTUgMTUuMzQzMUM0Ljg0Mjg1IDE2Ljg0MzQgNCAxOC44NzgzIDQgMjFcIlxuICAgICAgICBzdHJva2U9XCIjMzMzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAgICZuYnNwO0FjY291bnQ8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlRm9vdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjYXJ0LWZvb3RlclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICpuZ0lmPVwiZ2V0Q2FydEl0ZW1zQ291bnQgPiAwICYmICFyZXN0cmljdENhcnRCYXJJblBhZ2VzKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTMgcHktMiBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvdW50IGZ3LWJvbGRcIj5cbiAgICAgICAge3sgZ2V0Q2FydEl0ZW1zQ291bnQgPz8gMyB9fSB7eyBnZXRDYXJ0SXRlbXNDb3VudCA+IDEgPyAnaXRlbXMnIDogJ2l0ZW0nIH19IGluIGNhcnRcbiAgICAgICAgPCEtLSBUb3RhbCA6IOKCuXt7IGdldENhcnRUb3RhbEFtb3VudCB9fSAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgZnctYm9sZFwiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XG4gICAgICAgIFZpZXcgQ2FydCA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZvb3RlclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5ob21lPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5Ib21lPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmdyaWRfb248L21hdC1pY29uPlxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlNob3A8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmZhdm9yaXRlX2JvcmRlcjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+V2lzaGxpc3Q8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY2FydEl0ZW1Db3VudFwiICpuZ0lmPVwiZ2V0V2lzaGxpc3RJdGVtc0NvdW50XCI+e3tnZXRXaXNobGlzdEl0ZW1zQ291bnR9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpY29ucyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNob3BwaW5nX2NhcnQ8L21hdC1pY29uPlxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPkNhcnQ8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY2FydEl0ZW1Db3VudFwiICpuZ0lmPVwiZ2V0Q2FydEl0ZW1zQ291bnRcIj57e2dldENhcnRJdGVtc0NvdW50fX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Vjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImp1c3RpZnktY29udGVudC1iZXR3ZWVuIHByLTAgZC1mbGV4IHBvc2l0aW9uLXJlbGF0aXZlIGdhcC0xMCB3LTEwMFwiXG4gICAgW3N0eWxlLmZsZXhEaXJlY3Rpb25dPVwic3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIyJyB8fCBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjQnID8gJ3Jvdy1yZXZlcnNlJyA6ICcnXCI+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwic2VhcmNoLWljb25cIiAoY2xpY2spPVwic2hvd1NlYXJjaEJhciA9ICFzaG93U2VhcmNoQmFyXCI+XG4gICAgICA8bWF0LWljb24gW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPGRpdiBjbGFzcz1cInctNzUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAhcGFzc2Jvb2tBcHBTdGF0dXN9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy03NSBtbC0yXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggRm9yIEl0ZW1zXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJ3YWl0QmVmb3JlU2VhcmNoKClcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYm9yZGVyJyA6ICcxcHggc29saWQgJyArIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcn1cIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5cbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBvc2l0aW9uLWFic29sdXRlXCIgXG4gICAgICAgICAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAqbmdJZj1cInN0eWxlPy5zZWFyY2hCYXJQbGFjZWhvbGRlckxpc3QubGVuZ3RoID4gMSAmJiBzdHlsZT8uc21hcnRTZWFyY2hCYXJcIj5cbiAgICAgICAgICB7eyBjdXJyZW50UGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9zcGFuPiAtLT5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaC0xMDBcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT09ICdTb2xpZCcgPyAgIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArICBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmNvbG9yXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMSBweC0zIGItMSBzdG9yZXNcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cImdvVG9TY2hlbWVzKClcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRSR0JBKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciAsIDEwKVwiICpuZ0lmPVwicGFzc2Jvb2tBcHBTdGF0dXNcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgICB4bWxuczpzdmdqcz1cImh0dHA6Ly9zdmdqcy5kZXYvc3ZnanNcIiBpZD1cIkxheWVyXzJcIiB2aWV3Qm94PVwiMCAwIDYwIDYwXCIgZGF0YS1uYW1lPVwiTGF5ZXIgMlwiIHdpZHRoPVwiMzBcIlxuICAgICAgICAgIGhlaWdodD1cIjMwXCIgdmVyc2lvbj1cIjEuMVwiPlxuICAgICAgICAgIDxnIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB0cmFuc2Zvcm09XCJtYXRyaXgoMSwwLDAsMSwwLDApXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTE0LjM2IDQ2LjY2LjUxLTkuODYtMTEuOTMtNy4xNi0xLjk0IDguNDN6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIm0xNy4xNyAzOC4xczAtLjAyLjAyLS4wM2MwIDAgMC0uMDIuMDItLjAyLjA0LS4wNS4xLS4wOC4xNS0uMTEuMDItLjAxLjAzLS4wMy4wNS0uMDRsNC42Ni0xLjk0aC0uMDJzLTEuODctMS4yMS0xLjg3LTEuMjFsLTMuMTggMS41Ny0xLjA3LjUzLS40MyA4LjMyIDEuNTgtNi45Yy4wMS0uMDYuMDUtLjEyLjA5LS4xN3pcIlxuICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTE5LjE0IDM0LjA4LTYuMjctNC4wNGMtLjE5LS4xMi0uMjgtLjM0LS4yMy0uNTZsMS4wOC00LjcyLTkuOTYgNC4xNCAxMS42OCA3LjAxelwiXG4gICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMzAuOTMgNDYuNDItLjUgOS43OSAzMi41Ny0xOC42Ny0xLjIxLTYuNC0yMy4xNiAxMS40NnpcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTE2IDQ3LjY1IDEzLjM4IDguNTguNDktOS44Ni0xMS45My03LjE3elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJtMjcuODUgMzkuMzRzMCAwLS4wMSAwYzAgMCAwIDAtLjAxIDAtLjA4LjA0LS4xNi4wNi0uMjQuMDYtLjA1IDAtLjEtLjAzLS4xNS0uMDQtLjA0LS4wMS0uMDgtLjAxLS4xMS0uMDNsLTQuMTYtMi42Ny00LjM3IDEuODIgMTEuNjggNy4wMSAzMC40LTE1LjA1LTEwLjcxLTMuODgtMjIuMjggMTIuNzh6XCJcbiAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJhY2NlbnRDb2xvclwiIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTI4LjI2IDM2LjAxLS4xIDEuOTMgMzIuNTgtMTguNjktMS4yMi02LjM5LTMwLjg2IDE1LjI4elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjcuNjEgMjguMDktMTEuOTMtNy4xNi0xLjk0IDguNDMgMTMuMzYgOC41OHpcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwibTU4LjU3IDEyLjE1LTEyLjEtNC4zOC0yOS45NyAxMi40MyAxMS42OCA3elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8ZGl2IFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiPlNjaGVtZXM8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RvcmVzIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgcHktMiBweC0zXCIgKGNsaWNrKT1cImdvVG9TdG9yZXMoKVwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAqbmdJZj1cInN0b3JlQXZhaWFibGVcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRSR0JBKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciAsIDEwKVwiPlxuICAgICAgICA8bWF0LWljb24gW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPnN0b3JlPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPlN0b3Jlczwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBpbi10ZXh0XCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7c2hvd0xvZ2luID0gZmFsc2VcIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgKm5nSWY9XCIhZ2V0UGluY29kZVwiPkVudGVyXG4gICAgICAgIFBpbmNvZGVcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBpbi10ZXh0XCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7O3Nob3dMb2dpbiA9IGZhbHNlXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiZ2V0UGluY29kZSAmJiBnZXRQaW5jb2RlLmxlbmd0aCA9PSA2XCI+e3tcIkRlbGl2ZXJpbmcgdG86IFwiICtcbiAgICAgICAgZ2V0UGluY29kZX19PC9kaXY+XG5cbiAgICAgIDwhLS0gKG1vdXNlbGVhdmUpPVwic2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicGluY29kZS1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93UGluY29kZUlucHV0XCIgKG1vdXNlbGVhdmUpPVwic2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIG1iLTIgZi0xOCBmdy1ib2xkXCI+XG4gICAgICAgICAgWW91ciBQSU4gQ29kZSB1bmxvY2tzXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdGV4dC1jZW50ZXIgZi0xNCBwaW5jb2RlLXRleHRcIj5cbiAgICAgICAgICBGYXN0ZXN0IGRlbGl2ZXJ5IGRhdGUsIFRyeS1hdC1Ib21lIGF2YWlsYWJpbGl0eSxcbiAgICAgICAgICBOZWFyZXN0IHN0b3JlIGFuZCBJbi1zdG9yZSBkZXNpZ24hXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbXQtMiBici01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHgtM1wiXG4gICAgICAgICAgW2NsYXNzLmVycm9yLWJvcmRlcl09XCJwaW5FcnJvclwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJQaW5jb2RlXCIgYXJpYS1sYWJlbD1cIlBpbmNvZGVcIiBbKG5nTW9kZWwpXT1cInBpbmNvZGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3LTc1IHAtMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zdWItdGV4dCBmLTExIHctMjUgdGV4dC1lbmQgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2V0UGluY29kZSgpXCI+U1VCTUlUPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yIGYtMTFcIiAqbmdJZj1cInBpbkVycm9yXCI+XG4gICAgICAgICAgUGxlYXNlIGVudGVyIGEgdmFsaWQgcGluY29kZVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9GYXYoKVwiPlxuICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmNvbG9yXCI+ZmF2b3JpdGU8L21hdC1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY2FydEl0ZW1Db3VudFwiICpuZ0lmPVwiZ2V0V2lzaGxpc3RJdGVtc0NvdW50XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKScgLCAnY29sb3InIDogc2V0Q29sb3IoKX1cIj5cbiAgICAgICAgICB7e2dldFdpc2hsaXN0SXRlbXNDb3VudH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJnYXA6IDVweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uY29sb3JcIj5zaG9wcGluZ19jYXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKScgLCAnY29sb3InIDogc2V0Q29sb3IoKX1cIj5cbiAgICAgICAgICB7e2dldENhcnRJdGVtc0NvdW50fX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luQnV0dG9uXCIgKm5nSWY9XCIhbG9nZ2VkSW5cIiAobW91c2VlbnRlcik9XCJzaG93TG9naW4gPSB0cnVlO3Nob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMjdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xMi4xMiAxMi43OEMxMi4wNSAxMi43NyAxMS45NiAxMi43NyAxMS44OCAxMi43OEMxMC4xMiAxMi43MiA4LjcxOTk3IDExLjI4IDguNzE5OTcgOS41MDk5OEM4LjcxOTk3IDcuNjk5OTggMTAuMTggNi4yMjk5OCAxMiA2LjIyOTk4QzEzLjgxIDYuMjI5OTggMTUuMjggNy42OTk5OCAxNS4yOCA5LjUwOTk4QzE1LjI3IDExLjI4IDEzLjg4IDEyLjcyIDEyLjEyIDEyLjc4WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzI5MkQzMlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE4Ljc0IDE5LjM4QzE2Ljk2IDIxLjAxIDE0LjYgMjIgMTIgMjJDOS40MDAwMSAyMiA3LjA0MDAxIDIxLjAxIDUuMjYwMDEgMTkuMzhDNS4zNjAwMSAxOC40NCA1Ljk2MDAxIDE3LjUyIDcuMDMwMDEgMTYuOEM5Ljc3MDAxIDE0Ljk4IDE0LjI1IDE0Ljk4IDE2Ljk3IDE2LjhDMTguMDQgMTcuNTIgMTguNjQgMTguNDQgMTguNzQgMTkuMzhaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjMjkyRDMyXCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTIgMjJDMTcuNTIyOCAyMiAyMiAxNy41MjI4IDIyIDEyQzIyIDYuNDc3MTUgMTcuNTIyOCAyIDEyIDJDNi40NzcxNSAyIDIgNi40NzcxNSAyIDEyQzIgMTcuNTIyOCA2LjQ3NzE1IDIyIDEyIDIyWlwiXG4gICAgICAgICAgICBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgPC9zdmc+IDwhLS0gPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCI+TG9naW48L3NwYW4+IC0tPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIChtb3VzZWxlYXZlKT1cInNob3dMb2dpbiA9IGZhbHNlXCIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93TG9naW5cIiAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxuICAgICAgICAgIFlvdXIgQWNjb3VudFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTRcIj5cbiAgICAgICAgICBBY2Nlc3MgYWNjb3VudCAmIG1hbmFnZSB5b3VyIG9yZGVycy5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyIHctMTAwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1NJR05VUCcpXCIgY2xhc3M9XCJ3LTUwIHRleHQtY2VudGVyIHNpZ24tYnRuIGJvcmRlci0wXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICAgYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlNpZ24gVXA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJnb1RvQWNjb3VudCgnTE9HSU4nKVwiIGNsYXNzPVwidy01MCB0ZXh0LWNlbnRlciBzaWduLWJ0blwiXG4gICAgICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPkxvZyBJbjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogOHB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdQUk9GSUxFJylcIlxuICAgICAgICAqbmdJZj1cImxvZ2dlZEluXCI+XG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInVzZXJHZW5kZXIgfCBnZW5kZXJJY29uXCIgc3R5bGU9XCJoZWlnaHQ6IDI3cHg7XCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxkaXY+IC0tPlxuICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJnb1RvQWNjb3VudCgpXCIgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cInNlY3Rpb25JZCtidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b25TdHlsZVwiIFtjb2xvcl09XCJjb2xvclwiIFthcHBCdXR0b25FZGl0b3JdPVwiZWRpdCA/PyBmYWxzZVwiIFtidXR0b25EYXRhXT1cImJ1dHRvbkNvbnRlbnRcIj57e2J1dHRvbkNvbnRlbnQ/LmxhYmVsfX08L2J1dHRvbj4gLS0+XG4gICAgPCEtLSA8L2Rpdj4gLS0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNuYXZiYXJMaW5rc1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGZzLTYgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7IG1hcmdpbi1sZWZ0OiAyNXB4O1wiXG4gICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA3NjhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE5hdmJhckJ1dHRvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2hvd0hlYWRlclwiPlxuICAgICAgICA8c2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50IFtidXR0b25EYXRhXT1cIml0ZW1cIiBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcbiAgICAgICAgICBbYnV0dG9uU3R5bGVdPVwic3R5bGU/Lm5hdmJhckJ1dHRvblN0eWxlXCIgW2JnQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGdldERyb3Bkb3duTGlua3M7IGxldCBpZHggPSBpbmRleFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdPy5sZW5ndGggXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwibWF0LWJ0biBkcm9wZG93bi10b2dnbGVcIiB0eXBlPVwiYnV0dG9uXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIGlkPVwibGlua1wiXG4gICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIHt7bGluayB8IHVwcGVyY2FzZX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJsaW5rXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBnZXRWYWx1ZXMoY29udGVudD8uZWNvbWxpbmtzPy5bbGlua10pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5RmlsdGVyKG1lbnUsIGxpbmspXCI+e3ttZW51fX08L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiPlxuICA8ZGl2ICNtb2JpbGVPZmZjYW52YXMgY2xhc3M9XCJvZmZjYW52YXNcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJvZmZjYW52YXNSaWdodFwiIGFyaWEtbGFiZWxsZWRieT1cIm9mZmNhbnZhc1JpZ2h0TGFiZWxcIlxuICAgIGRhdGEtYnMtYmFja2Ryb3A9XCJmYWxzZVwiXG4gICAgW25nQ2xhc3NdPVwieydvZmZjYW52YXMtZW5kJyA6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMScgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIzJywgJ29mZmNhbnZhcy1zdGFydCc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0J31cIj5cblxuICAgIDwhLS0gVE9QIEJBUiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXRvcGJhclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItbG9nb1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlTG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyYXdlci1jbG9zZS1idG5cIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIiBhcmlhLWxhYmVsPVwiQ2xvc2UgbWVudVwiPlxuICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBCT0RZIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJvZmZjYW52YXMtYm9keSBkcmF3ZXItYm9keVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlTWVudUxpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBESVZJREVSICsgUVVJQ0sgQUNUSU9OUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWZvb3RlclwiICpuZ0lmPVwiYWN0aW9uPy5kaXNwbGF5ICYmIGFjdGlvbj8uYnV0dG9ucz8ubGVuZ3RoXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRpdmlkZXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItYWN0aW9uXCIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cbiAgICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50IFtidXR0b25Db250ZW50XT1cImJ1dHRvbi5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxuICAgICAgICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiIFtpc0Z1bGxXaWR0aF09XCJ0cnVlXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZWNvbVByb2ZpbGVUZW1wbGF0ZT5cbiAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJoLTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYnItNTAgZnMtMjIgcHgtMyBweS0xXCJcbiAgICAoY2xpY2spPVwic2hvd1NlYXJjaEJhck1vYmlsZSA9ICFzaG93U2VhcmNoQmFyTW9iaWxlXCJcbiAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgYmFja2dyb3VuZEluZm8/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknfVwiXG4gICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPnNlYXJjaDwvbWF0LWljb24+IC0tPlxuXG5cbiAgPCEtLSA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtb2ItZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdFwiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgKm5nSWY9XCJzaG93U2VhcmNoQmFyTW9iaWxlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwid2FpdEJlZm9yZVNlYXJjaCgpXCJcbiAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9XCI+IC0tPlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCJcbiAgICAqbmdJZj1cImxvZ2dlZEluXCI+XG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwidXNlckdlbmRlciB8IGdlbmRlckljb25cIiBzdHlsZT1cImhlaWdodDogMjdweDtcIj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vYmlsZUxvZ29TZWN0aW9uVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24tY2VudGVyIGN1cnNvci1wb2ludGVyIGgtMTAwXCJcbiAgICAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIHx8ICFjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBjbGFzcz1cImgtMTAwXCI+XG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgY2xhc3M9XCJoLTEwMFwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+XG4gICAgICA8Yj57e2NvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9iPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj4gLS0+XG4gIDxpbWcgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiIGNsYXNzPVwiaC0xMDBcIiBsb2FkaW5nPVwibGF6eVwiXG4gICAgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIj5cbiAgPCEtLSA8L2Rpdj4gLS0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NhdGVnb3JpZXNIZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLXdyYXBwZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNob3dDb2xsZWN0aW9ucyA9IGZhbHNlXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmx1ci1vdmVybGF5XCIgW2NsYXNzLmFjdGl2ZV09XCJzaG93TGlzdCB8fCBzaG93Q29sbGVjdGlvbnNcIj48L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWhlYWRlciBkLWZsZXggZ2FwLTMgcHktMiBwb3NpdGlvbi1yZWxhdGl2ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnkgY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIG1lZ2FNZW51OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW3N0eWxlLi0tYm9yZGVyLWNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2V0Q2hpbGRNZW51KGVsZSlcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIj5cbiAgICAgICAge3tlbGU/LmxhYmVsfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBbY2xhc3MuaGlkZS1kcm9wZG93bl09XCIhc2hvd0xpc3RcIiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1jYXRlZ29yeVwiIFtjbGFzcy5zaG93LWRyb3Bkb3duXT1cInNob3dMaXN0XCIgW2NsYXNzLmhpZGUtZHJvcGRvd25dPVwiIXNob3dMaXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIGgtMTAwIG1lZ2EtbWVudS1zY3JvbGwtcm93XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZSBvZiBzZWxlY3RlZENhdGVnb3J5OyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVnYS1tZW51LXNjcm9sbC1jb2xcIiBbbmdDbGFzc109XCJbXG4gICAgICAgICAgICAgIGVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChlbGUudHlwZT09J0NPTExFQ1RJT05TJyB8fCBlbGUudHlwZT09J0NBVEVHT1JJRVMnKSA/ICdjb2wtMycgOiAnY29sLTInLFxuICAgICAgICAgICAgICBlbGU/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmICFsYXN0ID8gJ2hhcy1yaWdodC1ib3JkZXInIDogJydcbiAgICAgICAgICAgIF1cIj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChlbGUudHlwZT09J0NPTExFQ1RJT05TJyB8fCBlbGUudHlwZT09J0NBVEVHT1JJRVMnIClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcmQgbWItM1wiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiICpuZ0lmPVwiZWxlLmltYWdlVXJsXCI+XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImVsZS5pbWFnZVVybFwiIFthbHRdPVwiZWxlPy5sYWJlbFwiIGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtaW1hZ2UgY29sbGVjdGlvbkltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FwdGlvblwiPnt7ZWxlPy5sYWJlbCB8IHVwcGVyY2FzZX19PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1oZWFkZXIgbWItMyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiICpuZ0lmPVwiIWVsZS5pbWFnZVVybFwiPlxuICAgICAgICAgICAgICAgIHt7ZWxlPy5sYWJlbCB8IHRpdGxlY2FzZX19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWhlYWRlciBtYi0zIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShlbGUpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIHt7ZWxlPy5sYWJlbCB8IHRpdGxlY2FzZX19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGU/LmNoaWxkcmVuICYmIGVsZT8uY2hpbGRyZW4ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zIGxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGVsZT8uY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShjaGlsZClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImNoaWxkPy5sb2dvVXJsXCIgW3NyY109XCJjaGlsZD8ubG9nb1VybFwiIFthbHRdPVwiY2hpbGQ/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lZ2EtbWVudS1jaGlsZC1sb2dvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hpbGQ/LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtZWdhLW1lbnUtY2hpbGQtZGVzY1wiPnt7Y2hpbGQ/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vYmlsZU1lbnVMaXN0VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1jb250YWluZXJcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93c1wiICpuZ0lmPVwiIXNlbGVjdGVkTW9iaWxlTWVudVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIG1lZ2FNZW51XCJcbiAgICAgICAgKGNsaWNrKT1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHNlbGVjdE1vYmlsZU1lbnUoZWxlKSA6IHJlZGlyZWN0aW9uc09mTWVudShlbGUpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1icy1kaXNtaXNzXT1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA/IG51bGwgOiAnb2ZmY2FudmFzJ1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgZWxlPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZHJhd2VyLXJvdy1jaGV2cm9uXCIgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWxcIiAqbmdJZj1cInNlbGVjdGVkTW9iaWxlTWVudVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtYmFja1wiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5cbiAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3tzZWxlY3RlZE1vYmlsZU1lbnU/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtc2VjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRNb2JpbGVNZW51Py5jaGlsZHJlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChjaGlsZC50eXBlPT0nQ09MTEVDVElPTlMnIHx8IGNoaWxkLnR5cGU9PSdDQVRFR09SSUVTJyApXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc3VibWVudS1jYXJkXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShjaGlsZClcIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpbGQuaW1hZ2VVcmxcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2hpbGQuaW1hZ2VVcmxcIiBbYWx0XT1cImNoaWxkPy5sYWJlbFwiIGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtaW1hZ2UgY29sbGVjdGlvbkltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FwdGlvblwiPnt7Y2hpbGQ/LmxhYmVsIHwgdXBwZXJjYXNlfX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIiEoY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoY2hpbGQudHlwZT09J0NPTExFQ1RJT05TJyB8fCBjaGlsZC50eXBlPT0nQ0FURUdPUklFUycgKSAmJiBjaGlsZC5pbWFnZVVybClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3cgZHJhd2VyLXJvdy0tc3ViXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShjaGlsZClcIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIj5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiY2hpbGQ/LmxvZ29VcmxcIiBbc3JjXT1cImNoaWxkPy5sb2dvVXJsXCIgW2FsdF09XCJjaGlsZD8ubGFiZWxcIiBjbGFzcz1cIm1lZ2EtbWVudS1jaGlsZC1sb2dvXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgY2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRldGFpbC1ncmlkXCIgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItY2hpcFwiICpuZ0Zvcj1cImxldCBzdWIgb2YgY2hpbGQ/LmNoaWxkcmVuXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShzdWIpXCJcbiAgICAgICAgICAgICAgICAgIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiPlxuICAgICAgICAgICAgICAgICAge3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlQ2F0ZWdvcnlIZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWhlYWRlciBkLWZsZXggZ2FwLTMgIHB5LTIgb3ZlcmZsb3ctYXV0b1wiICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5sZW5ndGggPiAwICYmIGlzTW9iaWxlXCJcbiAgICBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCIgW2NsYXNzLm1hcmdpbi10b3AtbW9iXT1cImlzSGVhZGVyU3RpY2t5XCI+XG4gICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5IGN1cnNvci1wb2ludGVyIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiICpuZ0Zvcj1cImxldCBlbGUgb2YgY2F0ZWdvcnlMaXN0O2xldCBpID0gaW5kZXhcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwic2VsZWN0ZWRDYXRlZ29yeSA9IGVsZTsgZmlsdGVyQnlDYXRlZ29yeSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0LWltZyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImVsZT8uaW1hZ2VVcmxzWzBdXCIgW2FsdF09XCJlbGU/LmNhdGVnb3J5TmFtZVwiIGNsYXNzPVwiYnItMTIgbW9iaWxlLWNhdGVnb3J5LWltYWdlXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+e3tlbGU/LmNhdGVnb3J5TmFtZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlY29tbWVyY2VfaGVhZGVyPlxuICA8aGVhZGVyIGNsYXNzPVwic2l0ZS1oZWFkZXJcIiBbbmdDbGFzc109XCJ7XG4gICAgICAnZWNvbS1oZWFkZXIxJzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIxJyxcbiAgICAgICdlY29tLWhlYWRlcjInOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjInLFxuICAgICAgJ2Vjb20taGVhZGVyMyc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMycsXG4gICAgICAnZWNvbS1oZWFkZXI0Jzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0J1xuICAgIH1cIj5cbiAgICA8IS0tIFRvcCBCYXI6IExvZ28sIFNlYXJjaCwgVXNlciBBY3Rpb25zIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyXCI+XG5cbiAgICAgIDwhLS0gTW9iaWxlIE1lbnUgVG9nZ2xlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvLWFyZWFcIiBbbmdDbGFzc109XCJ7J21vYmlsZS1oZWFkZXItbGVmdC1zaWRlJzogc2NyZWVuV2lkdGggPD0gNDc1fVwiPlxuICAgICAgICA8IS0tIEhBTUJVUkdFUiAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwicmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCIgZm9yPVwibW9iaWxlLW1lbnUtY2hlY2tib3hcIlxuICAgICAgICAgIGNsYXNzPVwibW9iaWxlLW1lbnUtYnRuXCIgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiXG4gICAgICAgICAgYXJpYS1jb250cm9scz1cIm9mZmNhbnZhc1JpZ2h0XCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBtZW51XCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNPZmZjYW52YXNPcGVuXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMTJcIiB4Mj1cIjIwXCIgeTI9XCIxMlwiPjwvbGluZT5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiNlwiIHgyPVwiMjBcIiB5Mj1cIjZcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjE4XCIgeDI9XCIyMFwiIHkyPVwiMThcIj48L2xpbmU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cImlzT2ZmY2FudmFzT3BlblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjZcIiB4Mj1cIjE4XCIgeTI9XCIxOFwiPjwvbGluZT5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNlwiIHkxPVwiMThcIiB4Mj1cIjE4XCIgeTI9XCI2XCI+PC9saW5lPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiIGNsYXNzPVwibW9iaWxlLW1lbnUtYnRuXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG1lbnVcIiAoY2xpY2spPVwib3BlbkZ1bGxTY3JlZW5NZW51KClcIj5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMTJcIiB4Mj1cIjIwXCIgeTI9XCIxMlwiPjwvbGluZT5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiNlwiIHgyPVwiMjBcIiB5Mj1cIjZcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjE4XCIgeDI9XCIyMFwiIHkyPVwiMThcIj48L2xpbmU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPCEtLSBMb2dvIFNlY3Rpb24gLS0+XG4gICAgICAgIDxhIGNsYXNzPVwibG9nb1wiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJMb2dvXCIgY2xhc3M9XCJsb2dvLWltZ1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplICArIDE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0UGx1c2xvZ29cIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIiAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIFxuICAgICAgICAgICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dCBcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb24gXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8udXJsXCI+XG5cbiAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJsb2dvLWljb25cIlxuICAgICAgICAgICAgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemUgKyAxNVwiIFtoZWlnaHRdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiPlxuXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dvLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NVwiPlxuICAgICAgICAgICAge3sgY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJsb2dvXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSBcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHQgXG4gICAgICAgICAgJiYgIWNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvblwiPlxuXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dvLW1haW5cIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+XG4gICAgICAgICAgICB7eyBjb250ZW50Py5zaXRlTmFtZT8udmFsdWUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFNlYXJjaCBCYXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIlxuICAgICAgICAqbmdJZj1cInNjcmVlbldpZHRoID4gNDc1ICYmIGNvbnRlbnQ/LnNob3dTZWFyY2hCYXIgJiYgZGF0YT8uc3R5bGVzPy5tZW51VHlwZSAhPT0gJ0RST1BET1dOX01FTlUnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmFyXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGl0ZW1cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoUHJvZHVjdHMoKVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIj5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uIHNlYXJjaC1idG5cIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIyMVwiIHgyPVwiMTYuNjVcIiB5Mj1cIjE2LjY1XCI+PC9saW5lPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERyb3Bkb3duIG1lbnUgc3R5bGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fbWVudVwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzUgJiYgZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ0RST1BET1dOX01FTlUnXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0xpc3QgPSBmYWxzZTsgc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRkLW5hdi1zY3JvbGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtdGFiLXdyYXBcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIG1lZ2FNZW51XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGQtdGFiXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGQtdGFiLWFjdGl2ZV09XCJzaG93TGlzdCAmJiBzZWxlY3RlZENhdGVnb3J5ID09PSBlbGU/LmNoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID8gdG9nZ2xlQ2hpbGRNZW51KGVsZSwgJGV2ZW50KSA6IHJlZGlyZWN0aW9uc09mTWVudShlbGUpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBweFwiIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjcwNzEgMTQuNzA3MUMxMi4zMTY2IDE1LjA5NzYgMTEuNjgzNCAxNS4wOTc2IDExLjI5MjkgMTQuNzA3MUw2LjI5Mjg5IDkuNzA3MTFDNS45MDIzNyA5LjMxNjU4IDUuOTAyMzcgOC42ODM0MiA2LjI5Mjg5IDguMjkyODlDNi42ODM0MiA3LjkwMjM3IDcuMzE2NTggNy45MDIzNyA3LjcwNzExIDguMjkyODlMMTIgMTIuNTg1OEwxNi4yOTI5IDguMjkyODlDMTYuNjgzNCA3LjkwMjM3IDE3LjMxNjYgNy45MDIzNyAxNy43MDcxIDguMjkyODlDMTguMDk3NiA4LjY4MzQyIDE4LjA5NzYgOS4zMTY1OCAxNy43MDcxIDkuNzA3MTFMMTIuNzA3MSAxNC43MDcxWlwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDAwMDAwXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRkLXBhbmVsXCIgKm5nSWY9XCJzaG93TGlzdCAmJiBzZWxlY3RlZENhdGVnb3J5Py5sZW5ndGhcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRDYXRlZ29yeVwiIFtjbGFzcy5vcGVuLXN1Ym1lbnVdPVwib3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiFjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA/IHJlZGlyZWN0aW9uc09mTWVudShjaGlsZCkgOiB0b2dnbGVTdWJNZW51KGNoaWxkLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGQtaXRlbS1hcnJvd1wiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGhcIj4mIzgyNTA7PC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3VibWVudVwiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggJiYgb3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxuICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3ViLWl0ZW1cIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShzdWIpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPCEtLSBSaWdodCBBY3Rpb25zIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItYWN0aW9uc1wiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnRFJPUERPV05fTUVOVScgJiYgc2NyZWVuV2lkdGggPiA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhclwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGRyb3Bkb3duLXNlYXJjaC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2ggPSAhc2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaFwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgc2VhcmNoXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0b3JlQXZhaWFibGVcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIHN0b3JlLWxpbmtcIiAobW91c2VlbnRlcik9XCJzaG93UGluY29kZUlucHV0ID0gdHJ1ZTtzaG93TG9naW4gPSBmYWxzZVwiXG4gICAgICAgICAgICAqbmdJZj1cIiFnZXRQaW5jb2RlXCI+XG4gICAgICAgICAgICA8IS0tIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk04LjUgMC41Yy0zLjAzMiAwLTUuNSAyLjQ2Ny01LjUgNS41IDAgNC4zNzMgNC45MTMgMTAuMDg2IDUuMTIyIDEwLjMyOGwwLjM3OCAwLjQzNSAwLjM3OC0wLjQzNmMwLjIwOS0wLjI0MSA1LjEyMi01Ljk1NCA1LjEyMi0xMC4zMjcgMC0zLjAzMy0yLjQ2OC01LjUtNS41LTUuNXpNOC41IDE1LjIxNWMtMS4xNDYtMS40MjQtNC41LTUuODc5LTQuNS05LjIxNSAwLTIuNDgxIDIuMDE5LTQuNSA0LjUtNC41czQuNSAyLjAxOSA0LjUgNC41YzAgMy4zMzMtMy4zNTQgNy43OTEtNC41IDkuMjE1ek04LjUgMy4xMzljLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDMgMy0xLjM0NiAzLTMtMS4zNDYtMy0zLTN6TTguNSA4LjEzOWMtMS4xMDMgMC0yLTAuODk3LTItMnMwLjg5Ny0yIDItMiAyIDAuODk3IDIgMi0wLjg5NyAyLTIgMnpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMDAwMDAwXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPiAtLT5cblxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCJcbiAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMzQxLjQ3NiAzMzguMjg1YzU0LjQ4My04NS40OTMgNDcuNjM0LTc0LjgyNyA0OS4yMDQtNzcuMDU2QzQxMC41MTYgMjMzLjI1MSA0MjEgMjAwLjMyMiA0MjEgMTY2IDQyMSA3NC45OCAzNDcuMTM5IDAgMjU2IDAgMTY1LjE1OCAwIDkxIDc0LjgzMiA5MSAxNjZjMCAzNC4zIDEwLjcwNCA2OC4wOTEgMzEuMTkgOTYuNDQ2bDQ4LjMzMiA3NS44NEMxMTguODQ3IDM0Ni4yMjcgMzEgMzY5Ljg5MiAzMSA0MjJjMCAxOC45OTUgMTIuMzk4IDQ2LjA2NSA3MS40NjIgNjcuMTU5QzE0My43MDQgNTAzLjg4OCAxOTguMjMxIDUxMiAyNTYgNTEyYzEwOC4wMjUgMCAyMjUtMzAuNDcyIDIyNS05MCAwLTUyLjExNy04Ny43NDQtNzUuNzU3LTEzOS41MjQtODMuNzE1em0tMTk0LjIyNy05Mi4zNGExNS41NyAxNS41NyAwIDAgMC0uNTE3LS43NThDMTI5LjY4NSAyMjEuNzM1IDEyMSAxOTMuOTQxIDEyMSAxNjZjMC03NS4wMTggNjAuNDA2LTEzNiAxMzUtMTM2IDc0LjQzOSAwIDEzNSA2MS4wMDkgMTM1IDEzNiAwIDI3Ljk4Ni04LjUyMSA1NC44MzctMjQuNjQ2IDc3LjY3MS0xLjQ0NSAxLjkwNiA2LjA5NC05LjgwNi0xMTAuMzU0IDE3Mi45MThMMTQ3LjI0OSAyNDUuOTQ1ek0yNTYgNDgyYy0xMTcuOTk0IDAtMTk1LTM0LjY4My0xOTUtNjAgMC0xNy4wMTYgMzkuNTY4LTQ0Ljk5NSAxMjcuMjQ4LTU1LjkwMWw1NS4xMDIgODYuNDYzYTE0Ljk5OCAxNC45OTggMCAwIDAgMjUuMjk4IDBsNTUuMTAxLTg2LjQ2M0M0MTEuNDMxIDM3Ny4wMDUgNDUxIDQwNC45ODQgNDUxIDQyMmMwIDI1LjEwMi03Ni4zMTMgNjAtMTk1IDYwelwiPlxuICAgICAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgZD1cIk0yNTYgOTFjLTQxLjM1NSAwLTc1IDMzLjY0NS03NSA3NXMzMy42NDUgNzUgNzUgNzUgNzUtMzMuNjQ1IDc1LTc1LTMzLjY0NS03NS03NS03NXptMCAxMjBjLTI0LjgxMyAwLTQ1LTIwLjE4Ny00NS00NXMyMC4xODctNDUgNDUtNDUgNDUgMjAuMTg3IDQ1IDQ1LTIwLjE4NyA0NS00NSA0NXpcIj5cbiAgICAgICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvc3ZnPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b3JlLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+RW50ZXIgUGluY29kZTwvc3Bhbj5cblxuICAgICAgICAgIDwvYT5cblxuICAgICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgc3RvcmUtbGlua1wiIChtb3VzZWVudGVyKT1cInNob3dQaW5jb2RlSW5wdXQgPSB0cnVlOztzaG93TG9naW4gPSBmYWxzZVwiXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJnZXRQaW5jb2RlICYmIGdldFBpbmNvZGUubGVuZ3RoID09IDZcIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMiA3IDQuNDEtNC40MUEyIDIgMCAwIDEgNy44MyAyaDguMzRhMiAyIDAgMCAxIDEuNDIuNTlMMjIgN1wiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04XCI+PC9wYXRoPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDIydi00YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0XCI+PC9wYXRoPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIgN2gyMFwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTIyIDd2M2EyIDIgMCAwIDEtMiAydjBhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSAxNiAxMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDEyIDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgOCAxMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDQgMTJ2MGEyIDIgMCAwIDEtMi0yVjdcIj5cbiAgICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b3JlLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3tcIkRlbGl2ZXJpbmcgdG86IFwiICtcbiAgICAgICAgICAgICAgZ2V0UGluY29kZX19PC9zcGFuPlxuXG4gICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpbmNvZGUtY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd1BpbmNvZGVJbnB1dFwiIChtb3VzZWxlYXZlKT1cInNob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgbWItMiBmLTE4IGZ3LWJvbGRcIj5cbiAgICAgICAgICAgICAgWW91ciBQSU4gQ29kZSB1bmxvY2tzXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB0ZXh0LWNlbnRlciBmLTE0IHBpbmNvZGUtdGV4dFwiPlxuICAgICAgICAgICAgICBGYXN0ZXN0IGRlbGl2ZXJ5IGRhdGUsIFRyeS1hdC1Ib21lIGF2YWlsYWJpbGl0eSxcbiAgICAgICAgICAgICAgTmVhcmVzdCBzdG9yZSBhbmQgSW4tc3RvcmUgZGVzaWduIVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbXQtMiBici01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHgtM1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwicGluRXJyb3JcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlBpbmNvZGVcIiBhcmlhLWxhYmVsPVwiUGluY29kZVwiIFsobmdNb2RlbCldPVwicGluY29kZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTc1IHAtMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc3ViLXRleHQgZi0xMSB3LTI1IHRleHQtZW5kIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldFBpbmNvZGUoKVwiPlNVQk1JVDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yIGYtMTFcIiAqbmdJZj1cInBpbkVycm9yXCI+XG4gICAgICAgICAgICAgIFBsZWFzZSBlbnRlciBhIHZhbGlkIHBpbmNvZGVcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBsb2dpbi1idG5cIiAqbmdJZj1cIiFsb2dnZWRJblwiXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd0xvZ2luID0gdHJ1ZTtzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIiAoY2xpY2spPVwic2hvd0xvZ2luID0gIXNob3dMb2dpblwiPlxuICAgICAgICAgIDwhLS0gVXNlciBJY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MlwiPjwvcGF0aD5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiN1wiIHI9XCI0XCI+PC9jaXJjbGU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seVwiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCIgKm5nSWY9XCJsb2dnZWRJblwiPlxuICAgICAgICAgIDwhLS0gVXNlciBJY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MlwiPjwvcGF0aD5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiN1wiIHI9XCI0XCI+PC9jaXJjbGU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93TG9naW5cIiAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIG1iLTIgZi0xOCBmdy1ib2xkXCI+XG4gICAgICAgICAgICBZb3VyIEFjY291bnRcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdGV4dC1jZW50ZXIgZi0xNFwiPlxuICAgICAgICAgICAgQWNjZXNzIGFjY291bnQgJiBtYW5hZ2UgeW91ciBvcmRlcnMuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgZ2FwLTNcIj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdTSUdOVVAnKVwiIGNsYXNzPVwidy01MCB0ZXh0LWNlbnRlciBzaWduLWJ0biBib3JkZXItMFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICAgYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCI+U2lnbiBVcDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ0xPR0lOJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG5cIlxuICAgICAgICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPkxvZyBJbjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBpY29uLWNvbnRhaW5lciB3aXNobGlzdC1pY29uXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XG4gICAgICAgICAgPCEtLSBIZWFydCBJY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNMTkgMTRjMS40OS0xLjQ2IDMtMy4yMSAzLTUuNUE1LjUgNS41IDAgMCAwIDE2LjUgM2MtMS43NiAwLTMgLjUtNC41IDItMS41LTEuNS0yLjc0LTItNC41LTJBNS41IDUuNSAwIDAgMCAyIDguNWMwIDIuMyAxLjUgNC4wNSAzIDUuNWw3IDdaXCI+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiPnt7Z2V0V2lzaGxpc3RJdGVtc0NvdW50fX08L3NwYW4+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBpY29uLWNvbnRhaW5lciBjYXJ0LWljb25cIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxuICAgICAgICAgIDwhLS0gU2hvcHBpbmcgQmFnIEljb24gU1ZHIC0tPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk02IDIgMyA2djE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY2bC0zLTRaXCI+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zIDZoMThcIj48L3BhdGg+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDEwYTQgNCAwIDAgMS04IDBcIj48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgaWNvbi1jb250YWluZXIgYm9va2luZ3MtaWNvblwiIChjbGljayk9XCJnb1RvQm9va2luZ3MoKVwiXG4gICAgICAgICAgKm5nSWY9XCJhcHBvaW50bWVudFNldHRpbmdzPy5ob21lVmlzaXRQcm9kdWN0c0VuYWJsZWQgfHwgYXBwb2ludG1lbnRTZXR0aW5ncz8udmlkZW9DYWxsUHJvZHVjdHNFbmFibGVkXCI+XG4gICAgICAgICAgPCEtLSBCb29raW5ncyAoY2FsZW5kYXItY2hlY2spIEljb24gU1ZHIC0tPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNy41XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjEyLjVcIiByeD1cIjJcIj48L3JlY3Q+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTggNy41VjZhNCA0IDAgMCAxIDggMHYxLjVcIj48L3BhdGg+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTkuMiAxMy42bDEuOSAxLjkgMy43LTMuOVwiPjwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50LWJhZGdlXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJhY2NlbnRDb2xvclwiIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0Qm9va2luZ0l0ZW1zQ291bnRcIj57e2dldEJvb2tpbmdJdGVtc0NvdW50fX08L3NwYW4+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc2VhcmNoLWV4cGFuZFwiXG4gICAgICAgICAgKm5nSWY9XCJkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnRFJPUERPV05fTUVOVScgJiYgc2NyZWVuV2lkdGggPiA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhciAmJiBzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1ib3hcIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1pY29uIHNlYXJjaC1idG5cIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yLi4uXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoUHJvZHVjdHMoKVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1jbG9zZVwiIChjbGljayk9XCJzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoID0gZmFsc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2Ugc2VhcmNoXCI+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMThcIiB5MT1cIjZcIiB4Mj1cIjZcIiB5Mj1cIjE4XCI+PC9saW5lPlxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjZcIiB4Mj1cIjE4XCIgeTI9XCIxOFwiPjwvbGluZT5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8PSA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXJcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGl0ZW1cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlYXJjaFByb2R1Y3RzKClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIyMVwiIHgyPVwiMTYuNjVcIiB5Mj1cIjE2LjY1XCI+PC9saW5lPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmdWxsU2NyZWVuTWVudVRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZnMtbWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWJnXCIgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWlubmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1oZWFkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWxvZ29cIiAoY2xpY2spPVwiY2xvc2VGdWxsU2NyZWVuTWVudSgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmcy1tZW51LWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlRnVsbFNjcmVlbk1lbnUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZSBtZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE1haW4gbGV2ZWwgLS0+XG4gICAgICA8bmF2IGNsYXNzPVwiZnMtbWVudS1uYXZcIiAqbmdJZj1cIiFzZWxlY3RlZE1vYmlsZU1lbnVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb290ZXJNZW51XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2hvd0hlYWRlclwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy1tZW51LWxpbmtcIiBbY2xhc3MuYWN0aXZlXT1cImlzTmF2SXRlbUFjdGl2ZShpdGVtKVwiIFtzdHlsZS4tLWFjY2VudF09XCJhY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkZ1bGxTY3JlZW5JdGVtQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy1tZW51LWRvdFwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImFjY2VudENvbG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLW1lbnUtdGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBpdGVtPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZnMtbWVudS1hcnJvd1wiICpuZ0lmPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmF2PlxuXG4gICAgICA8IS0tIFN1Ym1lbnUgKGRyaWxsLWluKSBsZXZlbCAtLT5cbiAgICAgIDxuYXYgY2xhc3M9XCJmcy1tZW51LW5hdiBmcy1tZW51LXN1YlwiICpuZ0lmPVwic2VsZWN0ZWRNb2JpbGVNZW51XCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmcy1tZW51LWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBzZWxlY3RlZE1vYmlsZU1lbnU/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRNb2JpbGVNZW51Py5jaGlsZHJlblwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZnMtbWVudS1saW5rXCIgW3N0eWxlLi0tYWNjZW50XT1cImFjY2VudENvbG9yXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpOyBjbG9zZUZ1bGxTY3JlZW5NZW51KClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtbWVudS10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7IGNoaWxkPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGEgY2xhc3M9XCJmcy1tZW51LXN1YmxpbmtcIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShzdWIpOyBjbG9zZUZ1bGxTY3JlZW5NZW51KClcIj57eyBzdWI/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmF2PlxuICAgICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtY3RhXCIgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXkgJiYgYWN0aW9uPy5idXR0b25zPy5sZW5ndGhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9ucyB8IHNsaWNlOjA6MVwiPlxuICAgICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgW2VkaXRdPVwiZWRpdFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2J1dHRvbklkXT1cImJ1dHRvbi5pZFwiXG4gICAgICAgICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lzRnVsbFdpZHRoXT1cInRydWVcIj48L2FwcC1idXR0b24tZWxlbWVudD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvdHRvbVN0aWNreU5hdlRlbXBsYXRlPlxuICA8bmF2IGNsYXNzPVwiYnMtbmF2XCI+XG4gICAgPGRpdiBjbGFzcz1cImJzLW5hdi1iYXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnMtdGFiXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYm90dG9tU3RpY2t5TmF2SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IGFjdGl2ZUJvdHRvbU5hdkluZGV4XCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShpdGVtKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJzLXRhYi1sYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJpID09PSBhY3RpdmVCb3R0b21OYXZJbmRleCA/IGFjY2VudENvbG9yIDogbnVsbFwiXG4gICAgICAgICAgW3NpbXBvQ29sb3JdPVwiaSA9PT0gYWN0aXZlQm90dG9tTmF2SW5kZXggPyBudWxsIDogc2ltcG9Db2xvclwiPnt7IGl0ZW0/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmF2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|