@mediusinc/mng-commons 0.14.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/api/models/query-result.model.mjs +7 -1
- package/esm2020/lib/components/action/action.component.mjs +7 -7
- package/esm2020/lib/components/action/editor/action-editor.component.mjs +5 -5
- package/esm2020/lib/components/form/date-range/date-range.component.mjs +5 -2
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +14 -13
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +5 -4
- package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +3 -3
- package/esm2020/lib/components/tableview/table/table.component.mjs +18 -4
- package/esm2020/lib/components/tableview/tableview.component.mjs +17 -4
- package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +15 -44
- package/esm2020/lib/descriptors/action-button.descriptor.mjs +60 -0
- package/esm2020/lib/descriptors/action.descriptor.mjs +27 -22
- package/esm2020/lib/descriptors/column.descriptor.mjs +1 -1
- package/esm2020/lib/descriptors/filter.descriptor.mjs +7 -3
- package/esm2020/lib/descriptors/index.mjs +2 -2
- package/esm2020/lib/descriptors/types/action.type.mjs +1 -28
- package/esm2020/lib/mng-commons.module.mjs +4 -11
- package/esm2020/lib/services/action-executor.service.mjs +23 -20
- package/esm2020/lib/styles/button-style.builder.mjs +30 -28
- package/esm2020/lib/styles/models/index.mjs +3 -0
- package/esm2020/lib/styles/models/style-level.enum.mjs +12 -0
- package/esm2020/lib/styles/models/style-size.enum.mjs +9 -0
- package/esm2020/lib/styles/styles.util.mjs +9 -8
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/mediusinc-mng-commons.mjs +249 -338
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
- package/fesm2020/mediusinc-mng-commons.mjs +244 -331
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
- package/lib/api/models/query-result.model.d.ts +1 -0
- package/lib/components/tableview/table/table.component.d.ts +2 -0
- package/lib/components/tableview/tableview.component.d.ts +7 -3
- package/lib/descriptors/action/action-confirmation.descriptor.d.ts +7 -19
- package/lib/descriptors/action-button.descriptor.d.ts +22 -0
- package/lib/descriptors/action.descriptor.d.ts +15 -13
- package/lib/descriptors/index.d.ts +1 -1
- package/lib/descriptors/types/action.type.d.ts +0 -24
- package/lib/mng-commons.module.d.ts +41 -42
- package/lib/styles/button-style.builder.d.ts +8 -8
- package/lib/styles/models/index.d.ts +2 -0
- package/lib/styles/models/style-level.enum.d.ts +10 -0
- package/lib/styles/models/style-size.enum.d.ts +7 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/templates/tableview-route.component.html +1 -1
- package/version-info.json +5 -5
- package/esm2020/lib/components/button/button.component.mjs +0 -46
- package/esm2020/lib/components/button/index.mjs +0 -2
- package/esm2020/lib/descriptors/button.descriptor.mjs +0 -111
- package/lib/components/button/button.component.d.ts +0 -16
- package/lib/components/button/index.d.ts +0 -1
- package/lib/descriptors/button.descriptor.d.ts +0 -40
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export class MediusQueryResult {
|
|
2
|
+
static fromArray(pageData, allDataCount) {
|
|
3
|
+
const mqr = new MediusQueryResult();
|
|
4
|
+
mqr.allDataCount = allDataCount ?? pageData.length;
|
|
5
|
+
mqr.pageData = pageData;
|
|
6
|
+
return mqr;
|
|
7
|
+
}
|
|
2
8
|
static getAttributeTypeMap() {
|
|
3
9
|
return MediusQueryResult.attributeTypeMap;
|
|
4
10
|
}
|
|
@@ -15,4 +21,4 @@ MediusQueryResult.attributeTypeMap = [
|
|
|
15
21
|
type: 'Array<T>'
|
|
16
22
|
}
|
|
17
23
|
];
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvbW9kZWxzL3F1ZXJ5LXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLE1BQU0sQ0FBQyxTQUFTLENBQUksUUFBYSxFQUFFLFlBQXFCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNwQyxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQWVELE1BQU0sQ0FBQyxtQkFBbUI7UUFDdEIsT0FBTyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztJQUM5QyxDQUFDOztBQWZNLGtDQUFnQixHQUF3QjtJQUMzQztRQUNJLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxVQUFVO1FBQ2hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxVQUFVO0tBQ25CO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBPcGVuYXBpIEdlbmVyYXRvciBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjBcbiAqXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+IGltcGxlbWVudHMgSU1lZGl1c1F1ZXJ5UmVzdWx0PFQ+IHtcbiAgICBhbGxEYXRhQ291bnQ/OiBudW1iZXI7XG4gICAgcGFnZURhdGE/OiBBcnJheTxUPjtcblxuICAgIHN0YXRpYyBkaXNjcmltaW5hdG9yPzogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21BcnJheTxUPihwYWdlRGF0YTogVFtdLCBhbGxEYXRhQ291bnQ/OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbXFyID0gbmV3IE1lZGl1c1F1ZXJ5UmVzdWx0KCk7XG4gICAgICAgIG1xci5hbGxEYXRhQ291bnQgPSBhbGxEYXRhQ291bnQgPz8gcGFnZURhdGEubGVuZ3RoO1xuICAgICAgICBtcXIucGFnZURhdGEgPSBwYWdlRGF0YTtcbiAgICAgICAgcmV0dXJuIG1xcjtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXR0cmlidXRlVHlwZU1hcDogQXJyYXk8QXR0cmlidXRlRGVmPiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2FsbERhdGFDb3VudCcsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2FsbF9kYXRhX2NvdW50JyxcbiAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdwYWdlRGF0YScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ3BhZ2VfZGF0YScsXG4gICAgICAgICAgICB0eXBlOiAnQXJyYXk8VD4nXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgc3RhdGljIGdldEF0dHJpYnV0ZVR5cGVNYXAoKSB7XG4gICAgICAgIHJldHVybiBNZWRpdXNRdWVyeVJlc3VsdC5hdHRyaWJ1dGVUeXBlTWFwO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVkaXVzUXVlcnlSZXN1bHQ8VD4ge1xuICAgIGFsbERhdGFDb3VudD86IG51bWJlcjtcbiAgICBwYWdlRGF0YT86IEFycmF5PFQ+O1xufVxuIl19
|
|
@@ -51,7 +51,7 @@ export class MngActionComponent {
|
|
|
51
51
|
}
|
|
52
52
|
ngOnInit() {
|
|
53
53
|
this.viewContainer = this.viewContainerInit ?? this.viewContainerService ?? undefined;
|
|
54
|
-
this.hasNoTitle = this.action.
|
|
54
|
+
this.hasNoTitle = this.action.button.label === null;
|
|
55
55
|
this.isEnabledSubject.next(true);
|
|
56
56
|
this.isVisibleSubject.next(true);
|
|
57
57
|
this.isPermittedSubject.next(true);
|
|
@@ -74,7 +74,7 @@ export class MngActionComponent {
|
|
|
74
74
|
this.isHostHidden = !isVisible || !isPermitted;
|
|
75
75
|
});
|
|
76
76
|
this.subscriptions.push(hostVisibilitySubscription);
|
|
77
|
-
this.buttonClass = this.action.
|
|
77
|
+
this.buttonClass = this.action.button.styleClass.build(this.action.button.label == null || this.action.button.label.length == 0);
|
|
78
78
|
}
|
|
79
79
|
ngOnChanges(changes) {
|
|
80
80
|
if (!(changes['item']?.firstChange ?? true) ||
|
|
@@ -161,21 +161,21 @@ export class MngActionComponent {
|
|
|
161
161
|
}
|
|
162
162
|
if (!this.hasNoTitle) {
|
|
163
163
|
this.labelSubscription?.unsubscribe();
|
|
164
|
-
this.labelSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'title', this.action.
|
|
164
|
+
this.labelSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'title', this.action.button.label ?? undefined, this.item).subscribe({
|
|
165
165
|
next: i18n => this.labelSubject.next(i18n)
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
this.tooltipSubscription?.unsubscribe();
|
|
169
|
-
this.tooltipSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'tooltip', this.action.
|
|
169
|
+
this.tooltipSubscription = I18nUtils.Action.getAsync(this.translate, this.action, 'tooltip', this.action.button.tooltip, this.item).subscribe({
|
|
170
170
|
next: i18n => this.tooltipSubject.next(i18n)
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
MngActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.MngAuthorizationService }, { token: i4.MngActionExecutorService }, { token: i5.ConfirmationService }, { token: i4.MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
-
MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", queryParam: "queryParam", dataProvider: "dataProvider", inputDisabled: ["disabled", "inputDisabled"], inputLoading: ["loading", "inputLoading"], viewContainerInit: ["viewContainer", "viewContainerInit"], selectedItems: "selectedItems" }, outputs: { finishEventEmitter: "finish" }, host: { properties: { "class": "this.hostClass", "class.m-0": "this.isHostHidden" } }, providers: [ConfirmationService], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.
|
|
175
|
+
MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData", queryParam: "queryParam", dataProvider: "dataProvider", inputDisabled: ["disabled", "inputDisabled"], inputLoading: ["loading", "inputLoading"], viewContainerInit: ["viewContainer", "viewContainerInit"], selectedItems: "selectedItems" }, outputs: { finishEventEmitter: "finish" }, host: { properties: { "class": "this.hostClass", "class.m-0": "this.isHostHidden" } }, providers: [ConfirmationService], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "directive", type: i10.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.MngParametrizePipe, name: "parametrize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
176
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngActionComponent, decorators: [{
|
|
177
177
|
type: Component,
|
|
178
|
-
args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConfirmationService], template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.
|
|
178
|
+
args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConfirmationService], template: "<ng-container *ngIf=\"($isVisible | async) && ($isPermitted | async)\">\n <a\n *ngIf=\"actionLink && actionLink.url !== ''; else routerLink\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | parametrize: itemId:item:actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n <ng-template #routerLink>\n <a\n *ngIf=\"actionLink; else button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | parametrize: itemId:item:actionData)\"\n [queryParams]=\"actionLink.queryParams | parametrize: itemId:item:actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [class]=\"buttonClass\"\n >{{ ($label | async) ?? '' }}</a\n >\n </ng-template>\n <ng-template #button>\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"$any($tooltip | async)\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction($event)\"\n [class]=\"buttonClass\"></button>\n </ng-template>\n <p-confirmDialog\n *ngIf=\"action.runConfirmationDialogDescriptor\"\n [key]=\"action.actionName + '_' + cmpId\"\n [baseZIndex]=\"50\"\n appendTo=\"body\"\n [closable]=\"action.runConfirmationDialogDescriptor.closable\"></p-confirmDialog>\n</ng-container>\n", styles: [":host{display:inline-block}\n"] }]
|
|
179
179
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.MngAuthorizationService }, { type: i4.MngActionExecutorService }, { type: i5.ConfirmationService }, { type: i4.MngViewContainerComponentService, decorators: [{
|
|
180
180
|
type: Optional
|
|
181
181
|
}] }]; }, propDecorators: { hostClass: [{
|
|
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
211
211
|
type: Output,
|
|
212
212
|
args: ['finish']
|
|
213
213
|
}] } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWdDLFFBQVEsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBSWxLLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWEsYUFBYSxFQUFnQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXRHLE9BQU8sRUFBbUIsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUl6RSxPQUFPLEVBQWUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQXNELGdCQUFnQixFQUE2QixNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMzSCxNQUFNLE9BQU8sa0JBQWtCO0lBaUQzQixZQUNZLEtBQXFCLEVBQ3JCLFNBQTJCLEVBQzNCLGFBQXNDLEVBQ3RDLGNBQXdDLEVBQ3hDLG1CQUF3QyxFQUM1QixvQkFBbUU7UUFML0UsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0Is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ekIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNvQixhQUFhO3NCQUF0QyxLQUFLO3VCQUFDLFVBQVU7Z0JBQ1EsWUFBWTtzQkFBcEMsS0FBSzt1QkFBQyxTQUFTO2dCQUNlLGlCQUFpQjtzQkFBL0MsS0FBSzt1QkFBQyxlQUFlO2dCQUNOLGFBQWE7c0JBQTVCLEtBQUs7Z0JBRW1CLGtCQUFrQjtzQkFBMUMsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SURhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yLCBBY3Rpb25MaW5rRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtJVmlld0NvbnRhaW5lcn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi4vLi4vcm91dGVyL21vZGVscyc7XG5pbXBvcnQge01uZ0F1dGhvcml6YXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZWN1cml0eSc7XG5pbXBvcnQge0FQZXJtaXNzaW9ucywgUGVybWlzc2lvbnN9IGZyb20gJy4uLy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nQWN0aW9uRXhlY3V0b3JTZXJ2aWNlLCBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7STE4blV0aWxzfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge0FjdGlvbkNvbnRleHRWYWxpZGF0aW9uLCBBY3Rpb25EYXRhLCBBY3Rpb25JbnN0YW5jZSwgQWN0aW9uUGFyYW1ldGVycywgSUFjdGlvbkNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDb25maXJtYXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNbmdBY3Rpb25Db21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBJQWN0aW9uQ29uZmlybWF0aW9uU2VydmljZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RDbGFzcyA9ICdtbmctYWN0aW9uLWJ1dHRvbic7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tLTAnKSBpc0hvc3RIaWRkZW4gPSBmYWxzZTtcblxuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25EZXNjcmlwdG9yPFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogVDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgcXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW07XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8VCwgUz47XG4gICAgQElucHV0KCdkaXNhYmxlZCcpIHB1YmxpYyBpbnB1dERpc2FibGVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gb2YoZmFsc2UpO1xuICAgIEBJbnB1dCgnbG9hZGluZycpIHB1YmxpYyBpbnB1dExvYWRpbmc6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG4gICAgQElucHV0KCd2aWV3Q29udGFpbmVyJykgcHVibGljIHZpZXdDb250YWluZXJJbml0PzogSVZpZXdDb250YWluZXI8VCwgUz47XG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSXRlbXM6IEFycmF5PFQ+ID0gW107XG5cbiAgICBAT3V0cHV0KCdmaW5pc2gnKSBwdWJsaWMgZmluaXNoRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25JbnN0YW5jZTxULCBTPj4oKTtcblxuICAgIHByaXZhdGUgbG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwdWJsaWMgJGxvYWRpbmc6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgcHJpdmF0ZSBpc1Zpc2libGVTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSBpc1Zpc2libGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljICRpc1Zpc2libGUgPSB0aGlzLmlzVmlzaWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIGlzUGVybWl0dGVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljICRpc1Blcm1pdHRlZCA9IHRoaXMuaXNQZXJtaXR0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgcHJpdmF0ZSBpc0VuYWJsZWRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSBpc0VuYWJsZWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljICRpc0VuYWJsZWQgPSB0aGlzLmlzRW5hYmxlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICBwcml2YXRlIGxhYmVsU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZyB8IG51bGw+KDEpO1xuICAgIHByaXZhdGUgbGFiZWxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljICRsYWJlbCA9IHRoaXMubGFiZWxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgcHJpdmF0ZSB0b29sdGlwU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZyB8IG51bGw+KDEpO1xuICAgIHByaXZhdGUgdG9vbHRpcFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgJHRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI/OiBJVmlld0NvbnRhaW5lcjxULCBTPjtcblxuICAgIHB1YmxpYyBhY3Rpb25MaW5rPzogQWN0aW9uTGlua0Rlc2NyaXB0b3I8VD47XG4gICAgcHVibGljIGhhc05vVGl0bGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHByaXZhdGUgcm91dGVQZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucztcblxuICAgIHB1YmxpYyBidXR0b25DbGFzcyA9ICdwLWJ1dHRvbi1wcmltYXJ5JztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aG9yaXphdGlvbjogTW5nQXV0aG9yaXphdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aW9uRXhlY3V0b3I6IE1uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHZpZXdDb250YWluZXJTZXJ2aWNlOiBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZTxULCBTPiB8IG51bGxcbiAgICApIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lckluaXQgPz8gdGhpcy52aWV3Q29udGFpbmVyU2VydmljZSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5oYXNOb1RpdGxlID0gdGhpcy5hY3Rpb24uYnV0dG9uRGVzY3JpcHRvci5sYWJlbCA9PT0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmxhYmVsU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkxpbmtEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkxpbmsgPSB0aGlzLmFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5wZXJtaXNzaW9uc1JvdXRlVHlwZSAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChyb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbdGhpcy5hY3Rpb24ucGVybWlzc2lvbnNSb3V0ZVR5cGVdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZVBlcm1pc3Npb25zID0gcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3RoaXMuYWN0aW9uLnBlcm1pc3Npb25zUm91dGVUeXBlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvY2Vzc1N1YnNjcmlwdGlvbnMoKTtcblxuICAgICAgICBpZiAodGhpcy5hY3Rpb24uY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RDbGFzcyA9IHRoaXMuYWN0aW9uLmNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3N0VmlzaWJpbGl0eVN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuJGlzVmlzaWJsZSwgdGhpcy4kaXNQZXJtaXR0ZWRdKS5zdWJzY3JpYmUoKFtpc1Zpc2libGUsIGlzUGVybWl0dGVkXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0hvc3RIaWRkZW4gPSAhaXNWaXNpYmxlIHx8ICFpc1Blcm1pdHRlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGhvc3RWaXNpYmlsaXR5U3Vic2NyaXB0aW9uKTtcblxuICAgICAgICB0aGlzLmJ1dHRvbkNsYXNzID0gdGhpcy5hY3Rpb24uYnV0dG9uRGVzY3JpcHRvci5zdHlsZUNsYXNzLmdldEJ1dHRvbkNsYXNzKHRoaXMuaGFzTm9UaXRsZSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2l0ZW0nXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICEoY2hhbmdlc1snaXRlbUlkJ10/LmZpcnN0Q2hhbmdlID8/IHRydWUpIHx8XG4gICAgICAgICAgICAhKGNoYW5nZXNbJ2FjdGlvbkRhdGEnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICh0aGlzLmFjdGlvbi5oYXNJdGVtc1NlbGVjdGlvbiAmJiAhKGNoYW5nZXNbJ3NlbGVjdGVkSXRlbXMnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmlzUGVybWl0dGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmlzRW5hYmxlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5sYWJlbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHB1YmxpYyB0cmlnZ2VyQWN0aW9uKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBhY3Rpb25EYXRhID0gdGhpcy5hY3Rpb25EYXRhID8gdGhpcy5hY3Rpb25EYXRhIDoge307XG4gICAgICAgIGFjdGlvbkRhdGFbJ2NtcElkJ10gPSB0aGlzLmNtcElkO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBuZXcgQWN0aW9uUGFyYW1ldGVycyh0aGlzLml0ZW1JZCwgdGhpcy5pdGVtKVxuICAgICAgICAgICAgLndpdGhBY3Rpb25EYXRhKGFjdGlvbkRhdGEpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW0odGhpcy5xdWVyeVBhcmFtKVxuICAgICAgICAgICAgLndpdGhSb3V0ZSh0aGlzLnJvdXRlKVxuICAgICAgICAgICAgLndpdGhWaWV3Q29udGFpbmVyKHRoaXMudmlld0NvbnRhaW5lcilcbiAgICAgICAgICAgIC53aXRoU291cmNlQ29tcG9uZW50KHRoaXMpXG4gICAgICAgICAgICAud2l0aFNlbGVjdGVkSXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuYWN0aW9uRXhlY3V0b3IudHJpZ2dlckFjdGlvbih0aGlzLmFjdGlvbiwgcGFyYW1ldGVycyk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBpbnN0YW5jZS5yZXN1bHQkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50RW1pdHRlci5uZXh0KGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmhhc0l0ZW1zU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJTZXJ2aWNlPy50cmlnZ2VyVGFibGVSZWxvYWQoe30gYXMgRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBpbnN0YW5jZS5lcnJvciQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRFbWl0dGVyLm5leHQoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgaW5zdGFuY2UuaXNSdW5Mb2FkaW5nJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmZpcm1hdGlvblNlcnZpY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmZpcm1hdGlvblNlcnZpY2VJbnN0YW5jZUtleShhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55Pikge1xuICAgICAgICByZXR1cm4gYCR7YWN0aW9uLmFjdGlvbk5hbWV9XyR7dGhpcy5jbXBJZH1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBuZXcgQWN0aW9uUGFyYW1ldGVycyh0aGlzLml0ZW1JZCwgdGhpcy5pdGVtKVxuICAgICAgICAgICAgLndpdGhBY3Rpb25EYXRhKHRoaXMuYWN0aW9uRGF0YSlcbiAgICAgICAgICAgIC53aXRoVmlld0NvbnRhaW5lcih0aGlzLnZpZXdDb250YWluZXIgPz8gdW5kZWZpbmVkKVxuICAgICAgICAgICAgLndpdGhTb3VyY2VDb21wb25lbnQodGhpcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmhhc0l0ZW1zU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLndpdGhTZWxlY3RlZEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25FeGVjdXRvci5wcmVwYXJlQWN0aW9uQ29udGV4dFZhbGlkYXRpb24odGhpcy5hY3Rpb24sIHBhcmFtZXRlcnMsIHRoaXMuZGF0YVByb3ZpZGVyKTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uID0gdGhpcy5hY3Rpb24uaXNWaXNpYmxlRnVuY3Rpb24oY29udGV4dCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4gdGhpcy5pc1Zpc2libGVTdWJqZWN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucyAhPT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHRoaXMucm91dGVQZXJtaXNzaW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQZXJtaXR0ZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMgJiYgdGhpcy5yb3V0ZVBlcm1pc3Npb25zXG4gICAgICAgICAgICAgICAgICAgID8gUGVybWlzc2lvbnMuQWxsLm9mKHRoaXMucm91dGVQZXJtaXNzaW9ucywgdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5yb3V0ZVBlcm1pc3Npb25zID8/IHRoaXMuYWN0aW9uLnBlcm1pc3Npb25zITtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uID0gdGhpcy5hdXRob3JpemF0aW9uLmlzUGVybWl0dGVkKHBlcm1pc3Npb25zLCB0aGlzLnJvdXRlLnNuYXBzaG90LCBjb250ZXh0IGFzIEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHJlcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY3Rpb24uaXNFbmFibGVkRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFbmFibGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbihjb250ZXh0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB0aGlzLmlzRW5hYmxlZFN1YmplY3QubmV4dChyZXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5oYXNOb1RpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFN1YnNjcmlwdGlvbiA9IEkxOG5VdGlscy5BY3Rpb24uZ2V0QXN5bmModGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uLCAndGl0bGUnLCB0aGlzLmFjdGlvbi5idXR0b25EZXNjcmlwdG9yLmxhYmVsID8/IHVuZGVmaW5lZCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGkxOG4gPT4gdGhpcy5sYWJlbFN1YmplY3QubmV4dChpMThuKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbiA9IEkxOG5VdGlscy5BY3Rpb24uZ2V0QXN5bmModGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uLCAndG9vbHRpcCcsIHRoaXMuYWN0aW9uLmJ1dHRvbkRlc2NyaXB0b3IudG9vbHRpcCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogaTE4biA9PiB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQoaTE4bilcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIigkaXNWaXNpYmxlIHwgYXN5bmMpICYmICgkaXNQZXJtaXR0ZWQgfCBhc3luYylcIj5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cImFjdGlvbkxpbmsgJiYgYWN0aW9uTGluay51cmwgIT09ICcnOyBlbHNlIHJvdXRlckxpbmtcIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIHBSaXBwbGVcbiAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uRGVzY3JpcHRvci5pY29uKVwiXG4gICAgICAgIFtocmVmXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpID8gbnVsbCA6IChhY3Rpb25MaW5rLnVybCB8IHBhcmFtZXRyaXplOiBpdGVtSWQ6aXRlbTphY3Rpb25EYXRhKVwiXG4gICAgICAgIFt0YXJnZXRdPVwiYWN0aW9uTGluay50YXJnZXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICA+e3sgKCRsYWJlbCB8IGFzeW5jKSA/PyAnJyB9fTwvYVxuICAgID5cbiAgICA8bmctdGVtcGxhdGUgI3JvdXRlckxpbms+XG4gICAgICAgIDxhXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbkxpbms7IGVsc2UgYnV0dG9uXCJcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIFtpY29uXT1cIiRhbnkoYWN0aW9uLmJ1dHRvbkRlc2NyaXB0b3IuaWNvbilcIlxuICAgICAgICAgICAgW3RhcmdldF09XCJhY3Rpb25MaW5rLnRhcmdldFwiXG4gICAgICAgICAgICBbcmVwbGFjZVVybF09XCJhY3Rpb25MaW5rLnJlcGxhY2VVcmxcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSkgPyBudWxsIDogKGFjdGlvbkxpbmsucGF0aFNlZ21lbnRzIHwgcGFyYW1ldHJpemU6IGl0ZW1JZDppdGVtOmFjdGlvbkRhdGEpXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJhY3Rpb25MaW5rLnF1ZXJ5UGFyYW1zIHwgcGFyYW1ldHJpemU6IGl0ZW1JZDppdGVtOmFjdGlvbkRhdGFcIlxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiYWN0aW9uTGluay5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIoJGlzRW5hYmxlZCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKChpbnB1dERpc2FibGVkIHwgYXN5bmMpID8/IGZhbHNlKVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgPnt7ICgkbGFiZWwgfCBhc3luYykgPz8gJycgfX08L2FcbiAgICAgICAgPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNidXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uRGVzY3JpcHRvci5pY29uKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiKCRsYWJlbCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJGFueSgkdG9vbHRpcCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoKCRsb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlKSB8fCAoKGlucHV0TG9hZGluZyB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8cC1jb25maXJtRGlhbG9nXG4gICAgICAgICpuZ0lmPVwiYWN0aW9uLnJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3JcIlxuICAgICAgICBba2V5XT1cImFjdGlvbi5hY3Rpb25OYW1lICsgJ18nICsgY21wSWRcIlxuICAgICAgICBbYmFzZVpJbmRleF09XCI1MFwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIFtjbG9zYWJsZV09XCJhY3Rpb24ucnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvci5jbG9zYWJsZVwiPjwvcC1jb25maXJtRGlhbG9nPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWdDLFFBQVEsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBSWxLLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWEsYUFBYSxFQUFnQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXRHLE9BQU8sRUFBbUIsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUl6RSxPQUFPLEVBQWUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQXNELGdCQUFnQixFQUE2QixNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMzSCxNQUFNLE9BQU8sa0JBQWtCO0lBaUQzQixZQUNZLEtBQXFCLEVBQ3JCLFNBQTJCLEVBQzNCLGFBQXNDLEVBQ3RDLGNBQXdDLEVBQ3hDLG1CQUF3QyxFQUM1QixvQkFBbUU7UUFML0UsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0Is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QUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDb0IsYUFBYTtzQkFBdEMsS0FBSzt1QkFBQyxVQUFVO2dCQUNRLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsU0FBUztnQkFDZSxpQkFBaUI7c0JBQS9DLEtBQUs7dUJBQUMsZUFBZTtnQkFDTixhQUFhO3NCQUE1QixLQUFLO2dCQUVtQixrQkFBa0I7c0JBQTFDLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0lEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uTGlua0Rlc2NyaXB0b3J9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uLy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtNbmdBdXRob3JpemF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VjdXJpdHknO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIFBlcm1pc3Npb25zfSBmcm9tICcuLi8uLi9zZWN1cml0eS9tb2RlbCc7XG5pbXBvcnQge01uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSwgTW5nVmlld0NvbnRhaW5lckNvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge0kxOG5VdGlsc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgQWN0aW9uRGF0YSwgQWN0aW9uSW5zdGFuY2UsIEFjdGlvblBhcmFtZXRlcnMsIElBY3Rpb25Db25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nQWN0aW9uQ29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgSUFjdGlvbkNvbmZpcm1hdGlvblNlcnZpY2Uge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAnbW5nLWFjdGlvbi1idXR0b24nO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubS0wJykgaXNIb3N0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uITogQWN0aW9uRGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1JZD86IElkVHlwZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGE7XG4gICAgQElucHV0KCkgcHVibGljIHF1ZXJ5UGFyYW0/OiBNZWRpdXNRdWVyeVBhcmFtO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIEBJbnB1dCgnZGlzYWJsZWQnKSBwdWJsaWMgaW5wdXREaXNhYmxlZDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcbiAgICBASW5wdXQoJ2xvYWRpbmcnKSBwdWJsaWMgaW5wdXRMb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gb2YoZmFsc2UpO1xuICAgIEBJbnB1dCgndmlld0NvbnRhaW5lcicpIHB1YmxpYyB2aWV3Q29udGFpbmVySW5pdD86IElWaWV3Q29udGFpbmVyPFQsIFM+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBBcnJheTxUPiA9IFtdO1xuXG4gICAgQE91dHB1dCgnZmluaXNoJykgcHVibGljIGZpbmlzaEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uSW5zdGFuY2U8VCwgUz4+KCk7XG5cbiAgICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHVibGljICRsb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBjbXBJZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgIHByaXZhdGUgaXNWaXNpYmxlU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgaXNWaXNpYmxlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkaXNWaXNpYmxlID0gdGhpcy5pc1Zpc2libGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgcHJpdmF0ZSBpc1Blcm1pdHRlZFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIGlzUGVybWl0dGVkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkaXNQZXJtaXR0ZWQgPSB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgaXNFbmFibGVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgaXNFbmFibGVkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkaXNFbmFibGVkID0gdGhpcy5pc0VuYWJsZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgcHJpdmF0ZSBsYWJlbFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBudWxsPigxKTtcbiAgICBwcml2YXRlIGxhYmVsU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyAkbGFiZWwgPSB0aGlzLmxhYmVsU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIHByaXZhdGUgdG9vbHRpcFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBudWxsPigxKTtcbiAgICBwcml2YXRlIHRvb2x0aXBTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljICR0b29sdGlwID0gdGhpcy50b29sdGlwU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyPzogSVZpZXdDb250YWluZXI8VCwgUz47XG5cbiAgICBwdWJsaWMgYWN0aW9uTGluaz86IEFjdGlvbkxpbmtEZXNjcmlwdG9yPFQ+O1xuICAgIHB1YmxpYyBoYXNOb1RpdGxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwcml2YXRlIHJvdXRlUGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnM7XG5cbiAgICBwdWJsaWMgYnV0dG9uQ2xhc3MgPSAncC1idXR0b24tcHJpbWFyeSc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGF1dGhvcml6YXRpb246IE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvbkV4ZWN1dG9yOiBNbmdBY3Rpb25FeGVjdXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3Q29udGFpbmVyU2VydmljZTogTW5nVmlld0NvbnRhaW5lckNvbXBvbmVudFNlcnZpY2U8VCwgUz4gfCBudWxsXG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIgPSB0aGlzLnZpZXdDb250YWluZXJJbml0ID8/IHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2UgPz8gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuaGFzTm9UaXRsZSA9IHRoaXMuYWN0aW9uLmJ1dHRvbi5sYWJlbCA9PT0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlzUGVybWl0dGVkU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmxhYmVsU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkxpbmtEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkxpbmsgPSB0aGlzLmFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5wZXJtaXNzaW9uc1JvdXRlVHlwZSAmJiByb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChyb3V0ZURhdGEudGFibGV2aWV3UGVybWlzc2lvbnNbdGhpcy5hY3Rpb24ucGVybWlzc2lvbnNSb3V0ZVR5cGVdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZVBlcm1pc3Npb25zID0gcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zW3RoaXMuYWN0aW9uLnBlcm1pc3Npb25zUm91dGVUeXBlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvY2Vzc1N1YnNjcmlwdGlvbnMoKTtcblxuICAgICAgICBpZiAodGhpcy5hY3Rpb24uY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RDbGFzcyA9IHRoaXMuYWN0aW9uLmNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3N0VmlzaWJpbGl0eVN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuJGlzVmlzaWJsZSwgdGhpcy4kaXNQZXJtaXR0ZWRdKS5zdWJzY3JpYmUoKFtpc1Zpc2libGUsIGlzUGVybWl0dGVkXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0hvc3RIaWRkZW4gPSAhaXNWaXNpYmxlIHx8ICFpc1Blcm1pdHRlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGhvc3RWaXNpYmlsaXR5U3Vic2NyaXB0aW9uKTtcblxuICAgICAgICB0aGlzLmJ1dHRvbkNsYXNzID0gdGhpcy5hY3Rpb24uYnV0dG9uLnN0eWxlQ2xhc3MuYnVpbGQodGhpcy5hY3Rpb24uYnV0dG9uLmxhYmVsID09IG51bGwgfHwgdGhpcy5hY3Rpb24uYnV0dG9uLmxhYmVsLmxlbmd0aCA9PSAwKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEoY2hhbmdlc1snaXRlbSddPy5maXJzdENoYW5nZSA/PyB0cnVlKSB8fFxuICAgICAgICAgICAgIShjaGFuZ2VzWydpdGVtSWQnXT8uZmlyc3RDaGFuZ2UgPz8gdHJ1ZSkgfHxcbiAgICAgICAgICAgICEoY2hhbmdlc1snYWN0aW9uRGF0YSddPy5maXJzdENoYW5nZSA/PyB0cnVlKSB8fFxuICAgICAgICAgICAgKHRoaXMuYWN0aW9uLmhhc0l0ZW1zU2VsZWN0aW9uICYmICEoY2hhbmdlc1snc2VsZWN0ZWRJdGVtcyddPy5maXJzdENoYW5nZSA/PyB0cnVlKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXNQZXJtaXR0ZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXNFbmFibGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmxhYmVsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIHRyaWdnZXJBY3Rpb24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkRhdGEgPSB0aGlzLmFjdGlvbkRhdGEgPyB0aGlzLmFjdGlvbkRhdGEgOiB7fTtcbiAgICAgICAgYWN0aW9uRGF0YVsnY21wSWQnXSA9IHRoaXMuY21wSWQ7XG5cbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBBY3Rpb25QYXJhbWV0ZXJzKHRoaXMuaXRlbUlkLCB0aGlzLml0ZW0pXG4gICAgICAgICAgICAud2l0aEFjdGlvbkRhdGEoYWN0aW9uRGF0YSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbSh0aGlzLnF1ZXJ5UGFyYW0pXG4gICAgICAgICAgICAud2l0aFJvdXRlKHRoaXMucm91dGUpXG4gICAgICAgICAgICAud2l0aFZpZXdDb250YWluZXIodGhpcy52aWV3Q29udGFpbmVyKVxuICAgICAgICAgICAgLndpdGhTb3VyY2VDb21wb25lbnQodGhpcylcbiAgICAgICAgICAgIC53aXRoU2VsZWN0ZWRJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5hY3Rpb25FeGVjdXRvci50cmlnZ2VyQWN0aW9uKHRoaXMuYWN0aW9uLCBwYXJhbWV0ZXJzKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGluc3RhbmNlLnJlc3VsdCQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRFbWl0dGVyLm5leHQoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24uaGFzSXRlbXNTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2U/LnRyaWdnZXJUYWJsZVJlbG9hZCh7fSBhcyBFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGluc3RhbmNlLmVycm9yJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hFdmVudEVtaXR0ZXIubmV4dChpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBpbnN0YW5jZS5pc1J1bkxvYWRpbmckLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybWF0aW9uU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZUluc3RhbmNlS2V5KGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+KSB7XG4gICAgICAgIHJldHVybiBgJHthY3Rpb24uYWN0aW9uTmFtZX1fJHt0aGlzLmNtcElkfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzU3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBBY3Rpb25QYXJhbWV0ZXJzKHRoaXMuaXRlbUlkLCB0aGlzLml0ZW0pXG4gICAgICAgICAgICAud2l0aEFjdGlvbkRhdGEodGhpcy5hY3Rpb25EYXRhKVxuICAgICAgICAgICAgLndpdGhWaWV3Q29udGFpbmVyKHRoaXMudmlld0NvbnRhaW5lciA/PyB1bmRlZmluZWQpXG4gICAgICAgICAgICAud2l0aFNvdXJjZUNvbXBvbmVudCh0aGlzKTtcblxuICAgICAgICBpZiAodGhpcy5hY3Rpb24uaGFzSXRlbXNTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMud2l0aFNlbGVjdGVkSXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmFjdGlvbkV4ZWN1dG9yLnByZXBhcmVBY3Rpb25Db250ZXh0VmFsaWRhdGlvbih0aGlzLmFjdGlvbiwgcGFyYW1ldGVycywgdGhpcy5kYXRhUHJvdmlkZXIpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY3Rpb24uaXNWaXNpYmxlRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGlvbi5pc1Zpc2libGVGdW5jdGlvbihjb250ZXh0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB0aGlzLmlzVmlzaWJsZVN1YmplY3QubmV4dChyZXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLnBlcm1pc3Npb25zICE9PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgdGhpcy5yb3V0ZVBlcm1pc3Npb25zICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5pc1Blcm1pdHRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID1cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucyAmJiB0aGlzLnJvdXRlUGVybWlzc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgPyBQZXJtaXNzaW9ucy5BbGwub2YodGhpcy5yb3V0ZVBlcm1pc3Npb25zLCB0aGlzLmFjdGlvbi5wZXJtaXNzaW9ucylcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJvdXRlUGVybWlzc2lvbnMgPz8gdGhpcy5hY3Rpb24ucGVybWlzc2lvbnMhO1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQocGVybWlzc2lvbnMsIHRoaXMucm91dGUuc25hcHNob3QsIGNvbnRleHQgYXMgQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHRoaXMuaXNQZXJtaXR0ZWRTdWJqZWN0Lm5leHQocmVzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5pc0VuYWJsZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmlzRW5hYmxlZFN1YnNjcmlwdGlvbiA9IHRoaXMuYWN0aW9uLmlzRW5hYmxlZEZ1bmN0aW9uKGNvbnRleHQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHRoaXMuaXNFbmFibGVkU3ViamVjdC5uZXh0KHJlcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc05vVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmxhYmVsU3Vic2NyaXB0aW9uID0gSTE4blV0aWxzLkFjdGlvbi5nZXRBc3luYyh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5hY3Rpb24sICd0aXRsZScsIHRoaXMuYWN0aW9uLmJ1dHRvbi5sYWJlbCA/PyB1bmRlZmluZWQsIHRoaXMuaXRlbSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBpMThuID0+IHRoaXMubGFiZWxTdWJqZWN0Lm5leHQoaTE4bilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24gPSBJMThuVXRpbHMuQWN0aW9uLmdldEFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgJ3Rvb2x0aXAnLCB0aGlzLmFjdGlvbi5idXR0b24udG9vbHRpcCwgdGhpcy5pdGVtKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogaTE4biA9PiB0aGlzLnRvb2x0aXBTdWJqZWN0Lm5leHQoaTE4bilcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIigkaXNWaXNpYmxlIHwgYXN5bmMpICYmICgkaXNQZXJtaXR0ZWQgfCBhc3luYylcIj5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cImFjdGlvbkxpbmsgJiYgYWN0aW9uTGluay51cmwgIT09ICcnOyBlbHNlIHJvdXRlckxpbmtcIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIHBSaXBwbGVcbiAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uLmljb24pXCJcbiAgICAgICAgW2hyZWZdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSkgPyBudWxsIDogKGFjdGlvbkxpbmsudXJsIHwgcGFyYW1ldHJpemU6IGl0ZW1JZDppdGVtOmFjdGlvbkRhdGEpXCJcbiAgICAgICAgW3RhcmdldF09XCJhY3Rpb25MaW5rLnRhcmdldFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIoJGlzRW5hYmxlZCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKChpbnB1dERpc2FibGVkIHwgYXN5bmMpID8/IGZhbHNlKVwiXG4gICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiXG4gICAgICAgID57eyAoJGxhYmVsIHwgYXN5bmMpID8/ICcnIH19PC9hXG4gICAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjcm91dGVyTGluaz5cbiAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uTGluazsgZWxzZSBidXR0b25cIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uYnV0dG9uLmljb24pXCJcbiAgICAgICAgICAgIFt0YXJnZXRdPVwiYWN0aW9uTGluay50YXJnZXRcIlxuICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiYWN0aW9uTGluay5yZXBsYWNlVXJsXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpID8gbnVsbCA6IChhY3Rpb25MaW5rLnBhdGhTZWdtZW50cyB8IHBhcmFtZXRyaXplOiBpdGVtSWQ6aXRlbTphY3Rpb25EYXRhKVwiXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiYWN0aW9uTGluay5xdWVyeVBhcmFtcyB8IHBhcmFtZXRyaXplOiBpdGVtSWQ6aXRlbTphY3Rpb25EYXRhXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cImFjdGlvbkxpbmsucXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCRpc0VuYWJsZWQgfCBhc3luYykgPT09IGZhbHNlIHx8ICgoaW5wdXREaXNhYmxlZCB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICAgID57eyAoJGxhYmVsIHwgYXN5bmMpID8/ICcnIH19PC9hXG4gICAgICAgID5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIFtpY29uXT1cIiRhbnkoYWN0aW9uLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiKCRsYWJlbCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJGFueSgkdG9vbHRpcCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoKCRsb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlKSB8fCAoKGlucHV0TG9hZGluZyB8IGFzeW5jKSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIigkaXNFbmFibGVkIHwgYXN5bmMpID09PSBmYWxzZSB8fCAoKGlucHV0RGlzYWJsZWQgfCBhc3luYykgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8cC1jb25maXJtRGlhbG9nXG4gICAgICAgICpuZ0lmPVwiYWN0aW9uLnJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3JcIlxuICAgICAgICBba2V5XT1cImFjdGlvbi5hY3Rpb25OYW1lICsgJ18nICsgY21wSWRcIlxuICAgICAgICBbYmFzZVpJbmRleF09XCI1MFwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIFtjbG9zYWJsZV09XCJhY3Rpb24ucnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvci5jbG9zYWJsZVwiPjwvcC1jb25maXJtRGlhbG9nPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -75,11 +75,11 @@ export class MngActionEditorComponent {
|
|
|
75
75
|
this.setTitle();
|
|
76
76
|
for (const action of this.action.editorActions) {
|
|
77
77
|
if (action instanceof ActionEditorSubmitDescriptor) {
|
|
78
|
-
if (typeof action.
|
|
79
|
-
action.
|
|
78
|
+
if (typeof action.button.icon === 'undefined') {
|
|
79
|
+
action.button.withIcon(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'pi pi-check' : 'pi pi-times');
|
|
80
80
|
}
|
|
81
|
-
if (typeof action.
|
|
82
|
-
action.
|
|
81
|
+
if (typeof action.button.label === 'undefined') {
|
|
82
|
+
action.button.withLabel(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'general.save' : this.isDialog ? 'general.close' : 'general.cancel');
|
|
83
83
|
}
|
|
84
84
|
// assign run operations
|
|
85
85
|
action.withRunNotificationSuccess(undefined, undefined, false);
|
|
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
245
245
|
type: ViewChild,
|
|
246
246
|
args: [MngFormEditorComponent]
|
|
247
247
|
}] } });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2VkaXRvci9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vZWRpdG9yL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFFWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFhLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxPQUFPLEVBQTJDLDRCQUE0QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFDLDBCQUEwQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVsRCxPQUFPLEVBQTZCLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7OztBQU92RSxNQUFNLE9BQU8sd0JBQXdCO0lBMkNqQyxZQUNZLFFBQWtCLEVBQ2xCLFNBQTJCLEVBQzNCLGNBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxpQkFBdUMsRUFDM0IsU0FB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QkFBd0I7eUdBQXhCLHdCQUF3QixrV0FlaEIsb0JBQW9CLHVMQUUxQixzQkFBc0IsZ0RDdkRyQyx1ckRBOEJBOzJGRFFhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBRVosdUJBQXVCLENBQUMsTUFBTTs7MEJBbUQxQyxRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzRDQWpERyxNQUFNO3NCQUFyQixLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ3lCLGlCQUFpQjtzQkFBL0MsS0FBSzt1QkFBQyxlQUFlO2dCQUVTLHFCQUFxQjtzQkFBbkQsTUFBTTt1QkFBQyxjQUFjO2dCQUNTLHdCQUF3QjtzQkFBdEQsTUFBTTt1QkFBQyxjQUFjO2dCQUd3QixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDSCxzQkFBc0I7c0JBQXZELFNBQVM7dUJBQUMsY0FBYztnQkFDaUIsZUFBZTtzQkFBeEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0lFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSwgTW5nQ29tbW9uc1NlcnZpY2UsIE1uZ05hdmlnYXRpb25TZXJ2aWNlLCBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7STE4blV0aWxzLCBOb3RpZmljYXRpb25VdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge01uZ0Zvcm1FZGl0b3JDb21wb25lbnR9IGZyb20gJy4uLy4uL2Zvcm0nO1xuaW1wb3J0IHtNbmdGb3JtRWRpdG9yU3VibWl0RXZlbnR9IGZyb20gJy4uLy4uL2Zvcm0vbW9kZWxzJztcbmltcG9ydCB7QWN0aW9uRGF0YSwgQWN0aW9uSW5zdGFuY2UsIEFjdGlvblBhcmFtZXRlcnN9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbi1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBY3Rpb25FZGl0b3JDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gbWV0YWRhdGEgYW5kIGVkaXRvciBtb2RlIGlucHV0XG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbiE6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD47XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogVDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGE7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgUz47XG4gICAgQElucHV0KCd2aWV3Q29udGFpbmVyJykgcHVibGljIHZpZXdDb250YWluZXJJbml0PzogSVZpZXdDb250YWluZXI8VCwgUz47XG5cbiAgICBAT3V0cHV0KCdhY3Rpb25TdWJtaXQnKSBwdWJsaWMgYWN0aW9uUnVuRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgICBAT3V0cHV0KCdhY3Rpb25DYW5jZWwnKSBwdWJsaWMgYWN0aW9uQ2FuY2VsRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8vIGNvbnRlbnQgYW5kIHZpZXcgcXVlcmllc1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHB1YmxpYyB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8TW5nVGVtcGxhdGVEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoJ3N1Ym1pdEJ1dHRvbicpIHB1YmxpYyBzdWJtaXRCdXR0b25FbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQpIHB1YmxpYyBlZGl0b3JDb21wb25lbnQhOiBNbmdGb3JtRWRpdG9yQ29tcG9uZW50PFQ+O1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBpc0RpYWxvZyA9IHRydWU7XG4gICAgcHVibGljIGlzU2F2ZUJ1dHRvbiA9IHRydWU7XG5cbiAgICAvLyBhY3Rpb25zXG4gICAgcHJpdmF0ZSBpbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPFQsIFM+O1xuICAgIHByaXZhdGUgcHJldmlvdXNBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPHVua25vd24sIHVua25vd24+O1xuICAgIHB1YmxpYyB0b29sYmFyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyB0b29sYmFyUmlnaHRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgZm9vdGVyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyBmb290ZXJSaWdodEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBzdWJtaXRMb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc3VibWl0TG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBpc0ZpbmlzaGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcj86IElWaWV3Q29udGFpbmVyPFQsIFM+O1xuICAgIHByaXZhdGUgc291cmNlQ29tcG9uZW50OiBhbnkgPSB0aGlzO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvbkV4ZWN1dG9yOiBNbmdBY3Rpb25FeGVjdXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbW5nQ29tbW9uc1NlcnZpY2U6IE1uZ0NvbW1vbnNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYgfCBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdmlld0NvbnRhaW5lclNlcnZpY2U6IE1uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlPFQsIFM+IHwgbnVsbFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnPy5kYXRhKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb25JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkluc3RhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuaW5zdGFuY2UuYWN0aW9uIGFzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLml0ZW1JZCA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5pdGVtSWQ7XG4gICAgICAgICAgICB0aGlzLml0ZW0gPSB0aGlzLmluc3RhbmNlPy5hY3RpdmF0aW9uUGFyYW1ldGVycz8uaXRlbTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uRGF0YSA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5hY3Rpb25EYXRhO1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyID0gdGhpcy5pbnN0YW5jZT8uYWN0aXZhdGlvblBhcmFtZXRlcnM/LnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXI8VCwgUz47XG4gICAgICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5zb3VyY2VDb21wb25lbnQ7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMudmlld0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFQcm92aWRlciA9IHRoaXMudmlld0NvbnRhaW5lci5nZXREYXRhUHJvdmlkZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVByb3ZpZGVyICYmIHR5cGVvZiBkYXRhUHJvdmlkZXJbJ2ZldGNoJyBhcyBrZXlvZiBvYmplY3RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgUz47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEucHJldmlvdXNBY3Rpb25JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3Rpb25JbnN0YW5jZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEucHJldmlvdXNBY3Rpb25JbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lckluaXQgPz8gdGhpcy52aWV3Q29udGFpbmVyU2VydmljZSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2F2ZUJ1dHRvbiA9IHR5cGVvZiB0aGlzLmFjdGlvbi5zdWJtaXRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgICAgdGhpcy5zZXRUaXRsZSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuYWN0aW9uLmVkaXRvckFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uYnV0dG9uRGVzY3JpcHRvci5pY29uID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uYnV0dG9uRGVzY3JpcHRvci53aXRoSWNvbihhY3Rpb24uc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gJ3BpIHBpLWNoZWNrJyA6ICdwaSBwaS10aW1lcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGlvbi5idXR0b25EZXNjcmlwdG9yLmxhYmVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uYnV0dG9uRGVzY3JpcHRvci53aXRoTGFiZWwoXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gJ2dlbmVyYWwuc2F2ZScgOiB0aGlzLmlzRGlhbG9nID8gJ2dlbmVyYWwuY2xvc2UnIDogJ2dlbmVyYWwuY2FuY2VsJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGFzc2lnbiBydW4gb3BlcmF0aW9uc1xuICAgICAgICAgICAgICAgIGFjdGlvbi53aXRoUnVuTm90aWZpY2F0aW9uU3VjY2Vzcyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi53aXRoUnVuRnVuY3Rpb24oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyU3VibWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLndpdGhSdW5GdW5jdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckxlZnRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJMZWZ0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvb3RlckxlZnRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyUmlnaHRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMgPSB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLmZvb3RlclJpZ2h0QWN0aW9ucyA9IHRoaXMuZm9vdGVyUmlnaHRBY3Rpb25zLnJldmVyc2UoKTtcblxuICAgICAgICB0aGlzLmxvYWRJdGVtV2l0aERhdGFQcm92aWRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogTW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50PFQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuc3VjY2Vzcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5zdWJtaXRGdW5jdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3VibWl0TG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmFjdGlvbkV4ZWN1dG9yLnJ1bkVkaXRvclNhdmUoXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgbmV3IEFjdGlvblBhcmFtZXRlcnModGhpcy5pdGVtSWQsIGV2ZW50LmZvcm1JdGVtKS53aXRoQWN0aW9uRGF0YSh0aGlzLmFjdGlvbkRhdGEpLndpdGhWaWV3Q29udGFpbmVyKHRoaXMudmlld0NvbnRhaW5lcikud2l0aFNvdXJjZUNvbXBvbmVudCh0aGlzLnNvdXJjZUNvbXBvbmVudCksXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzQWN0aW9uSW5zdGFuY2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gY29udGV4dC5pbnN0YW5jZTtcblxuICAgICAgICAgICAgY29udGV4dC5leGVjdXRpb24kLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25SdW5FdmVudEVtaXR0ZXIubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGVBY3Rpb24ocmVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0TG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmFjdGlvbkNhbmNlbEV2ZW50RW1pdHRlci5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZUFjdGlvbih1bmRlZmluZWQsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmlnZ2VyU3VibWl0KCkge1xuICAgICAgICB0aGlzLmVkaXRvckNvbXBvbmVudC5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRJdGVtV2l0aERhdGFQcm92aWRlcigpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvbi5mZXRjaEZ1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25FeGVjdXRvci5ydW5FZGl0b3JGZXRjaChcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLFxuICAgICAgICAgICAgbmV3IEFjdGlvblBhcmFtZXRlcnModGhpcy5pdGVtSWQsIHRoaXMuaXRlbSkud2l0aEFjdGlvbkRhdGEodGhpcy5hY3Rpb25EYXRhKS53aXRoVmlld0NvbnRhaW5lcih0aGlzLnZpZXdDb250YWluZXIpLndpdGhTb3VyY2VDb21wb25lbnQodGhpcy5zb3VyY2VDb21wb25lbnQpLFxuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIsXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLFxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c0FjdGlvbkluc3RhbmNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBjb250ZXh0Lmluc3RhbmNlO1xuXG4gICAgICAgIGNvbnRleHQuZXhlY3V0aW9uJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbkVycm9yID0gdGhpcy5hY3Rpb25FeGVjdXRvci50b01uZ0FjdGlvbkVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi5oYXNSdW5Ob3RpZmljYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uVXRpbC5hY3Rpb25Ob3RpZmljYXRpb25FcnJvcih0aGlzLnRyYW5zbGF0ZSwgdGhpcy5hY3Rpb24sIGFjdGlvbkVycm9yLCAnZmV0Y2gnLCB0aGlzLnZpZXdDb250YWluZXIsIHRoaXMuaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gYWN0aW9uRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gcmVzID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24uaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvblV0aWwuYWN0aW9uTm90aWZpY2F0aW9uU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24uZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbi5mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGl0bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5lZGl0b3JUaXRsZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy50aXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZykge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnIS5oZWFkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gSTE4blV0aWxzLkFjdGlvbi5nZXRFZGl0b3JUaXRsZUFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgdGhpcy5pdGVtKS5zdWJzY3JpYmUodCA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZyEuaGVhZGVyID0gdCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW5nQ29tbW9uc1NlcnZpY2Uuc2V0UGFnZVRpdGxlKHQgPz8gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWFjdGl2YXRlQWN0aW9uKGl0ZW0/OiBUIHwgbnVsbCwgY2FuY2VsID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaWFsb2cpIHtcbiAgICAgICAgICAgIC8vIGlmIGNhbmNlbCwgdGhlbiBmb3JjZSBjbG9zZSB0aGUgZGlhbG9nXG4gICAgICAgICAgICBpZiAoY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25FeGVjdXRvci5kZWFjdGl2YXRlQWN0aW9uKHRoaXMuaW5zdGFuY2UhKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxoNSAqbmdJZj1cIiFpc0RpYWxvZyAmJiB0aXRsZVwiPnt7IHRpdGxlIH19PC9oNT5cbjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtblwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiICpuZ0lmPVwidG9vbGJhckxlZnRBY3Rpb25zLmxlbmd0aCA+IDAgfHwgdG9vbGJhclJpZ2h0QWN0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxwLXRvb2xiYXIgc3R5bGVDbGFzcz1cIm1uZy1hY3Rpb24tZWRpdG9yLXRvb2xiYXJcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0b29sYmFyTGVmdEFjdGlvbnNcIiBbYWN0aW9uXT1cImFjdGlvblwiIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nJFwiIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIj48L21uZy1hY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0b29sYmFyUmlnaHRBY3Rpb25zXCIgW2FjdGlvbl09XCJhY3Rpb25cIiBbZGlzYWJsZWRdPVwic3VibWl0TG9hZGluZyRcIiBbdmlld0NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRvb2xiYXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCIgKm5nSWY9XCJsb2FkaW5nJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgW3N0eWxlXT1cInt3aWR0aDogJzNyZW0nLCBoZWlnaHQ6ICczcmVtJ31cIiBzdHJva2VXaWR0aD1cIjNcIj48L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1uZy1mb3JtLWVkaXRvciAqbmdJZj1cImFjdGlvbi5lZGl0b3JEZXNjcmlwdG9yICYmIChsb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2VcIiBbZGVzY3JpcHRvcl09XCJhY3Rpb24uZWRpdG9yRGVzY3JpcHRvclwiIFtpdGVtXT1cIml0ZW1cIiAoZm9ybVN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbW5nLWZvcm0tZWRpdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxtbmctYWN0aW9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZm9vdGVyTGVmdEFjdGlvbnNcIiBbYWN0aW9uXT1cImFjdGlvblwiIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nJFwiIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIj48L21uZy1hY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBmb290ZXJSaWdodEFjdGlvbnNcIiBbYWN0aW9uXT1cImFjdGlvblwiIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nJFwiIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIj48L21uZy1hY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2VkaXRvci9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vZWRpdG9yL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFFWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFhLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxPQUFPLEVBQTJDLDRCQUE0QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFDLDBCQUEwQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVsRCxPQUFPLEVBQTZCLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7OztBQU92RSxNQUFNLE9BQU8sd0JBQXdCO0lBMkNqQyxZQUNZLFFBQWtCLEVBQ2xCLFNBQTJCLEVBQzNCLGNBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxpQkFBdUMsRUFDM0IsU0FB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QXhCLHdCQUF3QixrV0FlaEIsb0JBQW9CLHVMQUUxQixzQkFBc0IsZ0RDdkRyQyx1ckRBOEJBOzJGRFFhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBRVosdUJBQXVCLENBQUMsTUFBTTs7MEJBbUQxQyxRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzRDQWpERyxNQUFNO3NCQUFyQixLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ3lCLGlCQUFpQjtzQkFBL0MsS0FBSzt1QkFBQyxlQUFlO2dCQUVTLHFCQUFxQjtzQkFBbkQsTUFBTTt1QkFBQyxjQUFjO2dCQUNTLHdCQUF3QjtzQkFBdEQsTUFBTTt1QkFBQyxjQUFjO2dCQUd3QixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDSCxzQkFBc0I7c0JBQXZELFNBQVM7dUJBQUMsY0FBYztnQkFDaUIsZUFBZTtzQkFBeEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0lFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0FjdGlvbkV4ZWN1dG9yU2VydmljZSwgTW5nQ29tbW9uc1NlcnZpY2UsIE1uZ05hdmlnYXRpb25TZXJ2aWNlLCBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7STE4blV0aWxzLCBOb3RpZmljYXRpb25VdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge01uZ0Zvcm1FZGl0b3JDb21wb25lbnR9IGZyb20gJy4uLy4uL2Zvcm0nO1xuaW1wb3J0IHtNbmdGb3JtRWRpdG9yU3VibWl0RXZlbnR9IGZyb20gJy4uLy4uL2Zvcm0vbW9kZWxzJztcbmltcG9ydCB7QWN0aW9uRGF0YSwgQWN0aW9uSW5zdGFuY2UsIEFjdGlvblBhcmFtZXRlcnN9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbi1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBY3Rpb25FZGl0b3JDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gbWV0YWRhdGEgYW5kIGVkaXRvciBtb2RlIGlucHV0XG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbiE6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD47XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogVDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGE7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgUz47XG4gICAgQElucHV0KCd2aWV3Q29udGFpbmVyJykgcHVibGljIHZpZXdDb250YWluZXJJbml0PzogSVZpZXdDb250YWluZXI8VCwgUz47XG5cbiAgICBAT3V0cHV0KCdhY3Rpb25TdWJtaXQnKSBwdWJsaWMgYWN0aW9uUnVuRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgICBAT3V0cHV0KCdhY3Rpb25DYW5jZWwnKSBwdWJsaWMgYWN0aW9uQ2FuY2VsRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8vIGNvbnRlbnQgYW5kIHZpZXcgcXVlcmllc1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHB1YmxpYyB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8TW5nVGVtcGxhdGVEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoJ3N1Ym1pdEJ1dHRvbicpIHB1YmxpYyBzdWJtaXRCdXR0b25FbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQpIHB1YmxpYyBlZGl0b3JDb21wb25lbnQhOiBNbmdGb3JtRWRpdG9yQ29tcG9uZW50PFQ+O1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBpc0RpYWxvZyA9IHRydWU7XG4gICAgcHVibGljIGlzU2F2ZUJ1dHRvbiA9IHRydWU7XG5cbiAgICAvLyBhY3Rpb25zXG4gICAgcHJpdmF0ZSBpbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPFQsIFM+O1xuICAgIHByaXZhdGUgcHJldmlvdXNBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPHVua25vd24sIHVua25vd24+O1xuICAgIHB1YmxpYyB0b29sYmFyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyB0b29sYmFyUmlnaHRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgZm9vdGVyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyBmb290ZXJSaWdodEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBzdWJtaXRMb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc3VibWl0TG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBpc0ZpbmlzaGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcj86IElWaWV3Q29udGFpbmVyPFQsIFM+O1xuICAgIHByaXZhdGUgc291cmNlQ29tcG9uZW50OiBhbnkgPSB0aGlzO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvbkV4ZWN1dG9yOiBNbmdBY3Rpb25FeGVjdXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbW5nQ29tbW9uc1NlcnZpY2U6IE1uZ0NvbW1vbnNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYgfCBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdmlld0NvbnRhaW5lclNlcnZpY2U6IE1uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlPFQsIFM+IHwgbnVsbFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnPy5kYXRhKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb25JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkluc3RhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuaW5zdGFuY2UuYWN0aW9uIGFzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLml0ZW1JZCA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5pdGVtSWQ7XG4gICAgICAgICAgICB0aGlzLml0ZW0gPSB0aGlzLmluc3RhbmNlPy5hY3RpdmF0aW9uUGFyYW1ldGVycz8uaXRlbTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uRGF0YSA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5hY3Rpb25EYXRhO1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyID0gdGhpcy5pbnN0YW5jZT8uYWN0aXZhdGlvblBhcmFtZXRlcnM/LnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXI8VCwgUz47XG4gICAgICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5zb3VyY2VDb21wb25lbnQ7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMudmlld0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFQcm92aWRlciA9IHRoaXMudmlld0NvbnRhaW5lci5nZXREYXRhUHJvdmlkZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVByb3ZpZGVyICYmIHR5cGVvZiBkYXRhUHJvdmlkZXJbJ2ZldGNoJyBhcyBrZXlvZiBvYmplY3RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8VCwgUz47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEucHJldmlvdXNBY3Rpb25JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3Rpb25JbnN0YW5jZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEucHJldmlvdXNBY3Rpb25JbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lckluaXQgPz8gdGhpcy52aWV3Q29udGFpbmVyU2VydmljZSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2F2ZUJ1dHRvbiA9IHR5cGVvZiB0aGlzLmFjdGlvbi5zdWJtaXRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgICAgdGhpcy5zZXRUaXRsZSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuYWN0aW9uLmVkaXRvckFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uYnV0dG9uLmljb24gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5idXR0b24ud2l0aEljb24oYWN0aW9uLnN1Ym1pdFR5cGUgPT09IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCA/ICdwaSBwaS1jaGVjaycgOiAncGkgcGktdGltZXMnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uYnV0dG9uLmxhYmVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhMYWJlbChhY3Rpb24uc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gJ2dlbmVyYWwuc2F2ZScgOiB0aGlzLmlzRGlhbG9nID8gJ2dlbmVyYWwuY2xvc2UnIDogJ2dlbmVyYWwuY2FuY2VsJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gYXNzaWduIHJ1biBvcGVyYXRpb25zXG4gICAgICAgICAgICAgICAgYWN0aW9uLndpdGhSdW5Ob3RpZmljYXRpb25TdWNjZXNzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5zdWJtaXRUeXBlID09PSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLndpdGhSdW5GdW5jdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJTdWJtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24ud2l0aFJ1bkZ1bmN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24ucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyTGVmdEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclJpZ2h0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlckxlZnQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyTGVmdEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJSaWdodDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9vbGJhclJpZ2h0QWN0aW9ucyA9IHRoaXMudG9vbGJhclJpZ2h0QWN0aW9ucy5yZXZlcnNlKCk7XG4gICAgICAgIHRoaXMuZm9vdGVyUmlnaHRBY3Rpb25zID0gdGhpcy5mb290ZXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMubG9hZEl0ZW1XaXRoRGF0YVByb3ZpZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU3VibWl0KGV2ZW50OiBNbmdGb3JtRWRpdG9yU3VibWl0RXZlbnQ8VD4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaW5pc2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5zdWNjZXNzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLnN1Ym1pdEZ1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYWN0aW9uRXhlY3V0b3IucnVuRWRpdG9yU2F2ZShcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbixcbiAgICAgICAgICAgICAgICBuZXcgQWN0aW9uUGFyYW1ldGVycyh0aGlzLml0ZW1JZCwgZXZlbnQuZm9ybUl0ZW0pLndpdGhBY3Rpb25EYXRhKHRoaXMuYWN0aW9uRGF0YSkud2l0aFZpZXdDb250YWluZXIodGhpcy52aWV3Q29udGFpbmVyKS53aXRoU291cmNlQ29tcG9uZW50KHRoaXMuc291cmNlQ29tcG9uZW50KSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlcixcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLFxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3Rpb25JbnN0YW5jZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBjb250ZXh0Lmluc3RhbmNlO1xuXG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGlvbiQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvblJ1bkV2ZW50RW1pdHRlci5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVhY3RpdmF0ZUFjdGlvbihyZXMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uQ2FuY2VsRXZlbnRFbWl0dGVyLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlQWN0aW9uKHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJTdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yQ29tcG9uZW50LnN1Ym1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEl0ZW1XaXRoRGF0YVByb3ZpZGVyKCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLmZldGNoRnVuY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmFjdGlvbkV4ZWN1dG9yLnJ1bkVkaXRvckZldGNoKFxuICAgICAgICAgICAgdGhpcy5hY3Rpb24sXG4gICAgICAgICAgICBuZXcgQWN0aW9uUGFyYW1ldGVycyh0aGlzLml0ZW1JZCwgdGhpcy5pdGVtKS53aXRoQWN0aW9uRGF0YSh0aGlzLmFjdGlvbkRhdGEpLndpdGhWaWV3Q29udGFpbmVyKHRoaXMudmlld0NvbnRhaW5lcikud2l0aFNvdXJjZUNvbXBvbmVudCh0aGlzLnNvdXJjZUNvbXBvbmVudCksXG4gICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlcixcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UsXG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzQWN0aW9uSW5zdGFuY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGNvbnRleHQuaW5zdGFuY2U7XG5cbiAgICAgICAgY29udGV4dC5leGVjdXRpb24kXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uRXJyb3IgPSB0aGlzLmFjdGlvbkV4ZWN1dG9yLnRvTW5nQWN0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmhhc1J1bk5vdGlmaWNhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25VdGlsLmFjdGlvbk5vdGlmaWNhdGlvbkVycm9yKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgYWN0aW9uRXJyb3IsICdmZXRjaCcsIHRoaXMudmlld0NvbnRhaW5lciwgdGhpcy5pdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBhY3Rpb25FcnJvcik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW0gPSByZXMgPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi5oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uVXRpbC5hY3Rpb25Ob3RpZmljYXRpb25TdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICdmZXRjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbi5mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRUaXRsZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUaXRsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmVkaXRvclRpdGxlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dDb25maWchLmhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBJMThuVXRpbHMuQWN0aW9uLmdldEVkaXRvclRpdGxlQXN5bmModGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uLCB0aGlzLml0ZW0pLnN1YnNjcmliZSh0ID0+IHtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0ID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZykge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnIS5oZWFkZXIgPSB0ID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tbmdDb21tb25zU2VydmljZS5zZXRQYWdlVGl0bGUodCA/PyB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlYWN0aXZhdGVBY3Rpb24oaXRlbT86IFQgfCBudWxsLCBjYW5jZWwgPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5pc0RpYWxvZykge1xuICAgICAgICAgICAgLy8gaWYgY2FuY2VsLCB0aGVuIGZvcmNlIGNsb3NlIHRoZSBkaWFsb2dcbiAgICAgICAgICAgIGlmIChjYW5jZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkV4ZWN1dG9yLmRlYWN0aXZhdGVBY3Rpb24odGhpcy5pbnN0YW5jZSEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGg1ICpuZ0lmPVwiIWlzRGlhbG9nICYmIHRpdGxlXCI+e3sgdGl0bGUgfX08L2g1PlxuPGRpdiBjbGFzcz1cImgtZnVsbCBmbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgKm5nSWY9XCJ0b29sYmFyTGVmdEFjdGlvbnMubGVuZ3RoID4gMCB8fCB0b29sYmFyUmlnaHRBY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibW5nLWFjdGlvbi1lZGl0b3ItdG9vbGJhclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJMZWZ0QWN0aW9uc1wiIFthY3Rpb25dPVwiYWN0aW9uXCIgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckXCIgW3ZpZXdDb250YWluZXJdPVwidmlld0NvbnRhaW5lclwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJSaWdodEFjdGlvbnNcIiBbYWN0aW9uXT1cImFjdGlvblwiIFtkaXNhYmxlZF09XCJzdWJtaXRMb2FkaW5nJFwiIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIj48L21uZy1hY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtdG9vbGJhcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImxvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBbc3R5bGVdPVwie3dpZHRoOiAnM3JlbScsIGhlaWdodDogJzNyZW0nfVwiIHN0cm9rZVdpZHRoPVwiM1wiPjwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bW5nLWZvcm0tZWRpdG9yICpuZ0lmPVwiYWN0aW9uLmVkaXRvckRlc2NyaXB0b3IgJiYgKGxvYWRpbmckIHwgYXN5bmMpID09PSBmYWxzZVwiIFtkZXNjcmlwdG9yXT1cImFjdGlvbi5lZGl0b3JEZXNjcmlwdG9yXCIgW2l0ZW1dPVwiaXRlbVwiIChmb3JtU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgPC9tbmctZm9ybS1lZGl0b3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPG1uZy1hY3Rpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBmb290ZXJMZWZ0QWN0aW9uc1wiIFthY3Rpb25dPVwiYWN0aW9uXCIgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckXCIgW3ZpZXdDb250YWluZXJdPVwidmlld0NvbnRhaW5lclwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bW5nLWFjdGlvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGZvb3RlclJpZ2h0QWN0aW9uc1wiIFthY3Rpb25dPVwiYWN0aW9uXCIgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckXCIgW3ZpZXdDb250YWluZXJdPVwidmlld0NvbnRhaW5lclwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -73,9 +73,12 @@ export class MngDateRangeComponent {
|
|
|
73
73
|
this.fromCtrl.setValue(startDate);
|
|
74
74
|
this.toCtrl.setValue(endDate);
|
|
75
75
|
}
|
|
76
|
-
else {
|
|
76
|
+
else if (startDate || endDate) {
|
|
77
77
|
this.dateRangeCtrl.setValue([startDate, endDate]);
|
|
78
78
|
}
|
|
79
|
+
else {
|
|
80
|
+
this.dateRangeCtrl.setValue(null);
|
|
81
|
+
}
|
|
79
82
|
}
|
|
80
83
|
onValueChange() {
|
|
81
84
|
if (this.showTime) {
|
|
@@ -103,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
103
106
|
}], dateFormat: [{
|
|
104
107
|
type: Input
|
|
105
108
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLEtBQUssRUFBcUIsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBNEQsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQWUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUV6QyxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBcUI7SUFDM0QsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxxQkFBcUI7SUFlOUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiNUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQyxnRUFBZ0U7UUFDeEQsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxnRUFBZ0U7UUFDekQsZ0JBQVcsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFM0Isa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRUksQ0FBQztJQUVoRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFnQixD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QztTQUNqQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBYSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFlLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7O2tIQTNGUSxxQkFBcUI7c0dBQXJCLHFCQUFxQiw2SkFIbkIsQ0FBQyw2QkFBNkIsQ0FBQywwQkNkOUMsd3RDQWtDQTsyRkRqQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLGdCQUFnQixhQUVmLENBQUMsNkJBQTZCLENBQUMsbUJBQ3pCLHVCQUF1QixDQUFDLE1BQU07a0dBRy9CLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV4aXN0aW5nUHJvdmlkZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtTdWJzY3JpcHRpb24sIG1lcmdlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IE1OR19EQVRFX1JBTkdFX1ZBTFVFX0FDQ0VTU09SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1uZ0RhdGVSYW5nZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWRhdGUtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNTkdfREFURV9SQU5HRV9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRGF0ZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dUaW1lID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dTZWNvbmRzID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGZyb21Ub0Zvcm1Db250cm9sITogRm9ybUdyb3VwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4ge307XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHB1YmxpYyBvblRvdWNoZWRGbjogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge31cblxuICAgIHB1YmxpYyBnZXQgZnJvbUN0cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Ub0Zvcm1Db250cm9sLmdldCgnZnJvbScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9DdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ3RvJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlUmFuZ2VDdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ2RhdGVSYW5nZScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZyb21Ub0Zvcm1Db250cm9sID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmcm9tOiBbXSxcbiAgICAgICAgICAgIHRvOiBbXSxcbiAgICAgICAgICAgIGRhdGVSYW5nZTogW11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobWVyZ2UodGhpcy5mcm9tQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudG9DdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WYWx1ZUNoYW5nZSgpKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHZhbHVlID0+IHZhbHVlLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIGlmIChvYmoubGVuZ3RoID4gMCAmJiAob2JqWzBdIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2Ygb2JqWzBdID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb2JqWzBdID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShvYmpbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9iai5sZW5ndGggPiAxICYmIChvYmpbMV0gaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgICAgICAgIGVuZERhdGUgPSBuZXcgRGF0ZShvYmpbMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG9iaiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9iaiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQ3RybC5zZXRWYWx1ZShzdGFydERhdGUpO1xuICAgICAgICAgICAgdGhpcy50b0N0cmwuc2V0VmFsdWUoZW5kRGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUN0cmwuc2V0VmFsdWUoW3N0YXJ0RGF0ZSwgZW5kRGF0ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgY29uc3QgZnJvbURhdGUgPSB0aGlzLmZyb21DdHJsLnZhbHVlIGFzIERhdGU7XG4gICAgICAgICAgICBjb25zdCB0b0RhdGUgPSB0aGlzLnRvQ3RybC52YWx1ZSBhcyBEYXRlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFtmcm9tRGF0ZSwgdG9EYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlIGFzIERhdGVbXTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGltZTsgZWxzZSBkZWZhdWx0UmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmcm9tQ3RybFwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJ0b0N0cmwudmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIiRhbnkocGxhY2Vob2xkZXIpXCJcbiAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgIFtzaG93U2Vjb25kc109XCJzaG93U2Vjb25kc1wiXG4gICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvblRvdWNoZWRGbigpXCI+PC9wLWNhbGVuZGFyPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b0N0cmxcIlxuICAgICAgICAgICAgW21pbkRhdGVdPVwiZnJvbUN0cmwudmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIiRhbnkocGxhY2Vob2xkZXIpXCJcbiAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cInNob3dUaW1lXCJcbiAgICAgICAgICAgIFtzaG93U2Vjb25kc109XCJzaG93U2Vjb25kc1wiXG4gICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvblRvdWNoZWRGbigpXCI+PC9wLWNhbGVuZGFyPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRSYW5nZT5cbiAgICA8cC1jYWxlbmRhclxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZGF0ZVJhbmdlQ3RybFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCIkYW55KHBsYWNlaG9sZGVyKVwiXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cIiRhbnkoZGF0ZUZvcm1hdClcIlxuICAgICAgICBzZWxlY3Rpb25Nb2RlPVwicmFuZ2VcIlxuICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uVG91Y2hlZEZuKClcIj48L3AtY2FsZW5kYXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLEtBQUssRUFBcUIsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBNEQsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQWUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUV6QyxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBcUI7SUFDM0QsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxxQkFBcUI7SUFlOUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiNUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQyxnRUFBZ0U7UUFDeEQsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxnRUFBZ0U7UUFDekQsZ0JBQVcsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFM0Isa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRUksQ0FBQztJQUVoRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFnQixD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QztTQUNqQzthQUFNLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBYSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFlLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7O2tIQTdGUSxxQkFBcUI7c0dBQXJCLHFCQUFxQiw2SkFIbkIsQ0FBQyw2QkFBNkIsQ0FBQywwQkNkOUMsd3RDQWtDQTsyRkRqQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLGdCQUFnQixhQUVmLENBQUMsNkJBQTZCLENBQUMsbUJBQ3pCLHVCQUF1QixDQUFDLE1BQU07a0dBRy9CLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV4aXN0aW5nUHJvdmlkZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtTdWJzY3JpcHRpb24sIG1lcmdlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IE1OR19EQVRFX1JBTkdFX1ZBTFVFX0FDQ0VTU09SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1uZ0RhdGVSYW5nZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWRhdGUtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNTkdfREFURV9SQU5HRV9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRGF0ZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dUaW1lID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dTZWNvbmRzID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGZyb21Ub0Zvcm1Db250cm9sITogRm9ybUdyb3VwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4ge307XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHB1YmxpYyBvblRvdWNoZWRGbjogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge31cblxuICAgIHB1YmxpYyBnZXQgZnJvbUN0cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Ub0Zvcm1Db250cm9sLmdldCgnZnJvbScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9DdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ3RvJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlUmFuZ2VDdHJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5nZXQoJ2RhdGVSYW5nZScpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZyb21Ub0Zvcm1Db250cm9sID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmcm9tOiBbXSxcbiAgICAgICAgICAgIHRvOiBbXSxcbiAgICAgICAgICAgIGRhdGVSYW5nZTogW11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobWVyZ2UodGhpcy5mcm9tQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudG9DdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WYWx1ZUNoYW5nZSgpKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHZhbHVlID0+IHZhbHVlLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIGlmIChvYmoubGVuZ3RoID4gMCAmJiAob2JqWzBdIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2Ygb2JqWzBdID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb2JqWzBdID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShvYmpbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9iai5sZW5ndGggPiAxICYmIChvYmpbMV0gaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvYmpbMV0gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgICAgICAgIGVuZERhdGUgPSBuZXcgRGF0ZShvYmpbMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG9iaiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9iaiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQ3RybC5zZXRWYWx1ZShzdGFydERhdGUpO1xuICAgICAgICAgICAgdGhpcy50b0N0cmwuc2V0VmFsdWUoZW5kRGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhcnREYXRlIHx8IGVuZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlQ3RybC5zZXRWYWx1ZShbc3RhcnREYXRlLCBlbmREYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUN0cmwuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dUaW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmcm9tRGF0ZSA9IHRoaXMuZnJvbUN0cmwudmFsdWUgYXMgRGF0ZTtcbiAgICAgICAgICAgIGNvbnN0IHRvRGF0ZSA9IHRoaXMudG9DdHJsLnZhbHVlIGFzIERhdGU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oW2Zyb21EYXRlLCB0b0RhdGVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmRhdGVSYW5nZUN0cmwudmFsdWUgYXMgRGF0ZVtdO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKGRhdGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUaW1lOyBlbHNlIGRlZmF1bHRSYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZyb21DdHJsXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cInRvQ3RybC52YWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJGFueShwbGFjZWhvbGRlcilcIlxuICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiJGFueShkYXRlRm9ybWF0KVwiXG4gICAgICAgICAgICBbc2hvd1RpbWVdPVwic2hvd1RpbWVcIlxuICAgICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uVG91Y2hlZEZuKClcIj48L3AtY2FsZW5kYXI+XG4gICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInRvQ3RybFwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJmcm9tQ3RybC52YWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJGFueShwbGFjZWhvbGRlcilcIlxuICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiJGFueShkYXRlRm9ybWF0KVwiXG4gICAgICAgICAgICBbc2hvd1RpbWVdPVwic2hvd1RpbWVcIlxuICAgICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uVG91Y2hlZEZuKClcIj48L3AtY2FsZW5kYXI+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJhbmdlPlxuICAgIDxwLWNhbGVuZGFyXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJkYXRlUmFuZ2VDdHJsXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIiRhbnkocGxhY2Vob2xkZXIpXCJcbiAgICAgICAgW2RhdGVGb3JtYXRdPVwiJGFueShkYXRlRm9ybWF0KVwiXG4gICAgICAgIHNlbGVjdGlvbk1vZGU9XCJyYW5nZVwiXG4gICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgKG9uRm9jdXMpPVwib25Ub3VjaGVkRm4oKVwiPjwvcC1jYWxlbmRhcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|