ngx-histaff-alpha 1.5.9 → 1.6.0
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/app/libraries/core-permission/core-permission/core-permission.component.mjs +1 -2
- package/esm2022/lib/app/libraries/core-tags/core-tags/core-tags.component.mjs +4 -2
- package/fesm2022/ngx-histaff-alpha.mjs +2 -2
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/app/libraries/core-permission/core-permission/core-permission.component.mjs
CHANGED
|
@@ -219,7 +219,6 @@ export class CorePermissionComponent extends BaseComponent {
|
|
|
219
219
|
this.blockingLeftListInteraction$.next(false);
|
|
220
220
|
if (x[0].ok && x[0].status === 200) {
|
|
221
221
|
const body = x[0].body;
|
|
222
|
-
//this.responseService.resolve(body);
|
|
223
222
|
if (body.statusCode === 200) {
|
|
224
223
|
this.corePermissionService.selectedObjectActionPermissions$.next(body.innerBody);
|
|
225
224
|
this.updateInitialActionPermissionValueJsonString(body.innerBody);
|
|
@@ -456,4 +455,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
456
455
|
type: ViewChild,
|
|
457
456
|
args: ['container']
|
|
458
457
|
}] } });
|
|
459
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wZXJtaXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXBlcm1pc3Npb24vY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi9jb3JlLXBlcm1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFlLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUU1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFjNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBdUIsTUFBTSxzR0FBc0csQ0FBQztBQUUzSyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNGQUFzRixDQUFDO0FBQ3BJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBeUJqSCxNQUFNLENBQU4sSUFBWSx3QkFHWDtBQUhELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUduQztBQXVCRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWV4RCxZQUNrQixHQUF5QixFQUNsQyxhQUE0QixFQUMzQixHQUF3QixFQUN4QixxQkFBNEMsRUFDNUMsVUFBc0IsRUFDdkIsYUFBNEIsRUFDM0IsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLFVBQXNCLEVBQ3RCLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQWJLLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ3hCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCbEMsWUFBTyxHQUFZLElBQUksQ0FBQztRQUt4QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQXlDekIsZUFBVSxHQUFhO1lBQ3JCLGdCQUFnQixDQUFDLHFDQUFxQztZQUN0RCxnQkFBZ0IsQ0FBQyxxQ0FBcUMsRUFBRSw4QkFBOEI7U0FDdkYsQ0FBQTtRQUdELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFDOUQsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQVF0QixxQkFBZ0IsR0FBMEIscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBRTFFLHFCQUFnQixHQUFpQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUM7UUFFdEYsZ0JBQVcsR0FBc0IsRUFBRSxDQUFBO1FBRW5DLHlCQUFvQixHQUFzQjtZQUN4QztnQkFDRSxLQUFLLEVBQUUsUUFBUTtnQkFDZixRQUFRLEVBQUUsa0JBQWtCLENBQUMsS0FBSzthQUNuQztTQUNGLENBQUE7UUFFRCxzQkFBaUIsR0FBK0I7WUFDOUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtTQUMvQyxDQUFBO1FBRUQsa0JBQWEsR0FBK0I7WUFDMUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLDhCQUE4QjtTQUMxRCxDQUFBO1FBSUQsWUFBTyxHQUEyQjtZQUNoQztnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsaUNBQWlDO2dCQUMzRCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsT0FBTztnQkFDZCxLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQixDQUFDLDJDQUEyQztnQkFDckUsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLEdBQUc7YUFDWDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyx5Q0FBeUM7Z0JBQ25FLEtBQUssRUFBRSxNQUFNO2dCQUNiLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1g7WUFDRDs7Ozs7Ozs7Y0FRRTtZQUNGO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyw2Q0FBNkM7Z0JBQ3ZFLEtBQUssRUFBRSxrQkFBa0I7Z0JBQ3pCLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxHQUFHO2FBQ1g7WUFDRDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsMkNBQTJDO2dCQUNyRSxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDekIsZ0NBQWdDLEVBQUUsSUFBSTthQUN2QztTQUNGLENBQUE7UUFPRCxjQUFTLEdBQTZCO1lBQ3BDLFNBQVMsRUFBRSxVQUFVO1NBQ3RCLENBQUE7UUFFRCwwQkFBcUIsR0FBMEIsRUFBRSxDQUFBO1FBR2pELHVCQUFrQixHQUFhLEVBQUUsQ0FBQTtRQVFqQyxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXJJakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWpFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFBO1FBQ3RGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUE7UUFFaEcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsSUFBSSxFQUFFO29CQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtpQkFDeEI7cUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFDLFVBQVUsRUFBRTtvQkFDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQ2hDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUNuRSxDQUFBO0lBQ0gsQ0FBQztJQWlIRCw0Q0FBNEMsQ0FBQyxlQUFzQztRQUNqRixJQUFJLENBQUMsc0NBQXNDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCx5Q0FBeUMsQ0FBQyxNQUFnQjtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELGVBQWU7UUFFYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBRWpGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFBO2dCQUN0RyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUE7Z0JBQ3pJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUE7WUFDbkosQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUE7Z0JBQ2hFLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFBO2dCQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFBO2dCQUNqRCxJQUFJLENBQUMsNENBQTRDLEdBQUcsR0FBRyxDQUFDLDhDQUE4QyxDQUFBO2dCQUN0RyxJQUFJLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxDQUFDLHVDQUF1QyxDQUFBO2dCQUNwRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFBO2FBQ3RDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsd0NBQXdDLENBQUE7Z0JBQ3RFLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFBO2dCQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixDQUFBO2dCQUNsRCxJQUFJLENBQUMsNENBQTRDLEdBQUcsR0FBRyxDQUFDLG9EQUFvRCxDQUFBO2dCQUM1RyxJQUFJLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxDQUFDLHlDQUF5QyxDQUFBO2dCQUN0RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLDBCQUEwQixDQUFDLENBQUE7aUJBQ3BIO2FBQ0Y7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3RDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDVCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUE7WUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFO29CQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBTSxDQUFDO2lCQUN2QztnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBRW5DLENBQUMsQ0FBQyxDQUNILENBQUE7WUFHRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUN4QyxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtvQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVMsQ0FBQztnQkFDaEQsT0FBTyxHQUFHLENBQUM7b0JBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsd0JBQXdCLENBQUM7b0JBQzNILElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLHdCQUF3QixDQUFDO2lCQUFDLENBQUMsQ0FBQTtZQUN0SCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDN0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQyxNQUFNLElBQUksR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDMUMscUNBQXFDO29CQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO3dCQUMzQixJQUFJLENBQUMscUJBQXFCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDakYsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDbkU7aUJBQ0Y7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQyxNQUFNLEtBQUssR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDM0Msc0NBQXNDO29CQUN0QyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO3dCQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7d0JBQzlCLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ2pFO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUU5RixDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsZ0JBQWdCLENBQUMsUUFBeUI7UUFDeEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUVELDJCQUEyQixDQUFDLENBQWlCO1FBQzNDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNkLEtBQUsscUJBQXFCLENBQUMsV0FBVztnQkFDcEMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ3ZCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztpQkFDeEc7Z0JBQ0QsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMseUJBQXlCO2dCQUVsRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsK0NBQStDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQTtpQkFDdkg7cUJBQ0k7b0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1DQUFtQyxDQUFDLENBQUE7b0JBQ3BGLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO29CQUM3RixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO29CQUNoRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDZDQUE2QyxDQUFDLENBQUM7b0JBQzlGLElBQUksYUFBYSxHQUFVLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzVCLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFDOUMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7b0JBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxXQUFXO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsSUFBSSxFQUFFO29CQUMvQyxNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO29CQUMvQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFOzRCQUMzQixXQUFXLENBQUMsSUFBSSxDQUFDO2dDQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQ0FDaEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dDQUN4QixRQUFRLEVBQUUsRUFBRTs2QkFDYixDQUFDLENBQUE7d0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0YsTUFBTSxRQUFRLEdBQThCLEVBQUUsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFOzRCQUNoQyxLQUFLLEVBQUUsQ0FBQzt5QkFDVCxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0YsTUFBTSxhQUFhLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUE7b0JBQ25FLE1BQU0sVUFBVSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFBO29CQUM3RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBRXJCLEdBQUcsQ0FBQzt3QkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0RBQWdELEVBQUUsYUFBYSxDQUFDO3dCQUN6RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxDQUFDO3FCQUMzRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzt3QkFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFOzRCQUNsQyxNQUFNLElBQUksR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDMUMscUNBQXFDOzRCQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFOzZCQUM1Qjt5QkFDRjs2QkFBTTs0QkFDTCxJQUFJLFNBQVMsRUFBRSxFQUFFO2dDQUNmLHVFQUF1RTs2QkFDeEU7eUJBQ0Y7d0JBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFOzRCQUNsQyxNQUFNLEtBQUssR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDM0Msc0NBQXNDOzRCQUN0QyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFOzZCQUM3Qjt5QkFDRjs2QkFBTTs0QkFDTCxJQUFJLFNBQVMsRUFBRSxFQUFFO2dDQUNmLHVFQUF1RTs2QkFDeEU7eUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtpQkFDRjtxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsVUFBVSxFQUFFO29CQUM1RCxNQUFNLFdBQVcsR0FBNEIsRUFBRSxDQUFDO29CQUNoRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFOzRCQUMzQixXQUFXLENBQUMsSUFBSSxDQUFDO2dDQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDOUIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dDQUN4QixRQUFRLEVBQUUsRUFBRTs2QkFDYixDQUFDLENBQUE7d0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0YsTUFBTSxRQUFRLEdBQStCLEVBQUUsQ0FBQztvQkFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOzRCQUM5QixLQUFLLEVBQUUsQ0FBQzt5QkFDVCxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0YsTUFBTSxhQUFhLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUE7b0JBQ3BFLE1BQU0sVUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFBO29CQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBRXJCLEdBQUcsQ0FBQzt3QkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaURBQWlELEVBQUUsYUFBYSxDQUFDO3dCQUMxRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsVUFBVSxDQUFDO3FCQUM1RSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzt3QkFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFOzRCQUNsQyxNQUFNLElBQUksR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDMUMscUNBQXFDOzRCQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFOzZCQUM1Qjt5QkFDRjs2QkFBTTs0QkFDTCxJQUFJLFNBQVMsRUFBRSxFQUFFO2dDQUNmLHVFQUF1RTs2QkFDeEU7eUJBQ0Y7d0JBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFOzRCQUNsQyxNQUFNLEtBQUssR0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDM0Msc0NBQXNDOzRCQUN0QyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFOzZCQUM3Qjt5QkFDRjs2QkFBTTs0QkFDTCxJQUFJLFNBQVMsRUFBRSxFQUFFO2dDQUNmLHVFQUF1RTs2QkFDeEU7eUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtpQkFDRjtnQkFFRCxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVELDZCQUE2QixDQUFDLENBQXdCO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN6STtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLHNDQUFzQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNDQUFzQyxLQUFLLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQztRQUMvRyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsbUNBQW1DLEtBQUssSUFBSSxDQUFDLG1DQUFtQyxDQUFDO1FBQ3pHLE1BQU0sU0FBUyxHQUFHLFVBQVUsSUFBSSxVQUFVLENBQUM7UUFFM0MsT0FBTyxJQUFJLENBQUMsQ0FBQyxRQUFRO1FBRXJCLElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBRUwsSUFBSSxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztZQUM1QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBRTdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdkMsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLGNBQWMsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2FBQzFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQzlGLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDL0csTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEUsT0FBTyxVQUFVLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0ExZFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNFlDMUZwQywyMUVBcURjLDRQRG9CVixZQUFZLHlOQUNaLFdBQVcsa25CQUNYLG9CQUFvQixzT0FFcEIsaUJBQWlCLG1MQUNqQix1QkFBdUIsNkpBQ3ZCLHdCQUF3QiwwS0FDeEIscUJBQXFCLHFKQUdyQiw4QkFBOEI7OzJGQU9yQix1QkFBdUI7a0JBckJuQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQix3QkFBd0I7cUJBQ3pCOzRZQU1RLElBQUk7c0JBQVosS0FBSztnQkFDZSxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0csT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNJLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIGlzRGV2TW9kZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHppcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYnJhcmllcy9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFbnVtRmlsdGVyT3BlcmF0b3IsIElGaWx0ZXJPcGVyYXRvciB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0XCI7XHJcbmltcG9ydCB7IElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uLCBJQ29yZVBhZ2VMaXN0RWRpdFJvdXRpbmcgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IEVudW1Db3JlVGFibGVQaXBlVHlwZSB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuXHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUmFuZG9tQXZhdGFyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9yYW5kb20tYXZhdGFyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29yZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYnJhcmllcy9jb3JlLXBlcm1pc3Npb24vY29yZS1wZXJtaXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2FsZXJ0L2FsZXJ0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZG9tLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZVwiO1xyXG5cclxuaW1wb3J0IHsgSUNvcmVMaXN0T3B0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2xpYnJhcmllcy9jb3JlLWxpc3QvY29yZS1saXN0L2NvcmUtbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy9JRm9ybWF0ZWRSZXNwb25zZVwiO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvblZOUyB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOU1wiO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCwgRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGVcIjtcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zXCI7XHJcbmltcG9ydCB7IENvcmVQZXJtaXNzaW9uQWN0aW9uc0NvbXBvbmVudCwgSUNvcmVGdW5jdGlvbkFjdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUxpc3RDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUtcGFnZS1saXN0LWNvbnRlbnQvY29yZS1wYWdlLWxpc3QtY29udGVudC9jb3JlLXBhZ2UtbGlzdC1jb250ZW50LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb3JlVGFic0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLXRhYnMvY29yZS10YWJzL2NvcmUtdGFicy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyL2NvcmUtcGFnZS1oZWFkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvcmVDb21wb3NpdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLWNvbXBvc2l0aW9uL2NvcmUtY29tcG9zaXRpb24vY29yZS1jb21wb3NpdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZUxpc3RMYXp5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUtbGlzdC1sYXp5L2NvcmUtbGlzdC1sYXp5L2NvcmUtbGlzdC1sYXp5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZVwiO1xyXG5pbXBvcnQgeyBDb3JlVGFnc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLXRhZ3MvY29yZS10YWdzL2NvcmUtdGFncy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZUNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nL2NvcmUtY29uZmlybS1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvcmVBcGlQcm9ncmVzc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLWFwaS1wcm9ncmVzcy9jb3JlLWFwaS1wcm9ncmVzcy9jb3JlLWFwaS1wcm9ncmVzcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR3JwY1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZ3JwYy5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUGVybWlzc2lvbk1vZGVsIHtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBmdW5jdGlvbklkOiBudW1iZXI7XHJcbiAgYWN0aW9uSWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVXNlck9yZ1Blcm1pc3Npb25Nb2RlbCB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgb3JnSWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBQZXJtaXNzaW9uTW9kZWwge1xyXG4gIGdyb3VwSWQ6IG51bWJlcjtcclxuICBmdW5jdGlvbklkOiBudW1iZXI7XHJcbiAgYWN0aW9uSWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBPcmdQZXJtaXNzaW9uTW9kZWwge1xyXG4gIGdyb3VwSWQ6IG51bWJlcjtcclxuICBvcmdJZDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbnVtUGVybWlzc2lvbk9iamVjdFR5cGUge1xyXG4gIFVTRVIgPSAnVVNFUicsXHJcbiAgVVNFUl9HUk9VUCA9ICdVU0VSX0dST1VQJ1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtcGVybWlzc2lvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VMaXN0Q29udGVudENvbXBvbmVudCxcclxuICAgIENvcmVUYWJzQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VIZWFkZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ29tcG9zaXRpb25Db21wb25lbnQsXHJcbiAgICBDb3JlTGlzdExhenlDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgQ29yZVRhZ3NDb21wb25lbnQsXHJcbiAgICBDb3JlUGVybWlzc2lvbkFjdGlvbnNDb21wb25lbnQsXHJcbiAgICBDb3JlQ29uZmlybURpYWxvZ0NvbXBvbmVudCxcclxuICAgIENvcmVBcGlQcm9ncmVzc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtcGVybWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1wZXJtaXNzaW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVQZXJtaXNzaW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSB0eXBlITogRW51bVBlcm1pc3Npb25PYmplY3RUeXBlO1xyXG4gIEBWaWV3Q2hpbGQoJ2F2YXRhcicpIGF2YXRhciE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnYWN0aW9ucycpIGFjdGlvbnMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGhlaWdodCE6IG51bWJlcjtcclxuICB0aXRsZSE6IEVudW1UcmFuc2xhdGVLZXlcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBwaXBlITogRW51bUNvcmVUYWJsZVBpcGVUeXBlO1xyXG5cclxuICBpc1Jvb3RVc2VyITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBjb21wb3NpdGlvbkhlaWdodCE6IG51bWJlcjtcclxuICBzZWxlY3RlZERhdGE6IGFueVtdID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByYXM6IFJhbmRvbUF2YXRhclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVQZXJtaXNzaW9uU2VydmljZTogQ29yZVBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdycGNTZXJ2aWNlOiBHcnBjU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuXHJcbiAgICB0aGlzLmRlZmF1bHRBdmF0YXIgPSByYXMuZ2V0KCk7XHJcbiAgICB0aGlzLmNvcmVQZXJtaXNzaW9uU2VydmljZS5pbnN0YW5jZU51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3VwZXJtaXNzaW9uJykpIHRoaXMudHlwZSA9IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSXHJcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdncm91cHBlcm1pc3Npb24nKSkgdGhpcy50eXBlID0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVJfR1JPVVBcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5yb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB4LmdldCgnaWQnKTtcclxuICAgICAgICBpZiAoISFpZCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVIpIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RJZCQubmV4dChpZClcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVJfR1JPVVApIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RJZCQubmV4dChOdW1iZXIoaWQpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmlzUm9vdFVzZXIgPSB4Py5pc1Jvb3QpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB0YWJIZWFkZXJzOiBzdHJpbmdbXSA9IFtcclxuICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfVVNFUl9HUk9VUF9QRVJNSVNTSU9OX0ZVTkNUSU9OX1RBQiwgLy8gbWFrZSB1c2Ugb2YgYW4gZXhpc3Rpbmcga2V5XHJcbiAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX1VTRVJfR1JPVVBfUEVSTUlTU0lPTl9PUkdfVU5JVF9UQUIsIC8vIG1ha2UgdXNlIG9mIGFuIGV4aXN0aW5nIGtleVxyXG4gIF1cclxuXHJcbiAgb2JqZWN0SWQhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgb2JqZWN0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBvcmdJZHM6IG51bWJlcltdID0gW107XHJcbiAgb2JqZWN0UXVlcnlMaXN0QXBpITogYXBpO1xyXG4gIG9iamVjdExpc3RUZXh0RmllbGQhOiBzdHJpbmc7XHJcbiAgcGVuZGluZ0FjdGlvbiE6IGFueTtcclxuICBwZW5kaW5nT2JqZWN0SWQhOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xyXG5cclxuICBzaG93U3RhdGVUcmFja2VyITogYm9vbGVhbjtcclxuXHJcbiAgdXNlckxpc3RUZXh0UGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlID0gRW51bUNvcmVUYWJsZVBpcGVUeXBlLlVQUEVSQ0FTRTtcclxuXHJcbiAgdHJlZUFjY2Vzc29yTW9kZTogRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSA9IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRDtcclxuXHJcbiAgdXNlck9wdGlvbnM6IElDb3JlTGlzdE9wdGlvbltdID0gW11cclxuXHJcbiAgb3V0ZXJGaWx0ZXJPcGVyYXRvcnM6IElGaWx0ZXJPcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3VzZXJJZCcsXHJcbiAgICAgIG9wZXJhdG9yOiBFbnVtRmlsdGVyT3BlcmF0b3IuRVFVQUxcclxuICAgIH1cclxuICBdXHJcblxyXG4gIGxlZnRBcGlEZWZpbml0aW9uOiBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiA9IHtcclxuICAgIHF1ZXJ5TGlzdFJlbGF0aXZlUGF0aDogYXBpLlNZU19VU0VSX1FVRVJZX0xJU1QsXHJcbiAgfVxyXG5cclxuICBhcGlEZWZpbml0aW9uOiBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiA9IHtcclxuICAgIHF1ZXJ5TGlzdFJlbGF0aXZlUGF0aDogYXBpLlNZU19VU0VSX1BFUk1JU1NJT05fUVVFUllfTElTVCxcclxuICB9XHJcblxyXG4gIGFsbG93RWRpdCE6IGJvb2xlYW47XHJcblxyXG4gIGNvbHVtbnM6IElDb3JlVGFibGVDb2x1bW5JdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fQ09NTU9OX0lELFxyXG4gICAgICBmaWVsZDogJ2lkJyxcclxuICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfTU9EVUxFX05BTUVDT0RFLFxyXG4gICAgICBmaWVsZDogJ21vZHVsZU5hbWVDb2RlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NZU19GVU5DVElPTl9QQVRILFxyXG4gICAgICBmaWVsZDogJ3BhdGgnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDE1MCxcclxuICAgIH0sXHJcbiAgICAvKlxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NZU19GVU5DVElPTl9HUk9VUF9OQU1FQ09ERSxcclxuICAgICAgZmllbGQ6ICdncm91cE5hbWVDb2RlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICB9LFxyXG4gICAgKi9cclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfRlVOQ1RJT05fTkFNRUNPREUsXHJcbiAgICAgIGZpZWxkOiAnZnVuY3Rpb25OYW1lQ29kZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfQUNUSU9OX05BTUVDT0RFLFxyXG4gICAgICBmaWVsZDogJ2FwcEFjdGlvbnMnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgaGlkZVNlYXJjaEJveDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDEwMDAsXHJcbiAgICAgIHRlbXBsYXRlUmVmOiB0aGlzLmFjdGlvbnMsXHJcbiAgICAgIHRlbXBsYXRlUmVmQWxsb3dFZGl0T25Sb3dBY3RpdmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gIF1cclxuXHJcbiAgZGVmYXVsdEF2YXRhciE6IHN0cmluZztcclxuICB0cmVlSGVpZ2h0ITogbnVtYmVyO1xyXG4gIGNvcmVQZXJtaXNzaW9uQWN0aW9uc0hlaWdodCE6IG51bWJlcjtcclxuICBkaWFsb2dJbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuXHJcbiAgZWRpdFJvdXRlOiBJQ29yZVBhZ2VMaXN0RWRpdFJvdXRpbmcgPSB7XHJcbiAgICBhdXhpbGlhcnk6ICdwb3B1cEF1eCdcclxuICB9XHJcblxyXG4gIGFjdGlvblBlcm1pc3Npb25WYWx1ZTogSUNvcmVGdW5jdGlvbkFjdGlvbltdID0gW11cclxuICBpbml0aWFsQWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyE6IHN0cmluZ1xyXG4gIGN1cnJlbnRBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nITogc3RyaW5nXHJcbiAgb3JnUGVybWlzc2lvblZhbHVlOiBudW1iZXJbXSA9IFtdXHJcbiAgaW5pdGlhbE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmchOiBzdHJpbmdcclxuICBjdXJyZW50T3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyE6IHN0cmluZ1xyXG5cclxuXHJcbiAgcXVlcnlGdW5jdGlvbkFjdGlvblBlcm1pc3Npb25MaXN0QXBpRW5kcG9pbnQhOiBzdHJpbmc7XHJcbiAgcXVlcnlPcmdQZXJtaXNzaW9uTGlzdEFwaUVuZHBvaW50ITogc3RyaW5nO1xyXG5cclxuICBibG9ja2luZ0xlZnRMaXN0SW50ZXJhY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHVwZGF0ZUluaXRpYWxBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nKGZ1bmN0aW9uQWN0aW9uczogSUNvcmVGdW5jdGlvbkFjdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoeyBvYmplY3RJZDogdGhpcy5vYmplY3RJZCwgYWN0aW9uczogZnVuY3Rpb25BY3Rpb25zIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSW5pdGlhbE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcob3JnSWRzOiBudW1iZXJbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmdQZXJtaXNzaW9uVmFsdWUgPSBvcmdJZHM7XHJcbiAgICB0aGlzLmluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoeyBvYmplY3RJZDogdGhpcy5vYmplY3RJZCwgb3JnSWRzOiBvcmdJZHMgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+IGMuZmllbGQgPT09ICdhcHBBY3Rpb25zJylbMF0udGVtcGxhdGVSZWYgPSB0aGlzLmFjdGlvbnM7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuY29udGVudENvbnRhaW5lckhlaWdodCQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb21wb3NpdGlvbkhlaWdodCA9IHggLSB0aGlzLmxheW91dFNlcnZpY2UuY29yZVBhZ2VIZWFkZXJIZWlnaHQgLSB0aGlzLmxheW91dFNlcnZpY2UuYmFzaWNTcGFjaW5nXHJcbiAgICAgICAgICB0aGlzLmNvcmVQZXJtaXNzaW9uQWN0aW9uc0hlaWdodCA9IHRoaXMuY29tcG9zaXRpb25IZWlnaHQgLSB0aGlzLmxheW91dFNlcnZpY2UuY29yZVRhYnNIZWFkZXJMaW5lSGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZ1xyXG4gICAgICAgICAgdGhpcy50cmVlSGVpZ2h0ID0geCAtIHRoaXMubGF5b3V0U2VydmljZS5jb3JlUGFnZUhlYWRlckhlaWdodCAtIHRoaXMubGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmcgKiAyIC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVUYWJzSGVhZGVyTGluZUhlaWdodFxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSKSB7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX1RJVExFX1VTRVJfUEVSTUlTU0lPTlxyXG4gICAgICAgIHRoaXMucGlwZSA9IEVudW1Db3JlVGFibGVQaXBlVHlwZS5MT1dFUkNBU0VcclxuICAgICAgICB0aGlzLm9iamVjdFF1ZXJ5TGlzdEFwaSA9IGFwaS5TWVNfVVNFUl9RVUVSWV9MSVNUXHJcbiAgICAgICAgdGhpcy5xdWVyeUZ1bmN0aW9uQWN0aW9uUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCA9IGFwaS5TWVNfVVNFUl9RVUVSWV9GVU5DVElPTl9BQ1RJT05fUEVSTUlTU0lPTl9MSVNUXHJcbiAgICAgICAgdGhpcy5xdWVyeU9yZ1Blcm1pc3Npb25MaXN0QXBpRW5kcG9pbnQgPSBhcGkuU1lTX1VTRVJfUVVFUllfVVNFUl9PUkdfUEVSTUlTU0lPTl9MSVNUXHJcbiAgICAgICAgdGhpcy5vYmplY3RMaXN0VGV4dEZpZWxkID0gXCJ1c2VybmFtZVwiXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBFbnVtUGVybWlzc2lvbk9iamVjdFR5cGUuVVNFUl9HUk9VUCkge1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9VU0VSX0dST1VQX1BFUk1JU1NJT05cclxuICAgICAgICB0aGlzLnBpcGUgPSBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuVVBQRVJDQVNFXHJcbiAgICAgICAgdGhpcy5vYmplY3RRdWVyeUxpc3RBcGkgPSBhcGkuU1lTX0dST1VQX1FVRVJZX0xJU1RcclxuICAgICAgICB0aGlzLnF1ZXJ5RnVuY3Rpb25BY3Rpb25QZXJtaXNzaW9uTGlzdEFwaUVuZHBvaW50ID0gYXBpLlNZU19HUk9VUF9RVUVSWV9GVU5DVElPTl9BQ1RJT05fUEVSTUlTU0lPTl9MSVNUX0dSUENcclxuICAgICAgICB0aGlzLnF1ZXJ5T3JnUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCA9IGFwaS5TWVNfR1JPVVBfUVVFUllfR1JPVVBfT1JHX1BFUk1JU1NJT05fTElTVFxyXG4gICAgICAgIHRoaXMub2JqZWN0TGlzdFRleHRGaWVsZCA9IFwibmFtZVwiXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih0aGlzLm1scy50cmFucygnVUlfUEVSTUlTU0lPTl9PQkpFQ1RfSVNfVU5ERUZJTkVEJywgdGhpcy5sYW5nKSwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gISF4ICYmICEheC5jb25maXJtZWQgJiYgISF4Py5pbnN0YW5jZU51bWJlclxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCRcIiwgeClcclxuICAgICAgICAgIGlmICghISF4Py5jb25maXJtZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RJZCA9IHRoaXMub2JqZWN0SWQkLnZhbHVlITtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZXNldFNlcnZpY2UoKVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRPYmplY3RBY3Rpb25QZXJtaXNzaW9ucyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25QZXJtaXNzaW9uVmFsdWUgPSB4O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMub2JqZWN0SWQkLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoeCA9PiAhIXggJiYgeCAhPT0gMCAmJiB4ICE9PSAnMCcpLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIG1hcCh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRPYmplY3RBY3Rpb25QZXJtaXNzaW9ucyQubmV4dChbXSk7XHJcbiAgICAgICAgICAgIHRoaXMub3JnSWRzID0gW107XHJcbiAgICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAob2JqZWN0SWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmJsb2NraW5nTGVmdExpc3RJbnRlcmFjdGlvbiQubmV4dCh0cnVlKVxyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5vYmplY3RJZCkgdGhpcy5vYmplY3RJZCA9IG9iamVjdElkITtcclxuICAgICAgICAgICAgcmV0dXJuIHppcChbXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldCh0aGlzLnF1ZXJ5RnVuY3Rpb25BY3Rpb25QZXJtaXNzaW9uTGlzdEFwaUVuZHBvaW50ICsgJz9vYmplY3RJZD0nICsgb2JqZWN0SWQgKyBcIiZ1c2VHcm91cElmRW1wdHk9ZmFsc2VcIiksXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldCh0aGlzLnF1ZXJ5T3JnUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCArICc/b2JqZWN0SWQ9JyArIG9iamVjdElkICsgXCImdXNlR3JvdXBJZkVtcHR5PWZhbHNlXCIpXSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuYmxvY2tpbmdMZWZ0TGlzdEludGVyYWN0aW9uJC5uZXh0KGZhbHNlKVxyXG4gICAgICAgICAgaWYgKHhbMF0ub2sgJiYgeFswXS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHhbMF0uYm9keTtcclxuICAgICAgICAgICAgLy90aGlzLnJlc3BvbnNlU2VydmljZS5yZXNvbHZlKGJvZHkpO1xyXG4gICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvcmVQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZE9iamVjdEFjdGlvblBlcm1pc3Npb25zJC5uZXh0KGJvZHkuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUluaXRpYWxBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nKGJvZHkuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHhbMV0ub2sgJiYgeFsxXS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4WzFdLmJvZHk7XHJcbiAgICAgICAgICAgIC8vdGhpcy5yZXNwb25zZVNlcnZpY2UucmVzb2x2ZShib2R5MSk7XHJcbiAgICAgICAgICAgIGlmIChib2R5MS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLm9yZ0lkcyA9IGJvZHkxLmlubmVyQm9keTtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nKGJvZHkxLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS16LWluZGV4JywgdGhpcy5kb21TZXJ2aWNlLmdldE1heFpJbmRleCgpKVxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgLyogV2UgZG8gbm90IHVwZGF0ZSB0aGUgZ3JpZCB3aGVuIHVzZXJJZCBjaGFuZ2VzICovXHJcbiAgb25PYmplY3RJZENoYW5nZShvYmplY3RJZDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNvcmVQZXJtaXNzaW9uU2VydmljZS5vYmplY3RJZCA9IG9iamVjdElkO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW29iamVjdElkLnRvU3RyaW5nKCldLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUucGFyZW50IH0pXHJcbiAgfVxyXG5cclxuICBvbkNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2soZTogSUNvcmVCdXR0b25WTlMpIHtcclxuICAgIHN3aXRjaCAoZS5jb2RlKSB7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9FRElUOlxyXG4gICAgICAgIGlmICghIXRoaXMub2JqZWN0SWQpIHtcclxuICAgICAgICAgIHRoaXMuYWxsb3dFZGl0ID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLm1scy50cmFucygnVUlfVVNFUl9QRVJNSVNTSU9OX05PX1VTRVJfU0VMRUNURUQnLCB0aGlzLmxhbmcpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VQRVJNSVNTSU9OX0RFTEVURTpcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdElkKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKHRoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfVVNFUl9QRVJNSVNTSU9OX1RPX0VESVRfUExFQVNFX1NFTEVDVF9BX1VTRVIpLCBhbGVydE9wdGlvbnMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudGl0bGUkLm5leHQoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0RJQUxPR19TRVJWSUNFX0NPTkZJUk1BVElPTilcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9rQnV0dG9uVGV4dCQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX0NPTkZJUk0pXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jYW5jZWxCdXR0b25UZXh0JC5uZXh0KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CVVRUT05fQ0FOQ0VMKVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NhbmNlbE9ubHkkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuYnVzeSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5ib2R5JC5uZXh0KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9ESUFMT0dfU0VSVklDRV9BUkVfWU9VX1NVUkVfVE9fREVMRVRFKTtcclxuICAgICAgICAgICAgbGV0IGxpc3REZWxldGVJZHM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgbGlzdERlbGV0ZUlkcy5wdXNoKHhbdGhpcy5jb2x1bW5zWzFdLmZpZWxkXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5pbmZvcm1hdGlvbkxpbmVzJC5uZXh0KGxpc3REZWxldGVJZHMpXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29uZmlybURpYWxvZyQubmV4dCh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9TQVZFOlxyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3Rpb25SYW5nZTogSVVzZXJQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25QZXJtaXNzaW9uVmFsdWUubWFwKGYgPT4ge1xyXG4gICAgICAgICAgICBmLmFsbG93ZWRBY3Rpb25JZHM/Lm1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgICAgYWN0aW9uUmFuZ2UucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHRoaXMub2JqZWN0SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uSWQ6IGYuZnVuY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIGFjdGlvbklkOiBpZFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgY29uc3Qgb3JnUmFuZ2U6IElVc2VyT3JnUGVybWlzc2lvbk1vZGVsW10gPSBbXTtcclxuICAgICAgICAgIHRoaXMub3JnSWRzLm1hcChvID0+IHtcclxuICAgICAgICAgICAgb3JnUmFuZ2UucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXNlcklkOiB0aGlzLm9iamVjdElkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgb3JnSWQ6IG9cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBhY3Rpb25QYXlsb2FkID0geyB1c2VySWQ6IHRoaXMub2JqZWN0SWQsIHJhbmdlOiBhY3Rpb25SYW5nZSB9XHJcbiAgICAgICAgICBjb25zdCBvcmdQYXlsb2FkID0geyB1c2VySWQ6IHRoaXMub2JqZWN0SWQsIHJhbmdlOiBvcmdSYW5nZSB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgICAgICB6aXAoW1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KGFwaS5TWVNfVVNFUl9GVU5DVElPTl9BQ1RJT05fUEVSTUlTU0lPTl9VUERBVEVfUkFOR0UsIGFjdGlvblBheWxvYWQpLFxyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KGFwaS5TWVNfVVNFUl9PUkdfUEVSTUlTU0lPTl9VUERBVEVfUkFOR0UsIG9yZ1BheWxvYWQpXHJcbiAgICAgICAgICAgIF0pLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGlmICh4WzBdLm9rICYmIHhbMF0uc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geFswXS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLnJlc3BvbnNlU2VydmljZS5yZXNvbHZlKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJvZHkuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAvL3RoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KHhbMF0sIG51bGwsIDIpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoeFsxXS5vayAmJiB4WzFdLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4WzFdLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucmVzcG9uc2VTZXJ2aWNlLnJlc29sdmUoYm9keTEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeSh4WzBdLCBudWxsLCAyKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSX0dST1VQKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3Rpb25SYW5nZTogSUdyb3VwUGVybWlzc2lvbk1vZGVsW10gPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uUGVybWlzc2lvblZhbHVlLm1hcChmID0+IHtcclxuICAgICAgICAgICAgZi5hbGxvd2VkQWN0aW9uSWRzPy5tYXAoaWQgPT4ge1xyXG4gICAgICAgICAgICAgIGFjdGlvblJhbmdlLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBJZDogTnVtYmVyKHRoaXMub2JqZWN0SWQpLFxyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb25JZDogZi5mdW5jdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGlkXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBvcmdSYW5nZTogSUdyb3VwT3JnUGVybWlzc2lvbk1vZGVsW10gPSBbXTtcclxuICAgICAgICAgIHRoaXMub3JnSWRzLm1hcChvID0+IHtcclxuICAgICAgICAgICAgb3JnUmFuZ2UucHVzaCh7XHJcbiAgICAgICAgICAgICAgZ3JvdXBJZDogTnVtYmVyKHRoaXMub2JqZWN0SWQpLFxyXG4gICAgICAgICAgICAgIG9yZ0lkOiBvXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgY29uc3QgYWN0aW9uUGF5bG9hZCA9IHsgZ3JvdXBJZDogdGhpcy5vYmplY3RJZCwgcmFuZ2U6IGFjdGlvblJhbmdlIH1cclxuICAgICAgICAgIGNvbnN0IG9yZ1BheWxvYWQgPSB7IGdyb3VwSWQ6IHRoaXMub2JqZWN0SWQsIHJhbmdlOiBvcmdSYW5nZSB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgICAgICB6aXAoW1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KGFwaS5TWVNfR1JPVVBfRlVOQ1RJT05fQUNUSU9OX1BFUk1JU1NJT05fVVBEQVRFX1JBTkdFLCBhY3Rpb25QYXlsb2FkKSxcclxuICAgICAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UucG9zdChhcGkuU1lTX0dST1VQX09SR19QRVJNSVNTSU9OX1VQREFURV9SQU5HRSwgb3JnUGF5bG9hZClcclxuICAgICAgICAgICAgXSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dFZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgaWYgKHhbMF0ub2sgJiYgeFswXS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4WzBdLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucmVzcG9uc2VTZXJ2aWNlLnJlc29sdmUoYm9keSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoeFswXSwgbnVsbCwgMiksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh4WzFdLm9rICYmIHhbMV0uc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkxOiBJRm9ybWF0ZWRSZXNwb25zZSA9IHhbMV0uYm9keTtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5yZXNwb25zZVNlcnZpY2UucmVzb2x2ZShib2R5MSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTEuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAvL3RoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KHhbMF0sIG51bGwsIDIpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb25QZXJtaXNzaW9uVmFsdWVDaGFuZ2UoZTogSUNvcmVGdW5jdGlvbkFjdGlvbltdKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm9uQWN0aW9uUGVybWlzc2lvblZhbHVlQ2hhbmdlXCIsIGUpO1xyXG4gIH1cclxuXHJcbiAgb25PcmdUcmVlSXRlbUNoZWNrKGU6IGFueSkge1xyXG4gICAgaWYgKCEhIXRoaXMuYWxsb3dFZGl0KSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoJ1VJX1VTRVJfUEVSTUlTU0lPTl9UT19FRElUX1BMRUFTRV9TRUxFQ1RfQV9VU0VSX0FORF9DTElDS19USEVfUEVOQ0lMJywgdGhpcy5sYW5nKSwgYWxlcnRPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDbG9zZVN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U3RhdGVUcmFja2VyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjYW5EZWFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuIHtcclxuICAgIHRoaXMuY3VycmVudEFjdGlvblBlcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmFjdGlvblBlcm1pc3Npb25WYWx1ZSk7XHJcbiAgICBjb25zdCBjb25kaXRpb24xID0gdGhpcy5jdXJyZW50QWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9PT0gdGhpcy5pbml0aWFsQWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZztcclxuICAgIHRoaXMuY3VycmVudE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9yZ1Blcm1pc3Npb25WYWx1ZSk7XHJcbiAgICBjb25zdCBjb25kaXRpb24yID0gdGhpcy5jdXJyZW50T3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9PT0gdGhpcy5pbml0aWFsT3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZztcclxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbmRpdGlvbjEgJiYgY29uZGl0aW9uMjtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTsgLy8gVE8gRE9cclxuXHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHRoaXMucGVuZGluZ0FjdGlvbiA9ICdDSEFOR0VTX1dJTExfQkVfTE9TVCc7XHJcbiAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5zaG93U3RhdGVUcmFja2VyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5idXN5ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQubmV4dCh7XHJcbiAgICAgICAgY29uZmlybWVkOiBmYWxzZSxcclxuICAgICAgICBpbnN0YW5jZU51bWJlcjogdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlclxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50aXRsZSQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfVElUTEUpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuYm9keSQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfQk9EWV9DSEFOR0VTX1dJTExfQkVfTE9TVCk7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5va0J1dHRvblRleHQkLm5leHQoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9DT05GSVJNKTtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNhbmNlbEJ1dHRvblRleHQkLm5leHQoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9HT19CQUNLX1RPX0VESVRfRk9STSk7XHJcbiAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuY2FuRGVhY3RpdmF0ZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLmluc3RhbmNlTnVtYmVyID0gbnVsbDtcclxuICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkT2JqZWN0JC5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRPYmplY3RBY3Rpb25QZXJtaXNzaW9ucyQubmV4dChbXSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLXBlcm1pc3Npb24tY29udGFpbmVyXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCArICdweCd9XCI+XHJcbiAgPGNvcmUtcGFnZS1oZWFkZXIgW3RpdGxlXT1cInRpdGxlXCIgKGJ1dHRvbkNsaWNrKT1cIm9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljaygkZXZlbnQpXCI+PC9jb3JlLXBhZ2UtaGVhZGVyPlxyXG5cclxuICA8Y29yZS1jb21wb3NpdGlvbiBbbGVmdF09XCJ1c2VyU2Vla2VyXCIgW2xlZnRXaWR0aF09XCIyMDBcIiBbbWFpbl09XCJ0YWJzXCIgW2hlaWdodF09XCJjb21wb3NpdGlvbkhlaWdodFwiPlxyXG4gIDwvY29yZS1jb21wb3NpdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInN0YXRlLXRyYWNrZXIgY29udGFpbmVyIGNvbnRhaW5lci1mbHVpZFwiICpuZ0lmPVwic2hvd1N0YXRlVHJhY2tlciAmJiBpc1Jvb3RVc2VyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGQtZmxleC1iZXR3ZWVuXCI+XHJcbiAgICAgIDxzcGFuPkNvbXBhcmU8L3NwYW4+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCIgKGNsaWNrKT1cIm9uQ2xpY2tDbG9zZVN0YXRlKClcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAge3sgaW5pdGlhbEFjdGlvblBlcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgIHt7IGN1cnJlbnRBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgIHt7IGluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICB7eyBjdXJyZW50T3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3RhYnM+XHJcbiAgPGNvcmUtdGFicyBbaGVhZGVyc109XCJ0YWJIZWFkZXJzXCIgW2NvbnRlbnRzXT1cIlt0YWIxLCB0YWIyXVwiIFtoZWlnaHRdPVwiY29tcG9zaXRpb25IZWlnaHRcIj48L2NvcmUtdGFicz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGFiMT5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBsYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZyArICdweCcgfVwiPjwvZGl2PlxyXG4gIDxjb3JlLXBlcm1pc3Npb24tYWN0aW9ucyBbbG9hZGluZ109XCJsb2FkaW5nXCIgWyhuZ01vZGVsKV09XCJhY3Rpb25QZXJtaXNzaW9uVmFsdWVcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25BY3Rpb25QZXJtaXNzaW9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCIhISFhbGxvd0VkaXRcIiBbaGVpZ2h0XT1cImNvcmVQZXJtaXNzaW9uQWN0aW9uc0hlaWdodFwiPjwvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3VzZXJTZWVrZXI+XHJcblxyXG4gIDxjb3JlLWxpc3QtbGF6eSBbcXVlcnlMaXN0QXBpXT1cIm9iamVjdFF1ZXJ5TGlzdEFwaVwiIFt0ZXh0RmllbGRdPVwib2JqZWN0TGlzdFRleHRGaWVsZFwiIFsobmdNb2RlbCldPVwib2JqZWN0SWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25PYmplY3RJZENoYW5nZSgkZXZlbnQpXCIgW2hlaWdodF09XCJjb21wb3NpdGlvbkhlaWdodFwiIFtibG9ja2luZ0ludGVyYWN0aW9uJF09XCJibG9ja2luZ0xlZnRMaXN0SW50ZXJhY3Rpb24kXCI+PC9jb3JlLWxpc3QtbGF6eT5cclxuXHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0YWIyPlxyXG4gIDxkaXYgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGxheW91dFNlcnZpY2UuYmFzaWNTcGFjaW5nICsgJ3B4JyB9XCI+PC9kaXY+XHJcbiAgPGNvcmUtb3JnLXRyZWUgW2Z1bGxXaWR0aE1vZGVdPVwidHJ1ZVwiIFthY2Nlc3Nvck1vZGVdPVwidHJlZUFjY2Vzc29yTW9kZVwiIFsobmdNb2RlbCldPVwib3JnSWRzXCIgW2Rpc2FibGVkXT1cIiEhIWFsbG93RWRpdFwiXHJcbiAgICAoaXRlbUNsaWNrKT1cIm9uT3JnVHJlZUl0ZW1DaGVjaygkZXZlbnQpXCIgbmFtZT1cIm9yZ0lkc1wiIG5nRGVmYXVsdENvbnRyb2wgW2hlaWdodF09XCJ0cmVlSGVpZ2h0XCI+PC9jb3JlLW9yZy10cmVlPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wZXJtaXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXBlcm1pc3Npb24vY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi9jb3JlLXBlcm1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFlLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUU1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFjNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFB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QUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OEdBemRVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDRZQzFGcEMsMjFFQXFEYyw0UERvQlYsWUFBWSx5TkFDWixXQUFXLGtuQkFDWCxvQkFBb0Isc09BRXBCLGlCQUFpQixtTEFDakIsdUJBQXVCLDZKQUN2Qix3QkFBd0IsMEtBQ3hCLHFCQUFxQixxSkFHckIsOEJBQThCOzsyRkFPckIsdUJBQXVCO2tCQXJCbkMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3FCQUN6Qjs0WUFNUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2UsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNHLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB6aXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRW51bUZpbHRlck9wZXJhdG9yLCBJRmlsdGVyT3BlcmF0b3IgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiwgSUNvcmVQYWdlTGlzdEVkaXRSb3V0aW5nIH0gZnJvbSBcIi4uLy4uLy4uL2xpYnJhcmllcy9jb3JlLXBhZ2UtbGlzdC9jb3JlLXBhZ2UtbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtdGFibGUvRW51bUNvcmVUYWJsZVBpcGVUeXBlXCI7XHJcblxyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJhbmRvbUF2YXRhclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvcmVQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYnJhcmllcy9hbGVydC9hbGVydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2RvbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2VcIjtcclxuXHJcbmltcG9ydCB7IElDb3JlTGlzdE9wdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9saWJyYXJpZXMvY29yZS1saXN0L2NvcmUtbGlzdC9jb3JlLWxpc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElGb3JtYXRlZFJlc3BvbnNlIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2VcIjtcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlNcIjtcclxuaW1wb3J0IHsgQ29yZU9yZ1RyZWVDb21wb25lbnQsIEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlXCI7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucywgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb3JlUGVybWlzc2lvbkFjdGlvbnNDb21wb25lbnQsIElDb3JlRnVuY3Rpb25BY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0Q29udGVudENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLXBhZ2UtbGlzdC1jb250ZW50L2NvcmUtcGFnZS1saXN0LWNvbnRlbnQvY29yZS1wYWdlLWxpc3QtY29udGVudC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVRhYnNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS10YWJzL2NvcmUtdGFicy9jb3JlLXRhYnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvcmVQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb3JlQ29tcG9zaXRpb25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS1jb21wb3NpdGlvbi9jb3JlLWNvbXBvc2l0aW9uL2NvcmUtY29tcG9zaXRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvcmVMaXN0TGF6eUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlLWxpc3QtbGF6eS9jb3JlLWxpc3QtbGF6eS9jb3JlLWxpc3QtbGF6eS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gXCIuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuaW1wb3J0IHsgQ29yZVRhZ3NDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS10YWdzL2NvcmUtdGFncy9jb3JlLXRhZ3MuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvcmVDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUtY29uZmlybS1kaWFsb2cvY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb3JlQXBpUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS1hcGktcHJvZ3Jlc3MvY29yZS1hcGktcHJvZ3Jlc3MvY29yZS1hcGktcHJvZ3Jlc3MuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEdycGNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dycGMuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVXNlclBlcm1pc3Npb25Nb2RlbCB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgZnVuY3Rpb25JZDogbnVtYmVyO1xyXG4gIGFjdGlvbklkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJPcmdQZXJtaXNzaW9uTW9kZWwge1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIG9yZ0lkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwUGVybWlzc2lvbk1vZGVsIHtcclxuICBncm91cElkOiBudW1iZXI7XHJcbiAgZnVuY3Rpb25JZDogbnVtYmVyO1xyXG4gIGFjdGlvbklkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwT3JnUGVybWlzc2lvbk1vZGVsIHtcclxuICBncm91cElkOiBudW1iZXI7XHJcbiAgb3JnSWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlIHtcclxuICBVU0VSID0gJ1VTRVInLFxyXG4gIFVTRVJfR1JPVVAgPSAnVVNFUl9HUk9VUCdcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXBlcm1pc3Npb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlT3JnVHJlZUNvbXBvbmVudCxcclxuICAgIENvcmVQYWdlTGlzdENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBDb3JlVGFic0NvbXBvbmVudCxcclxuICAgIENvcmVQYWdlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgQ29yZUNvbXBvc2l0aW9uQ29tcG9uZW50LFxyXG4gICAgQ29yZUxpc3RMYXp5Q29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIENvcmVUYWdzQ29tcG9uZW50LFxyXG4gICAgQ29yZVBlcm1pc3Npb25BY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgQ29yZUNvbmZpcm1EaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb3JlQXBpUHJvZ3Jlc3NDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXBlcm1pc3Npb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtcGVybWlzc2lvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlUGVybWlzc2lvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgdHlwZSE6IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZTtcclxuICBAVmlld0NoaWxkKCdhdmF0YXInKSBhdmF0YXIhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnMnKSBhY3Rpb25zITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBoZWlnaHQhOiBudW1iZXI7XHJcbiAgdGl0bGUhOiBFbnVtVHJhbnNsYXRlS2V5XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgcGlwZSE6IEVudW1Db3JlVGFibGVQaXBlVHlwZTtcclxuXHJcbiAgaXNSb290VXNlciE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgY29tcG9zaXRpb25IZWlnaHQhOiBudW1iZXI7XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlUGVybWlzc2lvblNlcnZpY2U6IENvcmVQZXJtaXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZSxcclxuICAgIHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBncnBjU2VydmljZTogR3JwY1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcblxyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2UuaW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCd1cGVybWlzc2lvbicpKSB0aGlzLnR5cGUgPSBFbnVtUGVybWlzc2lvbk9iamVjdFR5cGUuVVNFUlxyXG4gICAgaWYgKHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnZ3JvdXBwZXJtaXNzaW9uJykpIHRoaXMudHlwZSA9IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSX0dST1VQXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGUucGFyYW1NYXAuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIGNvbnN0IGlkID0geC5nZXQoJ2lkJyk7XHJcbiAgICAgICAgaWYgKCEhaWQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0SWQkLm5leHQoaWQpXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9IEVudW1QZXJtaXNzaW9uT2JqZWN0VHlwZS5VU0VSX0dST1VQKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0SWQkLm5leHQoTnVtYmVyKGlkKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQuc3Vic2NyaWJlKHggPT4gdGhpcy5pc1Jvb3RVc2VyID0geD8uaXNSb290KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdGFiSGVhZGVyczogc3RyaW5nW10gPSBbXHJcbiAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX1VTRVJfR1JPVVBfUEVSTUlTU0lPTl9GVU5DVElPTl9UQUIsIC8vIG1ha2UgdXNlIG9mIGFuIGV4aXN0aW5nIGtleVxyXG4gICAgRW51bVRyYW5zbGF0ZUtleS5VSV9VU0VSX0dST1VQX1BFUk1JU1NJT05fT1JHX1VOSVRfVEFCLCAvLyBtYWtlIHVzZSBvZiBhbiBleGlzdGluZyBrZXlcclxuICBdXHJcblxyXG4gIG9iamVjdElkITogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG9iamVjdElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgb3JnSWRzOiBudW1iZXJbXSA9IFtdO1xyXG4gIG9iamVjdFF1ZXJ5TGlzdEFwaSE6IGFwaTtcclxuICBvYmplY3RMaXN0VGV4dEZpZWxkITogc3RyaW5nO1xyXG4gIHBlbmRpbmdBY3Rpb24hOiBhbnk7XHJcbiAgcGVuZGluZ09iamVjdElkITogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcclxuXHJcbiAgc2hvd1N0YXRlVHJhY2tlciE6IGJvb2xlYW47XHJcblxyXG4gIHVzZXJMaXN0VGV4dFBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZSA9IEVudW1Db3JlVGFibGVQaXBlVHlwZS5VUFBFUkNBU0U7XHJcblxyXG4gIHRyZWVBY2Nlc3Nvck1vZGU6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgPSBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkNIRUNLRUQ7XHJcblxyXG4gIHVzZXJPcHRpb25zOiBJQ29yZUxpc3RPcHRpb25bXSA9IFtdXHJcblxyXG4gIG91dGVyRmlsdGVyT3BlcmF0b3JzOiBJRmlsdGVyT3BlcmF0b3JbXSA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd1c2VySWQnLFxyXG4gICAgICBvcGVyYXRvcjogRW51bUZpbHRlck9wZXJhdG9yLkVRVUFMXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICBsZWZ0QXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5TWVNfVVNFUl9RVUVSWV9MSVNULFxyXG4gIH1cclxuXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5TWVNfVVNFUl9QRVJNSVNTSU9OX1FVRVJZX0xJU1QsXHJcbiAgfVxyXG5cclxuICBhbGxvd0VkaXQhOiBib29sZWFuO1xyXG5cclxuICBjb2x1bW5zOiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JRCxcclxuICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1lTX01PRFVMRV9OQU1FQ09ERSxcclxuICAgICAgZmllbGQ6ICdtb2R1bGVOYW1lQ29kZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfRlVOQ1RJT05fUEFUSCxcclxuICAgICAgZmllbGQ6ICdwYXRoJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICB9LFxyXG4gICAgLypcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfRlVOQ1RJT05fR1JPVVBfTkFNRUNPREUsXHJcbiAgICAgIGZpZWxkOiAnZ3JvdXBOYW1lQ29kZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgfSxcclxuICAgICovXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1lTX0ZVTkNUSU9OX05BTUVDT0RFLFxyXG4gICAgICBmaWVsZDogJ2Z1bmN0aW9uTmFtZUNvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDE1MCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1lTX0FDVElPTl9OQU1FQ09ERSxcclxuICAgICAgZmllbGQ6ICdhcHBBY3Rpb25zJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIGhpZGVTZWFyY2hCb3g6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICB0ZW1wbGF0ZVJlZjogdGhpcy5hY3Rpb25zLFxyXG4gICAgICB0ZW1wbGF0ZVJlZkFsbG93RWRpdE9uUm93QWN0aXZlZDogdHJ1ZVxyXG4gICAgfSxcclxuICBdXHJcblxyXG4gIGRlZmF1bHRBdmF0YXIhOiBzdHJpbmc7XHJcbiAgdHJlZUhlaWdodCE6IG51bWJlcjtcclxuICBjb3JlUGVybWlzc2lvbkFjdGlvbnNIZWlnaHQhOiBudW1iZXI7XHJcbiAgZGlhbG9nSW5zdGFuY2VOdW1iZXIhOiBudW1iZXI7XHJcblxyXG4gIGVkaXRSb3V0ZTogSUNvcmVQYWdlTGlzdEVkaXRSb3V0aW5nID0ge1xyXG4gICAgYXV4aWxpYXJ5OiAncG9wdXBBdXgnXHJcbiAgfVxyXG5cclxuICBhY3Rpb25QZXJtaXNzaW9uVmFsdWU6IElDb3JlRnVuY3Rpb25BY3Rpb25bXSA9IFtdXHJcbiAgaW5pdGlhbEFjdGlvblBlcm1pc3Npb25WYWx1ZUpzb25TdHJpbmchOiBzdHJpbmdcclxuICBjdXJyZW50QWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyE6IHN0cmluZ1xyXG4gIG9yZ1Blcm1pc3Npb25WYWx1ZTogbnVtYmVyW10gPSBbXVxyXG4gIGluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nITogc3RyaW5nXHJcbiAgY3VycmVudE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmchOiBzdHJpbmdcclxuXHJcblxyXG4gIHF1ZXJ5RnVuY3Rpb25BY3Rpb25QZXJtaXNzaW9uTGlzdEFwaUVuZHBvaW50ITogc3RyaW5nO1xyXG4gIHF1ZXJ5T3JnUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCE6IHN0cmluZztcclxuXHJcbiAgYmxvY2tpbmdMZWZ0TGlzdEludGVyYWN0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICB1cGRhdGVJbml0aWFsQWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyhmdW5jdGlvbkFjdGlvbnM6IElDb3JlRnVuY3Rpb25BY3Rpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsQWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHsgb2JqZWN0SWQ6IHRoaXMub2JqZWN0SWQsIGFjdGlvbnM6IGZ1bmN0aW9uQWN0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nKG9yZ0lkczogbnVtYmVyW10pOiB2b2lkIHtcclxuICAgIHRoaXMub3JnUGVybWlzc2lvblZhbHVlID0gb3JnSWRzO1xyXG4gICAgdGhpcy5pbml0aWFsT3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHsgb2JqZWN0SWQ6IHRoaXMub2JqZWN0SWQsIG9yZ0lkczogb3JnSWRzIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmZpZWxkID09PSAnYXBwQWN0aW9ucycpWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5hY3Rpb25zO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbnRlbnRDb250YWluZXJIZWlnaHQkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25IZWlnaHQgPSB4IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZ1xyXG4gICAgICAgICAgdGhpcy5jb3JlUGVybWlzc2lvbkFjdGlvbnNIZWlnaHQgPSB0aGlzLmNvbXBvc2l0aW9uSGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVUYWJzSGVhZGVyTGluZUhlaWdodCAtIHRoaXMubGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmdcclxuICAgICAgICAgIHRoaXMudHJlZUhlaWdodCA9IHggLSB0aGlzLmxheW91dFNlcnZpY2UuY29yZVBhZ2VIZWFkZXJIZWlnaHQgLSB0aGlzLmxheW91dFNlcnZpY2UuYmFzaWNTcGFjaW5nICogMiAtIHRoaXMubGF5b3V0U2VydmljZS5jb3JlVGFic0hlYWRlckxpbmVIZWlnaHRcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAodGhpcy50eXBlID09PSBFbnVtUGVybWlzc2lvbk9iamVjdFR5cGUuVVNFUikge1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9VU0VSX1BFUk1JU1NJT05cclxuICAgICAgICB0aGlzLnBpcGUgPSBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuTE9XRVJDQVNFXHJcbiAgICAgICAgdGhpcy5vYmplY3RRdWVyeUxpc3RBcGkgPSBhcGkuU1lTX1VTRVJfUVVFUllfTElTVFxyXG4gICAgICAgIHRoaXMucXVlcnlGdW5jdGlvbkFjdGlvblBlcm1pc3Npb25MaXN0QXBpRW5kcG9pbnQgPSBhcGkuU1lTX1VTRVJfUVVFUllfRlVOQ1RJT05fQUNUSU9OX1BFUk1JU1NJT05fTElTVFxyXG4gICAgICAgIHRoaXMucXVlcnlPcmdQZXJtaXNzaW9uTGlzdEFwaUVuZHBvaW50ID0gYXBpLlNZU19VU0VSX1FVRVJZX1VTRVJfT1JHX1BFUk1JU1NJT05fTElTVFxyXG4gICAgICAgIHRoaXMub2JqZWN0TGlzdFRleHRGaWVsZCA9IFwidXNlcm5hbWVcIlxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVJfR1JPVVApIHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfVVNFUl9HUk9VUF9QRVJNSVNTSU9OXHJcbiAgICAgICAgdGhpcy5waXBlID0gRW51bUNvcmVUYWJsZVBpcGVUeXBlLlVQUEVSQ0FTRVxyXG4gICAgICAgIHRoaXMub2JqZWN0UXVlcnlMaXN0QXBpID0gYXBpLlNZU19HUk9VUF9RVUVSWV9MSVNUXHJcbiAgICAgICAgdGhpcy5xdWVyeUZ1bmN0aW9uQWN0aW9uUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCA9IGFwaS5TWVNfR1JPVVBfUVVFUllfRlVOQ1RJT05fQUNUSU9OX1BFUk1JU1NJT05fTElTVF9HUlBDXHJcbiAgICAgICAgdGhpcy5xdWVyeU9yZ1Blcm1pc3Npb25MaXN0QXBpRW5kcG9pbnQgPSBhcGkuU1lTX0dST1VQX1FVRVJZX0dST1VQX09SR19QRVJNSVNTSU9OX0xJU1RcclxuICAgICAgICB0aGlzLm9iamVjdExpc3RUZXh0RmllbGQgPSBcIm5hbWVcIlxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IodGhpcy5tbHMudHJhbnMoJ1VJX1BFUk1JU1NJT05fT0JKRUNUX0lTX1VOREVGSU5FRCcsIHRoaXMubGFuZyksIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuICEheCAmJiAhIXguY29uZmlybWVkICYmICEheD8uaW5zdGFuY2VOdW1iZXJcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkXCIsIHgpXHJcbiAgICAgICAgICBpZiAoISEheD8uY29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0SWQgPSB0aGlzLm9iamVjdElkJC52YWx1ZSE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVzZXRTZXJ2aWNlKClcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uUGVybWlzc2lvblZhbHVlID0geDtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLm9iamVjdElkJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4gISF4ICYmIHggIT09IDAgJiYgeCAhPT0gJzAnKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICBtYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMkLm5leHQoW10pO1xyXG4gICAgICAgICAgICB0aGlzLm9yZ0lkcyA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgc3dpdGNoTWFwKG9iamVjdElkID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ibG9ja2luZ0xlZnRMaXN0SW50ZXJhY3Rpb24kLm5leHQodHJ1ZSlcclxuICAgICAgICAgICAgaWYgKCEhIXRoaXMub2JqZWN0SWQpIHRoaXMub2JqZWN0SWQgPSBvYmplY3RJZCE7XHJcbiAgICAgICAgICAgIHJldHVybiB6aXAoW1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQodGhpcy5xdWVyeUZ1bmN0aW9uQWN0aW9uUGVybWlzc2lvbkxpc3RBcGlFbmRwb2ludCArICc/b2JqZWN0SWQ9JyArIG9iamVjdElkICsgXCImdXNlR3JvdXBJZkVtcHR5PWZhbHNlXCIpLFxyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQodGhpcy5xdWVyeU9yZ1Blcm1pc3Npb25MaXN0QXBpRW5kcG9pbnQgKyAnP29iamVjdElkPScgKyBvYmplY3RJZCArIFwiJnVzZUdyb3VwSWZFbXB0eT1mYWxzZVwiKV0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmJsb2NraW5nTGVmdExpc3RJbnRlcmFjdGlvbiQubmV4dChmYWxzZSlcclxuICAgICAgICAgIGlmICh4WzBdLm9rICYmIHhbMF0uc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4WzBdLmJvZHk7XHJcbiAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMkLm5leHQoYm9keS5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5pdGlhbEFjdGlvblBlcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcoYm9keS5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoeFsxXS5vayAmJiB4WzFdLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJvZHkxOiBJRm9ybWF0ZWRSZXNwb25zZSA9IHhbMV0uYm9keTtcclxuICAgICAgICAgICAgLy90aGlzLnJlc3BvbnNlU2VydmljZS5yZXNvbHZlKGJvZHkxKTtcclxuICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMub3JnSWRzID0gYm9keTEuaW5uZXJCb2R5O1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5pdGlhbE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcoYm9keTEuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXotaW5kZXgnLCB0aGlzLmRvbVNlcnZpY2UuZ2V0TWF4WkluZGV4KCkpXHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICAvKiBXZSBkbyBub3QgdXBkYXRlIHRoZSBncmlkIHdoZW4gdXNlcklkIGNoYW5nZXMgKi9cclxuICBvbk9iamVjdElkQ2hhbmdlKG9iamVjdElkOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLm9iamVjdElkID0gb2JqZWN0SWQ7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbb2JqZWN0SWQudG9TdHJpbmcoKV0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZS5wYXJlbnQgfSlcclxuICB9XHJcblxyXG4gIG9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUykge1xyXG4gICAgc3dpdGNoIChlLmNvZGUpIHtcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0VESVQ6XHJcbiAgICAgICAgaWYgKCEhdGhpcy5vYmplY3RJZCkge1xyXG4gICAgICAgICAgdGhpcy5hbGxvd0VkaXQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKHRoaXMubWxzLnRyYW5zKCdVSV9VU0VSX1BFUk1JU1NJT05fTk9fVVNFUl9TRUxFQ1RFRCcsIHRoaXMubGFuZyksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfVVBFUk1JU1NJT05fREVMRVRFOlxyXG5cclxuICAgICAgICBpZiAoIXRoaXMub2JqZWN0SWQpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4odGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5VSV9VU0VSX1BFUk1JU1NJT05fVE9fRURJVF9QTEVBU0VfU0VMRUNUX0FfVVNFUiksIGFsZXJ0T3B0aW9ucylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50aXRsZSQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfRElBTE9HX1NFUlZJQ0VfQ09ORklSTUFUSU9OKVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub2tCdXR0b25UZXh0JC5uZXh0KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CVVRUT05fQ09ORklSTSlcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNhbmNlbEJ1dHRvblRleHQkLm5leHQoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9DQU5DRUwpXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q2FuY2VsT25seSQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5idXN5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmJvZHkkLm5leHQoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0RJQUxPR19TRVJWSUNFX0FSRV9ZT1VfU1VSRV9UT19ERUxFVEUpO1xyXG4gICAgICAgICAgICBsZXQgbGlzdERlbGV0ZUlkczogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgICBsaXN0RGVsZXRlSWRzLnB1c2goeFt0aGlzLmNvbHVtbnNbMV0uZmllbGRdKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmluZm9ybWF0aW9uTGluZXMkLm5leHQobGlzdERlbGV0ZUlkcylcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb25maXJtRGlhbG9nJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NBVkU6XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVIpIHtcclxuICAgICAgICAgIGNvbnN0IGFjdGlvblJhbmdlOiBJVXNlclBlcm1pc3Npb25Nb2RlbFtdID0gW107XHJcbiAgICAgICAgICB0aGlzLmFjdGlvblBlcm1pc3Npb25WYWx1ZS5tYXAoZiA9PiB7XHJcbiAgICAgICAgICAgIGYuYWxsb3dlZEFjdGlvbklkcz8ubWFwKGlkID0+IHtcclxuICAgICAgICAgICAgICBhY3Rpb25SYW5nZS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHVzZXJJZDogdGhpcy5vYmplY3RJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb25JZDogZi5mdW5jdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGlkXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBvcmdSYW5nZTogSVVzZXJPcmdQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5vcmdJZHMubWFwKG8gPT4ge1xyXG4gICAgICAgICAgICBvcmdSYW5nZS5wdXNoKHtcclxuICAgICAgICAgICAgICB1c2VySWQ6IHRoaXMub2JqZWN0SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBvcmdJZDogb1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGNvbnN0IGFjdGlvblBheWxvYWQgPSB7IHVzZXJJZDogdGhpcy5vYmplY3RJZCwgcmFuZ2U6IGFjdGlvblJhbmdlIH1cclxuICAgICAgICAgIGNvbnN0IG9yZ1BheWxvYWQgPSB7IHVzZXJJZDogdGhpcy5vYmplY3RJZCwgcmFuZ2U6IG9yZ1JhbmdlIH1cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgICAgIHppcChbXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3QoYXBpLlNZU19VU0VSX0ZVTkNUSU9OX0FDVElPTl9QRVJNSVNTSU9OX1VQREFURV9SQU5HRSwgYWN0aW9uUGF5bG9hZCksXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3QoYXBpLlNZU19VU0VSX09SR19QRVJNSVNTSU9OX1VQREFURV9SQU5HRSwgb3JnUGF5bG9hZClcclxuICAgICAgICAgICAgXSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dFZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgaWYgKHhbMF0ub2sgJiYgeFswXS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4WzBdLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucmVzcG9uc2VTZXJ2aWNlLnJlc29sdmUoYm9keSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoeFswXSwgbnVsbCwgMiksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh4WzFdLm9rICYmIHhbMV0uc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkxOiBJRm9ybWF0ZWRSZXNwb25zZSA9IHhbMV0uYm9keTtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5yZXNwb25zZVNlcnZpY2UucmVzb2x2ZShib2R5MSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTEuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAvL3RoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KHhbMF0sIG51bGwsIDIpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gRW51bVBlcm1pc3Npb25PYmplY3RUeXBlLlVTRVJfR1JPVVApIHtcclxuICAgICAgICAgIGNvbnN0IGFjdGlvblJhbmdlOiBJR3JvdXBQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25QZXJtaXNzaW9uVmFsdWUubWFwKGYgPT4ge1xyXG4gICAgICAgICAgICBmLmFsbG93ZWRBY3Rpb25JZHM/Lm1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgICAgYWN0aW9uUmFuZ2UucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBncm91cElkOiBOdW1iZXIodGhpcy5vYmplY3RJZCksXHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbklkOiBmLmZ1bmN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBhY3Rpb25JZDogaWRcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGNvbnN0IG9yZ1JhbmdlOiBJR3JvdXBPcmdQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5vcmdJZHMubWFwKG8gPT4ge1xyXG4gICAgICAgICAgICBvcmdSYW5nZS5wdXNoKHtcclxuICAgICAgICAgICAgICBncm91cElkOiBOdW1iZXIodGhpcy5vYmplY3RJZCksXHJcbiAgICAgICAgICAgICAgb3JnSWQ6IG9cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBhY3Rpb25QYXlsb2FkID0geyBncm91cElkOiB0aGlzLm9iamVjdElkLCByYW5nZTogYWN0aW9uUmFuZ2UgfVxyXG4gICAgICAgICAgY29uc3Qgb3JnUGF5bG9hZCA9IHsgZ3JvdXBJZDogdGhpcy5vYmplY3RJZCwgcmFuZ2U6IG9yZ1JhbmdlIH1cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgICAgIHppcChbXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3QoYXBpLlNZU19HUk9VUF9GVU5DVElPTl9BQ1RJT05fUEVSTUlTU0lPTl9VUERBVEVfUkFOR0UsIGFjdGlvblBheWxvYWQpLFxyXG4gICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KGFwaS5TWVNfR1JPVVBfT1JHX1BFUk1JU1NJT05fVVBEQVRFX1JBTkdFLCBvcmdQYXlsb2FkKVxyXG4gICAgICAgICAgICBdKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd0VkaXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICBpZiAoeFswXS5vayAmJiB4WzBdLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHhbMF0uYm9keTtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5yZXNwb25zZVNlcnZpY2UucmVzb2x2ZShib2R5KTtcclxuICAgICAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeSh4WzBdLCBudWxsLCAyKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHhbMV0ub2sgJiYgeFsxXS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keTE6IElGb3JtYXRlZFJlc3BvbnNlID0geFsxXS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLnJlc3BvbnNlU2VydmljZS5yZXNvbHZlKGJvZHkxKTtcclxuICAgICAgICAgICAgICAgIGlmIChib2R5MS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoeFswXSwgbnVsbCwgMiksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvblBlcm1pc3Npb25WYWx1ZUNoYW5nZShlOiBJQ29yZUZ1bmN0aW9uQWN0aW9uW10pOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwib25BY3Rpb25QZXJtaXNzaW9uVmFsdWVDaGFuZ2VcIiwgZSk7XHJcbiAgfVxyXG5cclxuICBvbk9yZ1RyZWVJdGVtQ2hlY2soZTogYW55KSB7XHJcbiAgICBpZiAoISEhdGhpcy5hbGxvd0VkaXQpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLm1scy50cmFucygnVUlfVVNFUl9QRVJNSVNTSU9OX1RPX0VESVRfUExFQVNFX1NFTEVDVF9BX1VTRVJfQU5EX0NMSUNLX1RIRV9QRU5DSUwnLCB0aGlzLmxhbmcpLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja0Nsb3NlU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTdGF0ZVRyYWNrZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNhbkRlYWN0aXZhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5jdXJyZW50QWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYWN0aW9uUGVybWlzc2lvblZhbHVlKTtcclxuICAgIGNvbnN0IGNvbmRpdGlvbjEgPSB0aGlzLmN1cnJlbnRBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nID09PSB0aGlzLmluaXRpYWxBY3Rpb25QZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nO1xyXG4gICAgdGhpcy5jdXJyZW50T3JnUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMub3JnUGVybWlzc2lvblZhbHVlKTtcclxuICAgIGNvbnN0IGNvbmRpdGlvbjIgPSB0aGlzLmN1cnJlbnRPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nID09PSB0aGlzLmluaXRpYWxPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nO1xyXG4gICAgY29uc3QgY29uZGl0aW9uID0gY29uZGl0aW9uMSAmJiBjb25kaXRpb24yO1xyXG5cclxuICAgIHJldHVybiB0cnVlOyAvLyBUTyBET1xyXG5cclxuICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgdGhpcy5wZW5kaW5nQWN0aW9uID0gJ0NIQU5HRVNfV0lMTF9CRV9MT1NUJztcclxuICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICB0aGlzLnNob3dTdGF0ZVRyYWNrZXIgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmJ1c3kgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5uZXh0KHtcclxuICAgICAgICBjb25maXJtZWQ6IGZhbHNlLFxyXG4gICAgICAgIGluc3RhbmNlTnVtYmVyOiB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29uZmlybURpYWxvZyQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRpdGxlJC5uZXh0KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05GSVJNX0RJQUxPR19USVRMRSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5ib2R5JC5uZXh0KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CT0RZX0NIQU5HRVNfV0lMTF9CRV9MT1NUKTtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9rQnV0dG9uVGV4dCQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX0NPTkZJUk0pO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2FuY2VsQnV0dG9uVGV4dCQubmV4dChFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX0dPX0JBQ0tfVE9fRURJVF9GT1JNKTtcclxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuZGlhbG9nU2VydmljZS5jYW5EZWFjdGl2YXRlJC5hc09ic2VydmFibGUoKTtcclxuICAgICAgcmV0dXJuIG9ic2VydmFibGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKVxyXG4gICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2UuaW5zdGFuY2VOdW1iZXIgPSBudWxsO1xyXG4gICAgdGhpcy5jb3JlUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRPYmplY3QkLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmNvcmVQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZE9iamVjdEFjdGlvblBlcm1pc3Npb25zJC5uZXh0KFtdKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtcGVybWlzc2lvbi1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4J31cIj5cclxuICA8Y29yZS1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGVcIiAoYnV0dG9uQ2xpY2spPVwib25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKCRldmVudClcIj48L2NvcmUtcGFnZS1oZWFkZXI+XHJcblxyXG4gIDxjb3JlLWNvbXBvc2l0aW9uIFtsZWZ0XT1cInVzZXJTZWVrZXJcIiBbbGVmdFdpZHRoXT1cIjIwMFwiIFttYWluXT1cInRhYnNcIiBbaGVpZ2h0XT1cImNvbXBvc2l0aW9uSGVpZ2h0XCI+XHJcbiAgPC9jb3JlLWNvbXBvc2l0aW9uPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic3RhdGUtdHJhY2tlciBjb250YWluZXIgY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJzaG93U3RhdGVUcmFja2VyICYmIGlzUm9vdFVzZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZC1mbGV4LWJldHdlZW5cIj5cclxuICAgICAgPHNwYW4+Q29tcGFyZTwvc3Bhbj5cclxuICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIiAoY2xpY2spPVwib25DbGlja0Nsb3NlU3RhdGUoKVwiPjwvaT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICB7eyBpbml0aWFsQWN0aW9uUGVybWlzc2lvblZhbHVlSnNvblN0cmluZyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAge3sgY3VycmVudEFjdGlvblBlcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAge3sgaW5pdGlhbE9yZ1Blcm1pc3Npb25WYWx1ZUpzb25TdHJpbmcgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgIHt7IGN1cnJlbnRPcmdQZXJtaXNzaW9uVmFsdWVKc29uU3RyaW5nIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGFicz5cclxuICA8Y29yZS10YWJzIFtoZWFkZXJzXT1cInRhYkhlYWRlcnNcIiBbY29udGVudHNdPVwiW3RhYjEsIHRhYjJdXCIgW2hlaWdodF09XCJjb21wb3NpdGlvbkhlaWdodFwiPjwvY29yZS10YWJzPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0YWIxPlxyXG4gIDxkaXYgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGxheW91dFNlcnZpY2UuYmFzaWNTcGFjaW5nICsgJ3B4JyB9XCI+PC9kaXY+XHJcbiAgPGNvcmUtcGVybWlzc2lvbi1hY3Rpb25zIFtsb2FkaW5nXT1cImxvYWRpbmdcIiBbKG5nTW9kZWwpXT1cImFjdGlvblBlcm1pc3Npb25WYWx1ZVwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFjdGlvblBlcm1pc3Npb25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cIiEhIWFsbG93RWRpdFwiIFtoZWlnaHRdPVwiY29yZVBlcm1pc3Npb25BY3Rpb25zSGVpZ2h0XCI+PC9jb3JlLXBlcm1pc3Npb24tYWN0aW9ucz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXNlclNlZWtlcj5cclxuXHJcbiAgPGNvcmUtbGlzdC1sYXp5IFtxdWVyeUxpc3RBcGldPVwib2JqZWN0UXVlcnlMaXN0QXBpXCIgW3RleHRGaWVsZF09XCJvYmplY3RMaXN0VGV4dEZpZWxkXCIgWyhuZ01vZGVsKV09XCJvYmplY3RJZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk9iamVjdElkQ2hhbmdlKCRldmVudClcIiBbaGVpZ2h0XT1cImNvbXBvc2l0aW9uSGVpZ2h0XCIgW2Jsb2NraW5nSW50ZXJhY3Rpb24kXT1cImJsb2NraW5nTGVmdExpc3RJbnRlcmFjdGlvbiRcIj48L2NvcmUtbGlzdC1sYXp5PlxyXG5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RhYjI+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogbGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmcgKyAncHgnIH1cIj48L2Rpdj5cclxuICA8Y29yZS1vcmctdHJlZSBbZnVsbFdpZHRoTW9kZV09XCJ0cnVlXCIgW2FjY2Vzc29yTW9kZV09XCJ0cmVlQWNjZXNzb3JNb2RlXCIgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiBbZGlzYWJsZWRdPVwiISEhYWxsb3dFZGl0XCJcclxuICAgIChpdGVtQ2xpY2spPVwib25PcmdUcmVlSXRlbUNoZWNrKCRldmVudClcIiBuYW1lPVwib3JnSWRzXCIgbmdEZWZhdWx0Q29udHJvbCBbaGVpZ2h0XT1cInRyZWVIZWlnaHRcIj48L2NvcmUtb3JnLXRyZWU+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, Output, isDevMode } from '@angular/core
|
|
|
2
2
|
import { CoreFormControlBaseComponent } from '../../core-form-control-base/core-form-control-base.component';
|
|
3
3
|
import { EnumCoreButtonCode } from '../../core-button-group/core-button/EnumButtonCaptionCode';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { filter } from 'rxjs';
|
|
5
6
|
import { EnumCoreButtonVNSCode } from '../../core-button-group-vns/core-button-group-vns/EnumCoreButtonVNSCode';
|
|
6
7
|
import { alertOptions, noneAutoClosedAlertOptions } from '../../../constants/alertOptions';
|
|
7
8
|
import { CommonModule } from '@angular/common';
|
|
@@ -71,7 +72,8 @@ export class CoreTagsComponent extends CoreFormControlBaseComponent {
|
|
|
71
72
|
}
|
|
72
73
|
ngAfterViewInit() {
|
|
73
74
|
setTimeout(() => {
|
|
74
|
-
this.subscriptions.push(this.corePermissionService.selectedObjectActionPermissions$.
|
|
75
|
+
this.subscriptions.push(this.corePermissionService.selectedObjectActionPermissions$.pipe(filter(x => !!x.length))
|
|
76
|
+
.subscribe(x => {
|
|
75
77
|
this.tags.map(tag => {
|
|
76
78
|
const filter = x.filter(m => m.functionId === this.functionId);
|
|
77
79
|
if (filter.length === 1) {
|
|
@@ -164,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
164
166
|
}], onValueChange: [{
|
|
165
167
|
type: Output
|
|
166
168
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXRhZ3MvY29yZS10YWdzL2NvcmUtdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS10YWdzL2NvcmUtdGFncy9jb3JlLXRhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBbUJ2RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsNEJBQTRCO0lBc0JqRSxZQUNVLHFCQUE0QyxFQUM1QyxZQUEwQixFQUMxQixHQUF5QixFQUN6QixjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FB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QUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7U0FDRixzRUNsQ0gsK2lDQXdCTSxvckNEREYsWUFBWSwrQkFDWixzQkFBc0I7OzJGQVliLGlCQUFpQjtrQkFqQjdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHNCQUFzQjtxQkFDdkIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG1CQUFtQjt5QkFDL0I7cUJBQ0Y7cUxBSVEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNZLFFBQVE7c0JBQXpCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSVRhZyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvbkNvZGUgfSBmcm9tICcuLi8uLi9jb3JlLWJ1dHRvbi1ncm91cC9jb3JlLWJ1dHRvbi9FbnVtQnV0dG9uQ2FwdGlvbkNvZGUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuLi8uLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgQ29yZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS1wZXJtaXNzaW9uL2NvcmUtcGVybWlzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUZ1bmN0aW9uQWN0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMvY29yZS1wZXJtaXNzaW9uLWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yb3V0aW5nLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvcmVCdXR0b25WbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDT1JFX1ZOU19CVVRUT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL0NPUkVfVk5TX0JVVFRPTlMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXRhZ3MnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29yZUJ1dHRvblZuc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtdGFncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS10YWdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVUYWdzQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRhZ3NDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBmdW5jdGlvbklkITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGFsbE9wdGlvbnMhOiBJVGFnW107XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBvblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUZ1bmN0aW9uQWN0aW9uPigpOyAgLy8gdG8gYnlwYXNzIHVzaW5nIG5nTW9kZWwgYmluZGluZyBpbnNpZGUgbmdUZW1wbGF0ZVxyXG5cclxuICBvdmVycmlkZSB2YWx1ZTogbnVtYmVyW10gPSBbXTtcclxuICBsYW5nITogc3RyaW5nO1xyXG5cclxuICB0YWdzOiBJVGFnW10gPSBbXTtcclxuICBzZWFyY2g6IHN0cmluZyA9IFwiXCI7XHJcbiAgY2hlY2tBbGwhOiBib29sZWFuO1xyXG5cclxuICBhY3Rpb25CdXR0b25zOiBJQ29yZUJ1dHRvblZOU1tdID0gW107XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHNob3duQnV0dG9uczogRW51bUNvcmVCdXR0b25Db2RlW10gPSBbRW51bUNvcmVCdXR0b25Db2RlLlNBVkVdO1xyXG5cclxuICB2aWV3QWJzdHJhY3RCdXR0b246IElDb3JlQnV0dG9uVk5TID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfVklFV19BQlNUUkFDVClbMF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb3JlUGVybWlzc2lvblNlcnZpY2U6IENvcmVQZXJtaXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogbnVtYmVyW10pOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSBvYmpcclxuICAgIHRoaXMuYWxsT3B0aW9ucy5tYXAodCA9PiB7XHJcbiAgICAgIHQuZW5hYmxlZCA9IG9iaj8uaW5jbHVkZXModC5pZClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBtYXBBY3Rpb25CdXR0b24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhZ3MubWFwKHggPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmFjdGlvbkJ1dHRvbnMuZmlsdGVyKGFiID0+IGFiLmNvZGUgPT09IHgudGV4dCk7XHJcbiAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICB4LmFjdGlvbkJ1dHRvbiA9IGZpbHRlclswXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB4LmFjdGlvbkJ1dHRvbiA9IHRoaXMudmlld0Fic3RyYWN0QnV0dG9uO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2FsbE9wdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLnRhZ3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2FsbE9wdGlvbnMnXS5jdXJyZW50VmFsdWUpKVxyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnRhZ3MuZmlsdGVyKHggPT4geC50ZXh0ID09PSAnSEVBREVSX1ZJRVdfQUJTVFJBQ1QnKTtcclxuICAgICAgaWYgKCEhZmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICAgIGZpbHRlclswXS5hY3Rpb25CdXR0b24gPSB0aGlzLnZpZXdBYnN0cmFjdEJ1dHRvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQudmFsdWU/LmZpbHRlcih4ID0+IHguaWQgPT09IHRoaXMuZnVuY3Rpb25JZCk7XHJcbiAgICBpZiAoISFmaWx0ZXI/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBhY3Rpb25zOiBzdHJpbmdbXSA9IGZpbHRlclswXS5hY3Rpb25Db2RlcztcclxuICAgICAgY29uc3QgbmV3QWN0aW9uQnV0dG9uczogSUNvcmVCdXR0b25WTlNbXSA9IFtdO1xyXG4gICAgICBhY3Rpb25zLm1hcChhID0+IHtcclxuICAgICAgICBjb25zdCBhY3Rpb25CdXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoYiA9PiBiLmNvZGUgPT09IGEpO1xyXG4gICAgICAgIGlmICghIWFjdGlvbkJ1dHRvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdBY3Rpb25CdXR0b25zLnB1c2goYWN0aW9uQnV0dG9uc1swXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMgPSBuZXdBY3Rpb25CdXR0b25zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY29yZVBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMudGFncy5tYXAodGFnID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0geC5maWx0ZXIobSA9PiBtLmZ1bmN0aW9uSWQgPT09IHRoaXMuZnVuY3Rpb25JZCk7XHJcbiAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGFnLmVuYWJsZWQgPSBmaWx0ZXJbMF0uYWxsb3dlZEFjdGlvbklkcy5pbmNsdWRlcyh0YWcuaWQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0YWcuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYHNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMgaGFzIGR1cGxpY2F0ZSBmdW5jdGlvbklkPSR7dGhpcy5mdW5jdGlvbklkfWAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICB0aGlzLm1hcEFjdGlvbkJ1dHRvbigpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9uU3VnZ2VzdEl0ZW1DbGljayh0YWc6IElUYWcpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbklucHV0S2V5ZG93bihlOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZSh0YWc6IElUYWcpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvblRvb2dsZUl0ZW0odGFnOiBJVGFnKTogdm9pZCB7XHJcbiAgICBpZiAoISF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoJ1VJX1VTRVJfUEVSTUlTU0lPTl9UT19FRElUX1BMRUFTRV9TRUxFQ1RfQV9VU0VSX0FORF9DTElDS19USEVfUEVOQ0lMJywgdGhpcy5sYW5nKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRhZy5lbmFibGVkID0gIXRhZy5lbmFibGVkO1xyXG5cclxuICAgIC8vIHJlY2FsY3VsYXRlIHRoZSB2YWx1ZVxyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udGhpcy52YWx1ZV0uZmlsdGVyKHggPT4geCAhPSB0YWcuaWQpXHJcbiAgICBpZiAoISF0YWcuZW5hYmxlZCkgbmV3VmFsdWUucHVzaCh0YWcuaWQpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xyXG5cclxuICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHtcclxuICAgICAgZnVuY3Rpb25JZDogdGhpcy5mdW5jdGlvbklkLFxyXG4gICAgICBhbGxvd2VkQWN0aW9uSWRzOiBuZXdWYWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2hlY2tBbGwoKSB7XHJcbiAgICBpZiAoISF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoJ1VJX1VTRVJfUEVSTUlTU0lPTl9UT19FRElUX1BMRUFTRV9TRUxFQ1RfQV9VU0VSX0FORF9DTElDS19USEVfUEVOQ0lMJywgdGhpcy5sYW5nKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcclxuICAgIHRoaXMudGFncy5tYXAodCA9PiB0LmVuYWJsZWQgPSB0aGlzLmNoZWNrQWxsKVxyXG5cclxuICAgIC8vIHJlY2FsY3VsYXRlIHRoZSB2YWx1ZVxyXG4gICAgY29uc3QgbmV3VmFsdWU6IG51bWJlcltdID0gW107XHJcbiAgICBpZiAoISF0aGlzLmNoZWNrQWxsKSB7XHJcbiAgICAgIHRoaXMuYWxsT3B0aW9ucy5tYXAoeCA9PiB7XHJcbiAgICAgICAgbmV3VmFsdWUucHVzaCh4LmlkKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuXHJcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGZ1bmN0aW9uSWQ6IHRoaXMuZnVuY3Rpb25JZCxcclxuICAgICAgYWxsb3dlZEFjdGlvbklkczogbmV3VmFsdWVcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLXRhZ3MtY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImV4aXN0aW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS1hbGwtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZUNoZWNrQWxsKClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyIG1yMTVcIj5cclxuICAgICAgICAgICAgICAgIDxpIFtjbGFzcy5mZWF0aGVyLWxvY2tdPVwiISEhY2hlY2tBbGxcIiBbY2xhc3MuZmVhdGhlci11bmxvY2tdPVwiISFjaGVja0FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzLmFkbWluXT1cIiEhIWRpc2FibGVkICYmICEhIXJlYWRvbmx5XCIgW2NsYXNzLmRpc2FibGVkXT1cIiEhIXRhZy5lbmFibGVkXCIgKGNsaWNrKT1cIm9uVG9vZ2xlSXRlbSh0YWcpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmICghIXRhZy5hY3Rpb25CdXR0b24pIHtcclxuICAgICAgICAgICAgICAgICAgICA8Y29yZS1idXR0b24tdm5zIFtkYXRhXT1cInRhZy5hY3Rpb25CdXR0b24hXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9jb3JlLWJ1dHRvbi12bnM+XHJcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t0YWcudGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXRhZ3MvY29yZS10YWdzL2NvcmUtdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS10YWdzL2NvcmUtdGFncy9jb3JlLXRhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJbkQsT0FBTyxFQUFzQyxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBbUJ2RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsNEJBQTRCO0lBc0JqRSxZQUNVLHFCQUE0QyxFQUM1QyxZQUEwQixF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QztZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQixDQUFDLENBQUM7SUFFTCxDQUFDOzhHQS9KVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyTEFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsaUJBQWlCO2FBQy9CO1NBQ0Ysc0VDbENILCtpQ0F3Qk0sb3JDRERGLFlBQVksK0JBQ1osc0JBQXNCOzsyRkFZYixpQkFBaUI7a0JBakI3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7cUJBQ3ZCLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxtQkFBbUI7eUJBQy9CO3FCQUNGO3FMQUlRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDWSxRQUFRO3NCQUF6QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElUYWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25Db2RlIH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAvY29yZS1idXR0b24vRW51bUJ1dHRvbkNhcHRpb25Db2RlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IENvcmVQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUtcGVybWlzc2lvbi9jb3JlLXBlcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUNvcmVGdW5jdGlvbkFjdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zL2NvcmUtcGVybWlzc2lvbi1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uLy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uVm5zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ09SRV9WTlNfQlVUVE9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9DT1JFX1ZOU19CVVRUT05TJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS10YWdzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVCdXR0b25WbnNDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtdGFncy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlVGFnc0NvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVUYWdzQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgZnVuY3Rpb25JZCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBhbGxPcHRpb25zITogSVRhZ1tdO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIGRpc2FibGVkITogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgb25WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVGdW5jdGlvbkFjdGlvbj4oKTsgIC8vIHRvIGJ5cGFzcyB1c2luZyBuZ01vZGVsIGJpbmRpbmcgaW5zaWRlIG5nVGVtcGxhdGVcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWU6IG51bWJlcltdID0gW107XHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgdGFnczogSVRhZ1tdID0gW107XHJcbiAgc2VhcmNoOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGNoZWNrQWxsITogYm9vbGVhbjtcclxuXHJcbiAgYWN0aW9uQnV0dG9uczogSUNvcmVCdXR0b25WTlNbXSA9IFtdO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBzaG93bkJ1dHRvbnM6IEVudW1Db3JlQnV0dG9uQ29kZVtdID0gW0VudW1Db3JlQnV0dG9uQ29kZS5TQVZFXTtcclxuXHJcbiAgdmlld0Fic3RyYWN0QnV0dG9uOiBJQ29yZUJ1dHRvblZOUyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1ZJRVdfQUJTVFJBQ1QpWzBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29yZVBlcm1pc3Npb25TZXJ2aWNlOiBDb3JlUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IG51bWJlcltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqXHJcbiAgICB0aGlzLmFsbE9wdGlvbnMubWFwKHQgPT4ge1xyXG4gICAgICB0LmVuYWJsZWQgPSBvYmo/LmluY2x1ZGVzKHQuaWQpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbWFwQWN0aW9uQnV0dG9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy50YWdzLm1hcCh4ID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hY3Rpb25CdXR0b25zLmZpbHRlcihhYiA9PiBhYi5jb2RlID09PSB4LnRleHQpO1xyXG4gICAgICBpZiAoISFmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgeC5hY3Rpb25CdXR0b24gPSBmaWx0ZXJbMF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeC5hY3Rpb25CdXR0b24gPSB0aGlzLnZpZXdBYnN0cmFjdEJ1dHRvbjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydhbGxPcHRpb25zJ10pIHtcclxuICAgICAgdGhpcy50YWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydhbGxPcHRpb25zJ10uY3VycmVudFZhbHVlKSlcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy50YWdzLmZpbHRlcih4ID0+IHgudGV4dCA9PT0gJ0hFQURFUl9WSUVXX0FCU1RSQUNUJyk7XHJcbiAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICBmaWx0ZXJbMF0uYWN0aW9uQnV0dG9uID0gdGhpcy52aWV3QWJzdHJhY3RCdXR0b247XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmZ1bGxGdW5jdGlvbnMkLnZhbHVlPy5maWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLmZ1bmN0aW9uSWQpO1xyXG4gICAgaWYgKCEhZmlsdGVyPy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgYWN0aW9uczogc3RyaW5nW10gPSBmaWx0ZXJbMF0uYWN0aW9uQ29kZXM7XHJcbiAgICAgIGNvbnN0IG5ld0FjdGlvbkJ1dHRvbnM6IElDb3JlQnV0dG9uVk5TW10gPSBbXTtcclxuICAgICAgYWN0aW9ucy5tYXAoYSA9PiB7XHJcbiAgICAgICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKGIgPT4gYi5jb2RlID09PSBhKTtcclxuICAgICAgICBpZiAoISFhY3Rpb25CdXR0b25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgbmV3QWN0aW9uQnV0dG9ucy5wdXNoKGFjdGlvbkJ1dHRvbnNbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5hY3Rpb25CdXR0b25zID0gbmV3QWN0aW9uQnV0dG9ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmNvcmVQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZE9iamVjdEFjdGlvblBlcm1pc3Npb25zJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4gISF4Lmxlbmd0aClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMudGFncy5tYXAodGFnID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0geC5maWx0ZXIobSA9PiBtLmZ1bmN0aW9uSWQgPT09IHRoaXMuZnVuY3Rpb25JZCk7XHJcbiAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGFnLmVuYWJsZWQgPSBmaWx0ZXJbMF0uYWxsb3dlZEFjdGlvbklkcy5pbmNsdWRlcyh0YWcuaWQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0YWcuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYHNlbGVjdGVkT2JqZWN0QWN0aW9uUGVybWlzc2lvbnMgaGFzIGR1cGxpY2F0ZSBmdW5jdGlvbklkPSR7dGhpcy5mdW5jdGlvbklkfWAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICB0aGlzLm1hcEFjdGlvbkJ1dHRvbigpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9uU3VnZ2VzdEl0ZW1DbGljayh0YWc6IElUYWcpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbklucHV0S2V5ZG93bihlOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZSh0YWc6IElUYWcpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvblRvb2dsZUl0ZW0odGFnOiBJVGFnKTogdm9pZCB7XHJcbiAgICBpZiAoISF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoJ1VJX1VTRVJfUEVSTUlTU0lPTl9UT19FRElUX1BMRUFTRV9TRUxFQ1RfQV9VU0VSX0FORF9DTElDS19USEVfUEVOQ0lMJywgdGhpcy5sYW5nKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRhZy5lbmFibGVkID0gIXRhZy5lbmFibGVkO1xyXG5cclxuICAgIC8vIHJlY2FsY3VsYXRlIHRoZSB2YWx1ZVxyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udGhpcy52YWx1ZV0uZmlsdGVyKHggPT4geCAhPSB0YWcuaWQpXHJcbiAgICBpZiAoISF0YWcuZW5hYmxlZCkgbmV3VmFsdWUucHVzaCh0YWcuaWQpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xyXG5cclxuICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHtcclxuICAgICAgZnVuY3Rpb25JZDogdGhpcy5mdW5jdGlvbklkLFxyXG4gICAgICBhbGxvd2VkQWN0aW9uSWRzOiBuZXdWYWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2hlY2tBbGwoKSB7XHJcbiAgICBpZiAoISF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoJ1VJX1VTRVJfUEVSTUlTU0lPTl9UT19FRElUX1BMRUFTRV9TRUxFQ1RfQV9VU0VSX0FORF9DTElDS19USEVfUEVOQ0lMJywgdGhpcy5sYW5nKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcclxuICAgIHRoaXMudGFncy5tYXAodCA9PiB0LmVuYWJsZWQgPSB0aGlzLmNoZWNrQWxsKVxyXG5cclxuICAgIC8vIHJlY2FsY3VsYXRlIHRoZSB2YWx1ZVxyXG4gICAgY29uc3QgbmV3VmFsdWU6IG51bWJlcltdID0gW107XHJcbiAgICBpZiAoISF0aGlzLmNoZWNrQWxsKSB7XHJcbiAgICAgIHRoaXMuYWxsT3B0aW9ucy5tYXAoeCA9PiB7XHJcbiAgICAgICAgbmV3VmFsdWUucHVzaCh4LmlkKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuXHJcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGZ1bmN0aW9uSWQ6IHRoaXMuZnVuY3Rpb25JZCxcclxuICAgICAgYWxsb3dlZEFjdGlvbklkczogbmV3VmFsdWVcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLXRhZ3MtY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImV4aXN0aW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS1hbGwtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZUNoZWNrQWxsKClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyIG1yMTVcIj5cclxuICAgICAgICAgICAgICAgIDxpIFtjbGFzcy5mZWF0aGVyLWxvY2tdPVwiISEhY2hlY2tBbGxcIiBbY2xhc3MuZmVhdGhlci11bmxvY2tdPVwiISFjaGVja0FsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzLmFkbWluXT1cIiEhIWRpc2FibGVkICYmICEhIXJlYWRvbmx5XCIgW2NsYXNzLmRpc2FibGVkXT1cIiEhIXRhZy5lbmFibGVkXCIgKGNsaWNrKT1cIm9uVG9vZ2xlSXRlbSh0YWcpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmICghIXRhZy5hY3Rpb25CdXR0b24pIHtcclxuICAgICAgICAgICAgICAgICAgICA8Y29yZS1idXR0b24tdm5zIFtkYXRhXT1cInRhZy5hY3Rpb25CdXR0b24hXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9jb3JlLWJ1dHRvbi12bnM+XHJcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t0YWcudGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|
|
@@ -20222,7 +20222,8 @@ class CoreTagsComponent extends CoreFormControlBaseComponent {
|
|
|
20222
20222
|
}
|
|
20223
20223
|
ngAfterViewInit() {
|
|
20224
20224
|
setTimeout(() => {
|
|
20225
|
-
this.subscriptions.push(this.corePermissionService.selectedObjectActionPermissions$.
|
|
20225
|
+
this.subscriptions.push(this.corePermissionService.selectedObjectActionPermissions$.pipe(filter(x => !!x.length))
|
|
20226
|
+
.subscribe(x => {
|
|
20226
20227
|
this.tags.map(tag => {
|
|
20227
20228
|
const filter = x.filter(m => m.functionId === this.functionId);
|
|
20228
20229
|
if (filter.length === 1) {
|
|
@@ -20616,7 +20617,6 @@ class CorePermissionComponent extends BaseComponent {
|
|
|
20616
20617
|
this.blockingLeftListInteraction$.next(false);
|
|
20617
20618
|
if (x[0].ok && x[0].status === 200) {
|
|
20618
20619
|
const body = x[0].body;
|
|
20619
|
-
//this.responseService.resolve(body);
|
|
20620
20620
|
if (body.statusCode === 200) {
|
|
20621
20621
|
this.corePermissionService.selectedObjectActionPermissions$.next(body.innerBody);
|
|
20622
20622
|
this.updateInitialActionPermissionValueJsonString(body.innerBody);
|