@pega/angular-sdk-components 0.242.1 → 0.242.2
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/_components/field/group/group.component.mjs +3 -3
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +3 -3
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +5 -3
- package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +14 -11
- package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +2 -2
- package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +3 -1
- package/esm2022/lib/_components/infra/view/view.component.mjs +3 -3
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +2 -2
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +5 -3
- package/esm2022/lib/_components/template/details/details.component.mjs +2 -2
- package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +2 -2
- package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +2 -2
- package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +2 -2
- package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +2 -2
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +2 -2
- package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +3 -3
- package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +3 -3
- package/esm2022/lib/_components/template/form-template-base/form-template-base.component.mjs +13 -0
- package/esm2022/lib/_components/template/list-view/list-view.component.mjs +2 -2
- package/esm2022/lib/_components/template/one-column/one-column.component.mjs +5 -4
- package/esm2022/lib/_components/template/page/page.component.mjs +3 -1
- package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +2 -2
- package/esm2022/lib/_components/template/three-column/three-column.component.mjs +5 -4
- package/esm2022/lib/_components/template/two-column/two-column.component.mjs +5 -4
- package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +5 -4
- package/esm2022/lib/_helpers/field-group-utils.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/pega-angular-sdk-components.mjs +72 -51
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_components/template/default-form/default-form.component.d.ts +2 -1
- package/lib/_components/template/form-template-base/form-template-base.component.d.ts +8 -0
- package/lib/_components/template/one-column/one-column.component.d.ts +2 -1
- package/lib/_components/template/three-column/three-column.component.d.ts +2 -1
- package/lib/_components/template/two-column/two-column.component.d.ts +2 -1
- package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -39,12 +39,12 @@ export class GroupComponent {
|
|
|
39
39
|
if (this.configProps$.visibility === undefined) {
|
|
40
40
|
this.visibility$ = this.pConn$.getComputedVisibility();
|
|
41
41
|
}
|
|
42
|
-
if (this.configProps$.displayMode === '
|
|
42
|
+
if (this.configProps$.displayMode === 'DISPLAY_ONLY') {
|
|
43
43
|
if (this.configProps$.visibility === undefined)
|
|
44
44
|
this.visibility$ = true;
|
|
45
45
|
this.arChildren$.forEach(child => {
|
|
46
46
|
const pConn = child.getPConnect();
|
|
47
|
-
pConn.setInheritedProp('displayMode', '
|
|
47
|
+
pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');
|
|
48
48
|
pConn.setInheritedProp('readOnly', true);
|
|
49
49
|
return child;
|
|
50
50
|
});
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
61
61
|
}], formGroup$: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL2dyb3VwL2dyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9ncm91cC9ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBa0J4RyxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFKM0QsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7SUFHZ0IsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osZ0VBQWdFO1FBQ2hFLDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBZSxDQUFDO1FBQy9GLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEtBQUssU0FBUztnQkFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUV4RSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN0RCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUV6QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBL0RVLGNBQWM7bUdBQWQsY0FBYyw2SEN2QjNCLDZ3QkF5QkEsNkVESlksWUFBWSwrVEFBbUIsd0JBQXdCOzs0RkFFdEQsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzJGQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBDb25uRmllbGRQcm9wcyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9QQ29ublByb3BzLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBHcm91cFByb3BzIGV4dGVuZHMgUENvbm5GaWVsZFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBHcm91cCBoZXJlXG4gIHNob3dIZWFkaW5nOiBib29sZWFuO1xuICBoZWFkaW5nOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xuICBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB2aXNpYmlsaXR5JD86IGJvb2xlYW47XG4gIHNob3dIZWFkaW5nJD86IGJvb2xlYW47XG4gIGhlYWRpbmckOiBzdHJpbmc7XG4gIGluc3RydWN0aW9ucyQ6IHN0cmluZztcbiAgY29sbGFwc2libGUkOiBib29sZWFuO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IEdyb3VwUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBHcm91cFByb3BzO1xuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcbiAgICB0aGlzLnZpc2liaWxpdHkkID0gdGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eTtcbiAgICB0aGlzLnNob3dIZWFkaW5nJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dIZWFkaW5nO1xuICAgIHRoaXMuaGVhZGluZyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkaW5nO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zJCA9IHRoaXMuY29uZmlnUHJvcHMkLmluc3RydWN0aW9ucztcbiAgICB0aGlzLmNvbGxhcHNpYmxlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmNvbGxhcHNpYmxlO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpYmlsaXR5JCA9IHRoaXMucENvbm4kLmdldENvbXB1dGVkVmlzaWJpbGl0eSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZSA9PT0gJ0RJU1BMQVlfT05MWScpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID09PSB1bmRlZmluZWQpIHRoaXMudmlzaWJpbGl0eSQgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICBjb25zdCBwQ29ubiA9IGNoaWxkLmdldFBDb25uZWN0KCk7XG4gICAgICAgIHBDb25uLnNldEluaGVyaXRlZFByb3AoJ2Rpc3BsYXlNb2RlJywgJ0RJU1BMQVlfT05MWScpO1xuICAgICAgICBwQ29ubi5zZXRJbmhlcml0ZWRQcm9wKCdyZWFkT25seScsIHRydWUpO1xuXG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2liaWxpdHkkICYmIGFyQ2hpbGRyZW4kLmxlbmd0aFwiPlxuICA8Y29tcG9uZW50LW1hcHBlclxuICAgIG5hbWU9XCJGaWVsZEdyb3VwXCJcbiAgICBbcHJvcHNdPVwie1xuICAgICAgbmFtZTogc2hvd0hlYWRpbmckID8gaGVhZGluZyQgOiB1bmRlZmluZWQsXG4gICAgICBjb2xsYXBzaWJsZTogY29sbGFwc2libGUkLFxuICAgICAgaW5zdHJ1Y3Rpb25zOiBpbnN0cnVjdGlvbnMkLFxuICAgICAgY2hpbGRyZW5UZW1wbGF0ZTogY2hpbGRyZW5UZW1wbGF0ZVxuICAgIH1cIlxuICA+XG4gIDwvY29tcG9uZW50LW1hcHBlcj5cblxuICA8bmctdGVtcGxhdGUgI2NoaWxkcmVuVGVtcGxhdGU+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICBbbmFtZV09XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKClcIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgICAgZm9ybUdyb3VwJDogZm9ybUdyb3VwJFxuICAgICAgICB9XCJcbiAgICAgICAgZXJyb3JNc2c9XCJGaWVsZCBHcm91cCB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -71,14 +71,14 @@ export class ScalarListComponent {
|
|
|
71
71
|
type: componentType,
|
|
72
72
|
config: {
|
|
73
73
|
value: scalarValue,
|
|
74
|
-
displayMode: '
|
|
74
|
+
displayMode: 'DISPLAY_ONLY',
|
|
75
75
|
label: this.label$,
|
|
76
76
|
...restProps,
|
|
77
77
|
readOnly: true
|
|
78
78
|
}
|
|
79
79
|
}, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional;
|
|
80
80
|
});
|
|
81
|
-
this.isDisplayModeEnabled = ['
|
|
81
|
+
this.isDisplayModeEnabled = ['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(this.displayMode$);
|
|
82
82
|
this.value$ = this.items;
|
|
83
83
|
}
|
|
84
84
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScalarListComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
92
92
|
}], formGroup$: [{
|
|
93
93
|
type: Input
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL3NjYWxhci1saXN0L3NjYWxhci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9zY2FsYXItbGlzdC9zY2FsYXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFrQnhHLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQWIzRCx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzlDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFZLEVBQUUsQ0FBQztRQUUzQix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsaUJBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRTJDLENBQUM7SUFFL0QsUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FB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Q0FDSCxDQUFDLENBQUMsOEZBQThGO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBc0IsQ0FBQyxDQUFDO1FBQ3ZILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDOytHQS9GVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtSUN0QmhDLHFjQVNBLDZFRFdZLFlBQVksK1RBQW1CLHdCQUF3Qjs7NEZBRXRELG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7MkZBRzFELE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcblxuaW50ZXJmYWNlIFNjYWxhckxpc3RQcm9wcyBleHRlbmRzIE9taXQ8UENvbm5GaWVsZFByb3BzLCAndmFsdWUnPiB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gU2NhbGFyTGlzdCBoZXJlXG4gIGRpc3BsYXlJbk1vZGFsOiBib29sZWFuO1xuICB2YWx1ZTogYW55W107XG4gIGNvbXBvbmVudFR5cGU6IHN0cmluZztcbiAgcmVzdFByb3BzPzogb2JqZWN0O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2NhbGFyLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NhbGFyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2FsYXItbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFNjYWxhckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IFNjYWxhckxpc3RQcm9wcztcblxuICBsYWJlbCQgPSAnJztcbiAgdmFsdWUkOiBhbnk7XG4gIGRpc3BsYXlNb2RlJD86IHN0cmluZyA9ICcnO1xuICBpdGVtczogYW55W107XG4gIGlzRGlzcGxheU1vZGVFbmFibGVkID0gZmFsc2U7XG4gIGNvbnRyb2xOYW1lJDogc3RyaW5nO1xuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuICBiSGFzRm9ybSQgPSB0cnVlO1xuICBiUmVhZG9ubHkkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jb250cm9sTmFtZSQgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKTtcbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG5cbiAgICAvLyBjYWxsIHVwZGF0ZVNlbGYgd2hlbiBpbml0aWFsaXppbmdcbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICAvLyBhZGQgY29udHJvbCB0byBmb3JtR3JvdXBcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5hZGRDb250cm9sKHRoaXMuY29udHJvbE5hbWUkLCB0aGlzLmZpZWxkQ29udHJvbCk7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlJCk7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRydWU7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5yZW1vdmVDb250cm9sKHRoaXMuY29udHJvbE5hbWUkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGVTZWxmXG4gIHVwZGF0ZVNlbGYoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgU2NhbGFyTGlzdFByb3BzO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuY29uZmlnUHJvcHMkLmNvbXBvbmVudFR5cGU7XG4gICAgY29uc3Qgc2NhbGFyVmFsdWVzID0gdGhpcy5jb25maWdQcm9wcyQudmFsdWU7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcbiAgICBjb25zdCByZXN0UHJvcHMgPSB0aGlzLmNvbmZpZ1Byb3BzJC5yZXN0UHJvcHM7XG4gICAgY29uc29sZS5sb2coJ3NjYWxhciB2YWx1ZXM6ICcsIHNjYWxhclZhbHVlcyk7XG4gICAgdGhpcy5pdGVtcyA9IHNjYWxhclZhbHVlcz8ubWFwKHNjYWxhclZhbHVlID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdzY2FsYXIgdmFsdWU6ICcsIHNjYWxhclZhbHVlKTtcbiAgICAgIHJldHVybiB0aGlzLnBDb25uJC5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBjb21wb25lbnRUeXBlLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgdmFsdWU6IHNjYWxhclZhbHVlLFxuICAgICAgICAgICAgZGlzcGxheU1vZGU6ICdMQUJFTFNfTEVGVCcsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCQsXG4gICAgICAgICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICAgICAgICByZWFkT25seTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJycsXG4gICAgICAgIDAsXG4gICAgICAgIHt9XG4gICAgICApOyAvLyAybmQsIDNyZCwgYW5kIDR0aCBhcmdzIGVtcHR5IHN0cmluZy9vYmplY3QvbnVsbCB1bnRpbCB0eXBlZGVmIG1hcmtlZCBjb3JyZWN0bHkgYXMgb3B0aW9uYWw7XG4gICAgfSk7XG4gICAgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IFsnTEFCRUxTX0xFRlQnLCAnU1RBQ0tFRF9MQVJHRV9WQUwnLCAnRElTUExBWV9PTkxZJ10uaW5jbHVkZXModGhpcy5kaXNwbGF5TW9kZSQgYXMgc3RyaW5nKTtcbiAgICB0aGlzLnZhbHVlJCA9IHRoaXMuaXRlbXM7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0Rpc3BsYXlNb2RlRW5hYmxlZFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBpdGVtc1wiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIFtuYW1lXT1cInZhbHVlPy5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiIFtwcm9wc109XCJ7IHBDb25uJDogdmFsdWUuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwhLS0gPHNwYW4ga2V5PVwiaVwiPnt7IHZhbHVlIH19PC9zcGFuPiAtLT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCIhaXNEaXNwbGF5TW9kZUVuYWJsZWRcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQsIGRpc3BsYXlNb2RlJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9kaXY+XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL3NjYWxhci1saXN0L3NjYWxhci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9zY2FsYXItbGlzdC9zY2FsYXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFrQnhHLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQWIzRCx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzlDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFZLEVBQUUsQ0FBQztRQUUzQix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsaUJBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRTJDLENBQUM7SUFFL0QsUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FB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Q0FDSCxDQUFDLENBQUMsOEZBQThGO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFzQixDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7K0dBL0ZVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1JQ3RCaEMscWNBU0EsNkVEV1ksWUFBWSwrVEFBbUIsd0JBQXdCOzs0RkFFdEQsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsyRkFHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQQ29ubkZpZWxkUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvUENvbm5Qcm9wcy5pbnRlcmZhY2UnO1xuXG5pbnRlcmZhY2UgU2NhbGFyTGlzdFByb3BzIGV4dGVuZHMgT21pdDxQQ29ubkZpZWxkUHJvcHMsICd2YWx1ZSc+IHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBTY2FsYXJMaXN0IGhlcmVcbiAgZGlzcGxheUluTW9kYWw6IGJvb2xlYW47XG4gIHZhbHVlOiBhbnlbXTtcbiAgY29tcG9uZW50VHlwZTogc3RyaW5nO1xuICByZXN0UHJvcHM/OiBvYmplY3Q7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zY2FsYXItbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2FsYXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjYWxhci1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgU2NhbGFyTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogU2NhbGFyTGlzdFByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IGFueTtcbiAgZGlzcGxheU1vZGUkPzogc3RyaW5nID0gJyc7XG4gIGl0ZW1zOiBhbnlbXTtcbiAgaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBmYWxzZTtcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIGZpZWxkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgbnVsbCk7XG4gIGJIYXNGb3JtJCA9IHRydWU7XG4gIGJSZWFkb25seSQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGNhbGwgdXBkYXRlU2VsZiB3aGVuIGluaXRpYWxpemluZ1xuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAkLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sTmFtZSQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBTY2FsYXJMaXN0UHJvcHM7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5jb25maWdQcm9wcyQuY29tcG9uZW50VHlwZTtcbiAgICBjb25zdCBzY2FsYXJWYWx1ZXMgPSB0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZTtcbiAgICB0aGlzLmRpc3BsYXlNb2RlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlO1xuICAgIGNvbnN0IHJlc3RQcm9wcyA9IHRoaXMuY29uZmlnUHJvcHMkLnJlc3RQcm9wcztcbiAgICBjb25zb2xlLmxvZygnc2NhbGFyIHZhbHVlczogJywgc2NhbGFyVmFsdWVzKTtcbiAgICB0aGlzLml0ZW1zID0gc2NhbGFyVmFsdWVzPy5tYXAoc2NhbGFyVmFsdWUgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ3NjYWxhciB2YWx1ZTogJywgc2NhbGFyVmFsdWUpO1xuICAgICAgcmV0dXJuIHRoaXMucENvbm4kLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IGNvbXBvbmVudFR5cGUsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICB2YWx1ZTogc2NhbGFyVmFsdWUsXG4gICAgICAgICAgICBkaXNwbGF5TW9kZTogJ0RJU1BMQVlfT05MWScsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCQsXG4gICAgICAgICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICAgICAgICByZWFkT25seTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJycsXG4gICAgICAgIDAsXG4gICAgICAgIHt9XG4gICAgICApOyAvLyAybmQsIDNyZCwgYW5kIDR0aCBhcmdzIGVtcHR5IHN0cmluZy9vYmplY3QvbnVsbCB1bnRpbCB0eXBlZGVmIG1hcmtlZCBjb3JyZWN0bHkgYXMgb3B0aW9uYWw7XG4gICAgfSk7XG4gICAgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IFsnU1RBQ0tFRF9MQVJHRV9WQUwnLCAnRElTUExBWV9PTkxZJ10uaW5jbHVkZXModGhpcy5kaXNwbGF5TW9kZSQgYXMgc3RyaW5nKTtcbiAgICB0aGlzLnZhbHVlJCA9IHRoaXMuaXRlbXM7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0Rpc3BsYXlNb2RlRW5hYmxlZFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBpdGVtc1wiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIFtuYW1lXT1cInZhbHVlPy5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiIFtwcm9wc109XCJ7IHBDb25uJDogdmFsdWUuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwhLS0gPHNwYW4ga2V5PVwiaVwiPnt7IHZhbHVlIH19PC9zcGFuPiAtLT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCIhaXNEaXNwbGF5TW9kZUVuYWJsZWRcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQsIGRpc3BsYXlNb2RlJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs
CHANGED
|
@@ -46,6 +46,7 @@ export class FlowContainerComponent extends FlowContainerBaseComponent {
|
|
|
46
46
|
// with init, force children to be loaded of global pConn
|
|
47
47
|
this.initComponent(true);
|
|
48
48
|
this.initContainer();
|
|
49
|
+
this.checkAndUpdate();
|
|
49
50
|
PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, () => {
|
|
50
51
|
this.handleCancel();
|
|
51
52
|
}, 'cancelAssignment');
|
|
@@ -329,7 +330,9 @@ export class FlowContainerComponent extends FlowContainerBaseComponent {
|
|
|
329
330
|
}
|
|
330
331
|
showCaseMessages() {
|
|
331
332
|
this.caseMessages$ = this.localizedVal(this.pConn$.getValue('caseMessages'), this.localeCategory);
|
|
332
|
-
|
|
333
|
+
// caseMessages's behavior has changed in 24.2, and hence it doesn't let Optional Action work.
|
|
334
|
+
// Changing the below condition for now. Was: (theCaseMessages || !hasAssignments())
|
|
335
|
+
if (!this.hasAssignments()) {
|
|
333
336
|
this.bHasCaseMessages$ = true;
|
|
334
337
|
this.bShowConfirm = true;
|
|
335
338
|
this.checkSvg$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());
|
|
@@ -444,7 +447,6 @@ export class FlowContainerComponent extends FlowContainerBaseComponent {
|
|
|
444
447
|
control.markAsTouched();
|
|
445
448
|
});
|
|
446
449
|
}
|
|
447
|
-
// eslint-disable-next-line sonarjs/no-identical-functions
|
|
448
450
|
topViewRefresh() {
|
|
449
451
|
Object.values(this.formGroup$.controls).forEach(control => {
|
|
450
452
|
control.markAsTouched();
|
|
@@ -484,4 +486,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
484
486
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i1.ProgressSpinnerService }, { type: i2.FormBuilder }, { type: i0.NgZone }, { type: i3.Utils }], propDecorators: { pConn$: [{
|
|
485
487
|
type: Input
|
|
486
488
|
}] } });
|
|
487
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvZmxvdy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvZmxvdy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTZCLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7OztBQXdCOUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQXdDcEUsWUFDRSxRQUFrQixFQUNWLEtBQXdCLEVBQ3hCLFNBQWlDLEVBQ2pDLEVBQWUsRUFDZixNQUFjLEVBQ2QsS0FBWTtRQUVwQixLQUFLLENBQUMsUUFBUSxDQUFDLENB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QixFQUFFLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRztZQUNILFFBQVE7WUFDUixZQUFZLEVBQUUsU0FBUztZQUN2QixZQUFZLEVBQUUsWUFBWTtZQUMxQixJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FybEJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLCtGQUp0QixDQUFDLEtBQUssQ0FBQyxpREM5QnBCLG9rREE0Q0EsNkVEWlksWUFBWSw0S0FBRSxhQUFhLHVMQUFtQix3QkFBd0I7OzRGQUVyRSxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsS0FBSyxDQUFDLGNBQ04sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztxTkFHekUsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3ksIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IHB1YmxpY0NvbnN0YW50cyB9IGZyb20gJ0BwZWdhL3Bjb3JlLXBjb25uZWN0LXR5cGVkZWZzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IGdldFRvRG9Bc3NpZ25tZW50cywgc2hvd0Jhbm5lciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0NvbnRhaW5lckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudHMvZmxvdy1jb250YWluZXItYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFdBUk5JTkc6ICBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5pbnRlcmZhY2UgRmxvd0NvbnRhaW5lclByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBjaGlsZHJlbj86IGFueVtdO1xuICBuYW1lPzogc3RyaW5nO1xuICByb3V0aW5nSW5mbz86IGFueTtcbiAgcGFnZU1lc3NhZ2VzOiBhbnlbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZsb3ctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zsb3ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvdy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVXRpbHNdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIEZsb3dDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBGbG93Q29udGFpbmVyQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG5cbiAgcENvcmVDb25zdGFudHM6IHR5cGVvZiBwdWJsaWNDb25zdGFudHM7XG4gIGNvbmZpZ1Byb3BzJDogRmxvd0NvbnRhaW5lclByb3BzO1xuXG4gIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICBpdGVtS2V5JCA9ICcnO1xuICBjb250YWluZXJOYW1lJDogc3RyaW5nO1xuICBidWlsZE5hbWUkOiBzdHJpbmc7XG5cbiAgLy8gdG9kb1xuICB0b2RvX3Nob3dUb2RvJCA9IGZhbHNlO1xuICB0b2RvX2Nhc2VJbmZvSUQkOiBzdHJpbmc7XG4gIHRvZG9fc2hvd1RvZG9MaXN0JCA9IGZhbHNlO1xuICB0b2RvX2RhdGFzb3VyY2UkOiBhbnk7XG4gIHRvZG9faGVhZGVyVGV4dCQgPSAnVG8gZG8nO1xuICB0b2RvX3R5cGUkOiBzdHJpbmc7XG4gIHRvZG9fY29udGV4dCQ6IHN0cmluZztcbiAgdG9kb19wQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcblxuICBiSGFzQ2FuY2VsID0gZmFsc2U7XG5cbiAgLy8gbWVzc2FnZXNcbiAgY2FzZU1lc3NhZ2VzJDogc3RyaW5nO1xuICBiSGFzQ2FzZU1lc3NhZ2VzJCA9IGZhbHNlO1xuICBjaGVja1N2ZyQ6IHN0cmluZztcbiAgVE9ETzogYW55O1xuICBiU2hvd0NvbmZpcm0gPSBmYWxzZTtcbiAgYlNob3dCYW5uZXI6IGJvb2xlYW47XG4gIGNvbmZpcm1fcGNvbm46IGFueTtcbiAgbG9jYWxpemVkVmFsOiBhbnk7XG4gIGxvY2FsZUNhdGVnb3J5ID0gJ01lc3NhZ2VzJztcbiAgbG9jYWxlUmVmZXJlbmNlOiBhbnk7XG4gIGJhbm5lcnM6IGFueVtdO1xuICAvLyBpdGVtS2V5OiBzdHJpbmcgPSBcIlwiOyAgIC8vIEpBIC0gdGhpcyBpcyB3aGF0IE5lYnVsYS9Db25zdGVsbGF0aW9uIHVzZXMgdG8gcGFzcyB0byBmaW5pc2hBc3NpZ25tZW50LCBuYXZpZ2F0ZVRvU3RlcFxuXG4gIHBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHBzU2VydmljZTogUHJvZ3Jlc3NTcGlubmVyU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAvLyBjcmVhdGUgdGhlIGZvcm1Hcm91cFxuICAgIHRoaXMuZm9ybUdyb3VwJCA9IHRoaXMuZmIuZ3JvdXAoeyBoaWRlUmVxdWlyZWQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLmxvY2FsaXplZFZhbCA9IFBDb3JlLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWU7XG4gICAgY29uc3QgY2FzZUluZm8gPSB0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpO1xuICAgIHRoaXMubG9jYWxlUmVmZXJlbmNlID0gYCR7Y2FzZUluZm8/LmdldENsYXNzTmFtZSgpfSFDQVNFISR7Y2FzZUluZm8uZ2V0TmFtZSgpfWAudG9VcHBlckNhc2UoKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGdldCB0aGUgUENvcmUgY29uc3RhbnRzXG4gICAgdGhpcy5wQ29yZUNvbnN0YW50cyA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGNvbnN0IHsgVE9ETyB9ID0gdGhpcy5wQ29yZUNvbnN0YW50cztcbiAgICB0aGlzLlRPRE8gPSBUT0RPO1xuICAgIC8vIHdpdGggaW5pdCwgZm9yY2UgY2hpbGRyZW4gdG8gYmUgbG9hZGVkIG9mIGdsb2JhbCBwQ29ublxuICAgIHRoaXMuaW5pdENvbXBvbmVudCh0cnVlKTtcblxuICAgIHRoaXMuaW5pdENvbnRhaW5lcigpO1xuXG4gICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5zdWJzY3JpYmUoXG4gICAgICBQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5FVkVOVF9DQU5DRUwsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsKCk7XG4gICAgICB9LFxuICAgICAgJ2NhbmNlbEFzc2lnbm1lbnQnXG4gICAgKTtcblxuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkuc3Vic2NyaWJlKFxuICAgICAgJ2NhbmNlbFByZXNzZWQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUNhbmNlbFByZXNzZWQoKTtcbiAgICAgIH0sXG4gICAgICAnY2FuY2VsUHJlc3NlZCdcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cblxuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkudW5zdWJzY3JpYmUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuUFVCX1NVQl9FVkVOVFMuRVZFTlRfQ0FOQ0VMLCAnY2FuY2VsQXNzaWdubWVudCcpO1xuXG4gICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS51bnN1YnNjcmliZSgnY2FuY2VsUHJlc3NlZCcsICdjYW5jZWxQcmVzc2VkJyk7XG4gIH1cblxuICBoYW5kbGVDYW5jZWwoKSB7XG4gICAgLy8gY2FuY2VsIGhhcHBlbmVkLCBzbyBvayB0byBpbml0aWFsaXplIHRoZSBmbG93IGNvbnRhaW5lclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICd0cnVlJyk7XG4gIH1cblxuICBoYW5kbGVDYW5jZWxQcmVzc2VkKCkge1xuICAgIHRoaXMuYkhhc0NhbmNlbCA9IHRydWU7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIGNvbnN0IHBDb25uID0gdGhpcy5wQ29ubmVjdE9mQWN0aXZlQ29udGFpbmVySXRlbSB8fCB0aGlzLnBDb25uJDtcbiAgICBjb25zdCBjYXNlVmlld01vZGVGcm9tUHJvcHMgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRQcm9wKHRoaXMsICdjYXNlVmlld01vZGUnKTtcbiAgICBjb25zdCBjYXNlVmlld01vZGVGcm9tUmVkdXggPSBwQ29ubi5nZXRWYWx1ZSgnY29udGV4dF9kYXRhLmNhc2VWaWV3TW9kZScsICcnKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgLy8gICAgQU5EIHJlbW92aW5nIHRoZSBcImdhdGVcIiB0aGF0IHdhcyBwdXQgdGhlcmUgc2luY2Ugc2hvdWxkQ29tcG9uZW50VXBkYXRlXG4gICAgLy8gICAgICBzaG91bGQgYmUgdGhlIHJlYWwgXCJnYXRlXCJcbiAgICBpZiAoYlVwZGF0ZVNlbGYgfHwgY2FzZVZpZXdNb2RlRnJvbVByb3BzICE9PSBjYXNlVmlld01vZGVGcm9tUmVkdXgpIHtcbiAgICAgIC8vIGRvbid0IHdhbnQgdG8gcmVkcmF3IHRoZSBmbG93IGNvbnRhaW5lciB3aGVuIHRoZXJlIGFyZSBwYWdlIG1lc3NhZ2VzLCBiZWNhdXNlXG4gICAgICAvLyB0aGUgcmVkcmF3IGNhdXNlcyB1cyB0byBsb29zZSB0aGUgZXJyb3JzIG9uIHRoZSBlbGVtZW50c1xuICAgICAgY29uc3QgY29tcGxldGVQcm9wcyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldEN1cnJlbnRDb21wbGV0ZVByb3BzKHRoaXMpIGFzIEZsb3dDb250YWluZXJQcm9wcztcbiAgICAgIGlmICghY29tcGxldGVQcm9wcy5wYWdlTWVzc2FnZXMgfHwgY29tcGxldGVQcm9wcy5wYWdlTWVzc2FnZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgLy8gd2l0aCBhIGNhbmNlbCwgbmVlZCB0byB0aW1lb3V0IHNvIHRvZG8gd2lsbCB1cGRhdGUgY29ycmVjdGx5XG4gICAgICAgIGlmICh0aGlzLmJIYXNDYW5jZWwpIHtcbiAgICAgICAgICB0aGlzLmJIYXNDYW5jZWwgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1BhZ2VNZXNzYWdlcyhjb21wbGV0ZVByb3BzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93UGFnZU1lc3NhZ2VzKGNvbXBsZXRlUHJvcHM6IEZsb3dDb250YWluZXJQcm9wcykge1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICBjb25zdCBwYWdlTWVzc2FnZXMgPSBjb21wbGV0ZVByb3BzLnBhZ2VNZXNzYWdlcztcbiAgICAgIHRoaXMuYmFubmVycyA9IFt7IG1lc3NhZ2VzOiBwYWdlTWVzc2FnZXM/Lm1hcChtc2cgPT4gdGhpcy5sb2NhbGl6ZWRWYWwobXNnLm1lc3NhZ2UsICdNZXNzYWdlcycpKSwgdmFyaWFudDogJ3VyZ2VudCcgfV07XG4gICAgfSk7XG4gIH1cblxuICBnZXRUb2RvVmlzaWJpbHR5KCkge1xuICAgIGNvbnN0IGNhc2VWaWV3TW9kZSA9IHRoaXMucENvbm4kLmdldFZhbHVlKCdjb250ZXh0X2RhdGEuY2FzZVZpZXdNb2RlJyk7XG4gICAgaWYgKGNhc2VWaWV3TW9kZSAmJiBjYXNlVmlld01vZGUgPT09ICdyZXZpZXcnKSB7XG4gICAgICBjb25zdCBraWQgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpWzBdO1xuICAgICAgY29uc3QgdG9kb0tpZCA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgIHRoaXMudG9kb19wQ29ubiQgPSB0b2RvS2lkLmdldFBDb25uZWN0KCk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAhKGNhc2VWaWV3TW9kZSAmJiBjYXNlVmlld01vZGUgPT09ICdwZXJmb3JtJyk7XG4gIH1cblxuICBpbml0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lck1nciA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck1hbmFnZXIoKTtcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgY29uc3QgY29udGFpbmVyTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcbiAgICBjb25zdCBjb250YWluZXJUeXBlID0gJ3NpbmdsZSc7XG5cbiAgICBjb25zdCBmbG93Q29udGFpbmVyVGFyZ2V0ID0gYCR7YmFzZUNvbnRleHR9LyR7Y29udGFpbmVyTmFtZX1gO1xuICAgIGNvbnN0IGlzQ29udGFpbmVySXRlbUF2YWlsYWJsZSA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0QWN0aXZlQ29udGFpbmVySXRlbU5hbWUoZmxvd0NvbnRhaW5lclRhcmdldCk7XG5cbiAgICAvLyBjbGVhciBvdXQgc2luY2Ugd2UgYXJlIGluaXRpYWxpemluZ1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICdmYWxzZScpO1xuXG4gICAgaWYgKCFpc0NvbnRhaW5lckl0ZW1BdmFpbGFibGUpIHtcbiAgICAgIGNvbnRhaW5lck1nci5pbml0aWFsaXplQ29udGFpbmVycyh7XG4gICAgICAgIHR5cGU6IGNvbnRhaW5lclR5cGVcbiAgICAgIH0pO1xuXG4gICAgICAvKiByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlIHdoZW4gdXBkYXRlIFJlYWN0L1dDXG4gICAgICAgKioqIGluc3RlYWQgb2YgZ2V0dGluZyB2YWx1ZXMgaGVyZSB0byBwYXNzIHRvIGFkZENvbnRhaW5lckl0ZW0sIHdlIGNhbGwgdGhlIGZ1bmN0aW9uIGJlbG93IFwiYWRkQ29udGFpbmVySXRlbVwiXG4gICAgICAgKioqIHdoaWNoIGNvbWVzIGZyb20gZmxvdyBjb250YWluZXIgaGVscGVycyBpbiBOZWJ1bGFcbiAgICAgICAqL1xuICAgICAgLy8gY29udGFpbmVyTWdyLmFkZENvbnRhaW5lckl0ZW0oe1xuICAgICAgLy8gICBzZW1hbnRpY1VSTDogXCJcIixcbiAgICAgIC8vICAga2V5OiB0aGlzLnBDb25uJC5nZXRWYWx1ZShcImtleVwiKSxcbiAgICAgIC8vICAgZmxvd05hbWU6IHRoaXMucENvbm4kLmdldFZhbHVlKFwiZmxvd05hbWVcIiksXG4gICAgICAvLyAgIGNhc2VWaWV3TW9kZTogXCJwZXJmb3JtXCIsXG4gICAgICAvLyAgIGRhdGE6IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoYmFzZUNvbnRleHQpLFxuICAgICAgLy8gICBjb250YWluZXJUeXBlXG4gICAgICAvLyB9KTtcblxuICAgICAgdGhpcy5hZGRDb250YWluZXJJdGVtKHRoaXMucENvbm4kKTtcbiAgICB9XG4gIH1cblxuICBpbml0Q29tcG9uZW50KGJMb2FkQ2hpbGRyZW46IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBGbG93Q29udGFpbmVyUHJvcHM7XG4gICAgdGhpcy5zaG93UGFnZU1lc3NhZ2VzKHRoaXMuY29uZmlnUHJvcHMkKTtcblxuICAgIC8vIHdoZW4gdHJ1ZSwgdXBkYXRlIGFyQ2hpbGRyZW4gZnJvbSBwQ29ubiwgb3RoZXJ3aXNlLCBhckNoaWxyZW4gd2lsbCBiZSB1cGRhdGVkIGluIHVwZGF0ZVNlbGYoKVxuICAgIGlmIChiTG9hZENoaWxkcmVuKSB7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICAvLyBjb25zdCBvRGF0YSA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKTtcblxuICAgIC8vIGNvbnN0IGFjdGl2ZUFjdGlvbkxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICAvLyBjb25zdCB7IGdldFBDb25uZWN0IH0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG5cbiAgICB0aGlzLnRvZG9fc2hvd1RvZG8kID0gdGhpcy5nZXRUb2RvVmlzaWJpbHR5KCk7XG5cbiAgICAvLyBjcmVhdGUgcG9pbnRlcnMgdG8gZnVuY3Rpb25zXG4gICAgLy8gY29uc3QgY29udGFpbmVyTWdyID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTWFuYWdlcigpO1xuICAgIC8vIGNvbnN0IGFjdGlvbnNBUEkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgY29uc3QgYmFzZUNvbnRleHQgPSB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpO1xuICAgIGNvbnN0IGFjTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcblxuICAgIGlmICh0aGlzLml0ZW1LZXkkID09PSAnJykge1xuICAgICAgdGhpcy5pdGVtS2V5JCA9IGJhc2VDb250ZXh0LmNvbmNhdCgnLycpLmNvbmNhdChhY05hbWUpO1xuICAgIH1cblxuICAgIHRoaXMucENvbm4kLmlzQm91bmRUb1N0YXRlKCk7XG5cbiAgICAvLyBpbnNpZGVcbiAgICAvLyBnZXQgZmlzdCBraWQsIGdldCB0aGUgbmFtZSBhbmQgZGlzcGxheVxuICAgIC8vIHBhc3MgZmlyc3Qga2lkIHRvIGEgdmlldyBjb250YWluZXIsIHdoaWNoIHdpbGwgZGlzcGVyc2UgaXQgdG8gYSB2aWV3IHdoaWNoIHdpbGwgdXNlIG9uZSBjb2x1bW4sIHR3byBjb2x1bW4sIGV0Yy5cbiAgICBjb25zdCBvV29ya0l0ZW0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG4gICAgLy8gY29uc3Qgb1dvcmtNZXRhID0gb1dvcmtJdGVtLmdldFJhd01ldGFkYXRhKCk7XG4gICAgY29uc3Qgb1dvcmtEYXRhID0gb1dvcmtJdGVtLmdldERhdGFPYmplY3QoKTtcblxuICAgIC8vIHRoaXMuY29udGFpbmVyTmFtZSQgPSBvV29ya01ldGFbXCJuYW1lXCJdO1xuICAgIGlmIChiTG9hZENoaWxkcmVuICYmIG9Xb3JrRGF0YSkge1xuICAgICAgdGhpcy5jb250YWluZXJOYW1lJCA9IHRoaXMubG9jYWxpemVkVmFsKHRoaXMuZ2V0QWN0aXZlVmlld0xhYmVsKCkgfHwgb1dvcmtEYXRhLmNhc2VJbmZvLmFzc2lnbm1lbnRzWzBdLm5hbWUsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGVSZWZlcmVuY2UpO1xuICAgIH1cblxuICAgIC8vIHR1cm4gb2ZmIHNwaW5uZXJcbiAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG4gIH1cblxuICBoYXNBc3NpZ25tZW50cygpIHtcbiAgICBsZXQgaGFzQXNzaWdubWVudHMgPSBmYWxzZTtcbiAgICBjb25zdCBhc3NpZ25tZW50c0xpc3QgPSB0aGlzLnBDb25uJC5nZXRWYWx1ZSh0aGlzLnBDb3JlQ29uc3RhbnRzLkNBU0VfSU5GTy5EX0NBU0VfQVNTSUdOTUVOVFNfUkVTVUxUUyk7XG4gICAgLy8gY29uc3QgdGhpc09wZXJhdG9yID0gUENvcmUuZ2V0RW52aXJvbm1lbnRJbmZvKCkuZ2V0T3BlcmF0b3JJZGVudGlmaWVyKCk7XG4gICAgLy8gOC43IGluY2x1ZGVzIGFzc2lnbm1lbnRzIGluIEFzc2lnbm1lbnRzIExpc3QgdGhhdCBtYXkgYmUgYXNzaWduZWQgdG9cbiAgICAvLyAgYSBkaWZmZXJlbnQgb3BlcmF0b3IuIFNvLCBzZWUgaWYgdGhlcmUgYXJlIGFueSBhc3NpZ25tZW50cyBmb3JcbiAgICAvLyAgdGhlIGN1cnJlbnQgb3BlcmF0b3JcbiAgICBjb25zdCBpc0VtYmVkZGVkID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VtYmVkZGVkJyk7XG4gICAgbGV0IGJBc3NpZ25tZW50c0ZvclRoaXNPcGVyYXRvciA9IGZhbHNlO1xuXG4gICAgaWYgKGlzRW1iZWRkZWQpIHtcbiAgICAgIGNvbnN0IHRoaXNPcGVyYXRvciA9IFBDb3JlLmdldEVudmlyb25tZW50SW5mbygpLmdldE9wZXJhdG9ySWRlbnRpZmllcigpO1xuICAgICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGFzc2lnbm1lbnRzTGlzdCkge1xuICAgICAgICBpZiAoYXNzaWdubWVudC5hc3NpZ25lZUluZm8uSUQgPT09IHRoaXNPcGVyYXRvcikge1xuICAgICAgICAgIGJBc3NpZ25tZW50c0ZvclRoaXNPcGVyYXRvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYkFzc2lnbm1lbnRzRm9yVGhpc09wZXJhdG9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBCYWlsIGlmIHRoZXJlIGlzIG5vIGFzc2lnbm1lbnRzTGlzdFxuICAgIGlmICghYXNzaWdubWVudHNMaXN0KSB7XG4gICAgICByZXR1cm4gaGFzQXNzaWdubWVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzQ2hpbGRDYXNlQXNzaWdubWVudHMgPSB0aGlzLmhhc0NoaWxkQ2FzZUFzc2lnbm1lbnRzKCk7XG5cbiAgICBpZiAoYkFzc2lnbm1lbnRzRm9yVGhpc09wZXJhdG9yIHx8IGhhc0NoaWxkQ2FzZUFzc2lnbm1lbnRzIHx8IHRoaXMuaXNDYXNlV2lkZUxvY2FsQWN0aW9uKCkpIHtcbiAgICAgIGhhc0Fzc2lnbm1lbnRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFzQXNzaWdubWVudHM7XG4gIH1cblxuICBpc0Nhc2VXaWRlTG9jYWxBY3Rpb24oKSB7XG4gICAgY29uc3QgYWN0aW9uSUQgPSB0aGlzLnBDb25uJC5nZXRWYWx1ZSh0aGlzLnBDb3JlQ29uc3RhbnRzLkNBU0VfSU5GTy5BQ1RJVkVfQUNUSU9OX0lEKTtcbiAgICBjb25zdCBjYXNlQWN0aW9ucyA9IHRoaXMucENvbm4kLmdldFZhbHVlKHRoaXMucENvcmVDb25zdGFudHMuQ0FTRV9JTkZPLkFWQUlMQUJMRUFDVElPTlMpO1xuICAgIGxldCBiQ2FzZVdpZGVBY3Rpb24gPSBmYWxzZTtcbiAgICBpZiAoY2FzZUFjdGlvbnMgJiYgYWN0aW9uSUQpIHtcbiAgICAgIGNvbnN0IGFjdGlvbk9iaiA9IGNhc2VBY3Rpb25zLmZpbmQoY2FzZUFjdGlvbiA9PiBjYXNlQWN0aW9uLklEID09PSBhY3Rpb25JRCk7XG4gICAgICBpZiAoYWN0aW9uT2JqKSB7XG4gICAgICAgIGJDYXNlV2lkZUFjdGlvbiA9IGFjdGlvbk9iai50eXBlID09PSAnQ2FzZSc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiQ2FzZVdpZGVBY3Rpb247XG4gIH1cblxuICBoYXNDaGlsZENhc2VBc3NpZ25tZW50cygpIHtcbiAgICBjb25zdCBjaGlsZENhc2VzID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUodGhpcy5wQ29yZUNvbnN0YW50cy5DQVNFX0lORk8uQ0hJTERfQVNTSUdOTUVOVFMpO1xuXG4gICAgcmV0dXJuIGNoaWxkQ2FzZXMgJiYgY2hpbGRDYXNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0QWN0aXZlVmlld0xhYmVsKCkge1xuICAgIGxldCBhY3RpdmVBY3Rpb25MYWJlbCA9ICcnO1xuXG4gICAgY29uc3QgeyBDQVNFX0lORk86IENBU0VfQ09OU1RTIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcblxuICAgIGNvbnN0IGNhc2VBY3Rpb25zID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0FDVElPTlMpIGFzIGFueVtdO1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbklEID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQUNUSVZFX0FDVElPTl9JRCk7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9uID0gY2FzZUFjdGlvbnM/LmZpbmQoYWN0aW9uID0+IGFjdGlvbi5JRCA9PT0gYWN0aXZlQWN0aW9uSUQpO1xuICAgIGlmIChhY3RpdmVBY3Rpb24pIHtcbiAgICAgIGFjdGl2ZUFjdGlvbkxhYmVsID0gYWN0aXZlQWN0aW9uLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVBY3Rpb25MYWJlbDtcbiAgfVxuXG4gIGZpbmRDdXJyZW50SW5kaWNpZXMoYXJTdGVwcGVyU3RlcHM6IGFueVtdLCBhckluZGljaWVzOiBudW1iZXJbXSwgZGVwdGg6IG51bWJlcik6IG51bWJlcltdIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGFyU3RlcHBlclN0ZXBzLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICBpZiAoc3RlcC52aXNpdGVkX3N0YXR1cyA9PSAnY3VycmVudCcpIHtcbiAgICAgICAgYXJJbmRpY2llc1tkZXB0aF0gPSBjb3VudDtcblxuICAgICAgICAvLyBhZGQgaW5cbiAgICAgICAgc3RlcC5zdGVwX3N0YXR1cyA9ICcnO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnZpc2l0ZWRfc3RhdHVzID09ICdzdWNjZXNzJykge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBzdGVwLnN0ZXBfc3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBzdGVwLnN0ZXBfc3RhdHVzID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGVwLnN0ZXBzKSB7XG4gICAgICAgIGFySW5kaWNpZXMgPSB0aGlzLmZpbmRDdXJyZW50SW5kaWNpZXMoc3RlcC5zdGVwcywgYXJJbmRpY2llcywgZGVwdGggKyAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhckluZGljaWVzO1xuICB9XG5cbiAgLy8gQ2FsbGVkIHdoZW4gYnJpZGdlIHNob3VsZENvbXBvbmVudFVwZGF0ZSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGNvbXBvbmVudFxuICAvLyBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIGZvciBub3dcbiAgICAvLyBjb25zdCB7IGdldFBDb25uZWN0IH0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG4gICAgY29uc3QgbG9jYWxQQ29ubiA9IHRoaXMuYXJDaGlsZHJlbiRbMF0uZ2V0UENvbm5lY3QoKTtcblxuICAgIHRoaXMucENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0gPSB0aGlzLmdldFBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtKHRoaXMucENvbm4kKSB8fCB0aGlzLnBDb25uJDtcblxuICAgIGNvbnN0IGNhc2VWaWV3TW9kZSA9IHRoaXMucENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0uZ2V0VmFsdWUoJ2NvbnRleHRfZGF0YS5jYXNlVmlld01vZGUnKTtcbiAgICB0aGlzLmJTaG93QmFubmVyID0gc2hvd0Jhbm5lcih0aGlzLnBDb25uJCk7XG5cbiAgICBpZiAoY2FzZVZpZXdNb2RlICYmIGNhc2VWaWV3TW9kZSA9PSAncmV2aWV3Jykge1xuICAgICAgdGhpcy5sb2FkUmV2aWV3UGFnZShsb2NhbFBDb25uKTtcblxuICAgICAgLy8gaW4gTmVidWxhL0NvbnN0ZWxsYXRpb24sIHdoZW4gY2FuY2VsIGlzIGNhbGxlZCwgc29tZWhvdyB0aGUgY29uc3RydWN0b3IgZm9yIGZsb3dDb250YWluZXIgaXMgY2FsbGVkIHdoaWNoXG4gICAgICAvLyBkb2VzIGluaXQvYWRkIG9mIGNvbnRhaW5lcnMuICBUaGlzIG1pbWljcyB0aGF0XG4gICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnb2tUb0luaXRGbG93Q29udGFpbmVyJykgPT0gJ3RydWUnKSB7XG4gICAgICAgIHRoaXMuaW5pdENvbnRhaW5lcigpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FzZVZpZXdNb2RlICYmIGNhc2VWaWV3TW9kZSA9PT0gJ3BlcmZvcm0nKSB7XG4gICAgICAvLyBwZXJmb3JtXG4gICAgICB0aGlzLnRvZG9fc2hvd1RvZG8kID0gZmFsc2U7XG5cbiAgICAgIC8vIHRoaXMgaXMgZGlmZmVyZW50IHRoYW4gQW5ndWxhciBTREssIGFzIHdlIG5lZWQgdG8gaW5pdENvbnRhaW5lciBpZiByb290IGNvbnRhaW5lciByZWxvYWRlZFxuICAgICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicpID09ICd0cnVlJykge1xuICAgICAgICB0aGlzLmluaXRDb250YWluZXIoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiBoYXZlIGNhc2VNZXNzYWdlIHNob3cgbWVzc2FnZSBhbmQgZW5kXG4gICAgdGhpcy5zaG93Q2FzZU1lc3NhZ2VzKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUZsb3dDb250YWluZXJDaGlsZHJlbigpO1xuICB9XG5cbiAgbG9hZFJldmlld1BhZ2UobG9jYWxQQ29ubikge1xuICAgIGNvbnN0IHsgQ0FTRV9JTkZPOiBDQVNFX0NPTlNUUyB9ID0gUENvcmUuZ2V0Q29uc3RhbnRzKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIC8qXG4gICAgICAgICAgKioqIHJlbm92ZSB0aGlzIGNvbW1tZW50ZWQgb3V0IGNvZGUgd2hlbiBSZWFjdC9XQyBpcyB1cGRhdGVkXG4gICAgICAgICAgKioqIHRoaXMgY29kZSBpcyByZXBsYWNlIHdpdGggdGhlIGNhbGwgdG8gXCJnZXRUb0RvQXNzaWdtZW50c1wiIGZ1bmN0aW9uIGJlbG93XG5cbiAgICAgICAgICBjb25zdCBhc3NpZ25tZW50c0xpc3QgPSBsb2NhbFBDb25uLmdldFZhbHVlKFxuICAgICAgICAgICAgQ0FTRV9DT05TVFMuRF9DQVNFX0FTU0lHTk1FTlRTX1JFU1VMVFNcbiAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgLy8gYWRkIHN0YXR1c1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGxvY2FsUENvbm4uZ2V0VmFsdWUoXCJjYXNlSW5mby5zdGF0dXNcIik7XG5cbiAgICAgICAgICBsZXQgbG9jYWxBc3NpZ25tZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhc3NpZ25tZW50c0xpc3RbMF0pKTtcbiAgICAgICAgICBsb2NhbEFzc2lnbm1lbnQuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgICAgIGxldCBsb2NhQXNzaWdubWVudHNMaXN0OiBBcnJheTxhbnk+ID0gW107XG4gICAgICAgICAgbG9jYUFzc2lnbm1lbnRzTGlzdC5wdXNoKGxvY2FsQXNzaWdubWVudCk7XG5cbiAgICAgICAgICBjb25zdCBjYXNlQWN0aW9ucyA9IGxvY2FsUENvbm4uZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0FDVElPTlMpO1xuICAgICAgICAgICovXG5cbiAgICAgICAgY29uc3QgdG9kb0Fzc2lnbm1lbnRzID0gZ2V0VG9Eb0Fzc2lnbm1lbnRzKHRoaXMucENvbm4kKTtcblxuICAgICAgICBpZiAodG9kb0Fzc2lnbm1lbnRzICYmIHRvZG9Bc3NpZ25tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy50b2RvX2Nhc2VJbmZvSUQkID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0lEKTtcbiAgICAgICAgICB0aGlzLnRvZG9fZGF0YXNvdXJjZSQgPSB7IHNvdXJjZTogdG9kb0Fzc2lnbm1lbnRzIH07XG4gICAgICAgIH1cblxuICAgICAgICAvKiByZW1vdmUgdGhpcyBjb21tZW50ZWQgb3V0IGNvZGUgd2hlbiB1cGRhdGUgUmVhY3QvV0MgKi9cbiAgICAgICAgLy8gbGV0IGtpZCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgICAgLy8ga2lkLmdldFBDb25uZWN0KCkgY2FuIGJlIGEgUmVmZXJlbmNlIGNvbXBvbmVudC4gU28gbm9ybWFsaXplIGl0IGp1c3QgaW4gY2FzZVxuICAgICAgICAvLyAgICAgICAgbGV0IHRvZG9LaWQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4oa2lkLmdldFBDb25uZWN0KCkpLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgICAgLy8gICAgICAgIHRoaXMudG9kb19wQ29ubiQgPSB0b2RvS2lkLmdldFBDb25uZWN0KCk7XG5cbiAgICAgICAgLyogY29kZSBjaGFuZ2UgaGVyZSB0byBub3RlIGZvciBSZWFjdC9XQyAgKi9cbiAgICAgICAgLy8gdG9kbyBub3cgbmVlZHMgcENvbm4gdG8gb3BlbiB0aGUgd29yayBpdGVtIG9uIGNsaWNrIFwiZ29cIlxuICAgICAgICB0aGlzLnRvZG9fcENvbm4kID0gdGhpcy5wQ29ubiQ7XG5cbiAgICAgICAgLy8gc3RpbGwgbmVlZHMgdGhlIGNvbnRleHQgb2YgdGhlIG9yaWdpbmFsIHdvcmsgaXRlbVxuICAgICAgICB0aGlzLnRvZG9fY29udGV4dCQgPSBsb2NhbFBDb25uLmdldENvbnRleHROYW1lKCk7XG5cbiAgICAgICAgdGhpcy50b2RvX3Nob3dUb2RvJCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93Q2FzZU1lc3NhZ2VzKCkge1xuICAgIHRoaXMuY2FzZU1lc3NhZ2VzJCA9IHRoaXMubG9jYWxpemVkVmFsKHRoaXMucENvbm4kLmdldFZhbHVlKCdjYXNlTWVzc2FnZXMnKSwgdGhpcy5sb2NhbGVDYXRlZ29yeSk7XG4gICAgaWYgKHRoaXMuY2FzZU1lc3NhZ2VzJCB8fCAhdGhpcy5oYXNBc3NpZ25tZW50cygpKSB7XG4gICAgICB0aGlzLmJIYXNDYXNlTWVzc2FnZXMkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYlNob3dDb25maXJtID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2hlY2tTdmckID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYygnY2hlY2snLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG4gICAgICAvLyBUZW1wIGZpeCBmb3IgOC43IGNoYW5nZTogY29uZmlybWF0aW9uTm90ZSBubyBsb25nZXIgY29taW5nIHRocm91Z2ggaW4gY2FzZU1lc3NhZ2VzJC5cbiAgICAgIC8vIFNvLCBpZiB3ZSBnZXQgaGVyZSBhbmQgY2FzZU1lc3NhZ2VzJCBpcyBlbXB0eSwgdXNlIGRlZmF1bHQgdmFsdWUgaW4gRFggQVBJIHJlc3BvbnNlXG4gICAgICBpZiAoIXRoaXMuY2FzZU1lc3NhZ2VzJCkge1xuICAgICAgICB0aGlzLmNhc2VNZXNzYWdlcyQgPSB0aGlzLmxvY2FsaXplZFZhbCgnVGhhbmsgeW91ISBUaGUgbmV4dCBzdGVwIGluIHRoaXMgY2FzZSBoYXMgYmVlbiByb3V0ZWQgYXBwcm9wcmlhdGVseS4nLCB0aGlzLmxvY2FsZUNhdGVnb3J5KTtcbiAgICAgIH1cblxuICAgICAgLy8gcHVibGlzaCB0aGlzIFwiYXNzaWdubWVudEZpbmlzaGVkXCIgZm9yIG1hc2h1cCwgbmVlZCB0byBnZXQgYXBwcm92ZWQgYXMgYSBzdGFuZGFyZFxuICAgICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5wdWJsaXNoKCdhc3NpZ25tZW50RmluaXNoZWQnKTtcblxuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJIYXNDYXNlTWVzc2FnZXMkID0gZmFsc2U7XG4gICAgICB0aGlzLmJTaG93Q29uZmlybSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZsb3dDb250YWluZXJDaGlsZHJlbigpIHtcbiAgICAvLyByb3V0aW5nSW5mbyB3YXMgYWRkZWQgYXMgY29tcG9uZW50IHByb3AgaW4gcG9wdWxhdGVBZGRpdGlvbmFsUHJvcHNcbiAgICBjb25zdCByb3V0aW5nSW5mbyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudFByb3AodGhpcywgJ3JvdXRpbmdJbmZvJyk7XG5cbiAgICBsZXQgbG9hZGluZ0luZm86IGFueTtcbiAgICB0cnkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRMb2FkaW5nU3RhdHVzJyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICdDMTFuRW52J1xuICAgICAgbG9hZGluZ0luZm8gPSB0aGlzLnBDb25uJC5nZXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8qIGVtcHR5ICovXG4gICAgfVxuXG4gICAgLy8gdGhpcyBjaGVjayBpbiByb3V0aW5nSW5mbywgbWltaWMgTmVidWxhL0NvbnN0ZWxsYXRpb24gKFJlYWN0KSB0byBjaGVjayBhbmQgZ2V0IHRoZSBpbnRlcm5hbHMgb2YgdGhlXG4gICAgLy8gZmxvd0NvbnRhaW5lciBhbmQgZm9yY2UgdXBkYXRlcyB0byBwQ29ubmVjdC9yZWR1eFxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiBsb2FkaW5nSW5mbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjdXJyZW50T3JkZXIgPSByb3V0aW5nSW5mby5hY2Nlc3NlZE9yZGVyO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gcm91dGluZ0luZm8uaXRlbXM7XG4gICAgICBjb25zdCB0eXBlID0gcm91dGluZ0luZm8udHlwZTtcbiAgICAgIGlmIChjdXJyZW50T3JkZXIgJiYgY3VycmVudEl0ZW1zKSB7XG4gICAgICAgIC8vIEpBIC0gbWFraW5nIG1vcmUgc2ltaWxhciB0byBOZWJ1bGEvQ29uc3RlbGxhdGlvblxuICAgICAgICBjb25zdCBrZXkgPSBjdXJyZW50T3JkZXJbY3VycmVudE9yZGVyLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIC8vIHNhdmUgb2ZmIGl0ZW1LZXkgdG8gYmUgdXNlZCBmb3IgZmluaXNoQXNzaWdubWVudCwgZXRjLlxuICAgICAgICAvLyB0aW1lb3V0IGFuZCBkZXRlY3RDaGFuZ2VzIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKGtleSAmJiBrZXkgIT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUtleSQgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLWNvbGxhcHNpYmxlLWlmXG4gICAgICAgIGlmIChjdXJyZW50T3JkZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChjdXJyZW50SXRlbXNba2V5XSAmJiBjdXJyZW50SXRlbXNba2V5XS52aWV3ICYmIHR5cGUgPT09ICdzaW5nbGUnICYmIE9iamVjdC5rZXlzKGN1cnJlbnRJdGVtc1trZXldLnZpZXcpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIHdoZW4gd2UgZ2V0IGhlcmUsIGl0IGl0IGJlY2F1c2UgdGhlIGZsb3cgYWN0aW9uIGRhdGEgaGFzIGNoYW5nZWRcbiAgICAgICAgICAgIC8vIGZyb20gdGhlIHNlcnZlciwgYW5kIG5lZWQgdG8gYWRkIHRvIHBDb25uZWN0IGFuZCB1cGRhdGUgY2hpbGRyZW5cblxuICAgICAgICAgICAgdGhpcy5hZGRQQ29ubmVjdEFuZFVwZGF0ZUNoaWxkcmVuKGN1cnJlbnRJdGVtc1trZXldLCBrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZFBDb25uZWN0QW5kVXBkYXRlQ2hpbGRyZW4oY3VycmVudEl0ZW0sIGtleSkge1xuICAgIGNvbnN0IGxvY2FsUENvbm4gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG5cbiAgICBjb25zdCByb290VmlldyA9IGN1cnJlbnRJdGVtLnZpZXc7XG4gICAgY29uc3QgeyBjb250ZXh0LCBuYW1lOiBWaWV3TmFtZSB9ID0gcm9vdFZpZXcuY29uZmlnO1xuICAgIGNvbnN0IGNvbmZpZzogYW55ID0geyBtZXRhOiByb290VmlldyB9O1xuXG4gICAgLy8gRG9uJ3QgZ28gYWhlYWQgaWYgVmlldyBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCFWaWV3TmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9kb19jb250ZXh0JCA9IGN1cnJlbnRJdGVtLmNvbnRleHQ7XG5cbiAgICBjb25maWcub3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IGN1cnJlbnRJdGVtLmNvbnRleHQsXG4gICAgICBwYWdlUmVmZXJlbmNlOiBjb250ZXh0IHx8IGxvY2FsUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgaGFzRm9ybTogdHJ1ZSxcbiAgICAgIGlzRmxvd0NvbnRhaW5lcjogdHJ1ZSxcbiAgICAgIGNvbnRhaW5lck5hbWU6IGxvY2FsUENvbm4uZ2V0Q29udGFpbmVyTmFtZSgpLFxuICAgICAgY29udGFpbmVySXRlbU5hbWU6IGtleSxcbiAgICAgIHBhcmVudFBhZ2VSZWZlcmVuY2U6IGxvY2FsUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZ09iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG4gICAgdGhpcy5jb25maXJtX3Bjb25uID0gY29uZmlnT2JqZWN0LmdldFBDb25uZWN0KCk7XG4gICAgLy8gOC43IC0gY29uZmlnIG1pZ2h0IGJlIGEgUmVmZXJlbmNlIGNvbXBvbmVudCBzbywgbmVlZCB0byBub3JtYWxpemUgaXQgdG8gZ2V0XG4gICAgLy8gIHRoZSBWaWV3IGlmIGl0IGlzIGEgUmVmZXJlbmNlIGNvbXBvbmVudC4gQW5kIG5lZWQgdG8gcGFzcyBpbiB0aGUgZ2V0UENvbm5lY3RcbiAgICAvLyAgdG8gaGF2ZSBub3JtYWxpemUgZG8gYSBjMTFFbnYgY3JlYXRlQ29tcG9uZW50ICh0aGF0IG1ha2VzIHN1cmUgb3B0aW9ucy5oYXNGb3JtXG4gICAgLy8gIGlzIHBhc3NlZCBhbG9uZyB0byBhbGwgdGhlIGNvbXBvbmVudCdzIGNoaWxkcmVuKVxuICAgIGNvbnN0IG5vcm1hbGl6ZWRDb25maWdPYmplY3QgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4oY29uZmlnT2JqZWN0LmdldFBDb25uZWN0KCkpO1xuICAgIC8vIFdlIHdhbnQgdGhlIGNoaWxkcmVuIHRvIGJlIHRoZSBQQ29ubmVjdCBpdHNlbGYsIG5vdCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgZ2V0UENvbm5lY3QoKSxcbiAgICAvLyAgU28gbmVlZCB0byBnZXQgdGhlIFBDb25uZWN0IG9mIHRoZSBub3JtYWxpemVkIGNvbXBvbmVudCB3ZSBqdXN0IGNyZWF0ZWQuLi5cbiAgICBjb25zdCBub3JtYWxpemVkQ29uZmlnT2JqZWN0QXNQQ29ubmVjdCA9IG5vcm1hbGl6ZWRDb25maWdPYmplY3QuZ2V0Q29tcG9uZW50KCk7XG5cbiAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5idWlsZE5hbWUkID0gdGhpcy5nZXRCdWlsZE5hbWUoKTtcbiAgICAgIC8vIHdoYXQgY29tZXMgYmFjayBub3cgaW4gY29uZmlnT2JqZWN0IGlzIHRoZSBjaGlsZHJlbiBvZiB0aGUgZmxvd0NvbnRhaW5lclxuXG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gW107XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kLnB1c2gobm9ybWFsaXplZENvbmZpZ09iamVjdEFzUENvbm5lY3QpO1xuXG4gICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG5cbiAgICAgIGNvbnN0IG9Xb3JrSXRlbSA9IGNvbmZpZ09iamVjdC5nZXRQQ29ubmVjdCgpO1xuICAgICAgY29uc3Qgb1dvcmtEYXRhOiBhbnkgPSBvV29ya0l0ZW0uZ2V0RGF0YU9iamVjdCgpO1xuXG4gICAgICB0aGlzLmNvbnRhaW5lck5hbWUkID0gdGhpcy5sb2NhbGl6ZWRWYWwodGhpcy5nZXRBY3RpdmVWaWV3TGFiZWwoKSB8fCBvV29ya0RhdGEuY2FzZUluZm8uYXNzaWdubWVudHM/LlswXS5uYW1lLCB1bmRlZmluZWQsIHRoaXMubG9jYWxlUmVmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEJ1aWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIC8vIGxldCB7IGdldFBDb25uZWN0LCBuYW1lIH0gPSB0aGlzLnBDb25uJC5wcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBsZXQgdmlld0NvbnRhaW5lck5hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCk7XG5cbiAgICBpZiAoIXZpZXdDb250YWluZXJOYW1lKSB2aWV3Q29udGFpbmVyTmFtZSA9ICcnO1xuICAgIHJldHVybiBgJHtjb250ZXh0LnRvVXBwZXJDYXNlKCl9LyR7dmlld0NvbnRhaW5lck5hbWUudG9VcHBlckNhc2UoKX1gO1xuICB9XG5cbiAgZm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMudG91Y2hBbGwoKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAkLnZhbGlkO1xuICB9XG5cbiAgdG91Y2hBbGwoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1Hcm91cCQuY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLWlkZW50aWNhbC1mdW5jdGlvbnNcbiAgdG9wVmlld1JlZnJlc2goKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1Hcm91cCQuY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGhlbHBlcnMgLSBjb3B5aWVkIGZyb20gZmxvdyBjb250YWluZXIgaGVscGVycy5qc1xuXG4gIGFkZENvbnRhaW5lckl0ZW0ocENvbm5lY3QpIHtcbiAgICAvLyBjb3BpZWQgZnJvbSBmbG93IGNvbnRhaW5lciBoZWxwZXIuanNcbiAgICBjb25zdCBjb250YWluZXJNYW5hZ2VyID0gcENvbm5lY3QuZ2V0Q29udGFpbmVyTWFuYWdlcigpO1xuICAgIGNvbnN0IGNvbnRleHROYW1lID0gcENvbm5lY3QuZ2V0Q29udGV4dE5hbWUoKTsgLy8gaGVyZSB3ZSB3aWxsIGdldCBwYXJlbnQgY29udGV4dCBuYW1lLCBhcyBmbG93IGNvbnRhaW5lciBpcyBjaGlsZCBvZiB2aWV3IGNvbnRhaW5lclxuICAgIGNvbnN0IGNhc2VWaWV3TW9kZSA9IHBDb25uZWN0LmdldFZhbHVlKCdjb250ZXh0X2RhdGEuY2FzZVZpZXdNb2RlJyk7XG5cbiAgICBsZXQga2V5O1xuICAgIGxldCBmbG93TmFtZTtcblxuICAgIGlmIChjYXNlVmlld01vZGUgIT09ICdyZXZpZXcnKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBjb250ZXh0TmFtZS5zdWJzdHJpbmcoMCwgY29udGV4dE5hbWUubGFzdEluZGV4T2YoJ18nKSk7XG4gICAgICBjb25zdCBhY3RpdmVDb250YWluZXJJdGVtSUQgPSBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmdldEFjdGl2ZUNvbnRhaW5lckl0ZW1OYW1lKHRhcmdldCk7XG4gICAgICBjb25zdCBjb250YWluZXJJdGVtRGF0YSA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0Q29udGFpbmVySXRlbURhdGEodGFyZ2V0LCBhY3RpdmVDb250YWluZXJJdGVtSUQpO1xuXG4gICAgICBpZiAoY29udGFpbmVySXRlbURhdGEpIHtcbiAgICAgICAgKHsga2V5LCBmbG93TmFtZSB9ID0gY29udGFpbmVySXRlbURhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lck1hbmFnZXIuYWRkQ29udGFpbmVySXRlbSh7XG4gICAgICBzZW1hbnRpY1VSTDogJycsXG4gICAgICBrZXksXG4gICAgICBmbG93TmFtZSxcbiAgICAgIGNhc2VWaWV3TW9kZTogJ3BlcmZvcm0nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVNTSUdOTUVOVCcsXG4gICAgICBkYXRhOiBwQ29ubmVjdC5nZXREYXRhT2JqZWN0KGNvbnRleHROYW1lKVxuICAgIH0pO1xuICB9XG4gIC8vIGhlbHBlcnMgZW5kXG59XG4iLCI8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiIGNsYXNzPVwicHNkay1mbG93LWNvbnRhaW5lci10b3BcIj5cbiAgPGRpdiAqbmdJZj1cIiFiU2hvd0NvbmZpcm1cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXRvZG9fc2hvd1RvZG8kXCI+XG4gICAgICA8aDI+e3sgY29udGFpbmVyTmFtZSQgfX08L2gyPlxuICAgICAgPGRpdiAqbmdJZj1cImJhbm5lcnM/Lmxlbmd0aFwiPlxuICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiQWxlcnRCYW5uZXJcIiBbcHJvcHNdPVwieyBiYW5uZXJzIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidG9kb19zaG93VG9kbyRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgICpuZ0lmPVwicENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW1cIlxuICAgICAgICBuYW1lPVwiVG9kb1wiXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgcENvbm4kOiBwQ29ubmVjdE9mQWN0aXZlQ29udGFpbmVySXRlbSxcbiAgICAgICAgICBjYXNlSW5mb0lEJDogdG9kb19jYXNlSW5mb0lEJCxcbiAgICAgICAgICBkYXRhc291cmNlJDogdG9kb19kYXRhc291cmNlJCxcbiAgICAgICAgICBzaG93VG9kb0xpc3QkOiB0b2RvX3Nob3dUb2RvTGlzdCQsXG4gICAgICAgICAgaGVhZGVyVGV4dCQ6IHRvZG9faGVhZGVyVGV4dCQsXG4gICAgICAgICAgdHlwZSQ6ICdUT0RPJyxcbiAgICAgICAgICBjb250ZXh0JDogdG9kb19jb250ZXh0JCxcbiAgICAgICAgICBpc0NvbmZpcm06IHRydWVcbiAgICAgICAgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhdG9kb19zaG93VG9kbyRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgICpuZ0lmPVwicENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW1cIlxuICAgICAgICBuYW1lPVwiQXNzaWdubWVudFwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDogcENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0sIGZvcm1Hcm91cCQsIGFyQ2hpbGRyZW4kLCBpdGVtS2V5JCB9XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiYkhhc0Nhc2VNZXNzYWdlcyRcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJwc2RrLW1lc3NhZ2UtY2FyZFwiPlxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3dcIj5cbiAgICAgICAgPGRpdj48aW1nIGNsYXNzPVwicHNkay1pY29uXCIgc3JjPVwie3sgY2hlY2tTdmckIH19XCIgLz48L2Rpdj5cbiAgICAgICAgPGRpdj57eyBjYXNlTWVzc2FnZXMkIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImJTaG93QmFubmVyICYmIGJTaG93Q29uZmlybVwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJWaWV3XCIgW3Byb3BzXT1cInsgZm9ybUdyb3VwJCwgcENvbm4kOiBjb25maXJtX3Bjb25uIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvZmxvdy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvZmxvdy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTZCLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7OztBQXdCOUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQXdDcEUsWUFDRSxRQUFrQixFQUNWLEtBQXdCLEVBQ3hCLFNBQWlDLEVBQ2pDLEVBQWUsRUFDZixNQUFjLEVBQ2QsS0FBWTtRQUVwQixLQUFLLENBQUMsUUFBUSxDQUFDLENB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QUMsQ0FBQztZQUV4RyxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRztZQUNILFFBQVE7WUFDUixZQUFZLEVBQUUsU0FBUztZQUN2QixZQUFZLEVBQUUsWUFBWTtZQUMxQixJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4bEJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLCtGQUp0QixDQUFDLEtBQUssQ0FBQyxpREM5QnBCLG9rREE0Q0EsNkVEWlksWUFBWSw0S0FBRSxhQUFhLHVMQUFtQix3QkFBd0I7OzRGQUVyRSxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsS0FBSyxDQUFDLGNBQ04sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztxTkFHekUsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3ksIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IHB1YmxpY0NvbnN0YW50cyB9IGZyb20gJ0BwZWdhL3Bjb3JlLXBjb25uZWN0LXR5cGVkZWZzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IGdldFRvRG9Bc3NpZ25tZW50cywgc2hvd0Jhbm5lciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0NvbnRhaW5lckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudHMvZmxvdy1jb250YWluZXItYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFdBUk5JTkc6ICBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5pbnRlcmZhY2UgRmxvd0NvbnRhaW5lclByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBjaGlsZHJlbj86IGFueVtdO1xuICBuYW1lPzogc3RyaW5nO1xuICByb3V0aW5nSW5mbz86IGFueTtcbiAgcGFnZU1lc3NhZ2VzOiBhbnlbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZsb3ctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zsb3ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvdy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVXRpbHNdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIEZsb3dDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBGbG93Q29udGFpbmVyQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG5cbiAgcENvcmVDb25zdGFudHM6IHR5cGVvZiBwdWJsaWNDb25zdGFudHM7XG4gIGNvbmZpZ1Byb3BzJDogRmxvd0NvbnRhaW5lclByb3BzO1xuXG4gIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICBpdGVtS2V5JCA9ICcnO1xuICBjb250YWluZXJOYW1lJDogc3RyaW5nO1xuICBidWlsZE5hbWUkOiBzdHJpbmc7XG5cbiAgLy8gdG9kb1xuICB0b2RvX3Nob3dUb2RvJCA9IGZhbHNlO1xuICB0b2RvX2Nhc2VJbmZvSUQkOiBzdHJpbmc7XG4gIHRvZG9fc2hvd1RvZG9MaXN0JCA9IGZhbHNlO1xuICB0b2RvX2RhdGFzb3VyY2UkOiBhbnk7XG4gIHRvZG9faGVhZGVyVGV4dCQgPSAnVG8gZG8nO1xuICB0b2RvX3R5cGUkOiBzdHJpbmc7XG4gIHRvZG9fY29udGV4dCQ6IHN0cmluZztcbiAgdG9kb19wQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcblxuICBiSGFzQ2FuY2VsID0gZmFsc2U7XG5cbiAgLy8gbWVzc2FnZXNcbiAgY2FzZU1lc3NhZ2VzJDogc3RyaW5nO1xuICBiSGFzQ2FzZU1lc3NhZ2VzJCA9IGZhbHNlO1xuICBjaGVja1N2ZyQ6IHN0cmluZztcbiAgVE9ETzogYW55O1xuICBiU2hvd0NvbmZpcm0gPSBmYWxzZTtcbiAgYlNob3dCYW5uZXI6IGJvb2xlYW47XG4gIGNvbmZpcm1fcGNvbm46IGFueTtcbiAgbG9jYWxpemVkVmFsOiBhbnk7XG4gIGxvY2FsZUNhdGVnb3J5ID0gJ01lc3NhZ2VzJztcbiAgbG9jYWxlUmVmZXJlbmNlOiBhbnk7XG4gIGJhbm5lcnM6IGFueVtdO1xuICAvLyBpdGVtS2V5OiBzdHJpbmcgPSBcIlwiOyAgIC8vIEpBIC0gdGhpcyBpcyB3aGF0IE5lYnVsYS9Db25zdGVsbGF0aW9uIHVzZXMgdG8gcGFzcyB0byBmaW5pc2hBc3NpZ25tZW50LCBuYXZpZ2F0ZVRvU3RlcFxuXG4gIHBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHBzU2VydmljZTogUHJvZ3Jlc3NTcGlubmVyU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAvLyBjcmVhdGUgdGhlIGZvcm1Hcm91cFxuICAgIHRoaXMuZm9ybUdyb3VwJCA9IHRoaXMuZmIuZ3JvdXAoeyBoaWRlUmVxdWlyZWQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLmxvY2FsaXplZFZhbCA9IFBDb3JlLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWU7XG4gICAgY29uc3QgY2FzZUluZm8gPSB0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpO1xuICAgIHRoaXMubG9jYWxlUmVmZXJlbmNlID0gYCR7Y2FzZUluZm8/LmdldENsYXNzTmFtZSgpfSFDQVNFISR7Y2FzZUluZm8uZ2V0TmFtZSgpfWAudG9VcHBlckNhc2UoKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGdldCB0aGUgUENvcmUgY29uc3RhbnRzXG4gICAgdGhpcy5wQ29yZUNvbnN0YW50cyA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGNvbnN0IHsgVE9ETyB9ID0gdGhpcy5wQ29yZUNvbnN0YW50cztcbiAgICB0aGlzLlRPRE8gPSBUT0RPO1xuICAgIC8vIHdpdGggaW5pdCwgZm9yY2UgY2hpbGRyZW4gdG8gYmUgbG9hZGVkIG9mIGdsb2JhbCBwQ29ublxuICAgIHRoaXMuaW5pdENvbXBvbmVudCh0cnVlKTtcblxuICAgIHRoaXMuaW5pdENvbnRhaW5lcigpO1xuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5zdWJzY3JpYmUoXG4gICAgICBQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5FVkVOVF9DQU5DRUwsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsKCk7XG4gICAgICB9LFxuICAgICAgJ2NhbmNlbEFzc2lnbm1lbnQnXG4gICAgKTtcblxuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkuc3Vic2NyaWJlKFxuICAgICAgJ2NhbmNlbFByZXNzZWQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUNhbmNlbFByZXNzZWQoKTtcbiAgICAgIH0sXG4gICAgICAnY2FuY2VsUHJlc3NlZCdcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cblxuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkudW5zdWJzY3JpYmUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuUFVCX1NVQl9FVkVOVFMuRVZFTlRfQ0FOQ0VMLCAnY2FuY2VsQXNzaWdubWVudCcpO1xuXG4gICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS51bnN1YnNjcmliZSgnY2FuY2VsUHJlc3NlZCcsICdjYW5jZWxQcmVzc2VkJyk7XG4gIH1cblxuICBoYW5kbGVDYW5jZWwoKSB7XG4gICAgLy8gY2FuY2VsIGhhcHBlbmVkLCBzbyBvayB0byBpbml0aWFsaXplIHRoZSBmbG93IGNvbnRhaW5lclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICd0cnVlJyk7XG4gIH1cblxuICBoYW5kbGVDYW5jZWxQcmVzc2VkKCkge1xuICAgIHRoaXMuYkhhc0NhbmNlbCA9IHRydWU7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIGNvbnN0IHBDb25uID0gdGhpcy5wQ29ubmVjdE9mQWN0aXZlQ29udGFpbmVySXRlbSB8fCB0aGlzLnBDb25uJDtcbiAgICBjb25zdCBjYXNlVmlld01vZGVGcm9tUHJvcHMgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRQcm9wKHRoaXMsICdjYXNlVmlld01vZGUnKTtcbiAgICBjb25zdCBjYXNlVmlld01vZGVGcm9tUmVkdXggPSBwQ29ubi5nZXRWYWx1ZSgnY29udGV4dF9kYXRhLmNhc2VWaWV3TW9kZScsICcnKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgLy8gICAgQU5EIHJlbW92aW5nIHRoZSBcImdhdGVcIiB0aGF0IHdhcyBwdXQgdGhlcmUgc2luY2Ugc2hvdWxkQ29tcG9uZW50VXBkYXRlXG4gICAgLy8gICAgICBzaG91bGQgYmUgdGhlIHJlYWwgXCJnYXRlXCJcbiAgICBpZiAoYlVwZGF0ZVNlbGYgfHwgY2FzZVZpZXdNb2RlRnJvbVByb3BzICE9PSBjYXNlVmlld01vZGVGcm9tUmVkdXgpIHtcbiAgICAgIC8vIGRvbid0IHdhbnQgdG8gcmVkcmF3IHRoZSBmbG93IGNvbnRhaW5lciB3aGVuIHRoZXJlIGFyZSBwYWdlIG1lc3NhZ2VzLCBiZWNhdXNlXG4gICAgICAvLyB0aGUgcmVkcmF3IGNhdXNlcyB1cyB0byBsb29zZSB0aGUgZXJyb3JzIG9uIHRoZSBlbGVtZW50c1xuICAgICAgY29uc3QgY29tcGxldGVQcm9wcyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldEN1cnJlbnRDb21wbGV0ZVByb3BzKHRoaXMpIGFzIEZsb3dDb250YWluZXJQcm9wcztcbiAgICAgIGlmICghY29tcGxldGVQcm9wcy5wYWdlTWVzc2FnZXMgfHwgY29tcGxldGVQcm9wcy5wYWdlTWVzc2FnZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgLy8gd2l0aCBhIGNhbmNlbCwgbmVlZCB0byB0aW1lb3V0IHNvIHRvZG8gd2lsbCB1cGRhdGUgY29ycmVjdGx5XG4gICAgICAgIGlmICh0aGlzLmJIYXNDYW5jZWwpIHtcbiAgICAgICAgICB0aGlzLmJIYXNDYW5jZWwgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1BhZ2VNZXNzYWdlcyhjb21wbGV0ZVByb3BzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93UGFnZU1lc3NhZ2VzKGNvbXBsZXRlUHJvcHM6IEZsb3dDb250YWluZXJQcm9wcykge1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICBjb25zdCBwYWdlTWVzc2FnZXMgPSBjb21wbGV0ZVByb3BzLnBhZ2VNZXNzYWdlcztcbiAgICAgIHRoaXMuYmFubmVycyA9IFt7IG1lc3NhZ2VzOiBwYWdlTWVzc2FnZXM/Lm1hcChtc2cgPT4gdGhpcy5sb2NhbGl6ZWRWYWwobXNnLm1lc3NhZ2UsICdNZXNzYWdlcycpKSwgdmFyaWFudDogJ3VyZ2VudCcgfV07XG4gICAgfSk7XG4gIH1cblxuICBnZXRUb2RvVmlzaWJpbHR5KCkge1xuICAgIGNvbnN0IGNhc2VWaWV3TW9kZSA9IHRoaXMucENvbm4kLmdldFZhbHVlKCdjb250ZXh0X2RhdGEuY2FzZVZpZXdNb2RlJyk7XG4gICAgaWYgKGNhc2VWaWV3TW9kZSAmJiBjYXNlVmlld01vZGUgPT09ICdyZXZpZXcnKSB7XG4gICAgICBjb25zdCBraWQgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpWzBdO1xuICAgICAgY29uc3QgdG9kb0tpZCA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgIHRoaXMudG9kb19wQ29ubiQgPSB0b2RvS2lkLmdldFBDb25uZWN0KCk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAhKGNhc2VWaWV3TW9kZSAmJiBjYXNlVmlld01vZGUgPT09ICdwZXJmb3JtJyk7XG4gIH1cblxuICBpbml0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lck1nciA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck1hbmFnZXIoKTtcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgY29uc3QgY29udGFpbmVyTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcbiAgICBjb25zdCBjb250YWluZXJUeXBlID0gJ3NpbmdsZSc7XG5cbiAgICBjb25zdCBmbG93Q29udGFpbmVyVGFyZ2V0ID0gYCR7YmFzZUNvbnRleHR9LyR7Y29udGFpbmVyTmFtZX1gO1xuICAgIGNvbnN0IGlzQ29udGFpbmVySXRlbUF2YWlsYWJsZSA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0QWN0aXZlQ29udGFpbmVySXRlbU5hbWUoZmxvd0NvbnRhaW5lclRhcmdldCk7XG5cbiAgICAvLyBjbGVhciBvdXQgc2luY2Ugd2UgYXJlIGluaXRpYWxpemluZ1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICdmYWxzZScpO1xuXG4gICAgaWYgKCFpc0NvbnRhaW5lckl0ZW1BdmFpbGFibGUpIHtcbiAgICAgIGNvbnRhaW5lck1nci5pbml0aWFsaXplQ29udGFpbmVycyh7XG4gICAgICAgIHR5cGU6IGNvbnRhaW5lclR5cGVcbiAgICAgIH0pO1xuXG4gICAgICAvKiByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlIHdoZW4gdXBkYXRlIFJlYWN0L1dDXG4gICAgICAgKioqIGluc3RlYWQgb2YgZ2V0dGluZyB2YWx1ZXMgaGVyZSB0byBwYXNzIHRvIGFkZENvbnRhaW5lckl0ZW0sIHdlIGNhbGwgdGhlIGZ1bmN0aW9uIGJlbG93IFwiYWRkQ29udGFpbmVySXRlbVwiXG4gICAgICAgKioqIHdoaWNoIGNvbWVzIGZyb20gZmxvdyBjb250YWluZXIgaGVscGVycyBpbiBOZWJ1bGFcbiAgICAgICAqL1xuICAgICAgLy8gY29udGFpbmVyTWdyLmFkZENvbnRhaW5lckl0ZW0oe1xuICAgICAgLy8gICBzZW1hbnRpY1VSTDogXCJcIixcbiAgICAgIC8vICAga2V5OiB0aGlzLnBDb25uJC5nZXRWYWx1ZShcImtleVwiKSxcbiAgICAgIC8vICAgZmxvd05hbWU6IHRoaXMucENvbm4kLmdldFZhbHVlKFwiZmxvd05hbWVcIiksXG4gICAgICAvLyAgIGNhc2VWaWV3TW9kZTogXCJwZXJmb3JtXCIsXG4gICAgICAvLyAgIGRhdGE6IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoYmFzZUNvbnRleHQpLFxuICAgICAgLy8gICBjb250YWluZXJUeXBlXG4gICAgICAvLyB9KTtcblxuICAgICAgdGhpcy5hZGRDb250YWluZXJJdGVtKHRoaXMucENvbm4kKTtcbiAgICB9XG4gIH1cblxuICBpbml0Q29tcG9uZW50KGJMb2FkQ2hpbGRyZW46IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBGbG93Q29udGFpbmVyUHJvcHM7XG4gICAgdGhpcy5zaG93UGFnZU1lc3NhZ2VzKHRoaXMuY29uZmlnUHJvcHMkKTtcblxuICAgIC8vIHdoZW4gdHJ1ZSwgdXBkYXRlIGFyQ2hpbGRyZW4gZnJvbSBwQ29ubiwgb3RoZXJ3aXNlLCBhckNoaWxyZW4gd2lsbCBiZSB1cGRhdGVkIGluIHVwZGF0ZVNlbGYoKVxuICAgIGlmIChiTG9hZENoaWxkcmVuKSB7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICAvLyBjb25zdCBvRGF0YSA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKTtcblxuICAgIC8vIGNvbnN0IGFjdGl2ZUFjdGlvbkxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICAvLyBjb25zdCB7IGdldFBDb25uZWN0IH0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG5cbiAgICB0aGlzLnRvZG9fc2hvd1RvZG8kID0gdGhpcy5nZXRUb2RvVmlzaWJpbHR5KCk7XG5cbiAgICAvLyBjcmVhdGUgcG9pbnRlcnMgdG8gZnVuY3Rpb25zXG4gICAgLy8gY29uc3QgY29udGFpbmVyTWdyID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTWFuYWdlcigpO1xuICAgIC8vIGNvbnN0IGFjdGlvbnNBUEkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgY29uc3QgYmFzZUNvbnRleHQgPSB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpO1xuICAgIGNvbnN0IGFjTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcblxuICAgIGlmICh0aGlzLml0ZW1LZXkkID09PSAnJykge1xuICAgICAgdGhpcy5pdGVtS2V5JCA9IGJhc2VDb250ZXh0LmNvbmNhdCgnLycpLmNvbmNhdChhY05hbWUpO1xuICAgIH1cblxuICAgIHRoaXMucENvbm4kLmlzQm91bmRUb1N0YXRlKCk7XG5cbiAgICAvLyBpbnNpZGVcbiAgICAvLyBnZXQgZmlzdCBraWQsIGdldCB0aGUgbmFtZSBhbmQgZGlzcGxheVxuICAgIC8vIHBhc3MgZmlyc3Qga2lkIHRvIGEgdmlldyBjb250YWluZXIsIHdoaWNoIHdpbGwgZGlzcGVyc2UgaXQgdG8gYSB2aWV3IHdoaWNoIHdpbGwgdXNlIG9uZSBjb2x1bW4sIHR3byBjb2x1bW4sIGV0Yy5cbiAgICBjb25zdCBvV29ya0l0ZW0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG4gICAgLy8gY29uc3Qgb1dvcmtNZXRhID0gb1dvcmtJdGVtLmdldFJhd01ldGFkYXRhKCk7XG4gICAgY29uc3Qgb1dvcmtEYXRhID0gb1dvcmtJdGVtLmdldERhdGFPYmplY3QoKTtcblxuICAgIC8vIHRoaXMuY29udGFpbmVyTmFtZSQgPSBvV29ya01ldGFbXCJuYW1lXCJdO1xuICAgIGlmIChiTG9hZENoaWxkcmVuICYmIG9Xb3JrRGF0YSkge1xuICAgICAgdGhpcy5jb250YWluZXJOYW1lJCA9IHRoaXMubG9jYWxpemVkVmFsKHRoaXMuZ2V0QWN0aXZlVmlld0xhYmVsKCkgfHwgb1dvcmtEYXRhLmNhc2VJbmZvLmFzc2lnbm1lbnRzWzBdLm5hbWUsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGVSZWZlcmVuY2UpO1xuICAgIH1cblxuICAgIC8vIHR1cm4gb2ZmIHNwaW5uZXJcbiAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG4gIH1cblxuICBoYXNBc3NpZ25tZW50cygpIHtcbiAgICBsZXQgaGFzQXNzaWdubWVudHMgPSBmYWxzZTtcbiAgICBjb25zdCBhc3NpZ25tZW50c0xpc3QgPSB0aGlzLnBDb25uJC5nZXRWYWx1ZSh0aGlzLnBDb3JlQ29uc3RhbnRzLkNBU0VfSU5GTy5EX0NBU0VfQVNTSUdOTUVOVFNfUkVTVUxUUyk7XG4gICAgLy8gY29uc3QgdGhpc09wZXJhdG9yID0gUENvcmUuZ2V0RW52aXJvbm1lbnRJbmZvKCkuZ2V0T3BlcmF0b3JJZGVudGlmaWVyKCk7XG4gICAgLy8gOC43IGluY2x1ZGVzIGFzc2lnbm1lbnRzIGluIEFzc2lnbm1lbnRzIExpc3QgdGhhdCBtYXkgYmUgYXNzaWduZWQgdG9cbiAgICAvLyAgYSBkaWZmZXJlbnQgb3BlcmF0b3IuIFNvLCBzZWUgaWYgdGhlcmUgYXJlIGFueSBhc3NpZ25tZW50cyBmb3JcbiAgICAvLyAgdGhlIGN1cnJlbnQgb3BlcmF0b3JcbiAgICBjb25zdCBpc0VtYmVkZGVkID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2VtYmVkZGVkJyk7XG4gICAgbGV0IGJBc3NpZ25tZW50c0ZvclRoaXNPcGVyYXRvciA9IGZhbHNlO1xuXG4gICAgaWYgKGlzRW1iZWRkZWQpIHtcbiAgICAgIGNvbnN0IHRoaXNPcGVyYXRvciA9IFBDb3JlLmdldEVudmlyb25tZW50SW5mbygpLmdldE9wZXJhdG9ySWRlbnRpZmllcigpO1xuICAgICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGFzc2lnbm1lbnRzTGlzdCkge1xuICAgICAgICBpZiAoYXNzaWdubWVudC5hc3NpZ25lZUluZm8uSUQgPT09IHRoaXNPcGVyYXRvcikge1xuICAgICAgICAgIGJBc3NpZ25tZW50c0ZvclRoaXNPcGVyYXRvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYkFzc2lnbm1lbnRzRm9yVGhpc09wZXJhdG9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBCYWlsIGlmIHRoZXJlIGlzIG5vIGFzc2lnbm1lbnRzTGlzdFxuICAgIGlmICghYXNzaWdubWVudHNMaXN0KSB7XG4gICAgICByZXR1cm4gaGFzQXNzaWdubWVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzQ2hpbGRDYXNlQXNzaWdubWVudHMgPSB0aGlzLmhhc0NoaWxkQ2FzZUFzc2lnbm1lbnRzKCk7XG5cbiAgICBpZiAoYkFzc2lnbm1lbnRzRm9yVGhpc09wZXJhdG9yIHx8IGhhc0NoaWxkQ2FzZUFzc2lnbm1lbnRzIHx8IHRoaXMuaXNDYXNlV2lkZUxvY2FsQWN0aW9uKCkpIHtcbiAgICAgIGhhc0Fzc2lnbm1lbnRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFzQXNzaWdubWVudHM7XG4gIH1cblxuICBpc0Nhc2VXaWRlTG9jYWxBY3Rpb24oKSB7XG4gICAgY29uc3QgYWN0aW9uSUQgPSB0aGlzLnBDb25uJC5nZXRWYWx1ZSh0aGlzLnBDb3JlQ29uc3RhbnRzLkNBU0VfSU5GTy5BQ1RJVkVfQUNUSU9OX0lEKTtcbiAgICBjb25zdCBjYXNlQWN0aW9ucyA9IHRoaXMucENvbm4kLmdldFZhbHVlKHRoaXMucENvcmVDb25zdGFudHMuQ0FTRV9JTkZPLkFWQUlMQUJMRUFDVElPTlMpO1xuICAgIGxldCBiQ2FzZVdpZGVBY3Rpb24gPSBmYWxzZTtcbiAgICBpZiAoY2FzZUFjdGlvbnMgJiYgYWN0aW9uSUQpIHtcbiAgICAgIGNvbnN0IGFjdGlvbk9iaiA9IGNhc2VBY3Rpb25zLmZpbmQoY2FzZUFjdGlvbiA9PiBjYXNlQWN0aW9uLklEID09PSBhY3Rpb25JRCk7XG4gICAgICBpZiAoYWN0aW9uT2JqKSB7XG4gICAgICAgIGJDYXNlV2lkZUFjdGlvbiA9IGFjdGlvbk9iai50eXBlID09PSAnQ2FzZSc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiQ2FzZVdpZGVBY3Rpb247XG4gIH1cblxuICBoYXNDaGlsZENhc2VBc3NpZ25tZW50cygpIHtcbiAgICBjb25zdCBjaGlsZENhc2VzID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUodGhpcy5wQ29yZUNvbnN0YW50cy5DQVNFX0lORk8uQ0hJTERfQVNTSUdOTUVOVFMpO1xuXG4gICAgcmV0dXJuIGNoaWxkQ2FzZXMgJiYgY2hpbGRDYXNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0QWN0aXZlVmlld0xhYmVsKCkge1xuICAgIGxldCBhY3RpdmVBY3Rpb25MYWJlbCA9ICcnO1xuXG4gICAgY29uc3QgeyBDQVNFX0lORk86IENBU0VfQ09OU1RTIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcblxuICAgIGNvbnN0IGNhc2VBY3Rpb25zID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0FDVElPTlMpIGFzIGFueVtdO1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbklEID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQUNUSVZFX0FDVElPTl9JRCk7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9uID0gY2FzZUFjdGlvbnM/LmZpbmQoYWN0aW9uID0+IGFjdGlvbi5JRCA9PT0gYWN0aXZlQWN0aW9uSUQpO1xuICAgIGlmIChhY3RpdmVBY3Rpb24pIHtcbiAgICAgIGFjdGl2ZUFjdGlvbkxhYmVsID0gYWN0aXZlQWN0aW9uLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVBY3Rpb25MYWJlbDtcbiAgfVxuXG4gIGZpbmRDdXJyZW50SW5kaWNpZXMoYXJTdGVwcGVyU3RlcHM6IGFueVtdLCBhckluZGljaWVzOiBudW1iZXJbXSwgZGVwdGg6IG51bWJlcik6IG51bWJlcltdIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGFyU3RlcHBlclN0ZXBzLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICBpZiAoc3RlcC52aXNpdGVkX3N0YXR1cyA9PSAnY3VycmVudCcpIHtcbiAgICAgICAgYXJJbmRpY2llc1tkZXB0aF0gPSBjb3VudDtcblxuICAgICAgICAvLyBhZGQgaW5cbiAgICAgICAgc3RlcC5zdGVwX3N0YXR1cyA9ICcnO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnZpc2l0ZWRfc3RhdHVzID09ICdzdWNjZXNzJykge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBzdGVwLnN0ZXBfc3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBzdGVwLnN0ZXBfc3RhdHVzID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGVwLnN0ZXBzKSB7XG4gICAgICAgIGFySW5kaWNpZXMgPSB0aGlzLmZpbmRDdXJyZW50SW5kaWNpZXMoc3RlcC5zdGVwcywgYXJJbmRpY2llcywgZGVwdGggKyAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhckluZGljaWVzO1xuICB9XG5cbiAgLy8gQ2FsbGVkIHdoZW4gYnJpZGdlIHNob3VsZENvbXBvbmVudFVwZGF0ZSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGNvbXBvbmVudFxuICAvLyBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIGZvciBub3dcbiAgICAvLyBjb25zdCB7IGdldFBDb25uZWN0IH0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG4gICAgY29uc3QgbG9jYWxQQ29ubiA9IHRoaXMuYXJDaGlsZHJlbiRbMF0uZ2V0UENvbm5lY3QoKTtcblxuICAgIHRoaXMucENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0gPSB0aGlzLmdldFBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtKHRoaXMucENvbm4kKSB8fCB0aGlzLnBDb25uJDtcblxuICAgIGNvbnN0IGNhc2VWaWV3TW9kZSA9IHRoaXMucENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0uZ2V0VmFsdWUoJ2NvbnRleHRfZGF0YS5jYXNlVmlld01vZGUnKTtcbiAgICB0aGlzLmJTaG93QmFubmVyID0gc2hvd0Jhbm5lcih0aGlzLnBDb25uJCk7XG5cbiAgICBpZiAoY2FzZVZpZXdNb2RlICYmIGNhc2VWaWV3TW9kZSA9PSAncmV2aWV3Jykge1xuICAgICAgdGhpcy5sb2FkUmV2aWV3UGFnZShsb2NhbFBDb25uKTtcblxuICAgICAgLy8gaW4gTmVidWxhL0NvbnN0ZWxsYXRpb24sIHdoZW4gY2FuY2VsIGlzIGNhbGxlZCwgc29tZWhvdyB0aGUgY29uc3RydWN0b3IgZm9yIGZsb3dDb250YWluZXIgaXMgY2FsbGVkIHdoaWNoXG4gICAgICAvLyBkb2VzIGluaXQvYWRkIG9mIGNvbnRhaW5lcnMuICBUaGlzIG1pbWljcyB0aGF0XG4gICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnb2tUb0luaXRGbG93Q29udGFpbmVyJykgPT0gJ3RydWUnKSB7XG4gICAgICAgIHRoaXMuaW5pdENvbnRhaW5lcigpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FzZVZpZXdNb2RlICYmIGNhc2VWaWV3TW9kZSA9PT0gJ3BlcmZvcm0nKSB7XG4gICAgICAvLyBwZXJmb3JtXG4gICAgICB0aGlzLnRvZG9fc2hvd1RvZG8kID0gZmFsc2U7XG5cbiAgICAgIC8vIHRoaXMgaXMgZGlmZmVyZW50IHRoYW4gQW5ndWxhciBTREssIGFzIHdlIG5lZWQgdG8gaW5pdENvbnRhaW5lciBpZiByb290IGNvbnRhaW5lciByZWxvYWRlZFxuICAgICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicpID09ICd0cnVlJykge1xuICAgICAgICB0aGlzLmluaXRDb250YWluZXIoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiBoYXZlIGNhc2VNZXNzYWdlIHNob3cgbWVzc2FnZSBhbmQgZW5kXG4gICAgdGhpcy5zaG93Q2FzZU1lc3NhZ2VzKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUZsb3dDb250YWluZXJDaGlsZHJlbigpO1xuICB9XG5cbiAgbG9hZFJldmlld1BhZ2UobG9jYWxQQ29ubikge1xuICAgIGNvbnN0IHsgQ0FTRV9JTkZPOiBDQVNFX0NPTlNUUyB9ID0gUENvcmUuZ2V0Q29uc3RhbnRzKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIC8qXG4gICAgICAgICAgKioqIHJlbm92ZSB0aGlzIGNvbW1tZW50ZWQgb3V0IGNvZGUgd2hlbiBSZWFjdC9XQyBpcyB1cGRhdGVkXG4gICAgICAgICAgKioqIHRoaXMgY29kZSBpcyByZXBsYWNlIHdpdGggdGhlIGNhbGwgdG8gXCJnZXRUb0RvQXNzaWdtZW50c1wiIGZ1bmN0aW9uIGJlbG93XG5cbiAgICAgICAgICBjb25zdCBhc3NpZ25tZW50c0xpc3QgPSBsb2NhbFBDb25uLmdldFZhbHVlKFxuICAgICAgICAgICAgQ0FTRV9DT05TVFMuRF9DQVNFX0FTU0lHTk1FTlRTX1JFU1VMVFNcbiAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgLy8gYWRkIHN0YXR1c1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGxvY2FsUENvbm4uZ2V0VmFsdWUoXCJjYXNlSW5mby5zdGF0dXNcIik7XG5cbiAgICAgICAgICBsZXQgbG9jYWxBc3NpZ25tZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhc3NpZ25tZW50c0xpc3RbMF0pKTtcbiAgICAgICAgICBsb2NhbEFzc2lnbm1lbnQuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgICAgIGxldCBsb2NhQXNzaWdubWVudHNMaXN0OiBBcnJheTxhbnk+ID0gW107XG4gICAgICAgICAgbG9jYUFzc2lnbm1lbnRzTGlzdC5wdXNoKGxvY2FsQXNzaWdubWVudCk7XG5cbiAgICAgICAgICBjb25zdCBjYXNlQWN0aW9ucyA9IGxvY2FsUENvbm4uZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0FDVElPTlMpO1xuICAgICAgICAgICovXG5cbiAgICAgICAgY29uc3QgdG9kb0Fzc2lnbm1lbnRzID0gZ2V0VG9Eb0Fzc2lnbm1lbnRzKHRoaXMucENvbm4kKTtcblxuICAgICAgICBpZiAodG9kb0Fzc2lnbm1lbnRzICYmIHRvZG9Bc3NpZ25tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy50b2RvX2Nhc2VJbmZvSUQkID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoQ0FTRV9DT05TVFMuQ0FTRV9JTkZPX0lEKTtcbiAgICAgICAgICB0aGlzLnRvZG9fZGF0YXNvdXJjZSQgPSB7IHNvdXJjZTogdG9kb0Fzc2lnbm1lbnRzIH07XG4gICAgICAgIH1cblxuICAgICAgICAvKiByZW1vdmUgdGhpcyBjb21tZW50ZWQgb3V0IGNvZGUgd2hlbiB1cGRhdGUgUmVhY3QvV0MgKi9cbiAgICAgICAgLy8gbGV0IGtpZCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgICAgLy8ga2lkLmdldFBDb25uZWN0KCkgY2FuIGJlIGEgUmVmZXJlbmNlIGNvbXBvbmVudC4gU28gbm9ybWFsaXplIGl0IGp1c3QgaW4gY2FzZVxuICAgICAgICAvLyAgICAgICAgbGV0IHRvZG9LaWQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4oa2lkLmdldFBDb25uZWN0KCkpLmdldENoaWxkcmVuKClbMF07XG5cbiAgICAgICAgLy8gICAgICAgIHRoaXMudG9kb19wQ29ubiQgPSB0b2RvS2lkLmdldFBDb25uZWN0KCk7XG5cbiAgICAgICAgLyogY29kZSBjaGFuZ2UgaGVyZSB0byBub3RlIGZvciBSZWFjdC9XQyAgKi9cbiAgICAgICAgLy8gdG9kbyBub3cgbmVlZHMgcENvbm4gdG8gb3BlbiB0aGUgd29yayBpdGVtIG9uIGNsaWNrIFwiZ29cIlxuICAgICAgICB0aGlzLnRvZG9fcENvbm4kID0gdGhpcy5wQ29ubiQ7XG5cbiAgICAgICAgLy8gc3RpbGwgbmVlZHMgdGhlIGNvbnRleHQgb2YgdGhlIG9yaWdpbmFsIHdvcmsgaXRlbVxuICAgICAgICB0aGlzLnRvZG9fY29udGV4dCQgPSBsb2NhbFBDb25uLmdldENvbnRleHROYW1lKCk7XG5cbiAgICAgICAgdGhpcy50b2RvX3Nob3dUb2RvJCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93Q2FzZU1lc3NhZ2VzKCkge1xuICAgIHRoaXMuY2FzZU1lc3NhZ2VzJCA9IHRoaXMubG9jYWxpemVkVmFsKHRoaXMucENvbm4kLmdldFZhbHVlKCdjYXNlTWVzc2FnZXMnKSwgdGhpcy5sb2NhbGVDYXRlZ29yeSk7XG4gICAgLy8gY2FzZU1lc3NhZ2VzJ3MgYmVoYXZpb3IgaGFzIGNoYW5nZWQgaW4gMjQuMiwgYW5kIGhlbmNlIGl0IGRvZXNuJ3QgbGV0IE9wdGlvbmFsIEFjdGlvbiB3b3JrLlxuICAgIC8vIENoYW5naW5nIHRoZSBiZWxvdyBjb25kaXRpb24gZm9yIG5vdy4gV2FzOiAodGhlQ2FzZU1lc3NhZ2VzIHx8ICFoYXNBc3NpZ25tZW50cygpKVxuICAgIGlmICghdGhpcy5oYXNBc3NpZ25tZW50cygpKSB7XG4gICAgICB0aGlzLmJIYXNDYXNlTWVzc2FnZXMkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYlNob3dDb25maXJtID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2hlY2tTdmckID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYygnY2hlY2snLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG4gICAgICAvLyBUZW1wIGZpeCBmb3IgOC43IGNoYW5nZTogY29uZmlybWF0aW9uTm90ZSBubyBsb25nZXIgY29taW5nIHRocm91Z2ggaW4gY2FzZU1lc3NhZ2VzJC5cbiAgICAgIC8vIFNvLCBpZiB3ZSBnZXQgaGVyZSBhbmQgY2FzZU1lc3NhZ2VzJCBpcyBlbXB0eSwgdXNlIGRlZmF1bHQgdmFsdWUgaW4gRFggQVBJIHJlc3BvbnNlXG4gICAgICBpZiAoIXRoaXMuY2FzZU1lc3NhZ2VzJCkge1xuICAgICAgICB0aGlzLmNhc2VNZXNzYWdlcyQgPSB0aGlzLmxvY2FsaXplZFZhbCgnVGhhbmsgeW91ISBUaGUgbmV4dCBzdGVwIGluIHRoaXMgY2FzZSBoYXMgYmVlbiByb3V0ZWQgYXBwcm9wcmlhdGVseS4nLCB0aGlzLmxvY2FsZUNhdGVnb3J5KTtcbiAgICAgIH1cblxuICAgICAgLy8gcHVibGlzaCB0aGlzIFwiYXNzaWdubWVudEZpbmlzaGVkXCIgZm9yIG1hc2h1cCwgbmVlZCB0byBnZXQgYXBwcm92ZWQgYXMgYSBzdGFuZGFyZFxuICAgICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5wdWJsaXNoKCdhc3NpZ25tZW50RmluaXNoZWQnKTtcblxuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJIYXNDYXNlTWVzc2FnZXMkID0gZmFsc2U7XG4gICAgICB0aGlzLmJTaG93Q29uZmlybSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZsb3dDb250YWluZXJDaGlsZHJlbigpIHtcbiAgICAvLyByb3V0aW5nSW5mbyB3YXMgYWRkZWQgYXMgY29tcG9uZW50IHByb3AgaW4gcG9wdWxhdGVBZGRpdGlvbmFsUHJvcHNcbiAgICBjb25zdCByb3V0aW5nSW5mbyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudFByb3AodGhpcywgJ3JvdXRpbmdJbmZvJyk7XG5cbiAgICBsZXQgbG9hZGluZ0luZm86IGFueTtcbiAgICB0cnkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRMb2FkaW5nU3RhdHVzJyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICdDMTFuRW52J1xuICAgICAgbG9hZGluZ0luZm8gPSB0aGlzLnBDb25uJC5nZXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8qIGVtcHR5ICovXG4gICAgfVxuXG4gICAgLy8gdGhpcyBjaGVjayBpbiByb3V0aW5nSW5mbywgbWltaWMgTmVidWxhL0NvbnN0ZWxsYXRpb24gKFJlYWN0KSB0byBjaGVjayBhbmQgZ2V0IHRoZSBpbnRlcm5hbHMgb2YgdGhlXG4gICAgLy8gZmxvd0NvbnRhaW5lciBhbmQgZm9yY2UgdXBkYXRlcyB0byBwQ29ubmVjdC9yZWR1eFxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiBsb2FkaW5nSW5mbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjdXJyZW50T3JkZXIgPSByb3V0aW5nSW5mby5hY2Nlc3NlZE9yZGVyO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gcm91dGluZ0luZm8uaXRlbXM7XG4gICAgICBjb25zdCB0eXBlID0gcm91dGluZ0luZm8udHlwZTtcbiAgICAgIGlmIChjdXJyZW50T3JkZXIgJiYgY3VycmVudEl0ZW1zKSB7XG4gICAgICAgIC8vIEpBIC0gbWFraW5nIG1vcmUgc2ltaWxhciB0byBOZWJ1bGEvQ29uc3RlbGxhdGlvblxuICAgICAgICBjb25zdCBrZXkgPSBjdXJyZW50T3JkZXJbY3VycmVudE9yZGVyLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIC8vIHNhdmUgb2ZmIGl0ZW1LZXkgdG8gYmUgdXNlZCBmb3IgZmluaXNoQXNzaWdubWVudCwgZXRjLlxuICAgICAgICAvLyB0aW1lb3V0IGFuZCBkZXRlY3RDaGFuZ2VzIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKGtleSAmJiBrZXkgIT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUtleSQgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLWNvbGxhcHNpYmxlLWlmXG4gICAgICAgIGlmIChjdXJyZW50T3JkZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmIChjdXJyZW50SXRlbXNba2V5XSAmJiBjdXJyZW50SXRlbXNba2V5XS52aWV3ICYmIHR5cGUgPT09ICdzaW5nbGUnICYmIE9iamVjdC5rZXlzKGN1cnJlbnRJdGVtc1trZXldLnZpZXcpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIHdoZW4gd2UgZ2V0IGhlcmUsIGl0IGl0IGJlY2F1c2UgdGhlIGZsb3cgYWN0aW9uIGRhdGEgaGFzIGNoYW5nZWRcbiAgICAgICAgICAgIC8vIGZyb20gdGhlIHNlcnZlciwgYW5kIG5lZWQgdG8gYWRkIHRvIHBDb25uZWN0IGFuZCB1cGRhdGUgY2hpbGRyZW5cblxuICAgICAgICAgICAgdGhpcy5hZGRQQ29ubmVjdEFuZFVwZGF0ZUNoaWxkcmVuKGN1cnJlbnRJdGVtc1trZXldLCBrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZFBDb25uZWN0QW5kVXBkYXRlQ2hpbGRyZW4oY3VycmVudEl0ZW0sIGtleSkge1xuICAgIGNvbnN0IGxvY2FsUENvbm4gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG5cbiAgICBjb25zdCByb290VmlldyA9IGN1cnJlbnRJdGVtLnZpZXc7XG4gICAgY29uc3QgeyBjb250ZXh0LCBuYW1lOiBWaWV3TmFtZSB9ID0gcm9vdFZpZXcuY29uZmlnO1xuICAgIGNvbnN0IGNvbmZpZzogYW55ID0geyBtZXRhOiByb290VmlldyB9O1xuXG4gICAgLy8gRG9uJ3QgZ28gYWhlYWQgaWYgVmlldyBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCFWaWV3TmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9kb19jb250ZXh0JCA9IGN1cnJlbnRJdGVtLmNvbnRleHQ7XG5cbiAgICBjb25maWcub3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IGN1cnJlbnRJdGVtLmNvbnRleHQsXG4gICAgICBwYWdlUmVmZXJlbmNlOiBjb250ZXh0IHx8IGxvY2FsUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgaGFzRm9ybTogdHJ1ZSxcbiAgICAgIGlzRmxvd0NvbnRhaW5lcjogdHJ1ZSxcbiAgICAgIGNvbnRhaW5lck5hbWU6IGxvY2FsUENvbm4uZ2V0Q29udGFpbmVyTmFtZSgpLFxuICAgICAgY29udGFpbmVySXRlbU5hbWU6IGtleSxcbiAgICAgIHBhcmVudFBhZ2VSZWZlcmVuY2U6IGxvY2FsUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZ09iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG4gICAgdGhpcy5jb25maXJtX3Bjb25uID0gY29uZmlnT2JqZWN0LmdldFBDb25uZWN0KCk7XG4gICAgLy8gOC43IC0gY29uZmlnIG1pZ2h0IGJlIGEgUmVmZXJlbmNlIGNvbXBvbmVudCBzbywgbmVlZCB0byBub3JtYWxpemUgaXQgdG8gZ2V0XG4gICAgLy8gIHRoZSBWaWV3IGlmIGl0IGlzIGEgUmVmZXJlbmNlIGNvbXBvbmVudC4gQW5kIG5lZWQgdG8gcGFzcyBpbiB0aGUgZ2V0UENvbm5lY3RcbiAgICAvLyAgdG8gaGF2ZSBub3JtYWxpemUgZG8gYSBjMTFFbnYgY3JlYXRlQ29tcG9uZW50ICh0aGF0IG1ha2VzIHN1cmUgb3B0aW9ucy5oYXNGb3JtXG4gICAgLy8gIGlzIHBhc3NlZCBhbG9uZyB0byBhbGwgdGhlIGNvbXBvbmVudCdzIGNoaWxkcmVuKVxuICAgIGNvbnN0IG5vcm1hbGl6ZWRDb25maWdPYmplY3QgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4oY29uZmlnT2JqZWN0LmdldFBDb25uZWN0KCkpO1xuICAgIC8vIFdlIHdhbnQgdGhlIGNoaWxkcmVuIHRvIGJlIHRoZSBQQ29ubmVjdCBpdHNlbGYsIG5vdCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgZ2V0UENvbm5lY3QoKSxcbiAgICAvLyAgU28gbmVlZCB0byBnZXQgdGhlIFBDb25uZWN0IG9mIHRoZSBub3JtYWxpemVkIGNvbXBvbmVudCB3ZSBqdXN0IGNyZWF0ZWQuLi5cbiAgICBjb25zdCBub3JtYWxpemVkQ29uZmlnT2JqZWN0QXNQQ29ubmVjdCA9IG5vcm1hbGl6ZWRDb25maWdPYmplY3QuZ2V0Q29tcG9uZW50KCk7XG5cbiAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5idWlsZE5hbWUkID0gdGhpcy5nZXRCdWlsZE5hbWUoKTtcbiAgICAgIC8vIHdoYXQgY29tZXMgYmFjayBub3cgaW4gY29uZmlnT2JqZWN0IGlzIHRoZSBjaGlsZHJlbiBvZiB0aGUgZmxvd0NvbnRhaW5lclxuXG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gW107XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kLnB1c2gobm9ybWFsaXplZENvbmZpZ09iamVjdEFzUENvbm5lY3QpO1xuXG4gICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG5cbiAgICAgIGNvbnN0IG9Xb3JrSXRlbSA9IGNvbmZpZ09iamVjdC5nZXRQQ29ubmVjdCgpO1xuICAgICAgY29uc3Qgb1dvcmtEYXRhOiBhbnkgPSBvV29ya0l0ZW0uZ2V0RGF0YU9iamVjdCgpO1xuXG4gICAgICB0aGlzLmNvbnRhaW5lck5hbWUkID0gdGhpcy5sb2NhbGl6ZWRWYWwodGhpcy5nZXRBY3RpdmVWaWV3TGFiZWwoKSB8fCBvV29ya0RhdGEuY2FzZUluZm8uYXNzaWdubWVudHM/LlswXS5uYW1lLCB1bmRlZmluZWQsIHRoaXMubG9jYWxlUmVmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEJ1aWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIC8vIGxldCB7IGdldFBDb25uZWN0LCBuYW1lIH0gPSB0aGlzLnBDb25uJC5wcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBsZXQgdmlld0NvbnRhaW5lck5hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCk7XG5cbiAgICBpZiAoIXZpZXdDb250YWluZXJOYW1lKSB2aWV3Q29udGFpbmVyTmFtZSA9ICcnO1xuICAgIHJldHVybiBgJHtjb250ZXh0LnRvVXBwZXJDYXNlKCl9LyR7dmlld0NvbnRhaW5lck5hbWUudG9VcHBlckNhc2UoKX1gO1xuICB9XG5cbiAgZm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMudG91Y2hBbGwoKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAkLnZhbGlkO1xuICB9XG5cbiAgdG91Y2hBbGwoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1Hcm91cCQuY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvcFZpZXdSZWZyZXNoKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAkLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBoZWxwZXJzIC0gY29weWllZCBmcm9tIGZsb3cgY29udGFpbmVyIGhlbHBlcnMuanNcblxuICBhZGRDb250YWluZXJJdGVtKHBDb25uZWN0KSB7XG4gICAgLy8gY29waWVkIGZyb20gZmxvdyBjb250YWluZXIgaGVscGVyLmpzXG4gICAgY29uc3QgY29udGFpbmVyTWFuYWdlciA9IHBDb25uZWN0LmdldENvbnRhaW5lck1hbmFnZXIoKTtcbiAgICBjb25zdCBjb250ZXh0TmFtZSA9IHBDb25uZWN0LmdldENvbnRleHROYW1lKCk7IC8vIGhlcmUgd2Ugd2lsbCBnZXQgcGFyZW50IGNvbnRleHQgbmFtZSwgYXMgZmxvdyBjb250YWluZXIgaXMgY2hpbGQgb2YgdmlldyBjb250YWluZXJcbiAgICBjb25zdCBjYXNlVmlld01vZGUgPSBwQ29ubmVjdC5nZXRWYWx1ZSgnY29udGV4dF9kYXRhLmNhc2VWaWV3TW9kZScpO1xuXG4gICAgbGV0IGtleTtcbiAgICBsZXQgZmxvd05hbWU7XG5cbiAgICBpZiAoY2FzZVZpZXdNb2RlICE9PSAncmV2aWV3Jykge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gY29udGV4dE5hbWUuc3Vic3RyaW5nKDAsIGNvbnRleHROYW1lLmxhc3RJbmRleE9mKCdfJykpO1xuICAgICAgY29uc3QgYWN0aXZlQ29udGFpbmVySXRlbUlEID0gUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRBY3RpdmVDb250YWluZXJJdGVtTmFtZSh0YXJnZXQpO1xuICAgICAgY29uc3QgY29udGFpbmVySXRlbURhdGEgPSBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmdldENvbnRhaW5lckl0ZW1EYXRhKHRhcmdldCwgYWN0aXZlQ29udGFpbmVySXRlbUlEKTtcblxuICAgICAgaWYgKGNvbnRhaW5lckl0ZW1EYXRhKSB7XG4gICAgICAgICh7IGtleSwgZmxvd05hbWUgfSA9IGNvbnRhaW5lckl0ZW1EYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb250YWluZXJNYW5hZ2VyLmFkZENvbnRhaW5lckl0ZW0oe1xuICAgICAgc2VtYW50aWNVUkw6ICcnLFxuICAgICAga2V5LFxuICAgICAgZmxvd05hbWUsXG4gICAgICBjYXNlVmlld01vZGU6ICdwZXJmb3JtJyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FTU0lHTk1FTlQnLFxuICAgICAgZGF0YTogcENvbm5lY3QuZ2V0RGF0YU9iamVjdChjb250ZXh0TmFtZSlcbiAgICB9KTtcbiAgfVxuICAvLyBoZWxwZXJzIGVuZFxufVxuIiwiPGRpdiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIiBjbGFzcz1cInBzZGstZmxvdy1jb250YWluZXItdG9wXCI+XG4gIDxkaXYgKm5nSWY9XCIhYlNob3dDb25maXJtXCI+XG4gICAgPGRpdiAqbmdJZj1cIiF0b2RvX3Nob3dUb2RvJFwiPlxuICAgICAgPGgyPnt7IGNvbnRhaW5lck5hbWUkIH19PC9oMj5cbiAgICAgIDxkaXYgKm5nSWY9XCJiYW5uZXJzPy5sZW5ndGhcIj5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkFsZXJ0QmFubmVyXCIgW3Byb3BzXT1cInsgYmFubmVycyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRvZG9fc2hvd1RvZG8kXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICAqbmdJZj1cInBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtXCJcbiAgICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIHBDb25uJDogcENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0sXG4gICAgICAgICAgY2FzZUluZm9JRCQ6IHRvZG9fY2FzZUluZm9JRCQsXG4gICAgICAgICAgZGF0YXNvdXJjZSQ6IHRvZG9fZGF0YXNvdXJjZSQsXG4gICAgICAgICAgc2hvd1RvZG9MaXN0JDogdG9kb19zaG93VG9kb0xpc3QkLFxuICAgICAgICAgIGhlYWRlclRleHQkOiB0b2RvX2hlYWRlclRleHQkLFxuICAgICAgICAgIHR5cGUkOiAnVE9ETycsXG4gICAgICAgICAgY29udGV4dCQ6IHRvZG9fY29udGV4dCQsXG4gICAgICAgICAgaXNDb25maXJtOiB0cnVlXG4gICAgICAgIH1cIlxuICAgICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXRvZG9fc2hvd1RvZG8kXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICAqbmdJZj1cInBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtXCJcbiAgICAgICAgbmFtZT1cIkFzc2lnbm1lbnRcIlxuICAgICAgICBbcHJvcHNdPVwieyBwQ29ubiQ6IHBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtLCBmb3JtR3JvdXAkLCBhckNoaWxkcmVuJCwgaXRlbUtleSQgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImJIYXNDYXNlTWVzc2FnZXMkXCI+XG4gICAgPG1hdC1jYXJkIGNsYXNzPVwicHNkay1tZXNzYWdlLWNhcmRcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93XCI+XG4gICAgICAgIDxkaXY+PGltZyBjbGFzcz1cInBzZGstaWNvblwiIHNyYz1cInt7IGNoZWNrU3ZnJCB9fVwiIC8+PC9kaXY+XG4gICAgICAgIDxkaXY+e3sgY2FzZU1lc3NhZ2VzJCB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJiU2hvd0Jhbm5lciAmJiBiU2hvd0NvbmZpcm1cIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJDogY29uZmlybV9wY29ubiB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs
CHANGED
|
@@ -44,17 +44,20 @@ export class ViewContainerComponent {
|
|
|
44
44
|
dispatchObject: this.dispatchObject,
|
|
45
45
|
visible: !PCore.checkIfSemanticURL()
|
|
46
46
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
if (sessionStorage.getItem('hasViewContainer') == 'false') {
|
|
48
|
+
containerMgr.initializeContainers({
|
|
49
|
+
type: mode === CONTAINER_TYPE.MULTIPLE ? CONTAINER_TYPE.MULTIPLE : CONTAINER_TYPE.SINGLE
|
|
50
|
+
});
|
|
51
|
+
if (mode === CONTAINER_TYPE.MULTIPLE && limit) {
|
|
52
|
+
/* NOTE: setContainerLimit use is temporary. It is a non-public, unsupported API. */
|
|
53
|
+
PCore.getContainerUtils().setContainerLimit(`${APP.APP}/${name}`, limit);
|
|
54
|
+
}
|
|
55
|
+
if (!PCore.checkIfSemanticURL())
|
|
56
|
+
containerMgr.addContainerItem(this.pConn$);
|
|
57
|
+
if (!this.displayOnlyFA$)
|
|
58
|
+
configureBrowserBookmark(this.pConn$);
|
|
59
|
+
sessionStorage.setItem('hasViewContainer', 'true');
|
|
53
60
|
}
|
|
54
|
-
if (!PCore.checkIfSemanticURL())
|
|
55
|
-
containerMgr.addContainerItem(this.pConn$);
|
|
56
|
-
if (!this.displayOnlyFA$)
|
|
57
|
-
configureBrowserBookmark(this.pConn$);
|
|
58
61
|
// cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).
|
|
59
62
|
// however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly
|
|
60
63
|
// without checking to update here in init, will initialize and this is correct
|
|
@@ -205,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
205
208
|
}], displayOnlyFA$: [{
|
|
206
209
|
type: Input
|
|
207
210
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBMEJwRCxNQUFNLE9BQU8sc0JBQXNCO0lBeUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7UUFGZCxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXZCeEIsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFPOUMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUlaLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQVlyQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFD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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29uZmlndXJlQnJvd3NlckJvb2ttYXJrIH0gZnJvbSAnLi9oZWxwZXInO1xuXG4vKipcbiAqIFdBUk5JTkc6ICBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5pbnRlcmZhY2UgVmlld0NvbnRhaW5lclByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBtb2RlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICByb3V0aW5nSW5mbzogb2JqZWN0O1xuICByZWFkT25seT86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12aWV3LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgVmlld0NvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZGlzcGxheU9ubHlGQSQ6IGJvb2xlYW47XG5cbiAgLy8gRm9yIGludGVyYWN0aW9uIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBWaWV3Q29udGFpbmVyUHJvcHM7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB0ZW1wbGF0ZU5hbWUkOiBzdHJpbmc7XG4gIGJ1aWxkTmFtZSQ6IHN0cmluZztcbiAgY29udGV4dCQ6IHN0cmluZztcbiAgdGl0bGUkID0gJyc7XG5cbiAgdmlld1BDb25uJDogYW55O1xuXG4gIGlzVmlld0NvbnRhaW5lciQgPSB0cnVlO1xuXG4gIC8vIEpBIC0gY3JlYXRlZCBvYmplY3QgaXMgbm93IGEgVmlldyB3aXRoIGEgVGVtcGxhdGVcbiAgLy8gIFVzZSBpdHMgUENvbm5lY3QgdG8gcmVuZGVyIHRoZSBDYXNlVmlldzsgRE9OJ1QgcmVwbGFjZSB0aGlzLnBDb25uJFxuICBjcmVhdGVkVmlld1BDb25uJDogYW55O1xuICBzdGF0ZTogYW55O1xuICBkaXNwYXRjaE9iamVjdDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRpc3BsYXlPbmx5RkEkID09IG51bGwpIHtcbiAgICAgIHRoaXMuZGlzcGxheU9ubHlGQSQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBkZWJ1Z2dlcjtcblxuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuXG4gICAgLy8gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMuYnVpbGROYW1lJCA9IHRoaXMuYnVpbGROYW1lKCk7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgVmlld0NvbnRhaW5lclByb3BzO1xuICAgIHRoaXMudGVtcGxhdGVOYW1lJCA9IHRoaXMuY29uZmlnUHJvcHMkLnRlbXBsYXRlIHx8ICcnO1xuICAgIHRoaXMudGl0bGUkID0gdGhpcy5jb25maWdQcm9wcyQudGl0bGUgfHwgJyc7XG4gICAgY29uc3QgeyBDT05UQUlORVJfVFlQRSwgQVBQIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcbiAgICBjb25zdCB7IG5hbWUsIG1vZGUsIGxpbWl0IH0gPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgVmlld0NvbnRhaW5lclByb3BzO1xuXG4gICAgdGhpcy5wQ29ubiQuaXNCb3VuZFRvU3RhdGUoKTtcblxuICAgIGNvbnN0IGNvbnRhaW5lck1nciA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck1hbmFnZXIoKTtcblxuICAgIHRoaXMucHJlcGFyZURpc3BhdGNoT2JqZWN0ID0gdGhpcy5wcmVwYXJlRGlzcGF0Y2hPYmplY3QuYmluZCh0aGlzKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hPYmplY3QgPSB0aGlzLnByZXBhcmVEaXNwYXRjaE9iamVjdCgpO1xuXG4gICAgLy8gVE9ETzogUGxhbiBpcyB0byByZW5hbWUgd2luZG93LmNvbnN0ZWxsYXRpb25Db3JlIHRvIHdpbmRvdy5wZWdhIChvciBzaW1pbGFyKVxuICAgIC8vICAgIEFuZCBleHBvc2UgbGVzcyB2aWEgdWktYm9vdHN0cmFwLmpzXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGRpc3BhdGNoT2JqZWN0OiB0aGlzLmRpc3BhdGNoT2JqZWN0LFxuICAgICAgdmlzaWJsZTogIVBDb3JlLmNoZWNrSWZTZW1hbnRpY1VSTCgpXG4gICAgfTtcbiAgICBjb250YWluZXJNZ3IuaW5pdGlhbGl6ZUNvbnRhaW5lcnMoe1xuICAgICAgdHlwZTogbW9kZSA9PT0gQ09OVEFJTkVSX1RZUEUuTVVMVElQTEUgPyBDT05UQUlORVJfVFlQRS5NVUxUSVBMRSA6IENPTlRBSU5FUl9UWVBFLlNJTkdMRVxuICAgIH0pO1xuXG4gICAgaWYgKG1vZGUgPT09IENPTlRBSU5FUl9UWVBFLk1VTFRJUExFICYmIGxpbWl0KSB7XG4gICAgICAvKiBOT1RFOiBzZXRDb250YWluZXJMaW1pdCB1c2UgaXMgdGVtcG9yYXJ5LiBJdCBpcyBhIG5vbi1wdWJsaWMsIHVuc3VwcG9ydGVkIEFQSS4gKi9cbiAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuc2V0Q29udGFpbmVyTGltaXQoYCR7QVBQLkFQUH0vJHtuYW1lfWAsIGxpbWl0KTtcbiAgICB9XG5cbiAgICBpZiAoIVBDb3JlLmNoZWNrSWZTZW1hbnRpY1VSTCgpKSBjb250YWluZXJNZ3IuYWRkQ29udGFpbmVySXRlbSh0aGlzLnBDb25uJCBhcyBhbnkpO1xuICAgIGlmICghdGhpcy5kaXNwbGF5T25seUZBJCkgY29uZmlndXJlQnJvd3NlckJvb2ttYXJrKHRoaXMucENvbm4kKTtcblxuICAgIC8vIGNhbm5vdCBjYWxsIGNoZWNrQW5kVXBkYXRlIGJlY2FzdWUgZmlyc3QgdGltZSB0aHJvdWdoLCB3aWxsIGNhbGwgdXBkYXRlU2VsZiBhbmQgdGhhdCBpcyBpbmNvcnJlY3QgKGNhdXNlcyBpc3N1ZXMpLlxuICAgIC8vIGhvd2V2ZXIsIG5lZWQgYW5ndWxhclBDb25uZWN0IHRvIGJlIGluaXRpYWxpemVkIHdpdGggY3VycmVudFByb3BzIGZvciBmdXR1cmUgdXBkYXRlcywgc28gY2FsbGluZyBzaG91bGRDb21wb25lbnRVcGRhdGUgZGlyZWN0bHlcbiAgICAvLyB3aXRob3V0IGNoZWNraW5nIHRvIHVwZGF0ZSBoZXJlIGluIGluaXQsIHdpbGwgaW5pdGlhbGl6ZSBhbmQgdGhpcyBpcyBjb3JyZWN0XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICAvLyAgICoqKiBET04nVCBjYWxsIHVwZGF0ZVNlbGYgaW4gbmdJbml0ISEgICoqKlxuXG4gICAgaWYgKHRoaXMuYXJDaGlsZHJlbiQgPT0gbnVsbCkge1xuICAgICAgLy8gY2hpbGRyZW4gbWF5IGhhdmUgYSAncmVmZXJlbmNlJyBzbyBub3JtYWxpemUgdGhlIGNoaWxkcmVuIGFycmF5XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkodGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgfVxuXG4gICAgLy8gcm91dGluZ0luZm8gd2FzIGFkZGVkIGFzIGNvbXBvbmVudCBwcm9wIGluIHBvcHVsYXRlQWRkaXRpb25hbFByb3BzXG4gICAgY29uc3Qgcm91dGluZ0luZm8gPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRQcm9wKHRoaXMsICdyb3V0aW5nSW5mbycpO1xuXG4gICAgbGV0IGxvYWRpbmdJbmZvO1xuICAgIHRyeSB7XG4gICAgICAvLyBAdHMtaWdub3JlIC0gUHJvcGVydHkgJ2dldExvYWRpbmdTdGF0dXMnIGlzIHByaXZhdGUgYW5kIG9ubHkgYWNjZXNzaWJsZSB3aXRoaW4gY2xhc3MgJ0MxMW5FbnYnXG4gICAgICBsb2FkaW5nSW5mbyA9IHRoaXMucENvbm4kLmdldExvYWRpbmdTdGF0dXMoKTtcblxuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UobG9hZGluZ0luZm8pO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGJ1aWxkTmFtZSA9IHRoaXMuYnVpbGROYW1lKCk7XG4gICAgY29uc3QgeyBDUkVBVEVfREVUQUlMU19WSUVXX05BTUUgfSA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGlmIChyb3V0aW5nSW5mbykge1xuICAgICAgY29uc3QgeyBhY2Nlc3NlZE9yZGVyLCBpdGVtcyB9ID0gcm91dGluZ0luZm87XG4gICAgICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgICAgICBjb25zdCBrZXkgPSBhY2Nlc3NlZE9yZGVyW2FjY2Vzc2VkT3JkZXIubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBjb21wb25lbnRWaXNpYmxlID0gYWNjZXNzZWRPcmRlci5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCB7IHZpc2libGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29tcG9uZW50VmlzaWJsZSA9IHZpc2libGUgfHwgY29tcG9uZW50VmlzaWJsZTtcbiAgICAgICAgaWYgKGl0ZW1zW2tleV0gJiYgaXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGl0ZW1zW2tleV0udmlldykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGxhdGVzdEl0ZW0gPSBpdGVtc1trZXldO1xuICAgICAgICAgIGNvbnN0IHJvb3RWaWV3ID0gbGF0ZXN0SXRlbS52aWV3O1xuICAgICAgICAgIGNvbnN0IHsgY29udGV4dCwgbmFtZTogdmlld05hbWUgfSA9IHJvb3RWaWV3LmNvbmZpZztcbiAgICAgICAgICBjb25zdCBjb25maWc6IGFueSA9IHsgbWV0YTogcm9vdFZpZXcgfTtcbiAgICAgICAgICBjb25maWcub3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGxhdGVzdEl0ZW0uY29udGV4dCxcbiAgICAgICAgICAgIHBhZ2VSZWZlcmVuY2U6IGNvbnRleHQgfHwgdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAgICAgY29udGFpbmVyTmFtZTogdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpLFxuICAgICAgICAgICAgY29udGFpbmVySXRlbU5hbWU6IGtleSxcbiAgICAgICAgICAgIGhhc0Zvcm06IHZpZXdOYW1lID09PSBDUkVBVEVfREVUQUlMU19WSUVXX05BTUVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgICAgICAgICAvLyBUSElTIGlzIHdoZXJlIHRoZSBWaWV3Q29udGFpbmVyIGNyZWF0ZXMgYSBWaWV3XG4gICAgICAgICAgLy8gICAgVGhlIGNvbmZpZyBoYXMgbWV0YS5jb25maWcudHlwZSA9IFwidmlld1wiXG4gICAgICAgICAgY29uc3QgbmV3Q29tcCA9IGNvbmZpZ09iamVjdC5nZXRQQ29ubmVjdCgpO1xuICAgICAgICAgIC8vIGNvbnN0IG5ld0NvbXBOYW1lID0gbmV3Q29tcC5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgICAgICAgLy8gVGhlIG1ldGFkYXRhIGZvciBweURldGFpbHMgY2hhbmdlZCBzdWNoIHRoYXQgdGhlIFwidGVtcGxhdGVcIjogXCJDYXNlVmlld1wiXG4gICAgICAgICAgLy8gIGlzIG5vIGxvbmdlciBhIGNoaWxkIG9mIHRoZSBjcmVhdGVkIFZpZXcgYnV0IGlzIGluIHRoZSBjcmVhdGVkIFZpZXcnc1xuICAgICAgICAgIC8vICBjb25maWcuIFNvLCB3ZSBET04nVCB3YW50IHRvIHJlcGxhY2UgdGhpcy5wQ29ubiQgc2luY2UgdGhlIGNyZWF0ZWRcbiAgICAgICAgICAvLyAgY29tcG9uZW50IGlzIGEgVmlldyAoYW5kIG5vdCBhIFZpZXdDb250YWluZXIpLiBXZSBub3cgbG9vayBmb3IgdGhlXG4gICAgICAgICAgLy8gIFwidGVtcGxhdGVcIiB0eXBlIGRpcmVjdGx5IGluIHRoZSBjcmVhdGVkIGNvbXBvbmVudCAobmV3Q29tcCkgYW5kIE5PVFxuICAgICAgICAgIC8vICBhcyBhIGNoaWxkIG9mIHRoZSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudC5cblxuICAgICAgICAgIC8vIFVzZSB0aGUgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQgKFZpZXcpIGluZm8gYnV0IERPIE5PVCByZXBsYWNlXG4gICAgICAgICAgLy8gIHRoaXMgVmlld0NvbnRhaW5lcidzIHBDb25uJCwgZXRjLlxuICAgICAgICAgIC8vICBOb3RlIHRoYXQgd2UncmUgbm93IHVzaW5nIHRoZSBuZXdseSBjcmVhdGVkIFZpZXcncyBQQ29ubmVjdCBpbiB0aGVcbiAgICAgICAgICAvLyAgVmlld0NvbnRhaW5lciBIVE1MIHRlbXBsYXRlIHRvIGd1aWRlIHdoYXQncyByZW5kZXJlZCBzaW1pbGFyIHRvIHdoYXRcbiAgICAgICAgICAvLyAgdGhlIE5lYnVsYS9Db25zdGVsbGF0aW9uIHJldHVybiBvZiBSZWFjdC5GcmFnbWVudCBkb2VzXG5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld0NvbXAuZ2V0Q29tcG9uZW50TmFtZSgpID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICAgICAgICAvLyBpZiBhIHJlZmVybmVjZSwgaXQgd2lsbCBkZSByZWZlcmVuY2UgdG8gYSBcInZpZXdcIlxuICAgICAgICAgICAgICAvLyBzbyBoYW5kIHRoaXMgb2ZmIHRvIHRoZSBcIlZpZXdcIiBjb21wb25lbnQgdG8gZG8gdGhhdFxuICAgICAgICAgICAgICB0aGlzLmlzVmlld0NvbnRhaW5lciQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy52aWV3UENvbm4kID0gbmV3Q29tcDtcblxuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgKioqICB0aGlzIGNvbW1tZW50ZWQgb3V0IGNvZGUgc2hvdWxkIGJlIHJlbW92ZWQsIG9uY2Ugd2UgdGVzdCBvdXQgdGhhdFxuICAgICAgICAgICAgICAgKioqICBoYW5kaW5nIG9mZiByZWZlcm5jZSB0byBWaWV3IGNvbXBvbmVudCBhbHdheXMgd29ya3NcbiAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgLy8gV2hlbiBuZXdDb21wIGlzIGEgcmVmZXJlbmNlLCB3ZSB3YW50IHRvIGRlLXJlZmVyZW5jZVxuICAgICAgICAgICAgICAvLyAgaXQgKHRvIGdldCB0aGUgVmlldykgYW5kIHRoZW4gdXNlIHRoYXQgVmlldyB0byBnZXQgdGhlXG4gICAgICAgICAgICAgIC8vICB0ZW1wbGF0ZSwgdGl0bGUsIGNoaWxkcmVuLCBldGMuXG5cbiAgICAgICAgICAgICAgLypcblxuICAgICAgICAgICAgICBjb25zdCB0aGVEZXJlZmVyZW5jZWRWaWV3ID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKG5ld0NvbXApO1xuICAgICAgICAgICAgICBjb25zdCBuZXdDb25maWdQcm9wcyA9IHRoZURlcmVmZXJlbmNlZFZpZXcuZ2V0Q29uZmlnUHJvcHMoKTtcblxuICAgICAgICAgICAgICAvLyBjaGlsZHJlbiBtYXkgaGF2ZSBhICdyZWZlcmVuY2UnIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4gYXJyYVxuXG4gICAgICAgICAgICAgIGNvbnN0IHRoZURlcmVmZXJlbmNlZFZpZXdDaGlsZHJlbiA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KHRoZURlcmVmZXJlbmNlZFZpZXcuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVOYW1lJCA9ICgndGVtcGxhdGUnIGluIG5ld0NvbmZpZ1Byb3BzKSA/IG5ld0NvbmZpZ1Byb3BzW1widGVtcGxhdGVcIl0gOiBcIlwiO1xuICAgICAgICAgICAgICB0aGlzLnRpdGxlJCA9ICgndGl0bGUnIGluIG5ld0NvbmZpZ1Byb3BzKSA/IG5ld0NvbmZpZ1Byb3BzW1widGl0bGVcIl0gOiBcIlwiO1xuICAgICAgICAgICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhlRGVyZWZlcmVuY2VkVmlld0NoaWxkcmVuO1xuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZWRWaWV3UENvbm4kID0gdGhlRGVyZWZlcmVuY2VkVmlldztcbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIG9sZCBzdHlsZSB3aGVuIG5ld0NvbXAgaXMgTk9UIGEgJ3JlZmVyZW5jZSdcbiAgICAgICAgICAgICAgdGhpcy5pc1ZpZXdDb250YWluZXIkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBWaWV3Q29udGFpbmVyIGhhcyBhIG5ld0NvbXAgdGhhdCBpcyBOT1QgYSByZWZlcmVuY2UhYCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVkVmlld1BDb25uJCA9IG5ld0NvbXA7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0NvbmZpZ1Byb3BzID0gbmV3Q29tcC5nZXRDb25maWdQcm9wcygpO1xuICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSBuZXdDb25maWdQcm9wcy50ZW1wbGF0ZSB8fCAnJztcbiAgICAgICAgICAgICAgdGhpcy50aXRsZSQgPSBuZXdDb25maWdQcm9wcy50aXRsZSB8fCAnJztcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkcmVuIHdpdGggbmV3IHZpZXcncyBjaGlsZHJlblxuICAgICAgICAgICAgICAvLyBjaGlsZHJlbiBtYXkgaGF2ZSBhICdyZWZlcmVuY2UnIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4gYXJyYXlcbiAgICAgICAgICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KG5ld0NvbXAuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRGlzcGF0Y2hPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gY29uc3QgeyBhY05hbWUgPSBcInByaW1hcnlcIiB9ID0gcENvbm4uZ2V0Q29udGFpbmVyTmFtZSgpOyAvLyBkb2Vzbid0IHdvcmsgd2l0aCA4LjIzIHR5cGluZ3NcbiAgICBjb25zdCBhY05hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCkgfHwgJ3ByaW1hcnknO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbWFudGljVVJMOiAnJyxcbiAgICAgIGNvbnRleHQ6IGJhc2VDb250ZXh0LFxuICAgICAgYWNOYW1lXG4gICAgfTtcbiAgfVxuXG4gIGJ1aWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCBzTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcblxuICAgIHJldHVybiBgJHtzQ29udGV4dC50b1VwcGVyQ2FzZSgpfS8ke3NOYW1lLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstdmlldy1jb250YWluZXItdG9wXCIgaWQ9XCJ7eyBidWlsZE5hbWUkIH19XCI+XG4gIDxkaXYgKm5nSWY9XCJpc1ZpZXdDb250YWluZXIkOyBlbHNlIGlzUmVmZXJlbmNlXCI+XG4gICAgPGgzICpuZ0lmPVwidGl0bGUkICE9PSAnJ1wiPnt7IHRpdGxlJCB9fTwvaDM+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlTmFtZSQ7IGVsc2Ugc2hvd0NoaWxkcmVuXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICBbbmFtZV09XCJ0ZW1wbGF0ZU5hbWUkXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBwQ29ubiQ6IGNyZWF0ZWRWaWV3UENvbm4kLFxuICAgICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCQsXG4gICAgICAgICAgZGlzcGxheU9ubHlGQSQ6IGRpc3BsYXlPbmx5RkEkXG4gICAgICAgIH1cIlxuICAgICAgICBlcnJvck1zZz1cIlZpZXcgQ29udGFpbmVyIG1pc3NpbmcgVGVtcGxhdGUge3sgdGVtcGxhdGVOYW1lJCB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0NoaWxkcmVuPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgICAgIGRpc3BsYXlPbmx5RkEkOiBkaXNwbGF5T25seUZBJFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIGVycm9yTXNnPVwiVmlld0NvbnRhaW5lciBNaXNzaW5nIChubyB0ZW1wbGF0ZSk6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNpc1JlZmVyZW5jZT5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJDogdmlld1BDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBMEJwRCxNQUFNLE9BQU8sc0JBQXNCO0lBeUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7UUFGZCxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXZCeEIsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFPOUMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUlaLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQVlyQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFD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LFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztxSkFHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb25maWd1cmVCcm93c2VyQm9va21hcmsgfSBmcm9tICcuL2hlbHBlcic7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbmludGVyZmFjZSBWaWV3Q29udGFpbmVyUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHJvdXRpbmdJbmZvOiBvYmplY3Q7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcblxuICAvLyBGb3IgaW50ZXJhY3Rpb24gd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IFZpZXdDb250YWluZXJQcm9wcztcblxuICBhckNoaWxkcmVuJDogYW55W107XG4gIHRlbXBsYXRlTmFtZSQ6IHN0cmluZztcbiAgYnVpbGROYW1lJDogc3RyaW5nO1xuICBjb250ZXh0JDogc3RyaW5nO1xuICB0aXRsZSQgPSAnJztcblxuICB2aWV3UENvbm4kOiBhbnk7XG5cbiAgaXNWaWV3Q29udGFpbmVyJCA9IHRydWU7XG5cbiAgLy8gSkEgLSBjcmVhdGVkIG9iamVjdCBpcyBub3cgYSBWaWV3IHdpdGggYSBUZW1wbGF0ZVxuICAvLyAgVXNlIGl0cyBQQ29ubmVjdCB0byByZW5kZXIgdGhlIENhc2VWaWV3OyBET04nVCByZXBsYWNlIHRoaXMucENvbm4kXG4gIGNyZWF0ZWRWaWV3UENvbm4kOiBhbnk7XG4gIHN0YXRlOiBhbnk7XG4gIGRpc3BhdGNoT2JqZWN0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheU9ubHlGQSQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5kaXNwbGF5T25seUZBJCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG5cbiAgICAvLyAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgLy8gY2hpbGRyZW4gbWF5IGhhdmUgYSAncmVmZXJlbmNlJyBzbyBub3JtYWxpemUgdGhlIGNoaWxkcmVuIGFycmF5XG4gICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkpO1xuXG4gICAgdGhpcy5idWlsZE5hbWUkID0gdGhpcy5idWlsZE5hbWUoKTtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3Q29udGFpbmVyUHJvcHM7XG4gICAgdGhpcy50ZW1wbGF0ZU5hbWUkID0gdGhpcy5jb25maWdQcm9wcyQudGVtcGxhdGUgfHwgJyc7XG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZSB8fCAnJztcbiAgICBjb25zdCB7IENPTlRBSU5FUl9UWVBFLCBBUFAgfSA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGNvbnN0IHsgbmFtZSwgbW9kZSwgbGltaXQgfSA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3Q29udGFpbmVyUHJvcHM7XG5cbiAgICB0aGlzLnBDb25uJC5pc0JvdW5kVG9TdGF0ZSgpO1xuXG4gICAgY29uc3QgY29udGFpbmVyTWdyID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTWFuYWdlcigpO1xuXG4gICAgdGhpcy5wcmVwYXJlRGlzcGF0Y2hPYmplY3QgPSB0aGlzLnByZXBhcmVEaXNwYXRjaE9iamVjdC5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5kaXNwYXRjaE9iamVjdCA9IHRoaXMucHJlcGFyZURpc3BhdGNoT2JqZWN0KCk7XG5cbiAgICAvLyBUT0RPOiBQbGFuIGlzIHRvIHJlbmFtZSB3aW5kb3cuY29uc3RlbGxhdGlvbkNvcmUgdG8gd2luZG93LnBlZ2EgKG9yIHNpbWlsYXIpXG4gICAgLy8gICAgQW5kIGV4cG9zZSBsZXNzIHZpYSB1aS1ib290c3RyYXAuanNcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGlzcGF0Y2hPYmplY3Q6IHRoaXMuZGlzcGF0Y2hPYmplY3QsXG4gICAgICB2aXNpYmxlOiAhUENvcmUuY2hlY2tJZlNlbWFudGljVVJMKClcbiAgICB9O1xuXG4gICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInKSA9PSAnZmFsc2UnKSB7XG4gICAgICBjb250YWluZXJNZ3IuaW5pdGlhbGl6ZUNvbnRhaW5lcnMoe1xuICAgICAgICB0eXBlOiBtb2RlID09PSBDT05UQUlORVJfVFlQRS5NVUxUSVBMRSA/IENPTlRBSU5FUl9UWVBFLk1VTFRJUExFIDogQ09OVEFJTkVSX1RZUEUuU0lOR0xFXG4gICAgICB9KTtcblxuICAgICAgaWYgKG1vZGUgPT09IENPTlRBSU5FUl9UWVBFLk1VTFRJUExFICYmIGxpbWl0KSB7XG4gICAgICAgIC8qIE5PVEU6IHNldENvbnRhaW5lckxpbWl0IHVzZSBpcyB0ZW1wb3JhcnkuIEl0IGlzIGEgbm9uLXB1YmxpYywgdW5zdXBwb3J0ZWQgQVBJLiAqL1xuICAgICAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLnNldENvbnRhaW5lckxpbWl0KGAke0FQUC5BUFB9LyR7bmFtZX1gLCBsaW1pdCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghUENvcmUuY2hlY2tJZlNlbWFudGljVVJMKCkpIGNvbnRhaW5lck1nci5hZGRDb250YWluZXJJdGVtKHRoaXMucENvbm4kIGFzIGFueSk7XG4gICAgICBpZiAoIXRoaXMuZGlzcGxheU9ubHlGQSQpIGNvbmZpZ3VyZUJyb3dzZXJCb29rbWFyayh0aGlzLnBDb25uJCk7XG5cbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIC8vIGNhbm5vdCBjYWxsIGNoZWNrQW5kVXBkYXRlIGJlY2FzdWUgZmlyc3QgdGltZSB0aHJvdWdoLCB3aWxsIGNhbGwgdXBkYXRlU2VsZiBhbmQgdGhhdCBpcyBpbmNvcnJlY3QgKGNhdXNlcyBpc3N1ZXMpLlxuICAgIC8vIGhvd2V2ZXIsIG5lZWQgYW5ndWxhclBDb25uZWN0IHRvIGJlIGluaXRpYWxpemVkIHdpdGggY3VycmVudFByb3BzIGZvciBmdXR1cmUgdXBkYXRlcywgc28gY2FsbGluZyBzaG91bGRDb21wb25lbnRVcGRhdGUgZGlyZWN0bHlcbiAgICAvLyB3aXRob3V0IGNoZWNraW5nIHRvIHVwZGF0ZSBoZXJlIGluIGluaXQsIHdpbGwgaW5pdGlhbGl6ZSBhbmQgdGhpcyBpcyBjb3JyZWN0XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICAvLyAgICoqKiBET04nVCBjYWxsIHVwZGF0ZVNlbGYgaW4gbmdJbml0ISEgICoqKlxuXG4gICAgaWYgKHRoaXMuYXJDaGlsZHJlbiQgPT0gbnVsbCkge1xuICAgICAgLy8gY2hpbGRyZW4gbWF5IGhhdmUgYSAncmVmZXJlbmNlJyBzbyBub3JtYWxpemUgdGhlIGNoaWxkcmVuIGFycmF5XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkodGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgfVxuXG4gICAgLy8gcm91dGluZ0luZm8gd2FzIGFkZGVkIGFzIGNvbXBvbmVudCBwcm9wIGluIHBvcHVsYXRlQWRkaXRpb25hbFByb3BzXG4gICAgY29uc3Qgcm91dGluZ0luZm8gPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRQcm9wKHRoaXMsICdyb3V0aW5nSW5mbycpO1xuXG4gICAgbGV0IGxvYWRpbmdJbmZvO1xuICAgIHRyeSB7XG4gICAgICAvLyBAdHMtaWdub3JlIC0gUHJvcGVydHkgJ2dldExvYWRpbmdTdGF0dXMnIGlzIHByaXZhdGUgYW5kIG9ubHkgYWNjZXNzaWJsZSB3aXRoaW4gY2xhc3MgJ0MxMW5FbnYnXG4gICAgICBsb2FkaW5nSW5mbyA9IHRoaXMucENvbm4kLmdldExvYWRpbmdTdGF0dXMoKTtcblxuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UobG9hZGluZ0luZm8pO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGJ1aWxkTmFtZSA9IHRoaXMuYnVpbGROYW1lKCk7XG4gICAgY29uc3QgeyBDUkVBVEVfREVUQUlMU19WSUVXX05BTUUgfSA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGlmIChyb3V0aW5nSW5mbykge1xuICAgICAgY29uc3QgeyBhY2Nlc3NlZE9yZGVyLCBpdGVtcyB9ID0gcm91dGluZ0luZm87XG4gICAgICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgICAgICBjb25zdCBrZXkgPSBhY2Nlc3NlZE9yZGVyW2FjY2Vzc2VkT3JkZXIubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBjb21wb25lbnRWaXNpYmxlID0gYWNjZXNzZWRPcmRlci5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCB7IHZpc2libGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29tcG9uZW50VmlzaWJsZSA9IHZpc2libGUgfHwgY29tcG9uZW50VmlzaWJsZTtcbiAgICAgICAgaWYgKGl0ZW1zW2tleV0gJiYgaXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGl0ZW1zW2tleV0udmlldykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGxhdGVzdEl0ZW0gPSBpdGVtc1trZXldO1xuICAgICAgICAgIGNvbnN0IHJvb3RWaWV3ID0gbGF0ZXN0SXRlbS52aWV3O1xuICAgICAgICAgIGNvbnN0IHsgY29udGV4dCwgbmFtZTogdmlld05hbWUgfSA9IHJvb3RWaWV3LmNvbmZpZztcbiAgICAgICAgICBjb25zdCBjb25maWc6IGFueSA9IHsgbWV0YTogcm9vdFZpZXcgfTtcbiAgICAgICAgICBjb25maWcub3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGxhdGVzdEl0ZW0uY29udGV4dCxcbiAgICAgICAgICAgIHBhZ2VSZWZlcmVuY2U6IGNvbnRleHQgfHwgdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAgICAgY29udGFpbmVyTmFtZTogdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpLFxuICAgICAgICAgICAgY29udGFpbmVySXRlbU5hbWU6IGtleSxcbiAgICAgICAgICAgIGhhc0Zvcm06IHZpZXdOYW1lID09PSBDUkVBVEVfREVUQUlMU19WSUVXX05BTUVcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ09iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgICAgICAgICAvLyBUSElTIGlzIHdoZXJlIHRoZSBWaWV3Q29udGFpbmVyIGNyZWF0ZXMgYSBWaWV3XG4gICAgICAgICAgLy8gICAgVGhlIGNvbmZpZyBoYXMgbWV0YS5jb25maWcudHlwZSA9IFwidmlld1wiXG4gICAgICAgICAgY29uc3QgbmV3Q29tcCA9IGNvbmZpZ09iamVjdC5nZXRQQ29ubmVjdCgpO1xuICAgICAgICAgIC8vIGNvbnN0IG5ld0NvbXBOYW1lID0gbmV3Q29tcC5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgICAgICAgLy8gVGhlIG1ldGFkYXRhIGZvciBweURldGFpbHMgY2hhbmdlZCBzdWNoIHRoYXQgdGhlIFwidGVtcGxhdGVcIjogXCJDYXNlVmlld1wiXG4gICAgICAgICAgLy8gIGlzIG5vIGxvbmdlciBhIGNoaWxkIG9mIHRoZSBjcmVhdGVkIFZpZXcgYnV0IGlzIGluIHRoZSBjcmVhdGVkIFZpZXcnc1xuICAgICAgICAgIC8vICBjb25maWcuIFNvLCB3ZSBET04nVCB3YW50IHRvIHJlcGxhY2UgdGhpcy5wQ29ubiQgc2luY2UgdGhlIGNyZWF0ZWRcbiAgICAgICAgICAvLyAgY29tcG9uZW50IGlzIGEgVmlldyAoYW5kIG5vdCBhIFZpZXdDb250YWluZXIpLiBXZSBub3cgbG9vayBmb3IgdGhlXG4gICAgICAgICAgLy8gIFwidGVtcGxhdGVcIiB0eXBlIGRpcmVjdGx5IGluIHRoZSBjcmVhdGVkIGNvbXBvbmVudCAobmV3Q29tcCkgYW5kIE5PVFxuICAgICAgICAgIC8vICBhcyBhIGNoaWxkIG9mIHRoZSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudC5cblxuICAgICAgICAgIC8vIFVzZSB0aGUgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQgKFZpZXcpIGluZm8gYnV0IERPIE5PVCByZXBsYWNlXG4gICAgICAgICAgLy8gIHRoaXMgVmlld0NvbnRhaW5lcidzIHBDb25uJCwgZXRjLlxuICAgICAgICAgIC8vICBOb3RlIHRoYXQgd2UncmUgbm93IHVzaW5nIHRoZSBuZXdseSBjcmVhdGVkIFZpZXcncyBQQ29ubmVjdCBpbiB0aGVcbiAgICAgICAgICAvLyAgVmlld0NvbnRhaW5lciBIVE1MIHRlbXBsYXRlIHRvIGd1aWRlIHdoYXQncyByZW5kZXJlZCBzaW1pbGFyIHRvIHdoYXRcbiAgICAgICAgICAvLyAgdGhlIE5lYnVsYS9Db25zdGVsbGF0aW9uIHJldHVybiBvZiBSZWFjdC5GcmFnbWVudCBkb2VzXG5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld0NvbXAuZ2V0Q29tcG9uZW50TmFtZSgpID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICAgICAgICAvLyBpZiBhIHJlZmVybmVjZSwgaXQgd2lsbCBkZSByZWZlcmVuY2UgdG8gYSBcInZpZXdcIlxuICAgICAgICAgICAgICAvLyBzbyBoYW5kIHRoaXMgb2ZmIHRvIHRoZSBcIlZpZXdcIiBjb21wb25lbnQgdG8gZG8gdGhhdFxuICAgICAgICAgICAgICB0aGlzLmlzVmlld0NvbnRhaW5lciQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy52aWV3UENvbm4kID0gbmV3Q29tcDtcblxuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgKioqICB0aGlzIGNvbW1tZW50ZWQgb3V0IGNvZGUgc2hvdWxkIGJlIHJlbW92ZWQsIG9uY2Ugd2UgdGVzdCBvdXQgdGhhdFxuICAgICAgICAgICAgICAgKioqICBoYW5kaW5nIG9mZiByZWZlcm5jZSB0byBWaWV3IGNvbXBvbmVudCBhbHdheXMgd29ya3NcbiAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgLy8gV2hlbiBuZXdDb21wIGlzIGEgcmVmZXJlbmNlLCB3ZSB3YW50IHRvIGRlLXJlZmVyZW5jZVxuICAgICAgICAgICAgICAvLyAgaXQgKHRvIGdldCB0aGUgVmlldykgYW5kIHRoZW4gdXNlIHRoYXQgVmlldyB0byBnZXQgdGhlXG4gICAgICAgICAgICAgIC8vICB0ZW1wbGF0ZSwgdGl0bGUsIGNoaWxkcmVuLCBldGMuXG5cbiAgICAgICAgICAgICAgLypcblxuICAgICAgICAgICAgICBjb25zdCB0aGVEZXJlZmVyZW5jZWRWaWV3ID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKG5ld0NvbXApO1xuICAgICAgICAgICAgICBjb25zdCBuZXdDb25maWdQcm9wcyA9IHRoZURlcmVmZXJlbmNlZFZpZXcuZ2V0Q29uZmlnUHJvcHMoKTtcblxuICAgICAgICAgICAgICAvLyBjaGlsZHJlbiBtYXkgaGF2ZSBhICdyZWZlcmVuY2UnIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4gYXJyYVxuXG4gICAgICAgICAgICAgIGNvbnN0IHRoZURlcmVmZXJlbmNlZFZpZXdDaGlsZHJlbiA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KHRoZURlcmVmZXJlbmNlZFZpZXcuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVOYW1lJCA9ICgndGVtcGxhdGUnIGluIG5ld0NvbmZpZ1Byb3BzKSA/IG5ld0NvbmZpZ1Byb3BzW1widGVtcGxhdGVcIl0gOiBcIlwiO1xuICAgICAgICAgICAgICB0aGlzLnRpdGxlJCA9ICgndGl0bGUnIGluIG5ld0NvbmZpZ1Byb3BzKSA/IG5ld0NvbmZpZ1Byb3BzW1widGl0bGVcIl0gOiBcIlwiO1xuICAgICAgICAgICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhlRGVyZWZlcmVuY2VkVmlld0NoaWxkcmVuO1xuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZWRWaWV3UENvbm4kID0gdGhlRGVyZWZlcmVuY2VkVmlldztcbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIG9sZCBzdHlsZSB3aGVuIG5ld0NvbXAgaXMgTk9UIGEgJ3JlZmVyZW5jZSdcbiAgICAgICAgICAgICAgdGhpcy5pc1ZpZXdDb250YWluZXIkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBWaWV3Q29udGFpbmVyIGhhcyBhIG5ld0NvbXAgdGhhdCBpcyBOT1QgYSByZWZlcmVuY2UhYCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVkVmlld1BDb25uJCA9IG5ld0NvbXA7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0NvbmZpZ1Byb3BzID0gbmV3Q29tcC5nZXRDb25maWdQcm9wcygpO1xuICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSBuZXdDb25maWdQcm9wcy50ZW1wbGF0ZSB8fCAnJztcbiAgICAgICAgICAgICAgdGhpcy50aXRsZSQgPSBuZXdDb25maWdQcm9wcy50aXRsZSB8fCAnJztcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkcmVuIHdpdGggbmV3IHZpZXcncyBjaGlsZHJlblxuICAgICAgICAgICAgICAvLyBjaGlsZHJlbiBtYXkgaGF2ZSBhICdyZWZlcmVuY2UnIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4gYXJyYXlcbiAgICAgICAgICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KG5ld0NvbXAuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRGlzcGF0Y2hPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gY29uc3QgeyBhY05hbWUgPSBcInByaW1hcnlcIiB9ID0gcENvbm4uZ2V0Q29udGFpbmVyTmFtZSgpOyAvLyBkb2Vzbid0IHdvcmsgd2l0aCA4LjIzIHR5cGluZ3NcbiAgICBjb25zdCBhY05hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCkgfHwgJ3ByaW1hcnknO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbWFudGljVVJMOiAnJyxcbiAgICAgIGNvbnRleHQ6IGJhc2VDb250ZXh0LFxuICAgICAgYWNOYW1lXG4gICAgfTtcbiAgfVxuXG4gIGJ1aWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCBzTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcblxuICAgIHJldHVybiBgJHtzQ29udGV4dC50b1VwcGVyQ2FzZSgpfS8ke3NOYW1lLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstdmlldy1jb250YWluZXItdG9wXCIgaWQ9XCJ7eyBidWlsZE5hbWUkIH19XCI+XG4gIDxkaXYgKm5nSWY9XCJpc1ZpZXdDb250YWluZXIkOyBlbHNlIGlzUmVmZXJlbmNlXCI+XG4gICAgPGgzICpuZ0lmPVwidGl0bGUkICE9PSAnJ1wiPnt7IHRpdGxlJCB9fTwvaDM+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlTmFtZSQ7IGVsc2Ugc2hvd0NoaWxkcmVuXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICBbbmFtZV09XCJ0ZW1wbGF0ZU5hbWUkXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBwQ29ubiQ6IGNyZWF0ZWRWaWV3UENvbm4kLFxuICAgICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCQsXG4gICAgICAgICAgZGlzcGxheU9ubHlGQSQ6IGRpc3BsYXlPbmx5RkEkXG4gICAgICAgIH1cIlxuICAgICAgICBlcnJvck1zZz1cIlZpZXcgQ29udGFpbmVyIG1pc3NpbmcgVGVtcGxhdGUge3sgdGVtcGxhdGVOYW1lJCB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0NoaWxkcmVuPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgICAgIGRpc3BsYXlPbmx5RkEkOiBkaXNwbGF5T25seUZBJFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIGVycm9yTXNnPVwiVmlld0NvbnRhaW5lciBNaXNzaW5nIChubyB0ZW1wbGF0ZSk6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNpc1JlZmVyZW5jZT5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJDogdmlld1BDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|