@pega/angular-sdk-components 0.24.1 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_bridge/angular-pconnect.mjs +5 -5
- package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +4 -4
- package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +1 -1
- package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +3 -3
- package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +3 -3
- package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +5 -5
- package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +5 -5
- package/esm2022/lib/_components/field/check-box/check-box.component.mjs +5 -5
- package/esm2022/lib/_components/field/currency/currency.component.mjs +32 -17
- package/esm2022/lib/_components/field/date/date.component.mjs +6 -6
- package/esm2022/lib/_components/field/date-time/date-time.component.mjs +14 -43
- package/esm2022/lib/_components/field/decimal/decimal.component.mjs +37 -10
- package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +5 -5
- package/esm2022/lib/_components/field/email/email.component.mjs +5 -5
- package/esm2022/lib/_components/field/group/group.component.mjs +5 -5
- package/esm2022/lib/_components/field/integer/integer.component.mjs +5 -5
- package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +3 -3
- package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +5 -5
- package/esm2022/lib/_components/field/multiselect/utils.mjs +2 -2
- package/esm2022/lib/_components/field/percentage/percentage.component.mjs +25 -8
- package/esm2022/lib/_components/field/phone/phone.component.mjs +5 -5
- package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +5 -5
- package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +5 -5
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +5 -5
- package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +5 -5
- package/esm2022/lib/_components/field/text/text.component.mjs +5 -5
- package/esm2022/lib/_components/field/text-area/text-area.component.mjs +5 -5
- package/esm2022/lib/_components/field/text-content/text-content.component.mjs +5 -5
- package/esm2022/lib/_components/field/text-input/text-input.component.mjs +5 -5
- package/esm2022/lib/_components/field/time/time.component.mjs +5 -5
- package/esm2022/lib/_components/field/url/url.component.mjs +5 -5
- package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +38 -26
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +19 -12
- package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +1 -1
- package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +3 -3
- package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +5 -5
- package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +3 -3
- package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +10 -10
- package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +3 -3
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +27 -6
- package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +4 -4
- package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +5 -5
- package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +5 -5
- package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +3 -3
- package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +6 -6
- package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +9 -7
- package/esm2022/lib/_components/infra/reference/reference.component.mjs +5 -5
- package/esm2022/lib/_components/infra/region/region.component.mjs +4 -4
- package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +5 -5
- package/esm2022/lib/_components/infra/stages/stages.component.mjs +5 -5
- package/esm2022/lib/_components/infra/view/view.component.mjs +5 -5
- package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +5 -5
- package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +6 -6
- package/esm2022/lib/_components/template/case-view/case-view.component.mjs +6 -6
- package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +5 -5
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +5 -5
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +5 -5
- package/esm2022/lib/_components/template/details/details.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +5 -5
- package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +5 -5
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +4 -4
- package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +5 -5
- package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +3 -3
- package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +4 -4
- package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/list-page/list-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +1 -1
- package/esm2022/lib/_components/template/list-view/list-view.component.mjs +7 -7
- package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -1
- package/esm2022/lib/_components/template/list-view/utils.mjs +1 -1
- package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +5 -5
- package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +4 -4
- package/esm2022/lib/_components/template/one-column/one-column.component.mjs +4 -4
- package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +4 -4
- package/esm2022/lib/_components/template/page/page.component.mjs +5 -5
- package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +5 -5
- package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +5 -5
- package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +5 -5
- package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +1 -1
- package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +6 -6
- package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +5 -5
- package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +4 -4
- package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/template/three-column/three-column.component.mjs +4 -4
- package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/two-column/two-column.component.mjs +4 -4
- package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +4 -4
- package/esm2022/lib/_components/template/utils.mjs +1 -1
- package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +4 -4
- package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +5 -5
- package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +4 -4
- package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +5 -5
- package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +6 -6
- package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +5 -5
- package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +18 -18
- package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +6 -6
- package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +5 -5
- package/esm2022/lib/_components/widget/todo/todo.component.mjs +6 -6
- package/esm2022/lib/_components/widget/utility/utility.component.mjs +5 -5
- package/esm2022/lib/_directives/thousand-seperator.directive.mjs +5 -5
- package/esm2022/lib/_helpers/case-utils.mjs +1 -1
- package/esm2022/lib/_helpers/currency-utils.mjs +1 -1
- package/esm2022/lib/_helpers/event-util.mjs +1 -1
- package/esm2022/lib/_helpers/field-group-utils.mjs +1 -1
- package/esm2022/lib/_helpers/filter-utils.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/boolean.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/currency.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/date.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/format-utils.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/index.mjs +1 -1
- package/esm2022/lib/_helpers/tab-utils.mjs +1 -1
- package/esm2022/lib/_helpers/template-utils.mjs +4 -4
- package/esm2022/lib/_helpers/utils.mjs +5 -5
- package/esm2022/lib/_messages/error-messages.service.mjs +3 -3
- package/esm2022/lib/_messages/get-login-status.service.mjs +3 -3
- package/esm2022/lib/_messages/oauth-response.service.mjs +3 -3
- package/esm2022/lib/_messages/progress-spinner.service.mjs +3 -3
- package/esm2022/lib/_messages/reset-pconnect.service.mjs +3 -3
- package/esm2022/lib/_messages/update-worklist.service.mjs +3 -3
- package/esm2022/lib/_services/case.service.mjs +4 -4
- package/esm2022/lib/_services/datapage.service.mjs +5 -5
- package/esm2022/lib/_services/server-config.service.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/pega-angular-sdk-components.mjs +675 -608
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_components/field/currency/currency.component.d.ts +4 -5
- package/lib/_components/field/date-time/date-time.component.d.ts +0 -1
- package/lib/_components/field/decimal/decimal.component.d.ts +9 -1
- package/lib/_components/field/percentage/percentage.component.d.ts +4 -0
- package/lib/_components/field/user-reference/user-reference.component.d.ts +9 -4
- package/lib/_components/infra/assignment/assignment.component.d.ts +2 -0
- package/lib/_components/widget/file-utility/file-utility.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -286,10 +286,10 @@ export class MultiselectComponent {
|
|
|
286
286
|
}
|
|
287
287
|
return errMessage;
|
|
288
288
|
}
|
|
289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
290
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
290
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiselectComponent, isStandalone: true, selector: "app-multiselect", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div [formGroup]=\"formGroup$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\">\n <mat-label>{{ label$ }}</mat-label>\n <mat-chip-grid #chipGrid>\n <ng-container *ngFor=\"let select of selectedItems\">\n <mat-chip-row (removed)=\"removeChip(select)\">\n {{ select.primary }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n </ng-container>\n </mat-chip-grid>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n (input)=\"fieldOnChange($event)\"\n [matChipInputFor]=\"chipGrid\"\n #trigger=\"matAutocompleteTrigger\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let item of itemsTree\" [value]=\"item.primary\" (click)=\"optionClicked($event, item, trigger)\">\n <mat-checkbox [checked]=\"item.selected\" (click)=\"optionClicked($event, item, trigger)\">\n <span>{{ item.primary }}</span>\n </mat-checkbox>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n</div>\n", styles: [".psdk-full-width{width:100%}::ng-deep .mat-mdc-form-field-infix{padding-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i4.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatAutocompleteModule) }, { kind: "component", type: i0.forwardRef(() => i7.MatAutocomplete), selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i0.forwardRef(() => i8.MatOption), selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i0.forwardRef(() => i7.MatAutocompleteTrigger), selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatOptionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => MatCheckboxModule) }, { kind: "component", type: i0.forwardRef(() => i9.MatCheckbox), selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i10.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatChipsModule) }, { kind: "component", type: i0.forwardRef(() => i11.MatChipGrid), selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i0.forwardRef(() => i11.MatChipInput), selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i0.forwardRef(() => i11.MatChipRemove), selector: "[matChipRemove]" }, { kind: "component", type: i0.forwardRef(() => i11.MatChipRow), selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }] }); }
|
|
291
291
|
}
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectComponent, decorators: [{
|
|
293
293
|
type: Component,
|
|
294
294
|
args: [{ selector: 'app-multiselect', standalone: true, imports: [
|
|
295
295
|
CommonModule,
|
|
@@ -303,9 +303,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
303
303
|
MatChipsModule,
|
|
304
304
|
forwardRef(() => ComponentMapperComponent)
|
|
305
305
|
], template: "<div [formGroup]=\"formGroup$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\">\n <mat-label>{{ label$ }}</mat-label>\n <mat-chip-grid #chipGrid>\n <ng-container *ngFor=\"let select of selectedItems\">\n <mat-chip-row (removed)=\"removeChip(select)\">\n {{ select.primary }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n </ng-container>\n </mat-chip-grid>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n (input)=\"fieldOnChange($event)\"\n [matChipInputFor]=\"chipGrid\"\n #trigger=\"matAutocompleteTrigger\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let item of itemsTree\" [value]=\"item.primary\" (click)=\"optionClicked($event, item, trigger)\">\n <mat-checkbox [checked]=\"item.selected\" (click)=\"optionClicked($event, item, trigger)\">\n <span>{{ item.primary }}</span>\n </mat-checkbox>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n</div>\n", styles: [".psdk-full-width{width:100%}::ng-deep .mat-mdc-form-field-infix{padding-left:10px}\n"] }]
|
|
306
|
-
}], ctorParameters:
|
|
306
|
+
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
|
|
307
307
|
type: Input
|
|
308
308
|
}], formGroup$: [{
|
|
309
309
|
type: Input
|
|
310
310
|
}] } });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUF3RCxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV4RyxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLGlC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QUFDLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7UUFDNUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNySSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzFGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BHLElBQUksQ0FBQyxhQUFh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T0FBTyxVQUFVLENBQUM7U0FDbkI7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztTQUN2QzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0F2VVUsb0JBQW9CO21HQUFwQixvQkFBb0IsbUlDbENqQyxnekNBa0NBLGdMRFpJLFlBQVksb1hBQ1osbUJBQW1CLG8yQ0FDbkIsa0JBQWtCLG1pQkFDbEIsY0FBYyx3YkFDZCxxQkFBcUIsNGxCQUNyQixlQUFlLHFFQUNmLGlCQUFpQiw4UEFDakIsYUFBYSxrUUFDYixjQUFjOzs0RkFJTCxvQkFBb0I7a0JBbEJoQyxTQUFTOytCQUNFLGlCQUFpQixjQUdmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzNDO2lJQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IGRvU2VhcmNoLCBnZXREaXNwbGF5RmllbGRzTWV0YURhdGEsIGdldEdyb3VwRGF0YUZvckl0ZW1zVHJlZSwgcHJlUHJvY2Vzc0NvbHVtbnMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGRlbGV0ZUluc3RydWN0aW9uLCBpbnNlcnRJbnN0cnVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2luc3RydWN0aW9ucy11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpc2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQgPSAnJztcbiAgYlJlcXVpcmVkJCA9IGZhbHNlO1xuICBiRGlzYWJsZWQkID0gZmFsc2U7XG4gIGJWaXNpYmxlJCA9IHRydWU7XG4gIGNvbnRyb2xOYW1lJDogc3RyaW5nO1xuICBiSGFzRm9ybSQgPSB0cnVlO1xuICBsaXN0VHlwZTogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuICBwYXJhbWV0ZXJzOiB7fTtcbiAgaGlkZUxhYmVsOiBib29sZWFuO1xuICBjb25maWdQcm9wcyQ6IGFueTtcblxuICByZWZlcmVuY2VMaXN0OiBhbnk7XG4gIHNlbGVjdGlvbktleTogc3RyaW5nO1xuICBwcmltYXJ5RmllbGQ6IHN0cmluZztcbiAgaW5pdGlhbENhc2VDbGFzczogYW55O1xuICBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5ID0gZmFsc2U7XG4gIGlzR3JvdXBEYXRhID0gZmFsc2U7XG4gIHJlZmVyZW5jZVR5cGU7XG4gIHNlY29uZGFyeUZpZWxkcztcbiAgZ3JvdXBEYXRhU291cmNlID0gW107XG4gIG1hdGNoUG9zaXRpb24gPSAnY29udGFpbnMnO1xuICBtYXhSZXN1bHRzRGlzcGxheTtcbiAgZ3JvdXBDb2x1bW5zQ29uZmlnID0gW3t9XTtcbiAgc2VsZWN0aW9uTGlzdDtcbiAgbGlzdEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcbiAgaXRlbXNUcmVlQmFzZURhdGEgPSBbXTtcbiAgZGlzcGxheUZpZWxkTWV0YTogYW55O1xuICBkYXRhQXBpT2JqOiBhbnk7XG4gIGl0ZW1zVHJlZTogYW55W10gPSBbXTtcbiAgdHJpZ2dlcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuXG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCQucmVtb3ZlQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXBkYXRlU2VsZlxuICB1cGRhdGVTZWxmKCkge1xuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpO1xuXG4gICAgbGV0IHsgZGF0YXNvdXJjZSA9IFtdLCBjb2x1bW5zID0gW3t9XSB9ID0gdGhpcy5jb25maWdQcm9wcyQ7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlc0Zyb21Qcm9wcygpO1xuXG4gICAgaWYgKHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhc291cmNlID0gdGhpcy5yZWZlcmVuY2VMaXN0O1xuICAgICAgY29sdW1ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLnByaW1hcnlGaWVsZCxcbiAgICAgICAgICBkaXNwbGF5OiAndHJ1ZScsXG4gICAgICAgICAgdXNlRm9yU2VhcmNoOiB0cnVlLFxuICAgICAgICAgIHByaW1hcnk6ICd0cnVlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0aW9uS2V5LFxuICAgICAgICAgIHNldFByb3BlcnR5OiB0aGlzLnNlbGVjdGlvbktleSxcbiAgICAgICAgICBrZXk6ICd0cnVlJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgICAgbGV0IHNlY29uZGFyeUNvbHVtbnM6IGFueSA9IFtdO1xuICAgICAgaWYgKHRoaXMuc2Vjb25kYXJ5RmllbGRzKSB7XG4gICAgICAgIHNlY29uZGFyeUNvbHVtbnMgPSB0aGlzLnNlY29uZGFyeUZpZWxkcy5tYXAoc2Vjb25kYXJ5RmllbGQgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogc2Vjb25kYXJ5RmllbGQsXG4gICAgICAgICAgZGlzcGxheTogJ3RydWUnLFxuICAgICAgICAgIHNlY29uZGFyeTogJ3RydWUnLFxuICAgICAgICAgIHVzZUZvclNlYXJjaDogJ3RydWUnXG4gICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY29uZGFyeUNvbHVtbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0aW9uS2V5LFxuICAgICAgICAgICAgZGlzcGxheTogJ3RydWUnLFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiAndHJ1ZScsXG4gICAgICAgICAgICB1c2VGb3JTZWFyY2g6ICd0cnVlJ1xuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlZmVyZW5jZVR5cGUgPT09ICdDYXNlJykge1xuICAgICAgICBjb2x1bW5zID0gWy4uLmNvbHVtbnMsIC4uLnNlY29uZGFyeUNvbHVtbnNdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmFsdWUkID0gdGhpcy52YWx1ZSQgPyB0aGlzLnZhbHVlJCA6ICcnO1xuICAgIGNvbnN0IGNvbnRleHROYW1lID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcblxuICAgIGNvbnN0IGRhdGFDb25maWcgPSB7XG4gICAgICBkYXRhU291cmNlOiBkYXRhc291cmNlLFxuICAgICAgZ3JvdXBEYXRhU291cmNlOiB0aGlzLmdyb3VwRGF0YVNvdXJjZSxcbiAgICAgIGlzR3JvdXBEYXRhOiB0aGlzLmlzR3JvdXBEYXRhLFxuICAgICAgc2hvd1NlY29uZGFyeUluU2VhcmNoT25seTogdGhpcy5zaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5LFxuICAgICAgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgbWF0Y2hQb3NpdGlvbjogdGhpcy5tYXRjaFBvc2l0aW9uLFxuICAgICAgbGlzdFR5cGU6IHRoaXMubGlzdFR5cGUsXG4gICAgICBtYXhSZXN1bHRzRGlzcGxheTogdGhpcy5tYXhSZXN1bHRzRGlzcGxheSB8fCAnMTAwJyxcbiAgICAgIGNvbHVtbnM6IHByZVByb2Nlc3NDb2x1bW5zKGNvbHVtbnMpLFxuICAgICAgZ3JvdXBDb2x1bW5zQ29uZmlnOiBwcmVQcm9jZXNzQ29sdW1ucyh0aGlzLmdyb3VwQ29sdW1uc0NvbmZpZylcbiAgICB9O1xuXG4gICAgY29uc3QgZ3JvdXBzRGlzcGxheUZpZWxkTWV0YSA9IHRoaXMubGlzdFR5cGUgIT09ICdhc3NvY2lhdGVkJyA/IGdldERpc3BsYXlGaWVsZHNNZXRhRGF0YShkYXRhQ29uZmlnLmdyb3VwQ29sdW1uc0NvbmZpZykgOiBudWxsO1xuXG4gICAgdGhpcy5pdGVtc1RyZWVCYXNlRGF0YSA9IGdldEdyb3VwRGF0YUZvckl0ZW1zVHJlZSh0aGlzLmdyb3VwRGF0YVNvdXJjZSwgZ3JvdXBzRGlzcGxheUZpZWxkTWV0YSwgdGhpcy5zaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5KSB8fCBbXTtcblxuICAgIHRoaXMuaXRlbXNUcmVlID0gdGhpcy5pc0dyb3VwRGF0YSA/IGdldEdyb3VwRGF0YUZvckl0ZW1zVHJlZSh0aGlzLmdyb3VwRGF0YVNvdXJjZSwgZ3JvdXBzRGlzcGxheUZpZWxkTWV0YSwgdGhpcy5zaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5KSA6IFtdO1xuXG4gICAgdGhpcy5kaXNwbGF5RmllbGRNZXRhID0gdGhpcy5saXN0VHlwZSAhPT0gJ2Fzc29jaWF0ZWQnID8gZ2V0RGlzcGxheUZpZWxkc01ldGFEYXRhKGRhdGFDb25maWcuY29sdW1ucykgOiBudWxsO1xuXG4gICAgdGhpcy5saXN0QWN0aW9ucyA9IHRoaXMucENvbm4kLmdldExpc3RBY3Rpb25zKCk7XG4gICAgdGhpcy5wQ29ubiQuc2V0UmVmZXJlbmNlTGlzdCh0aGlzLnNlbGVjdGlvbkxpc3QpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5iVmlzaWJsZSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5KTtcbiAgICB9XG5cbiAgICAvLyBkaXNhYmxlZFxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYkRpc2FibGVkJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iRGlzYWJsZWQkKSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpc3RUeXBlICE9PSAnYXNzb2NpYXRlZCcpIHtcbiAgICAgIFBDb3JlLmdldERhdGFBcGkoKVxuICAgICAgICA/LmluaXQoZGF0YUNvbmZpZywgY29udGV4dE5hbWUpXG4gICAgICAgIC50aGVuKGFzeW5jIGRhdGFPYmogPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUFwaU9iaiA9IGRhdGFPYmo7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzR3JvdXBEYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmdldENhc2VMaXN0QmFzZWRPblBhcmFtcyh0aGlzLnZhbHVlJCA/PyAnJywgJycsIFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdLCBbLi4udGhpcy5pdGVtc1RyZWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFByb3BlcnR5VmFsdWVzRnJvbVByb3BzKCkge1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuY29uZmlnUHJvcHMkLnBsYWNlaG9sZGVyIHx8ICcnO1xuICAgIHRoaXMubGlzdFR5cGUgPSB0aGlzLmNvbmZpZ1Byb3BzJC5saXN0VHlwZSA/IHRoaXMuY29uZmlnUHJvcHMkLmxpc3RUeXBlIDogJyc7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oaWRlTGFiZWw7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5jb25maWdQcm9wcyQ/LnBhcmFtZXRlcnMgPyB0aGlzLmNvbmZpZ1Byb3BzJD8ucGFyYW1ldGVycyA6IHt9O1xuICAgIHRoaXMucmVmZXJlbmNlTGlzdCA9IHRoaXMuY29uZmlnUHJvcHMkPy5yZWZlcmVuY2VMaXN0O1xuICAgIHRoaXMuc2VsZWN0aW9uS2V5ID0gdGhpcy5jb25maWdQcm9wcyQ/LnNlbGVjdGlvbktleTtcbiAgICB0aGlzLnByaW1hcnlGaWVsZCA9IHRoaXMuY29uZmlnUHJvcHMkPy5wcmltYXJ5RmllbGQ7XG4gICAgdGhpcy5pbml0aWFsQ2FzZUNsYXNzID0gdGhpcy5jb25maWdQcm9wcyQ/LmluaXRpYWxDYXNlQ2xhc3M7XG4gICAgdGhpcy5zaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5ID0gdGhpcy5jb25maWdQcm9wcyQ/LnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkgPyB0aGlzLmNvbmZpZ1Byb3BzJD8uc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSA6IGZhbHNlO1xuICAgIHRoaXMuaXNHcm91cERhdGEgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uaXNHcm91cERhdGEgPyB0aGlzLmNvbmZpZ1Byb3BzJC5pc0dyb3VwRGF0YSA6IGZhbHNlO1xuICAgIHRoaXMucmVmZXJlbmNlVHlwZSA9IHRoaXMuY29uZmlnUHJvcHMkPy5yZWZlcmVuY2VUeXBlO1xuICAgIHRoaXMuc2Vjb25kYXJ5RmllbGRzID0gdGhpcy5jb25maWdQcm9wcyQ/LnNlY29uZGFyeUZpZWxkcztcbiAgICB0aGlzLmdyb3VwRGF0YVNvdXJjZSA9IHRoaXMuY29uZmlnUHJvcHMkPy5ncm91cERhdGFTb3VyY2UgPyB0aGlzLmNvbmZpZ1Byb3BzJD8uZ3JvdXBEYXRhU291cmNlIDogW107XG4gICAgdGhpcy5tYXRjaFBvc2l0aW9uID0gdGhpcy5jb25maWdQcm9wcyQ/Lm1hdGNoUG9zaXRpb24gPyB0aGlzLmNvbmZpZ1Byb3BzJD8ubWF0Y2hQb3NpdGlvbiA6ICdjb250YWlucyc7XG4gICAgdGhpcy5tYXhSZXN1bHRzRGlzcGxheSA9IHRoaXMuY29uZmlnUHJvcHMkPy5tYXhSZXN1bHRzRGlzcGxheTtcbiAgICB0aGlzLmdyb3VwQ29sdW1uc0NvbmZpZyA9IHRoaXMuY29uZmlnUHJvcHMkPy5ncm91cENvbHVtbnNDb25maWcgPyB0aGlzLmNvbmZpZ1Byb3BzJD8uZ3JvdXBDb2x1bW5zQ29uZmlnIDogW3t9XTtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3QgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uc2VsZWN0aW9uTGlzdDtcbiAgICB0aGlzLnZhbHVlJCA9IHRoaXMuY29uZmlnUHJvcHMkPy52YWx1ZTtcbiAgfVxuXG4gIC8vIG1haW4gc2VhcmNoIGZ1bmN0aW9uIHRyaWdnZXJcbiAgZ2V0Q2FzZUxpc3RCYXNlZE9uUGFyYW1zKHNlYXJjaFRleHQsIGdyb3VwLCBzZWxlY3RlZFJvd3MsIGN1cnJlbnRJdGVtc1RyZWUsIGlzVHJpZ2dlcmVkRnJvbVNlYXJjaCA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucmVmZXJlbmNlTGlzdCAmJiB0aGlzLnJlZmVyZW5jZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5saXN0QWN0aW9ucy5nZXRTZWxlY3RlZFJvd3ModHJ1ZSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICBzZWxlY3RlZFJvd3MgPVxuICAgICAgICAgIHJlc3VsdC5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHJlc3VsdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlkOiBpdGVtW3RoaXMuc2VsZWN0aW9uS2V5LnN0YXJ0c1dpdGgoJy4nKSA/IHRoaXMuc2VsZWN0aW9uS2V5LnN1YnN0cmluZygxKSA6IHRoaXMuc2VsZWN0aW9uS2V5XSxcbiAgICAgICAgICAgICAgICAgIHByaW1hcnk6IGl0ZW1bdGhpcy5wcmltYXJ5RmllbGQuc3RhcnRzV2l0aCgnLicpID8gdGhpcy5wcmltYXJ5RmllbGQuc3Vic3RyaW5nKDEpIDogdGhpcy5wcmltYXJ5RmllbGRdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkUm93cztcblxuICAgICAgICBjb25zdCBpbml0YWxJdGVtc1RyZWUgPSBpc1RyaWdnZXJlZEZyb21TZWFyY2ggfHwgIWN1cnJlbnRJdGVtc1RyZWUgPyBbLi4udGhpcy5pdGVtc1RyZWVCYXNlRGF0YV0gOiBbLi4uY3VycmVudEl0ZW1zVHJlZV07XG5cbiAgICAgICAgZG9TZWFyY2goXG4gICAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICAgICBncm91cCxcbiAgICAgICAgICB0aGlzLmluaXRpYWxDYXNlQ2xhc3MsXG4gICAgICAgICAgdGhpcy5kaXNwbGF5RmllbGRNZXRhLFxuICAgICAgICAgIHRoaXMuZGF0YUFwaU9iaixcbiAgICAgICAgICBpbml0YWxJdGVtc1RyZWUsXG4gICAgICAgICAgdGhpcy5pc0dyb3VwRGF0YSxcbiAgICAgICAgICB0aGlzLnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHksXG4gICAgICAgICAgc2VsZWN0ZWRSb3dzIHx8IFtdXG4gICAgICAgICkudGhlbihyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuaXRlbXNUcmVlID0gcmVzIHx8IFtdO1xuICAgICAgICAgIGlmICh0aGlzLnRyaWdnZXIpIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZmllbGRPbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlJCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5nZXRDYXNlTGlzdEJhc2VkT25QYXJhbXModGhpcy52YWx1ZSQsICcnLCBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zXSwgWy4uLnRoaXMuaXRlbXNUcmVlXSwgdHJ1ZSk7XG4gIH1cblxuICBvcHRpb25DaGFuZ2VkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLmFjdGlvbnM/Lm9uQ2hhbmdlKHRoaXMsIGV2ZW50KTtcbiAgfVxuXG4gIG9wdGlvbkNsaWNrZWQgPSAoZXZlbnQ6IEV2ZW50LCBkYXRhOiBhbnksIHRyaWdnZXI/OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyKTogdm9pZCA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50b2dnbGVTZWxlY3Rpb24oZGF0YSwgdHJpZ2dlcik7XG4gIH07XG5cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKGRhdGE6IGFueSwgdHJpZ2dlcj86IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkID0+IHtcbiAgICBkYXRhLnNlbGVjdGVkID0gIWRhdGEuc2VsZWN0ZWQ7XG4gICAgdGhpcy50cmlnZ2VyID0gdHJpZ2dlcjtcbiAgICB0aGlzLml0ZW1zVHJlZS5tYXAoKGVsZTogYW55KSA9PiB7XG4gICAgICBpZiAoZWxlLmlkID09PSBkYXRhLmlkKSB7XG4gICAgICAgIGVsZS5zZWxlY3RlZCA9IGRhdGEuc2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZWxlO1xuICAgIH0pO1xuXG4gICAgaWYgKGRhdGEuc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgodmFsdWUgPT4gdmFsdWUuaWQgPT09IGRhdGEuaWQpO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSQgPSAnJztcbiAgICAvLyBpZiB0aGlzIGlzIGEgcmVmZXJlbmNlTGlzdCBjYXNlXG4gICAgaWYgKHRoaXMucmVmZXJlbmNlTGlzdCkgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zRm9yUmVmZXJlbmNlTGlzdChkYXRhKTtcblxuICAgIHRoaXMuZ2V0Q2FzZUxpc3RCYXNlZE9uUGFyYW1zKHRoaXMudmFsdWUkLCAnJywgWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc10sIFsuLi50aGlzLml0ZW1zVHJlZV0sIHRydWUpO1xuICB9O1xuXG4gIHJlbW92ZUNoaXAgPSAoZGF0YTogYW55KTogdm9pZCA9PiB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGRhdGEgPSB0aGlzLml0ZW1zVHJlZS5maWx0ZXIoKGVsZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGUuaWQgPT09IGRhdGEuaWQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uKGRhdGFbMF0pO1xuICAgIH1cbiAgfTtcblxuICBzZXRTZWxlY3RlZEl0ZW1zRm9yUmVmZXJlbmNlTGlzdChkYXRhOiBhbnkpIHtcbiAgICAvLyBDbGVhciBlcnJvciBtZXNzYWdlcyBpZiBhbnlcbiAgICBjb25zdCBwcm9wTmFtZSA9ICh0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkgYXMgYW55KS5zZWxlY3Rpb25MaXN0O1xuICAgIHRoaXMucENvbm4kLmNsZWFyRXJyb3JNZXNzYWdlcyh7XG4gICAgICBwcm9wZXJ0eTogcHJvcE5hbWUsXG4gICAgICBjYXRlZ29yeTogJycsXG4gICAgICBjb250ZXh0OiAnJ1xuICAgIH0pO1xuICAgIGNvbnN0IHsgc2VsZWN0ZWQgfSA9IGRhdGE7XG4gICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICBpbnNlcnRJbnN0cnVjdGlvbih0aGlzLnBDb25uJCwgdGhpcy5zZWxlY3Rpb25MaXN0LCB0aGlzLnNlbGVjdGlvbktleSwgdGhpcy5wcmltYXJ5RmllbGQsIGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGVJbnN0cnVjdGlvbih0aGlzLnBDb25uJCwgdGhpcy5zZWxlY3Rpb25MaXN0LCB0aGlzLnNlbGVjdGlvbktleSwgZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG5cbiAgICAvLyBsb29rIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2VzIGZvciBqc29uLCBwcmUtZGVmaW5lZCBvciBqdXN0IGFuIGVycm9yIHB1c2hlZCBmcm9tIHdvcmtpdGVtICg0MDApXG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdtZXNzYWdlJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlID8/ICcnO1xuICAgICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9ICdZb3UgbXVzdCBlbnRlciBhIHZhbHVlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRDb250cm9sLmVycm9ycykge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZmllbGRDb250cm9sLmVycm9ycy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCQgfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LWNoaXAtZ3JpZCAjY2hpcEdyaWQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWxlY3Qgb2Ygc2VsZWN0ZWRJdGVtc1wiPlxuICAgICAgICA8bWF0LWNoaXAtcm93IChyZW1vdmVkKT1cInJlbW92ZUNoaXAoc2VsZWN0KVwiPlxuICAgICAgICAgIHt7IHNlbGVjdC5wcmltYXJ5IH19XG4gICAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtY2hpcC1ncmlkPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZmllbGRDb250cm9sXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZSRcIlxuICAgICAgW3JlcXVpcmVkXT1cImJSZXF1aXJlZCRcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIChpbnB1dCk9XCJmaWVsZE9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwR3JpZFwiXG4gICAgICAjdHJpZ2dlcj1cIm1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcIlxuICAgIC8+XG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVHJlZVwiIFt2YWx1ZV09XCJpdGVtLnByaW1hcnlcIiAoY2xpY2spPVwib3B0aW9uQ2xpY2tlZCgkZXZlbnQsIGl0ZW0sIHRyaWdnZXIpXCI+XG4gICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIChjbGljayk9XCJvcHRpb25DbGlja2VkKCRldmVudCwgaXRlbSwgdHJpZ2dlcilcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLnByaW1hcnkgfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUF3RCxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV4RyxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLGlC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QUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgZG9TZWFyY2gsIGdldERpc3BsYXlGaWVsZHNNZXRhRGF0YSwgZ2V0R3JvdXBEYXRhRm9ySXRlbXNUcmVlLCBwcmVQcm9jZXNzQ29sdW1ucyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZGVsZXRlSW5zdHJ1Y3Rpb24sIGluc2VydEluc3RydWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvaW5zdHJ1Y3Rpb25zLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW11bHRpc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGlzZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlzZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgbGFiZWwkID0gJyc7XG4gIHZhbHVlJCA9ICcnO1xuICBiUmVxdWlyZWQkID0gZmFsc2U7XG4gIGJEaXNhYmxlZCQgPSBmYWxzZTtcbiAgYlZpc2libGUkID0gdHJ1ZTtcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIGJIYXNGb3JtJCA9IHRydWU7XG4gIGxpc3RUeXBlOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGZpZWxkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgbnVsbCk7XG4gIHBhcmFtZXRlcnM6IHt9O1xuICBoaWRlTGFiZWw6IGJvb2xlYW47XG4gIGNvbmZpZ1Byb3BzJDogYW55O1xuXG4gIHJlZmVyZW5jZUxpc3Q6IGFueTtcbiAgc2VsZWN0aW9uS2V5OiBzdHJpbmc7XG4gIHByaW1hcnlGaWVsZDogc3RyaW5nO1xuICBpbml0aWFsQ2FzZUNsYXNzOiBhbnk7XG4gIHNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkgPSBmYWxzZTtcbiAgaXNHcm91cERhdGEgPSBmYWxzZTtcbiAgcmVmZXJlbmNlVHlwZTtcbiAgc2Vjb25kYXJ5RmllbGRzO1xuICBncm91cERhdGFTb3VyY2UgPSBbXTtcbiAgbWF0Y2hQb3NpdGlvbiA9ICdjb250YWlucyc7XG4gIG1heFJlc3VsdHNEaXNwbGF5O1xuICBncm91cENvbHVtbnNDb25maWcgPSBbe31dO1xuICBzZWxlY3Rpb25MaXN0O1xuICBsaXN0QWN0aW9uczogYW55O1xuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBpdGVtc1RyZWVCYXNlRGF0YSA9IFtdO1xuICBkaXNwbGF5RmllbGRNZXRhOiBhbnk7XG4gIGRhdGFBcGlPYmo6IGFueTtcbiAgaXRlbXNUcmVlOiBhbnlbXSA9IFtdO1xuICB0cmlnZ2VyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuY29udHJvbE5hbWUkID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50SUQodGhpcyk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSQpO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5yZW1vdmVDb250cm9sKHRoaXMuY29udHJvbE5hbWUkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGVTZWxmXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSk7XG5cbiAgICBsZXQgeyBkYXRhc291cmNlID0gW10sIGNvbHVtbnMgPSBbe31dIH0gPSB0aGlzLmNvbmZpZ1Byb3BzJDtcbiAgICB0aGlzLnNldFByb3BlcnR5VmFsdWVzRnJvbVByb3BzKCk7XG5cbiAgICBpZiAodGhpcy5yZWZlcmVuY2VMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGFzb3VyY2UgPSB0aGlzLnJlZmVyZW5jZUxpc3Q7XG4gICAgICBjb2x1bW5zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IHRoaXMucHJpbWFyeUZpZWxkLFxuICAgICAgICAgIGRpc3BsYXk6ICd0cnVlJyxcbiAgICAgICAgICB1c2VGb3JTZWFyY2g6IHRydWUsXG4gICAgICAgICAgcHJpbWFyeTogJ3RydWUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3Rpb25LZXksXG4gICAgICAgICAgc2V0UHJvcGVydHk6IHRoaXMuc2VsZWN0aW9uS2V5LFxuICAgICAgICAgIGtleTogJ3RydWUnXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgICBsZXQgc2Vjb25kYXJ5Q29sdW1uczogYW55ID0gW107XG4gICAgICBpZiAodGhpcy5zZWNvbmRhcnlGaWVsZHMpIHtcbiAgICAgICAgc2Vjb25kYXJ5Q29sdW1ucyA9IHRoaXMuc2Vjb25kYXJ5RmllbGRzLm1hcChzZWNvbmRhcnlGaWVsZCA9PiAoe1xuICAgICAgICAgIHZhbHVlOiBzZWNvbmRhcnlGaWVsZCxcbiAgICAgICAgICBkaXNwbGF5OiAndHJ1ZScsXG4gICAgICAgICAgc2Vjb25kYXJ5OiAndHJ1ZScsXG4gICAgICAgICAgdXNlRm9yU2VhcmNoOiAndHJ1ZSdcbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vjb25kYXJ5Q29sdW1ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3Rpb25LZXksXG4gICAgICAgICAgICBkaXNwbGF5OiAndHJ1ZScsXG4gICAgICAgICAgICBzZWNvbmRhcnk6ICd0cnVlJyxcbiAgICAgICAgICAgIHVzZUZvclNlYXJjaDogJ3RydWUnXG4gICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucmVmZXJlbmNlVHlwZSA9PT0gJ0Nhc2UnKSB7XG4gICAgICAgIGNvbHVtbnMgPSBbLi4uY29sdW1ucywgLi4uc2Vjb25kYXJ5Q29sdW1uc107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSQgPSB0aGlzLnZhbHVlJCA/IHRoaXMudmFsdWUkIDogJyc7XG4gICAgY29uc3QgY29udGV4dE5hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpO1xuXG4gICAgY29uc3QgZGF0YUNvbmZpZyA9IHtcbiAgICAgIGRhdGFTb3VyY2U6IGRhdGFzb3VyY2UsXG4gICAgICBncm91cERhdGFTb3VyY2U6IHRoaXMuZ3JvdXBEYXRhU291cmNlLFxuICAgICAgaXNHcm91cERhdGE6IHRoaXMuaXNHcm91cERhdGEsXG4gICAgICBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5OiB0aGlzLnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHksXG4gICAgICBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMsXG4gICAgICBtYXRjaFBvc2l0aW9uOiB0aGlzLm1hdGNoUG9zaXRpb24sXG4gICAgICBsaXN0VHlwZTogdGhpcy5saXN0VHlwZSxcbiAgICAgIG1heFJlc3VsdHNEaXNwbGF5OiB0aGlzLm1heFJlc3VsdHNEaXNwbGF5IHx8ICcxMDAnLFxuICAgICAgY29sdW1uczogcHJlUHJvY2Vzc0NvbHVtbnMoY29sdW1ucyksXG4gICAgICBncm91cENvbHVtbnNDb25maWc6IHByZVByb2Nlc3NDb2x1bW5zKHRoaXMuZ3JvdXBDb2x1bW5zQ29uZmlnKVxuICAgIH07XG5cbiAgICBjb25zdCBncm91cHNEaXNwbGF5RmllbGRNZXRhID0gdGhpcy5saXN0VHlwZSAhPT0gJ2Fzc29jaWF0ZWQnID8gZ2V0RGlzcGxheUZpZWxkc01ldGFEYXRhKGRhdGFDb25maWcuZ3JvdXBDb2x1bW5zQ29uZmlnKSA6IG51bGw7XG5cbiAgICB0aGlzLml0ZW1zVHJlZUJhc2VEYXRhID0gZ2V0R3JvdXBEYXRhRm9ySXRlbXNUcmVlKHRoaXMuZ3JvdXBEYXRhU291cmNlLCBncm91cHNEaXNwbGF5RmllbGRNZXRhLCB0aGlzLnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkpIHx8IFtdO1xuXG4gICAgdGhpcy5pdGVtc1RyZWUgPSB0aGlzLmlzR3JvdXBEYXRhID8gZ2V0R3JvdXBEYXRhRm9ySXRlbXNUcmVlKHRoaXMuZ3JvdXBEYXRhU291cmNlLCBncm91cHNEaXNwbGF5RmllbGRNZXRhLCB0aGlzLnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkpIDogW107XG5cbiAgICB0aGlzLmRpc3BsYXlGaWVsZE1ldGEgPSB0aGlzLmxpc3RUeXBlICE9PSAnYXNzb2NpYXRlZCcgPyBnZXREaXNwbGF5RmllbGRzTWV0YURhdGEoZGF0YUNvbmZpZy5jb2x1bW5zKSA6IG51bGw7XG5cbiAgICB0aGlzLmxpc3RBY3Rpb25zID0gdGhpcy5wQ29ubiQuZ2V0TGlzdEFjdGlvbnMoKTtcbiAgICB0aGlzLnBDb25uJC5zZXRSZWZlcmVuY2VMaXN0KHRoaXMuc2VsZWN0aW9uTGlzdCk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlzdFR5cGUgIT09ICdhc3NvY2lhdGVkJykge1xuICAgICAgUENvcmUuZ2V0RGF0YUFwaSgpXG4gICAgICAgID8uaW5pdChkYXRhQ29uZmlnLCBjb250ZXh0TmFtZSlcbiAgICAgICAgLnRoZW4oYXN5bmMgZGF0YU9iaiA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQXBpT2JqID0gZGF0YU9iajtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNHcm91cERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2FzZUxpc3RCYXNlZE9uUGFyYW1zKHRoaXMudmFsdWUkID8/ICcnLCAnJywgWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc10sIFsuLi50aGlzLml0ZW1zVHJlZV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UHJvcGVydHlWYWx1ZXNGcm9tUHJvcHMoKSB7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5jb25maWdQcm9wcyQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgdGhpcy5saXN0VHlwZSA9IHRoaXMuY29uZmlnUHJvcHMkLmxpc3RUeXBlID8gdGhpcy5jb25maWdQcm9wcyQubGlzdFR5cGUgOiAnJztcbiAgICB0aGlzLmhpZGVMYWJlbCA9IHRoaXMuY29uZmlnUHJvcHMkLmhpZGVMYWJlbDtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLmNvbmZpZ1Byb3BzJD8ucGFyYW1ldGVycyA/IHRoaXMuY29uZmlnUHJvcHMkPy5wYXJhbWV0ZXJzIDoge307XG4gICAgdGhpcy5yZWZlcmVuY2VMaXN0ID0gdGhpcy5jb25maWdQcm9wcyQ/LnJlZmVyZW5jZUxpc3Q7XG4gICAgdGhpcy5zZWxlY3Rpb25LZXkgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uc2VsZWN0aW9uS2V5O1xuICAgIHRoaXMucHJpbWFyeUZpZWxkID0gdGhpcy5jb25maWdQcm9wcyQ/LnByaW1hcnlGaWVsZDtcbiAgICB0aGlzLmluaXRpYWxDYXNlQ2xhc3MgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uaW5pdGlhbENhc2VDbGFzcztcbiAgICB0aGlzLnNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSA/IHRoaXMuY29uZmlnUHJvcHMkPy5zaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5IDogZmFsc2U7XG4gICAgdGhpcy5pc0dyb3VwRGF0YSA9IHRoaXMuY29uZmlnUHJvcHMkPy5pc0dyb3VwRGF0YSA/IHRoaXMuY29uZmlnUHJvcHMkLmlzR3JvdXBEYXRhIDogZmFsc2U7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhpcy5jb25maWdQcm9wcyQ/LnJlZmVyZW5jZVR5cGU7XG4gICAgdGhpcy5zZWNvbmRhcnlGaWVsZHMgPSB0aGlzLmNvbmZpZ1Byb3BzJD8uc2Vjb25kYXJ5RmllbGRzO1xuICAgIHRoaXMuZ3JvdXBEYXRhU291cmNlID0gdGhpcy5jb25maWdQcm9wcyQ/Lmdyb3VwRGF0YVNvdXJjZSA/IHRoaXMuY29uZmlnUHJvcHMkPy5ncm91cERhdGFTb3VyY2UgOiBbXTtcbiAgICB0aGlzLm1hdGNoUG9zaXRpb24gPSB0aGlzLmNvbmZpZ1Byb3BzJD8ubWF0Y2hQb3NpdGlvbiA/IHRoaXMuY29uZmlnUHJvcHMkPy5tYXRjaFBvc2l0aW9uIDogJ2NvbnRhaW5zJztcbiAgICB0aGlzLm1heFJlc3VsdHNEaXNwbGF5ID0gdGhpcy5jb25maWdQcm9wcyQ/Lm1heFJlc3VsdHNEaXNwbGF5O1xuICAgIHRoaXMuZ3JvdXBDb2x1bW5zQ29uZmlnID0gdGhpcy5jb25maWdQcm9wcyQ/Lmdyb3VwQ29sdW1uc0NvbmZpZyA/IHRoaXMuY29uZmlnUHJvcHMkPy5ncm91cENvbHVtbnNDb25maWcgOiBbe31dO1xuICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IHRoaXMuY29uZmlnUHJvcHMkPy5zZWxlY3Rpb25MaXN0O1xuICAgIHRoaXMudmFsdWUkID0gdGhpcy5jb25maWdQcm9wcyQ/LnZhbHVlO1xuICB9XG5cbiAgLy8gbWFpbiBzZWFyY2ggZnVuY3Rpb24gdHJpZ2dlclxuICBnZXRDYXNlTGlzdEJhc2VkT25QYXJhbXMoc2VhcmNoVGV4dCwgZ3JvdXAsIHNlbGVjdGVkUm93cywgY3VycmVudEl0ZW1zVHJlZSwgaXNUcmlnZ2VyZWRGcm9tU2VhcmNoID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5yZWZlcmVuY2VMaXN0ICYmIHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxpc3RBY3Rpb25zLmdldFNlbGVjdGVkUm93cyh0cnVlKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgIHNlbGVjdGVkUm93cyA9XG4gICAgICAgICAgcmVzdWx0Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gcmVzdWx0Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5zZWxlY3Rpb25LZXkuc3RhcnRzV2l0aCgnLicpID8gdGhpcy5zZWxlY3Rpb25LZXkuc3Vic3RyaW5nKDEpIDogdGhpcy5zZWxlY3Rpb25LZXldLFxuICAgICAgICAgICAgICAgICAgcHJpbWFyeTogaXRlbVt0aGlzLnByaW1hcnlGaWVsZC5zdGFydHNXaXRoKCcuJykgPyB0aGlzLnByaW1hcnlGaWVsZC5zdWJzdHJpbmcoMSkgOiB0aGlzLnByaW1hcnlGaWVsZF1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRSb3dzO1xuXG4gICAgICAgIGNvbnN0IGluaXRhbEl0ZW1zVHJlZSA9IGlzVHJpZ2dlcmVkRnJvbVNlYXJjaCB8fCAhY3VycmVudEl0ZW1zVHJlZSA/IFsuLi50aGlzLml0ZW1zVHJlZUJhc2VEYXRhXSA6IFsuLi5jdXJyZW50SXRlbXNUcmVlXTtcblxuICAgICAgICBkb1NlYXJjaChcbiAgICAgICAgICBzZWFyY2hUZXh0LFxuICAgICAgICAgIGdyb3VwLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbENhc2VDbGFzcyxcbiAgICAgICAgICB0aGlzLmRpc3BsYXlGaWVsZE1ldGEsXG4gICAgICAgICAgdGhpcy5kYXRhQXBpT2JqLFxuICAgICAgICAgIGluaXRhbEl0ZW1zVHJlZSxcbiAgICAgICAgICB0aGlzLmlzR3JvdXBEYXRhLFxuICAgICAgICAgIHRoaXMuc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSxcbiAgICAgICAgICBzZWxlY3RlZFJvd3MgfHwgW11cbiAgICAgICAgKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5pdGVtc1RyZWUgPSByZXMgfHwgW107XG4gICAgICAgICAgaWYgKHRoaXMudHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmaWVsZE9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMudmFsdWUkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmdldENhc2VMaXN0QmFzZWRPblBhcmFtcyh0aGlzLnZhbHVlJCwgJycsIFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdLCBbLi4udGhpcy5pdGVtc1RyZWVdLCB0cnVlKTtcbiAgfVxuXG4gIG9wdGlvbkNoYW5nZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEuYWN0aW9ucz8ub25DaGFuZ2UodGhpcywgZXZlbnQpO1xuICB9XG5cbiAgb3B0aW9uQ2xpY2tlZCA9IChldmVudDogRXZlbnQsIGRhdGE6IGFueSwgdHJpZ2dlcj86IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZVNlbGVjdGlvbihkYXRhLCB0cmlnZ2VyKTtcbiAgfTtcblxuICB0b2dnbGVTZWxlY3Rpb24gPSAoZGF0YTogYW55LCB0cmlnZ2VyPzogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQgPT4ge1xuICAgIGRhdGEuc2VsZWN0ZWQgPSAhZGF0YS5zZWxlY3RlZDtcbiAgICB0aGlzLnRyaWdnZXIgPSB0cmlnZ2VyO1xuICAgIHRoaXMuaXRlbXNUcmVlLm1hcCgoZWxlOiBhbnkpID0+IHtcbiAgICAgIGlmIChlbGUuaWQgPT09IGRhdGEuaWQpIHtcbiAgICAgICAgZWxlLnNlbGVjdGVkID0gZGF0YS5zZWxlY3RlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbGU7XG4gICAgfSk7XG5cbiAgICBpZiAoZGF0YS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZS5pZCA9PT0gZGF0YS5pZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlJCA9ICcnO1xuICAgIC8vIGlmIHRoaXMgaXMgYSByZWZlcmVuY2VMaXN0IGNhc2VcbiAgICBpZiAodGhpcy5yZWZlcmVuY2VMaXN0KSB0aGlzLnNldFNlbGVjdGVkSXRlbXNGb3JSZWZlcmVuY2VMaXN0KGRhdGEpO1xuXG4gICAgdGhpcy5nZXRDYXNlTGlzdEJhc2VkT25QYXJhbXModGhpcy52YWx1ZSQsICcnLCBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zXSwgWy4uLnRoaXMuaXRlbXNUcmVlXSwgdHJ1ZSk7XG4gIH07XG5cbiAgcmVtb3ZlQ2hpcCA9IChkYXRhOiBhbnkpOiB2b2lkID0+IHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZGF0YSA9IHRoaXMuaXRlbXNUcmVlLmZpbHRlcigoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZS5pZCA9PT0gZGF0YS5pZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50b2dnbGVTZWxlY3Rpb24oZGF0YVswXSk7XG4gICAgfVxuICB9O1xuXG4gIHNldFNlbGVjdGVkSXRlbXNGb3JSZWZlcmVuY2VMaXN0KGRhdGE6IGFueSkge1xuICAgIC8vIENsZWFyIGVycm9yIG1lc3NhZ2VzIGlmIGFueVxuICAgIGNvbnN0IHByb3BOYW1lID0gKHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKSBhcyBhbnkpLnNlbGVjdGlvbkxpc3Q7XG4gICAgdGhpcy5wQ29ubiQuY2xlYXJFcnJvck1lc3NhZ2VzKHtcbiAgICAgIHByb3BlcnR5OiBwcm9wTmFtZSxcbiAgICAgIGNhdGVnb3J5OiAnJyxcbiAgICAgIGNvbnRleHQ6ICcnXG4gICAgfSk7XG4gICAgY29uc3QgeyBzZWxlY3RlZCB9ID0gZGF0YTtcbiAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgIGluc2VydEluc3RydWN0aW9uKHRoaXMucENvbm4kLCB0aGlzLnNlbGVjdGlvbkxpc3QsIHRoaXMuc2VsZWN0aW9uS2V5LCB0aGlzLnByaW1hcnlGaWVsZCwgZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZUluc3RydWN0aW9uKHRoaXMucENvbm4kLCB0aGlzLnNlbGVjdGlvbkxpc3QsIHRoaXMuc2VsZWN0aW9uS2V5LCBkYXRhKTtcbiAgICB9XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoKSB7XG4gICAgbGV0IGVyck1lc3NhZ2UgPSAnJztcblxuICAgIC8vIGxvb2sgZm9yIHZhbGlkYXRpb24gbWVzc2FnZXMgZm9yIGpzb24sIHByZS1kZWZpbmVkIG9yIGp1c3QgYW4gZXJyb3IgcHVzaGVkIGZyb20gd29ya2l0ZW0gKDQwMClcbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ21lc3NhZ2UnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgPz8gJyc7XG4gICAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gJ1lvdSBtdXN0IGVudGVyIGEgdmFsdWUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZENvbnRyb2wuZXJyb3JzKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5maWVsZENvbnRyb2wuZXJyb3JzLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInBzZGstZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8bWF0LWxhYmVsPnt7IGxhYmVsJCB9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwR3JpZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlbGVjdCBvZiBzZWxlY3RlZEl0ZW1zXCI+XG4gICAgICAgIDxtYXQtY2hpcC1yb3cgKHJlbW92ZWQpPVwicmVtb3ZlQ2hpcChzZWxlY3QpXCI+XG4gICAgICAgICAge3sgc2VsZWN0LnByaW1hcnkgfX1cbiAgICAgICAgICA8YnV0dG9uIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlJFwiXG4gICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgKGlucHV0KT1cImZpZWxkT25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBHcmlkXCJcbiAgICAgICN0cmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXG4gICAgLz5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNUcmVlXCIgW3ZhbHVlXT1cIml0ZW0ucHJpbWFyeVwiIChjbGljayk9XCJvcHRpb25DbGlja2VkKCRldmVudCwgaXRlbSwgdHJpZ2dlcilcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIgKGNsaWNrKT1cIm9wdGlvbkNsaWNrZWQoJGV2ZW50LCBpdGVtLCB0cmlnZ2VyKVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ucHJpbWFyeSB9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmaWVsZENvbnRyb2wuaW52YWxpZFwiPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import cloneDeep from 'lodash
|
|
1
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
2
2
|
export function setVisibilityForList(c11nEnv, visibility) {
|
|
3
3
|
const { selectionMode, selectionList, renderMode, referenceList } = c11nEnv.getComponentConfig();
|
|
4
4
|
// usecase:multiselect, fieldgroup, editable table
|
|
@@ -184,4 +184,4 @@ function getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showS
|
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
export { preProcessColumns, getDisplayFieldsMetaData, doSearch, setValuesToPropertyList, getGroupDataForItemsTree };
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvbXVsdGlzZWxlY3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFFekMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3RELE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqRyxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsSUFBSSxhQUFhLENBQUMsRUFBRTtRQUN2SSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3BEO0FBQ0gsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBTztJQUNoQyxPQUFPLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDL0YsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQzFCLFVBQVUsQ0FB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TyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHlGb3JMaXN0KGMxMW5FbnYsIHZpc2liaWxpdHkpIHtcbiAgY29uc3QgeyBzZWxlY3Rpb25Nb2RlLCBzZWxlY3Rpb25MaXN0LCByZW5kZXJNb2RlLCByZWZlcmVuY2VMaXN0IH0gPSBjMTFuRW52LmdldENvbXBvbmVudENvbmZpZygpO1xuICAvLyB1c2VjYXNlOm11bHRpc2VsZWN0LCBmaWVsZGdyb3VwLCBlZGl0YWJsZSB0YWJsZVxuICBpZiAoKHNlbGVjdGlvbk1vZGUgPT09IFBDb3JlLmdldENvbnN0YW50cygpLkxJU1RfU0VMRUNUSU9OX01PREUuTVVMVEkgJiYgc2VsZWN0aW9uTGlzdCkgfHwgKHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScgJiYgcmVmZXJlbmNlTGlzdCkpIHtcbiAgICBjMTFuRW52LmdldExpc3RBY3Rpb25zKCkuc2V0VmlzaWJpbGl0eSh2aXNpYmlsaXR5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVQcm9jZXNzQ29sdW1ucyhjb2x1bW5zKSB7XG4gIHJldHVybiBjb2x1bW5zPy5tYXAoY29sID0+IHtcbiAgICBjb25zdCB0ZW1wQ29sT2JqID0geyAuLi5jb2wgfTtcbiAgICB0ZW1wQ29sT2JqLnZhbHVlID0gY29sLnZhbHVlICYmIGNvbC52YWx1ZS5zdGFydHNXaXRoKCcuJykgPyBjb2wudmFsdWUuc3Vic3RyaW5nKDEpIDogY29sLnZhbHVlO1xuICAgIGlmICh0ZW1wQ29sT2JqLnNldFByb3BlcnR5KSB7XG4gICAgICB0ZW1wQ29sT2JqLnNldFByb3BlcnR5ID0gY29sLnNldFByb3BlcnR5ICYmIGNvbC5zZXRQcm9wZXJ0eS5zdGFydHNXaXRoKCcuJykgPyBjb2wuc2V0UHJvcGVydHkuc3Vic3RyaW5nKDEpIDogY29sLnNldFByb3BlcnR5O1xuICAgIH1cbiAgICByZXR1cm4gdGVtcENvbE9iajtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldERpc3BsYXlGaWVsZHNNZXRhRGF0YShjb2x1bW5zKSB7XG4gIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gY29sdW1ucz8uZmlsdGVyKGNvbCA9PiBjb2wuZGlzcGxheSA9PT0gJ3RydWUnKTtcbiAgY29uc3QgbWV0YURhdGFPYmo6IGFueSA9IHtcbiAgICBrZXk6ICcnLFxuICAgIHByaW1hcnk6ICcnLFxuICAgIHNlY29uZGFyeTogW11cbiAgfTtcbiAgY29uc3Qga2V5Q29sID0gY29sdW1ucz8uZmlsdGVyKGNvbCA9PiBjb2wua2V5ID09PSAndHJ1ZScpO1xuICBtZXRhRGF0YU9iai5rZXkgPSBrZXlDb2w/Lmxlbmd0aCA+IDAgPyBrZXlDb2xbMF0udmFsdWUgOiAnYXV0byc7XG4gIGNvbnN0IGl0ZW1zUmVjb3Jkc0NvbHVtbiA9IGNvbHVtbnM/LmZpbHRlcihjb2wgPT4gY29sLml0ZW1zUmVjb3Jkc0NvbHVtbiA9PT0gJ3RydWUnKTtcbiAgaWYgKGl0ZW1zUmVjb3Jkc0NvbHVtbj8ubGVuZ3RoID4gMCkge1xuICAgIG1ldGFEYXRhT2JqLml0ZW1zUmVjb3Jkc0NvbHVtbiA9IGl0ZW1zUmVjb3Jkc0NvbHVtblswXS52YWx1ZTtcbiAgfVxuICBjb25zdCBpdGVtc0dyb3VwS2V5Q29sdW1uID0gY29sdW1ucz8uZmlsdGVyKGNvbCA9PiBjb2wuaXRlbXNHcm91cEtleUNvbHVtbiA9PT0gJ3RydWUnKTtcbiAgaWYgKGl0ZW1zR3JvdXBLZXlDb2x1bW4/Lmxlbmd0aCA+IDApIHtcbiAgICBtZXRhRGF0YU9iai5pdGVtc0dyb3VwS2V5Q29sdW1uID0gaXRlbXNHcm91cEtleUNvbHVtblswXS52YWx1ZTtcbiAgfVxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGlzcGxheUNvbHVtbnM/Lmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGlmIChkaXNwbGF5Q29sdW1uc1tpbmRleF0uc2Vjb25kYXJ5ID09PSAndHJ1ZScpIHtcbiAgICAgIG1ldGFEYXRhT2JqLnNlY29uZGFyeS5wdXNoKGRpc3BsYXlDb2x1bW5zW2luZGV4XS52YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChkaXNwbGF5Q29sdW1uc1tpbmRleF0ucHJpbWFyeSA9PT0gJ3RydWUnKSB7XG4gICAgICBtZXRhRGF0YU9iai5wcmltYXJ5ID0gZGlzcGxheUNvbHVtbnNbaW5kZXhdLnZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWV0YURhdGFPYmo7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNpbmdsZVRyZWVPYmVqY3QoZW50cnksIGRpc3BsYXlGaWVsZE1ldGEsIHNob3dTZWNvbmRhcnlEYXRhLCBzZWxlY3RlZCkge1xuICBjb25zdCBzZWNvbmRhcnlBcnI6IGFueSA9IFtdO1xuICBkaXNwbGF5RmllbGRNZXRhLnNlY29uZGFyeS5mb3JFYWNoKGNvbCA9PiB7XG4gICAgc2Vjb25kYXJ5QXJyLnB1c2goZW50cnlbY29sXSk7XG4gIH0pO1xuICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWQuc29tZShpdGVtID0+IGl0ZW0uaWQgPT09IGVudHJ5W2Rpc3BsYXlGaWVsZE1ldGEua2V5XSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogZW50cnlbZGlzcGxheUZpZWxkTWV0YS5rZXldLFxuICAgIHByaW1hcnk6IGVudHJ5W2Rpc3BsYXlGaWVsZE1ldGEucHJpbWFyeV0sXG4gICAgc2Vjb25kYXJ5OiBzaG93U2Vjb25kYXJ5RGF0YSA/IHNlY29uZGFyeUFyciA6IFtdLFxuICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkXG4gIH07XG59XG5cbmZ1bmN0aW9uIHB1dEl0ZW1zRGF0YUluSXRlbXNUcmVlKGxpc3RPYmpEYXRhLCBkaXNwbGF5RmllbGRNZXRhLCBpdGVtc1RyZWUsIHNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHksIHNlbGVjdGVkKSB7XG4gIGxldCBuZXdUcmVlSXRlbXMgPSBpdGVtc1RyZWUuc2xpY2UoKTtcbiAgY29uc3Qgc2hvd1NlY29uZGFyeURhdGEgPSAhc2hvd1NlY29uZGFyeUluU2VhcmNoT25seTtcbiAgZm9yIChjb25zdCBvYmogb2YgbGlzdE9iakRhdGEpIHtcbiAgICBjb25zdCBpdGVtcyA9IG9ialtkaXNwbGF5RmllbGRNZXRhLml0ZW1zUmVjb3Jkc0NvbHVtbl0ubWFwKGVudHJ5ID0+IGNyZWF0ZVNpbmdsZVRyZWVPYmVqY3QoZW50cnksIGRpc3BsYXlGaWVsZE1ldGEsIHNob3dTZWNvbmRhcnlEYXRhLCBzZWxlY3RlZCkpO1xuXG4gICAgbmV3VHJlZUl0ZW1zID0gbmV3VHJlZUl0ZW1zLm1hcChjYXNlT2JqZWN0ID0+IHtcbiAgICAgIGlmIChjYXNlT2JqZWN0LmlkID09PSBvYmpbZGlzcGxheUZpZWxkTWV0YS5pdGVtc0dyb3VwS2V5Q29sdW1uXSkge1xuICAgICAgICBjYXNlT2JqZWN0Lml0ZW1zID0gWy4uLml0ZW1zXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjYXNlT2JqZWN0O1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBuZXdUcmVlSXRlbXM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVTZWFyY2hSZXN1bHRzKGxpc3RPYmpEYXRhLCBkaXNwbGF5RmllbGRNZXRhKSB7XG4gIGNvbnN0IHNlYXJjaFJlc3VsdHM6IGFueSA9IFtdO1xuICBmb3IgKGNvbnN0IG9iaiBvZiBsaXN0T2JqRGF0YSkge1xuICAgIHNlYXJjaFJlc3VsdHMucHVzaCguLi5vYmpbZGlzcGxheUZpZWxkTWV0YS5pdGVtc1JlY29yZHNDb2x1bW5dKTtcbiAgfVxuICByZXR1cm4gc2VhcmNoUmVzdWx0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZG9TZWFyY2goXG4gIHNlYXJjaFRleHQsXG4gIGNsaWNrZWRHcm91cCxcbiAgaW5pdGlhbENhc2VDbGFzcyxcbiAgZGlzcGxheUZpZWxkTWV0YSxcbiAgZGF0YUFwaU9iaiwgLy8gZGVlcCBjbG9uZSBvZiB0aGUgZGF0YUFwaU9ialxuICBpdGVtc1RyZWUsXG4gIGlzR3JvdXBEYXRhLFxuICBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5LFxuICBzZWxlY3RlZFxuKSB7XG4gIGxldCBzZWFyY2hUZXh0Rm9yVW5ncm91cGVkRGF0YSA9ICcnO1xuICBpZiAoZGF0YUFwaU9iaikge1xuICAgIC8vIGNyZWF0aW5nIGRhdGFBcGlPYmplY3QgaW4gZ3JvdXBlZCBkYXRhIGNhc2VzXG4gICAgaWYgKGlzR3JvdXBEYXRhKSB7XG4gICAgICBkYXRhQXBpT2JqID0gY2xvbmVEZWVwKGRhdGFBcGlPYmopO1xuICAgICAgZGF0YUFwaU9iai5mZXRjaGVkTlFEYXRhID0gZmFsc2U7XG4gICAgICBkYXRhQXBpT2JqLmNhY2hlID0ge307XG5cbiAgICAgIC8vIGlmIHdlIGhhdmUgbm8gc2VhcmNoIHRleHQgYW5kIG5vIGdyb3VwIHNlbGVjdGVkLCByZXR1cm4gdGhlIG9yaWdpbmFsIHRyZWVcbiAgICAgIGlmIChzZWFyY2hUZXh0ID09PSAnJyAmJiBjbGlja2VkR3JvdXAgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBpdGVtc1RyZWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldHRpbmcgdGhlIGluaXRhbCBzZWFyY2ggdGV4dCAmIHNlYXJjaCBjbGFzc2VzIGluIEFwaU9iamVjdFxuICAgICAgZGF0YUFwaU9iai5wYXJhbWV0ZXJzW09iamVjdC5rZXlzKGRhdGFBcGlPYmoucGFyYW1ldGVycylbMV1dID0gc2VhcmNoVGV4dDtcbiAgICAgIGRhdGFBcGlPYmoucGFyYW1ldGVyc1tPYmplY3Qua2V5cyhkYXRhQXBpT2JqLnBhcmFtZXRlcnMpWzBdXSA9IGluaXRpYWxDYXNlQ2xhc3M7XG5cbiAgICAgIC8vIGlmIHdlIGhhdmUgYSBzZWxlY3RlZCBncm91cFxuICAgICAgaWYgKGNsaWNrZWRHcm91cCkge1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgZGF0YSBmb3IgdGhpcyBncm91cCBpcyBhbHJlYWR5IHByZXNlbnQgYW5kIG5vIHNlYXJjaCB0ZXh0XG4gICAgICAgIGlmIChzZWFyY2hUZXh0ID09PSAnJykge1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5zRGF0YSA9IGl0ZW1zVHJlZS5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2xpY2tlZEdyb3VwKTtcbiAgICAgICAgICAvLyBkbyBub3QgbWFrZSBBUEkgY2FsbCB3aGVuIGl0ZW1zIG9mIHJlc3BlY3RpdmUgZ3JvdXAgYXJlIGFscmVhZHkgZmV0Y2hlZFxuICAgICAgICAgIGlmIChjb250YWluc0RhdGE/Lml0ZW1zPy5sZW5ndGgpIHJldHVybiBpdGVtc1RyZWU7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhQXBpT2JqLnBhcmFtZXRlcnNbT2JqZWN0LmtleXMoZGF0YUFwaU9iai5wYXJhbWV0ZXJzKVswXV0gPSBKU09OLnN0cmluZ2lmeShbY2xpY2tlZEdyb3VwXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFRleHRGb3JVbmdyb3VwZWREYXRhID0gc2VhcmNoVGV4dDtcbiAgICB9XG5cbiAgICAvLyBzZWFyY2ggQVBJIGNhbGxcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGRhdGFBcGlPYmouZmV0Y2hEYXRhKHNlYXJjaFRleHRGb3JVbmdyb3VwZWREYXRhKS5jYXRjaCgoKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbXNUcmVlO1xuICAgIH0pO1xuXG4gICAgbGV0IGxpc3RPYmpEYXRhID0gcmVzcG9uc2UuZGF0YTtcbiAgICBsZXQgbmV3SXRlbXNUcmVlID0gW107XG4gICAgaWYgKGlzR3JvdXBEYXRhKSB7XG4gICAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgICBsaXN0T2JqRGF0YSA9IHByZXBhcmVTZWFyY2hSZXN1bHRzKGxpc3RPYmpEYXRhLCBkaXNwbGF5RmllbGRNZXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0l0ZW1zVHJlZSA9IHB1dEl0ZW1zRGF0YUluSXRlbXNUcmVlKGxpc3RPYmpEYXRhLCBkaXNwbGF5RmllbGRNZXRhLCBpdGVtc1RyZWUsIHNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHksIHNlbGVjdGVkKTtcbiAgICAgICAgcmV0dXJuIG5ld0l0ZW1zVHJlZTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2hvd1NlY29uZGFyeURhdGEgPSBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5ID8gISFzZWFyY2hUZXh0IDogdHJ1ZTtcbiAgICBpZiAobGlzdE9iakRhdGEgIT09IHVuZGVmaW5lZCAmJiBsaXN0T2JqRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICBuZXdJdGVtc1RyZWUgPSBsaXN0T2JqRGF0YS5tYXAoZW50cnkgPT4gY3JlYXRlU2luZ2xlVHJlZU9iZWpjdChlbnRyeSwgZGlzcGxheUZpZWxkTWV0YSwgc2hvd1NlY29uZGFyeURhdGEsIHNlbGVjdGVkKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdJdGVtc1RyZWU7XG4gIH1cblxuICByZXR1cm4gaXRlbXNUcmVlO1xufVxuXG5mdW5jdGlvbiBzZXRWYWx1ZXNUb1Byb3BlcnR5TGlzdChzZWFyY2hUZXh0LCBhc3NvY1Byb3AsIGl0ZW1zLCBjb2x1bW5zLCBhY3Rpb25zLCB1cGRhdGVQcm9wZXJ0eUluUmVkdXggPSB0cnVlKSB7XG4gIGNvbnN0IHNldFByb3BlcnR5TGlzdCA9IGNvbHVtbnNcbiAgICA/LmZpbHRlcihjb2wgPT4gY29sLnNldFByb3BlcnR5KVxuICAgIC5tYXAoY29sID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogY29sLnZhbHVlLFxuICAgICAgICB0YXJnZXQ6IGNvbC5zZXRQcm9wZXJ0eSxcbiAgICAgICAga2V5OiBjb2wua2V5LFxuICAgICAgICBwcmltYXJ5OiBjb2wucHJpbWFyeVxuICAgICAgfTtcbiAgICB9KTtcbiAgY29uc3QgdmFsdWVUb1NldDogYW55ID0gW107XG4gIGlmIChzZXRQcm9wZXJ0eUxpc3QubGVuZ3RoID4gMCkge1xuICAgIHNldFByb3BlcnR5TGlzdC5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKHByb3Aua2V5ID09PSAndHJ1ZScgJiYgaXRlbSkge1xuICAgICAgICAgIHZhbHVlVG9TZXQucHVzaChpdGVtLmlkKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wLnByaW1hcnkgPT09ICd0cnVlJyB8fCAhaXRlbSkge1xuICAgICAgICAgIHZhbHVlVG9TZXQucHVzaChzZWFyY2hUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh1cGRhdGVQcm9wZXJ0eUluUmVkdXgpIHtcbiAgICAgICAgLy8gQlVHLTY2Njg1MSBzZXR0aW5nIG9wdGlvbnMgc28gdGhhdCB0aGUgc3RvcmUgdmFsdWVzIGFyZSByZXBsYWNlZCBhbmQgbm90IG1lcmdlZFxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgIGlzQXJyYXlEZWVwTWVyZ2U6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChwcm9wLnRhcmdldCA9PT0gJ0Fzc29jaWF0ZWQgcHJvcGVydHknKSB7XG4gICAgICAgICAgYWN0aW9ucy51cGRhdGVGaWVsZFZhbHVlKGFzc29jUHJvcCwgdmFsdWVUb1NldCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWN0aW9ucy51cGRhdGVGaWVsZFZhbHVlKGAuJHtwcm9wLnRhcmdldH1gLCB2YWx1ZVRvU2V0LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZVRvU2V0O1xufVxuXG5mdW5jdGlvbiBnZXRHcm91cERhdGFGb3JJdGVtc1RyZWUoZ3JvdXBEYXRhU291cmNlLCBncm91cHNEaXNwbGF5RmllbGRNZXRhLCBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5KSB7XG4gIHJldHVybiBncm91cERhdGFTb3VyY2U/Lm1hcChncm91cCA9PiB7XG4gICAgY29uc3Qgc2Vjb25kYXJ5QXJyOiBhbnkgPSBbXTtcbiAgICBncm91cHNEaXNwbGF5RmllbGRNZXRhLnNlY29uZGFyeS5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBzZWNvbmRhcnlBcnIucHVzaChncm91cFtjb2xdKTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGdyb3VwW2dyb3Vwc0Rpc3BsYXlGaWVsZE1ldGEua2V5XSxcbiAgICAgIHByaW1hcnk6IGdyb3VwW2dyb3Vwc0Rpc3BsYXlGaWVsZE1ldGEucHJpbWFyeV0sXG4gICAgICBzZWNvbmRhcnk6IHNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHkgPyBbXSA6IHNlY29uZGFyeUFycixcbiAgICAgIGl0ZW1zOiBbXVxuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgeyBwcmVQcm9jZXNzQ29sdW1ucywgZ2V0RGlzcGxheUZpZWxkc01ldGFEYXRhLCBkb1NlYXJjaCwgc2V0VmFsdWVzVG9Qcm9wZXJ0eUxpc3QsIGdldEdyb3VwRGF0YUZvckl0ZW1zVHJlZSB9O1xuIl19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvbXVsdGlzZWxlY3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFFekMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3RELE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqRyxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3hJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQU87SUFDaEMsT0FBTyxPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUM5QixVQUFVLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQy9GLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFD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QUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLEVBQUUsRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO1lBQzlDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQ3hELEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5Rm9yTGlzdChjMTFuRW52LCB2aXNpYmlsaXR5KSB7XG4gIGNvbnN0IHsgc2VsZWN0aW9uTW9kZSwgc2VsZWN0aW9uTGlzdCwgcmVuZGVyTW9kZSwgcmVmZXJlbmNlTGlzdCB9ID0gYzExbkVudi5nZXRDb21wb25lbnRDb25maWcoKTtcbiAgLy8gdXNlY2FzZTptdWx0aXNlbGVjdCwgZmllbGRncm91cCwgZWRpdGFibGUgdGFibGVcbiAgaWYgKChzZWxlY3Rpb25Nb2RlID09PSBQQ29yZS5nZXRDb25zdGFudHMoKS5MSVNUX1NFTEVDVElPTl9NT0RFLk1VTFRJICYmIHNlbGVjdGlvbkxpc3QpIHx8IChyZW5kZXJNb2RlID09PSAnRWRpdGFibGUnICYmIHJlZmVyZW5jZUxpc3QpKSB7XG4gICAgYzExbkVudi5nZXRMaXN0QWN0aW9ucygpLnNldFZpc2liaWxpdHkodmlzaWJpbGl0eSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlUHJvY2Vzc0NvbHVtbnMoY29sdW1ucykge1xuICByZXR1cm4gY29sdW1ucz8ubWFwKGNvbCA9PiB7XG4gICAgY29uc3QgdGVtcENvbE9iaiA9IHsgLi4uY29sIH07XG4gICAgdGVtcENvbE9iai52YWx1ZSA9IGNvbC52YWx1ZSAmJiBjb2wudmFsdWUuc3RhcnRzV2l0aCgnLicpID8gY29sLnZhbHVlLnN1YnN0cmluZygxKSA6IGNvbC52YWx1ZTtcbiAgICBpZiAodGVtcENvbE9iai5zZXRQcm9wZXJ0eSkge1xuICAgICAgdGVtcENvbE9iai5zZXRQcm9wZXJ0eSA9IGNvbC5zZXRQcm9wZXJ0eSAmJiBjb2wuc2V0UHJvcGVydHkuc3RhcnRzV2l0aCgnLicpID8gY29sLnNldFByb3BlcnR5LnN1YnN0cmluZygxKSA6IGNvbC5zZXRQcm9wZXJ0eTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBDb2xPYmo7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5RmllbGRzTWV0YURhdGEoY29sdW1ucykge1xuICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IGNvbHVtbnM/LmZpbHRlcihjb2wgPT4gY29sLmRpc3BsYXkgPT09ICd0cnVlJyk7XG4gIGNvbnN0IG1ldGFEYXRhT2JqOiBhbnkgPSB7XG4gICAga2V5OiAnJyxcbiAgICBwcmltYXJ5OiAnJyxcbiAgICBzZWNvbmRhcnk6IFtdXG4gIH07XG4gIGNvbnN0IGtleUNvbCA9IGNvbHVtbnM/LmZpbHRlcihjb2wgPT4gY29sLmtleSA9PT0gJ3RydWUnKTtcbiAgbWV0YURhdGFPYmoua2V5ID0ga2V5Q29sPy5sZW5ndGggPiAwID8ga2V5Q29sWzBdLnZhbHVlIDogJ2F1dG8nO1xuICBjb25zdCBpdGVtc1JlY29yZHNDb2x1bW4gPSBjb2x1bW5zPy5maWx0ZXIoY29sID0+IGNvbC5pdGVtc1JlY29yZHNDb2x1bW4gPT09ICd0cnVlJyk7XG4gIGlmIChpdGVtc1JlY29yZHNDb2x1bW4/Lmxlbmd0aCA+IDApIHtcbiAgICBtZXRhRGF0YU9iai5pdGVtc1JlY29yZHNDb2x1bW4gPSBpdGVtc1JlY29yZHNDb2x1bW5bMF0udmFsdWU7XG4gIH1cbiAgY29uc3QgaXRlbXNHcm91cEtleUNvbHVtbiA9IGNvbHVtbnM/LmZpbHRlcihjb2wgPT4gY29sLml0ZW1zR3JvdXBLZXlDb2x1bW4gPT09ICd0cnVlJyk7XG4gIGlmIChpdGVtc0dyb3VwS2V5Q29sdW1uPy5sZW5ndGggPiAwKSB7XG4gICAgbWV0YURhdGFPYmouaXRlbXNHcm91cEtleUNvbHVtbiA9IGl0ZW1zR3JvdXBLZXlDb2x1bW5bMF0udmFsdWU7XG4gIH1cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGRpc3BsYXlDb2x1bW5zPy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBpZiAoZGlzcGxheUNvbHVtbnNbaW5kZXhdLnNlY29uZGFyeSA9PT0gJ3RydWUnKSB7XG4gICAgICBtZXRhRGF0YU9iai5zZWNvbmRhcnkucHVzaChkaXNwbGF5Q29sdW1uc1tpbmRleF0udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoZGlzcGxheUNvbHVtbnNbaW5kZXhdLnByaW1hcnkgPT09ICd0cnVlJykge1xuICAgICAgbWV0YURhdGFPYmoucHJpbWFyeSA9IGRpc3BsYXlDb2x1bW5zW2luZGV4XS52YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1ldGFEYXRhT2JqO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTaW5nbGVUcmVlT2JlamN0KGVudHJ5LCBkaXNwbGF5RmllbGRNZXRhLCBzaG93U2Vjb25kYXJ5RGF0YSwgc2VsZWN0ZWQpIHtcbiAgY29uc3Qgc2Vjb25kYXJ5QXJyOiBhbnkgPSBbXTtcbiAgZGlzcGxheUZpZWxkTWV0YS5zZWNvbmRhcnkuZm9yRWFjaChjb2wgPT4ge1xuICAgIHNlY29uZGFyeUFyci5wdXNoKGVudHJ5W2NvbF0pO1xuICB9KTtcbiAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkLnNvbWUoaXRlbSA9PiBpdGVtLmlkID09PSBlbnRyeVtkaXNwbGF5RmllbGRNZXRhLmtleV0pO1xuXG4gIHJldHVybiB7XG4gICAgaWQ6IGVudHJ5W2Rpc3BsYXlGaWVsZE1ldGEua2V5XSxcbiAgICBwcmltYXJ5OiBlbnRyeVtkaXNwbGF5RmllbGRNZXRhLnByaW1hcnldLFxuICAgIHNlY29uZGFyeTogc2hvd1NlY29uZGFyeURhdGEgPyBzZWNvbmRhcnlBcnIgOiBbXSxcbiAgICBzZWxlY3RlZDogaXNTZWxlY3RlZFxuICB9O1xufVxuXG5mdW5jdGlvbiBwdXRJdGVtc0RhdGFJbkl0ZW1zVHJlZShsaXN0T2JqRGF0YSwgZGlzcGxheUZpZWxkTWV0YSwgaXRlbXNUcmVlLCBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5LCBzZWxlY3RlZCkge1xuICBsZXQgbmV3VHJlZUl0ZW1zID0gaXRlbXNUcmVlLnNsaWNlKCk7XG4gIGNvbnN0IHNob3dTZWNvbmRhcnlEYXRhID0gIXNob3dTZWNvbmRhcnlJblNlYXJjaE9ubHk7XG4gIGZvciAoY29uc3Qgb2JqIG9mIGxpc3RPYmpEYXRhKSB7XG4gICAgY29uc3QgaXRlbXMgPSBvYmpbZGlzcGxheUZpZWxkTWV0YS5pdGVtc1JlY29yZHNDb2x1bW5dLm1hcChlbnRyeSA9PiBjcmVhdGVTaW5nbGVUcmVlT2JlamN0KGVudHJ5LCBkaXNwbGF5RmllbGRNZXRhLCBzaG93U2Vjb25kYXJ5RGF0YSwgc2VsZWN0ZWQpKTtcblxuICAgIG5ld1RyZWVJdGVtcyA9IG5ld1RyZWVJdGVtcy5tYXAoY2FzZU9iamVjdCA9PiB7XG4gICAgICBpZiAoY2FzZU9iamVjdC5pZCA9PT0gb2JqW2Rpc3BsYXlGaWVsZE1ldGEuaXRlbXNHcm91cEtleUNvbHVtbl0pIHtcbiAgICAgICAgY2FzZU9iamVjdC5pdGVtcyA9IFsuLi5pdGVtc107XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FzZU9iamVjdDtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbmV3VHJlZUl0ZW1zO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlU2VhcmNoUmVzdWx0cyhsaXN0T2JqRGF0YSwgZGlzcGxheUZpZWxkTWV0YSkge1xuICBjb25zdCBzZWFyY2hSZXN1bHRzOiBhbnkgPSBbXTtcbiAgZm9yIChjb25zdCBvYmogb2YgbGlzdE9iakRhdGEpIHtcbiAgICBzZWFyY2hSZXN1bHRzLnB1c2goLi4ub2JqW2Rpc3BsYXlGaWVsZE1ldGEuaXRlbXNSZWNvcmRzQ29sdW1uXSk7XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFJlc3VsdHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvU2VhcmNoKFxuICBzZWFyY2hUZXh0LFxuICBjbGlja2VkR3JvdXAsXG4gIGluaXRpYWxDYXNlQ2xhc3MsXG4gIGRpc3BsYXlGaWVsZE1ldGEsXG4gIGRhdGFBcGlPYmosIC8vIGRlZXAgY2xvbmUgb2YgdGhlIGRhdGFBcGlPYmpcbiAgaXRlbXNUcmVlLFxuICBpc0dyb3VwRGF0YSxcbiAgc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSxcbiAgc2VsZWN0ZWRcbikge1xuICBsZXQgc2VhcmNoVGV4dEZvclVuZ3JvdXBlZERhdGEgPSAnJztcbiAgaWYgKGRhdGFBcGlPYmopIHtcbiAgICAvLyBjcmVhdGluZyBkYXRhQXBpT2JqZWN0IGluIGdyb3VwZWQgZGF0YSBjYXNlc1xuICAgIGlmIChpc0dyb3VwRGF0YSkge1xuICAgICAgZGF0YUFwaU9iaiA9IGNsb25lRGVlcChkYXRhQXBpT2JqKTtcbiAgICAgIGRhdGFBcGlPYmouZmV0Y2hlZE5RRGF0YSA9IGZhbHNlO1xuICAgICAgZGF0YUFwaU9iai5jYWNoZSA9IHt9O1xuXG4gICAgICAvLyBpZiB3ZSBoYXZlIG5vIHNlYXJjaCB0ZXh0IGFuZCBubyBncm91cCBzZWxlY3RlZCwgcmV0dXJuIHRoZSBvcmlnaW5hbCB0cmVlXG4gICAgICBpZiAoc2VhcmNoVGV4dCA9PT0gJycgJiYgY2xpY2tlZEdyb3VwID09PSAnJykge1xuICAgICAgICByZXR1cm4gaXRlbXNUcmVlO1xuICAgICAgfVxuXG4gICAgICAvLyBzZXR0aW5nIHRoZSBpbml0YWwgc2VhcmNoIHRleHQgJiBzZWFyY2ggY2xhc3NlcyBpbiBBcGlPYmplY3RcbiAgICAgIGRhdGFBcGlPYmoucGFyYW1ldGVyc1tPYmplY3Qua2V5cyhkYXRhQXBpT2JqLnBhcmFtZXRlcnMpWzFdXSA9IHNlYXJjaFRleHQ7XG4gICAgICBkYXRhQXBpT2JqLnBhcmFtZXRlcnNbT2JqZWN0LmtleXMoZGF0YUFwaU9iai5wYXJhbWV0ZXJzKVswXV0gPSBpbml0aWFsQ2FzZUNsYXNzO1xuXG4gICAgICAvLyBpZiB3ZSBoYXZlIGEgc2VsZWN0ZWQgZ3JvdXBcbiAgICAgIGlmIChjbGlja2VkR3JvdXApIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGRhdGEgZm9yIHRoaXMgZ3JvdXAgaXMgYWxyZWFkeSBwcmVzZW50IGFuZCBubyBzZWFyY2ggdGV4dFxuICAgICAgICBpZiAoc2VhcmNoVGV4dCA9PT0gJycpIHtcbiAgICAgICAgICBjb25zdCBjb250YWluc0RhdGEgPSBpdGVtc1RyZWUuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGNsaWNrZWRHcm91cCk7XG4gICAgICAgICAgLy8gZG8gbm90IG1ha2UgQVBJIGNhbGwgd2hlbiBpdGVtcyBvZiByZXNwZWN0aXZlIGdyb3VwIGFyZSBhbHJlYWR5IGZldGNoZWRcbiAgICAgICAgICBpZiAoY29udGFpbnNEYXRhPy5pdGVtcz8ubGVuZ3RoKSByZXR1cm4gaXRlbXNUcmVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YUFwaU9iai5wYXJhbWV0ZXJzW09iamVjdC5rZXlzKGRhdGFBcGlPYmoucGFyYW1ldGVycylbMF1dID0gSlNPTi5zdHJpbmdpZnkoW2NsaWNrZWRHcm91cF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWFyY2hUZXh0Rm9yVW5ncm91cGVkRGF0YSA9IHNlYXJjaFRleHQ7XG4gICAgfVxuXG4gICAgLy8gc2VhcmNoIEFQSSBjYWxsXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBkYXRhQXBpT2JqLmZldGNoRGF0YShzZWFyY2hUZXh0Rm9yVW5ncm91cGVkRGF0YSkuY2F0Y2goKCkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW1zVHJlZTtcbiAgICB9KTtcblxuICAgIGxldCBsaXN0T2JqRGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgbGV0IG5ld0l0ZW1zVHJlZSA9IFtdO1xuICAgIGlmIChpc0dyb3VwRGF0YSkge1xuICAgICAgaWYgKHNlYXJjaFRleHQpIHtcbiAgICAgICAgbGlzdE9iakRhdGEgPSBwcmVwYXJlU2VhcmNoUmVzdWx0cyhsaXN0T2JqRGF0YSwgZGlzcGxheUZpZWxkTWV0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdJdGVtc1RyZWUgPSBwdXRJdGVtc0RhdGFJbkl0ZW1zVHJlZShsaXN0T2JqRGF0YSwgZGlzcGxheUZpZWxkTWV0YSwgaXRlbXNUcmVlLCBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5LCBzZWxlY3RlZCk7XG4gICAgICAgIHJldHVybiBuZXdJdGVtc1RyZWU7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHNob3dTZWNvbmRhcnlEYXRhID0gc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSA/ICEhc2VhcmNoVGV4dCA6IHRydWU7XG4gICAgaWYgKGxpc3RPYmpEYXRhICE9PSB1bmRlZmluZWQgJiYgbGlzdE9iakRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgbmV3SXRlbXNUcmVlID0gbGlzdE9iakRhdGEubWFwKGVudHJ5ID0+IGNyZWF0ZVNpbmdsZVRyZWVPYmVqY3QoZW50cnksIGRpc3BsYXlGaWVsZE1ldGEsIHNob3dTZWNvbmRhcnlEYXRhLCBzZWxlY3RlZCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3SXRlbXNUcmVlO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW1zVHJlZTtcbn1cblxuZnVuY3Rpb24gc2V0VmFsdWVzVG9Qcm9wZXJ0eUxpc3Qoc2VhcmNoVGV4dCwgYXNzb2NQcm9wLCBpdGVtcywgY29sdW1ucywgYWN0aW9ucywgdXBkYXRlUHJvcGVydHlJblJlZHV4ID0gdHJ1ZSkge1xuICBjb25zdCBzZXRQcm9wZXJ0eUxpc3QgPSBjb2x1bW5zXG4gICAgPy5maWx0ZXIoY29sID0+IGNvbC5zZXRQcm9wZXJ0eSlcbiAgICAubWFwKGNvbCA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzb3VyY2U6IGNvbC52YWx1ZSxcbiAgICAgICAgdGFyZ2V0OiBjb2wuc2V0UHJvcGVydHksXG4gICAgICAgIGtleTogY29sLmtleSxcbiAgICAgICAgcHJpbWFyeTogY29sLnByaW1hcnlcbiAgICAgIH07XG4gICAgfSk7XG4gIGNvbnN0IHZhbHVlVG9TZXQ6IGFueSA9IFtdO1xuICBpZiAoc2V0UHJvcGVydHlMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICBzZXRQcm9wZXJ0eUxpc3QuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChwcm9wLmtleSA9PT0gJ3RydWUnICYmIGl0ZW0pIHtcbiAgICAgICAgICB2YWx1ZVRvU2V0LnB1c2goaXRlbS5pZCk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvcC5wcmltYXJ5ID09PSAndHJ1ZScgfHwgIWl0ZW0pIHtcbiAgICAgICAgICB2YWx1ZVRvU2V0LnB1c2goc2VhcmNoVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodXBkYXRlUHJvcGVydHlJblJlZHV4KSB7XG4gICAgICAgIC8vIEJVRy02NjY4NTEgc2V0dGluZyBvcHRpb25zIHNvIHRoYXQgdGhlIHN0b3JlIHZhbHVlcyBhcmUgcmVwbGFjZWQgYW5kIG5vdCBtZXJnZWRcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICBpc0FycmF5RGVlcE1lcmdlOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBpZiAocHJvcC50YXJnZXQgPT09ICdBc3NvY2lhdGVkIHByb3BlcnR5Jykge1xuICAgICAgICAgIGFjdGlvbnMudXBkYXRlRmllbGRWYWx1ZShhc3NvY1Byb3AsIHZhbHVlVG9TZXQsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjdGlvbnMudXBkYXRlRmllbGRWYWx1ZShgLiR7cHJvcC50YXJnZXR9YCwgdmFsdWVUb1NldCwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdmFsdWVUb1NldDtcbn1cblxuZnVuY3Rpb24gZ2V0R3JvdXBEYXRhRm9ySXRlbXNUcmVlKGdyb3VwRGF0YVNvdXJjZSwgZ3JvdXBzRGlzcGxheUZpZWxkTWV0YSwgc2hvd1NlY29uZGFyeUluU2VhcmNoT25seSkge1xuICByZXR1cm4gZ3JvdXBEYXRhU291cmNlPy5tYXAoZ3JvdXAgPT4ge1xuICAgIGNvbnN0IHNlY29uZGFyeUFycjogYW55ID0gW107XG4gICAgZ3JvdXBzRGlzcGxheUZpZWxkTWV0YS5zZWNvbmRhcnkuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgc2Vjb25kYXJ5QXJyLnB1c2goZ3JvdXBbY29sXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBncm91cFtncm91cHNEaXNwbGF5RmllbGRNZXRhLmtleV0sXG4gICAgICBwcmltYXJ5OiBncm91cFtncm91cHNEaXNwbGF5RmllbGRNZXRhLnByaW1hcnldLFxuICAgICAgc2Vjb25kYXJ5OiBzaG93U2Vjb25kYXJ5SW5TZWFyY2hPbmx5ID8gW10gOiBzZWNvbmRhcnlBcnIsXG4gICAgICBpdGVtczogW11cbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IHsgcHJlUHJvY2Vzc0NvbHVtbnMsIGdldERpc3BsYXlGaWVsZHNNZXRhRGF0YSwgZG9TZWFyY2gsIHNldFZhbHVlc1RvUHJvcGVydHlMaXN0LCBnZXRHcm91cERhdGFGb3JJdGVtc1RyZWUgfTtcbiJdfQ==
|
|
@@ -4,7 +4,10 @@ import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
|
4
4
|
import { MatInputModule } from '@angular/material/input';
|
|
5
5
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
6
6
|
import { interval } from 'rxjs';
|
|
7
|
+
import { NgxCurrencyDirective } from 'ngx-currency';
|
|
7
8
|
import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
|
|
9
|
+
import { handleEvent } from '../../../_helpers/event-util';
|
|
10
|
+
import { getCurrencyCharacters } from '../../../_helpers/currency-utils';
|
|
8
11
|
import * as i0 from "@angular/core";
|
|
9
12
|
import * as i1 from "../../../_bridge/angular-pconnect";
|
|
10
13
|
import * as i2 from "../../../_helpers/utils";
|
|
@@ -85,6 +88,10 @@ export class PercentageComponent {
|
|
|
85
88
|
}
|
|
86
89
|
this.helperText = this.configProps$.helperText;
|
|
87
90
|
this.placeholder = this.configProps$.placeholder || '';
|
|
91
|
+
const showGroupSeparators = this.configProps$.showGroupSeparators;
|
|
92
|
+
const theSymbols = getCurrencyCharacters('');
|
|
93
|
+
this.currDec = theSymbols.theDecimalIndicator || '2';
|
|
94
|
+
this.currSep = showGroupSeparators ? theSymbols.theDigitGroupSeparator : '';
|
|
88
95
|
// timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
|
|
89
96
|
setTimeout(() => {
|
|
90
97
|
if (this.configProps$.required != null) {
|
|
@@ -122,8 +129,18 @@ export class PercentageComponent {
|
|
|
122
129
|
this.angularPConnectData.actions?.onChange(this, event);
|
|
123
130
|
}
|
|
124
131
|
fieldOnBlur(event) {
|
|
125
|
-
|
|
126
|
-
this.
|
|
132
|
+
const actionsApi = this.pConn$?.getActionsApi();
|
|
133
|
+
const propName = (this.pConn$?.getStateProps()).value;
|
|
134
|
+
let value = event?.target?.value;
|
|
135
|
+
value = value?.replace('%', '');
|
|
136
|
+
if (this.currSep === ',') {
|
|
137
|
+
value = value.replace(/,/g, '');
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
value = value?.replace(/\./g, '');
|
|
141
|
+
value = value?.replace(/,/g, '.');
|
|
142
|
+
}
|
|
143
|
+
handleEvent(actionsApi, 'changeNblur', propName, value);
|
|
127
144
|
}
|
|
128
145
|
getErrorMessage() {
|
|
129
146
|
// field control gets error message from here
|
|
@@ -141,15 +158,15 @@ export class PercentageComponent {
|
|
|
141
158
|
}
|
|
142
159
|
return errMessage;
|
|
143
160
|
}
|
|
144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PercentageComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PercentageComponent, isStandalone: true, selector: "app-percentage", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n type=\"text\"\n matInput\n currencyMask\n [options]=\"{ prefix: '', suffix: '%', thousands: currSep, decimal: currDec, align: 'left', nullable: true }\"\n [placeholder]=\"placeholder\"\n step=\".01\"\n [formControlName]=\"controlName$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i4.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlName), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i0.forwardRef(() => NgxCurrencyDirective), selector: "[currencyMask]", inputs: ["options"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
146
163
|
}
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PercentageComponent, decorators: [{
|
|
148
165
|
type: Component,
|
|
149
|
-
args: [{ selector: 'app-percentage', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n
|
|
150
|
-
}], ctorParameters:
|
|
166
|
+
args: [{ selector: 'app-percentage', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, NgxCurrencyDirective, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n type=\"text\"\n matInput\n currencyMask\n [options]=\"{ prefix: '', suffix: '%', thousands: currSep, decimal: currDec, align: 'left', nullable: true }\"\n [placeholder]=\"placeholder\"\n step=\".01\"\n [formControlName]=\"controlName$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
|
|
167
|
+
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }], propDecorators: { pConn$: [{
|
|
151
168
|
type: Input
|
|
152
169
|
}], formGroup$: [{
|
|
153
170
|
type: Input
|
|
154
171
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvcGVyY2VudGFnZS9wZXJjZW50YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9wZXJjZW50YWdlL3BlcmNlbnRhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQXFCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7OztBQWN4RyxNQUFNLE9BQU8sbUJBQW1CO0lBd0I5QixZQUNVLGVBQXVDLEVBQ3ZDLEtBQXdCLEVBQ3hCLEtBQVk7UUFGWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXZCdEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFHOUMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVaLGVBQVUsR0FBRyxL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QUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztTQUN2QzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0E3SlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa0lDdEJoQyx3dENBNkJBLGlhRFRZLFlBQVksZ05BQUUsbUJBQW1CLDZpREFBRSxrQkFBa0IsbWlCQUFFLGNBQWMseWJBQW1CLHdCQUF3Qjs7NEZBRS9HLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lLQUduSCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcblxuaW50ZXJmYWNlIFBlcmNlbnRhZ2VQcm9wcyBleHRlbmRzIFBDb25uRmllbGRQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gUGVyY2VudGFnZSBoZXJlXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wZXJjZW50YWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BlcmNlbnRhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wZXJjZW50YWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgUGVyY2VudGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBQZXJjZW50YWdlUHJvcHM7XG5cbiAgbGFiZWwkID0gJyc7XG4gIHZhbHVlJDogbnVtYmVyO1xuICBiUmVxdWlyZWQkID0gZmFsc2U7XG4gIGJSZWFkb25seSQgPSBmYWxzZTtcbiAgYkRpc2FibGVkJCA9IGZhbHNlO1xuICBiVmlzaWJsZSQgPSB0cnVlO1xuICBkaXNwbGF5TW9kZSQ/OiBzdHJpbmcgPSAnJztcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIGJIYXNGb3JtJCA9IHRydWU7XG4gIGNvbXBvbmVudFJlZmVyZW5jZSA9ICcnO1xuICB0ZXN0SWQ6IHN0cmluZztcbiAgaGVscGVyVGV4dDogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIGZpZWxkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jb250cm9sTmFtZSQgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cbiAgICAvLyBjYWxsIHVwZGF0ZVNlbGYgd2hlbiBpbml0aWFsaXppbmdcbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICAvLyBhZGQgY29udHJvbCB0byBmb3JtR3JvdXBcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5hZGRDb250cm9sKHRoaXMuY29udHJvbE5hbWUkLCB0aGlzLmZpZWxkQ29udHJvbCk7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlJCk7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRydWU7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5yZW1vdmVDb250cm9sKHRoaXMuY29udHJvbE5hbWUkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGVTZWxmXG4gIHVwZGF0ZVNlbGYoKTogdm9pZCB7XG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBQZXJjZW50YWdlUHJvcHM7XG4gICAgdGhpcy50ZXN0SWQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZXN0SWQ7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLmRpc3BsYXlNb2RlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlO1xuICAgIGxldCBuVmFsdWU6IGFueSA9IHRoaXMuY29uZmlnUHJvcHMkLnZhbHVlO1xuICAgIGlmIChuVmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgblZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBuVmFsdWUgPSBwYXJzZUludChuVmFsdWUsIDEwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWUkID0gblZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmhlbHBlclRleHQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWxwZXJUZXh0O1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLmNvbmZpZ1Byb3BzJC5wbGFjZWhvbGRlciB8fCAnJztcblxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9ICh0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkgYXMgYW55KS52YWx1ZTtcblxuICAgIC8vIHRyaWdnZXIgZGlzcGxheSBvZiBlcnJvciBtZXNzYWdlIHdpdGggZmllbGQgY29udHJvbFxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9IG51bGwgJiYgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldEVycm9ycyh7IG1lc3NhZ2U6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkT25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkNoYW5nZSh0aGlzLCBldmVudCk7XG4gIH1cblxuICBmaWVsZE9uQmx1cihldmVudDogYW55KSB7XG4gICAgLy8gUENvbm5lY3Qgd2FudHMgdG8gdXNlIGV2ZW50SGFuZGxlciBmb3Igb25CbHVyXG5cbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEuYWN0aW9ucz8ub25CbHVyKHRoaXMsIGV2ZW50KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcbiAgICAvLyBmaWVsZCBjb250cm9sIGdldHMgZXJyb3IgbWVzc2FnZSBmcm9tIGhlcmVcbiAgICBsZXQgZXJyTWVzc2FnZSA9ICcnO1xuICAgIC8vIGxvb2sgZm9yIHZhbGlkYXRpb24gbWVzc2FnZXMgZm9yIGpzb24sIHByZS1kZWZpbmVkIG9yIGp1c3QgYW4gZXJyb3IgcHVzaGVkIGZyb20gd29ya2l0ZW0gKDQwMClcbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ21lc3NhZ2UnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgPz8gJyc7XG4gICAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gJ1lvdSBtdXN0IGVudGVyIGEgdmFsdWUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZENvbnRyb2wuZXJyb3JzKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5maWVsZENvbnRyb2wuZXJyb3JzLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheU1vZGUkOyBlbHNlIG5vRGlzcGxheU1vZGVcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQsIGRpc3BsYXlNb2RlJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25vRGlzcGxheU1vZGU+XG4gIDxkaXYgKm5nSWY9XCIhYlJlYWRvbmx5JCAmJiBiSGFzRm9ybSQ7IGVsc2Ugbm9FZGl0XCI+XG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cCRcIiAqbmdJZj1cImJWaXNpYmxlJFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicHNkay1mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIFtoaW50TGFiZWxdPVwiaGVscGVyVGV4dFwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsJCB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8IS0tIDxzcGFuIG1hdFByZWZpeD4lICZuYnNwOzwvc3Bhbj4gLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICBzdGVwPVwiLjAxXCJcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWUkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkQ29udHJvbFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJmaWVsZE9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cImZpZWxkT25CbHVyKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNub0VkaXQ+XG4gIDxjb21wb25lbnQtbWFwcGVyICpuZ0lmPVwiYlZpc2libGUkICE9PSBmYWxzZVwiIG5hbWU9XCJUZXh0XCIgW3Byb3BzXT1cInsgcENvbm4kLCBmb3JtYXRBcyQ6ICd0ZXh0JyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvcGVyY2VudGFnZS9wZXJjZW50YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9wZXJjZW50YWdlL3BlcmNlbnRhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQXFCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8sbUJBQW1CO0lBeUI5QixZQUNVLGVBQXVDLEVBQ3ZDLEtBQXdCLEVBQ3hCLEtBQVk7UUFGWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMs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O1lBQzFDLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztZQUM1RCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztRQUN4QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0EzS1UsbUJBQW1CO21HQUFuQixtQkFBbUIsa0lDM0JoQyxzMENBOEJBLGtaRExZLFlBQVksNEtBQUUsbUJBQW1CLDI1Q0FBRSxrQkFBa0IsMmRBQUUsY0FBYyxxWkFBRSxvQkFBb0IscUdBQW1CLHdCQUF3Qjs7NEZBRXJJLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytJQUd6SSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5neEN1cnJlbmN5RGlyZWN0aXZlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgaGFuZGxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9ldmVudC11dGlsJztcbmltcG9ydCB7IGdldEN1cnJlbmN5Q2hhcmFjdGVycyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2N1cnJlbmN5LXV0aWxzJztcbmltcG9ydCB7IFBDb25uRmllbGRQcm9wcyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9QQ29ublByb3BzLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBQZXJjZW50YWdlUHJvcHMgZXh0ZW5kcyBQQ29ubkZpZWxkUHJvcHMge1xuICBzaG93R3JvdXBTZXBhcmF0b3JzPzogc3RyaW5nO1xuICBkZWNpbWFsUHJlY2lzaW9uPzogbnVtYmVyO1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIFBlcmNlbnRhZ2UgaGVyZVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGVyY2VudGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZXJjZW50YWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGVyY2VudGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBOZ3hDdXJyZW5jeURpcmVjdGl2ZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBQZXJjZW50YWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IFBlcmNlbnRhZ2VQcm9wcztcblxuICBsYWJlbCQgPSAnJztcbiAgdmFsdWUkOiBudW1iZXI7XG4gIGJSZXF1aXJlZCQgPSBmYWxzZTtcbiAgYlJlYWRvbmx5JCA9IGZhbHNlO1xuICBiRGlzYWJsZWQkID0gZmFsc2U7XG4gIGJWaXNpYmxlJCA9IHRydWU7XG4gIGRpc3BsYXlNb2RlJD86IHN0cmluZyA9ICcnO1xuICBjb250cm9sTmFtZSQ6IHN0cmluZztcbiAgYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgY29tcG9uZW50UmVmZXJlbmNlID0gJyc7XG4gIHRlc3RJZDogc3RyaW5nO1xuICBoZWxwZXJUZXh0OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGN1cnJEZWM6IHN0cmluZztcbiAgY3VyclNlcDogc3RyaW5nO1xuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgbnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuY29udHJvbE5hbWUkID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50SUQodGhpcyk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG4gICAgLy8gY2FsbCB1cGRhdGVTZWxmIHdoZW4gaW5pdGlhbGl6aW5nXG4gICAgLy8gdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSQpO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0cnVlO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCQucmVtb3ZlQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXBkYXRlU2VsZlxuICB1cGRhdGVTZWxmKCk6IHZvaWQge1xuICAgIC8vIG1vdmVkIHRoaXMgZnJvbSBuZ09uSW5pdCgpIGFuZCBjYWxsIHRoaXMgZnJvbSB0aGVyZSBpbnN0ZWFkLi4uXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgUGVyY2VudGFnZVByb3BzO1xuICAgIHRoaXMudGVzdElkID0gdGhpcy5jb25maWdQcm9wcyQudGVzdElkO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcbiAgICBsZXQgblZhbHVlOiBhbnkgPSB0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZTtcbiAgICBpZiAoblZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIG5WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgblZhbHVlID0gcGFyc2VJbnQoblZhbHVlLCAxMCk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlJCA9IG5WYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5oZWxwZXJUZXh0ID0gdGhpcy5jb25maWdQcm9wcyQuaGVscGVyVGV4dDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5jb25maWdQcm9wcyQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgY29uc3Qgc2hvd0dyb3VwU2VwYXJhdG9ycyA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dHcm91cFNlcGFyYXRvcnM7XG5cbiAgICBjb25zdCB0aGVTeW1ib2xzID0gZ2V0Q3VycmVuY3lDaGFyYWN0ZXJzKCcnKTtcbiAgICB0aGlzLmN1cnJEZWMgPSB0aGVTeW1ib2xzLnRoZURlY2ltYWxJbmRpY2F0b3IgfHwgJzInO1xuICAgIHRoaXMuY3VyclNlcCA9IHNob3dHcm91cFNlcGFyYXRvcnMgPyB0aGVTeW1ib2xzLnRoZURpZ2l0R3JvdXBTZXBhcmF0b3IgOiAnJztcblxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9ICh0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkgYXMgYW55KS52YWx1ZTtcblxuICAgIC8vIHRyaWdnZXIgZGlzcGxheSBvZiBlcnJvciBtZXNzYWdlIHdpdGggZmllbGQgY29udHJvbFxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9IG51bGwgJiYgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldEVycm9ycyh7IG1lc3NhZ2U6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkT25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkNoYW5nZSh0aGlzLCBldmVudCk7XG4gIH1cblxuICBmaWVsZE9uQmx1cihldmVudDogYW55KSB7XG4gICAgY29uc3QgYWN0aW9uc0FwaSA9IHRoaXMucENvbm4kPy5nZXRBY3Rpb25zQXBpKCk7XG4gICAgY29uc3QgcHJvcE5hbWUgPSAodGhpcy5wQ29ubiQ/LmdldFN0YXRlUHJvcHMoKSBhcyBhbnkpLnZhbHVlO1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIHZhbHVlID0gdmFsdWU/LnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgaWYgKHRoaXMuY3VyclNlcCA9PT0gJywnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlPy5yZXBsYWNlKC9cXC4vZywgJycpO1xuICAgICAgdmFsdWUgPSB2YWx1ZT8ucmVwbGFjZSgvLC9nLCAnLicpO1xuICAgIH1cbiAgICBoYW5kbGVFdmVudChhY3Rpb25zQXBpLCAnY2hhbmdlTmJsdXInLCBwcm9wTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIC8vIGZpZWxkIGNvbnRyb2wgZ2V0cyBlcnJvciBtZXNzYWdlIGZyb20gaGVyZVxuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG4gICAgLy8gbG9vayBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlcyBmb3IganNvbiwgcHJlLWRlZmluZWQgb3IganVzdCBhbiBlcnJvciBwdXNoZWQgZnJvbSB3b3JraXRlbSAoNDAwKVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcignbWVzc2FnZScpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA/PyAnJztcbiAgICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSAnWW91IG11c3QgZW50ZXIgYSB2YWx1ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkaXNwbGF5TW9kZSQ7IGVsc2Ugbm9EaXNwbGF5TW9kZVwiPlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiRmllbGRWYWx1ZUxpc3RcIiBbcHJvcHNdPVwieyBsYWJlbCQsIHZhbHVlJCwgZGlzcGxheU1vZGUkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9EaXNwbGF5TW9kZT5cbiAgPGRpdiAqbmdJZj1cIiFiUmVhZG9ubHkkICYmIGJIYXNGb3JtJDsgZWxzZSBub0VkaXRcIj5cbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiICpuZ0lmPVwiYlZpc2libGUkXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgW2hpbnRMYWJlbF09XCJoZWxwZXJUZXh0XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwkIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIGN1cnJlbmN5TWFza1xuICAgICAgICAgIFtvcHRpb25zXT1cInsgcHJlZml4OiAnJywgc3VmZml4OiAnJScsIHRob3VzYW5kczogY3VyclNlcCwgZGVjaW1hbDogY3VyckRlYywgYWxpZ246ICdsZWZ0JywgbnVsbGFibGU6IHRydWUgfVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBzdGVwPVwiLjAxXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2xOYW1lJFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImJSZXF1aXJlZCRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiZmllbGRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZpZWxkQ29udHJvbC5pbnZhbGlkXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9FZGl0PlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiVGV4dFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybWF0QXMkOiAndGV4dCcgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|