igniteui-angular 14.0.10 → 14.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/core/utils.mjs +3 -3
- package/esm2020/lib/directives/drag-drop/drag-drop.directive.mjs +8 -6
- package/esm2020/lib/directives/radio/radio-group.directive.mjs +11 -5
- package/esm2020/lib/grids/cell.component.mjs +3 -3
- package/esm2020/lib/grids/grid/expandable-cell.component.mjs +3 -3
- package/esm2020/lib/grids/grid/grid.component.mjs +2 -2
- package/esm2020/lib/grids/grid-navigation.service.mjs +8 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
- package/esm2020/lib/grids/selection/selection.service.mjs +9 -4
- package/esm2020/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
- package/esm2020/lib/paginator/paginator.component.mjs +3 -3
- package/esm2020/lib/radio/radio.component.mjs +15 -2
- package/esm2020/lib/tree/tree-node/tree-node.component.mjs +7 -1
- package/fesm2015/igniteui-angular.mjs +64 -27
- package/fesm2015/igniteui-angular.mjs.map +1 -1
- package/fesm2020/igniteui-angular.mjs +64 -27
- package/fesm2020/igniteui-angular.mjs.map +1 -1
- package/lib/core/utils.d.ts +1 -1
- package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -1
- package/lib/directives/radio/radio-group.directive.d.ts +5 -0
- package/lib/grids/selection/selection.service.d.ts +2 -1
- package/lib/radio/radio.component.d.ts +13 -2
- package/package.json +1 -1
|
@@ -58,10 +58,10 @@ export class IgxTreeGridCellComponent extends IgxGridExpandableCellComponent {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
IgxTreeGridCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IgxTreeGridCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
IgxTreeGridCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: IgxTreeGridCellComponent, selector: "igx-tree-grid-cell", inputs: { level: "level", showIndicator: "showIndicator", isLoading: "isLoading", row: "row" }, providers: [HammerGesturesManager], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n style=\"pointer-events: none;\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon\n >\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n style=\"pointer-events: none\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput [(ngModel)]=\"editValue\" [igxFocus]=\"true\" />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\">\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\">\n <igx-checkbox\n [(ngModel)]=\"editValue\"\n [disableRipple]=\"true\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group>\n <input type=\"text\" igxInput [igxDateTimeEditor]=\"column.defaultDateTimeFormat\" [(ngModel)]=\"editValue\" [igxFocus]=\"true\"/>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\" >{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: i4.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: i5.IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: i6.IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: i7.IgxPrefixDirective, selector: "igx-prefix,[igxPrefix]" }, { kind: "directive", type: i8.IgxSuffixDirective, selector: "igx-suffix,[igxSuffix]" }, { kind: "directive", type: i9.IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "directive", type: i10.IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: i11.IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: i12.IgxChipComponent, selector: "igx-chip", inputs: ["id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: i13.IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "component", type: i14.IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: i15.IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "pipe", type: i16.IgxColumnFormatterPipe, name: "columnFormatter" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61
|
+
IgxTreeGridCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: IgxTreeGridCellComponent, selector: "igx-tree-grid-cell", inputs: { level: "level", showIndicator: "showIndicator", isLoading: "isLoading", row: "row" }, providers: [HammerGesturesManager], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n style=\"pointer-events: none;\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon\n >\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n style=\"pointer-events: none\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput [(ngModel)]=\"editValue\" [igxFocus]=\"true\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\">\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\">\n <igx-checkbox\n [(ngModel)]=\"editValue\"\n [disableRipple]=\"true\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group>\n <input type=\"text\" igxInput [igxDateTimeEditor]=\"column.defaultDateTimeFormat\" [(ngModel)]=\"editValue\" [igxFocus]=\"true\"/>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\" >{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: i4.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: i5.IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: i6.IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: i7.IgxPrefixDirective, selector: "igx-prefix,[igxPrefix]" }, { kind: "directive", type: i8.IgxSuffixDirective, selector: "igx-suffix,[igxSuffix]" }, { kind: "directive", type: i9.IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "directive", type: i10.IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: i11.IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: i12.IgxChipComponent, selector: "igx-chip", inputs: ["id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: i13.IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "component", type: i14.IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: i15.IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "pipe", type: i16.IgxColumnFormatterPipe, name: "columnFormatter" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IgxTreeGridCellComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid-cell', providers: [HammerGesturesManager], template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n style=\"pointer-events: none;\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon\n >\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n style=\"pointer-events: none\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput [(ngModel)]=\"editValue\" [igxFocus]=\"true\" />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\">\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\">\n <igx-checkbox\n [(ngModel)]=\"editValue\"\n [disableRipple]=\"true\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group>\n <input type=\"text\" igxInput [igxDateTimeEditor]=\"column.defaultDateTimeFormat\" [(ngModel)]=\"editValue\" [igxFocus]=\"true\"/>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\" >{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n" }]
|
|
64
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid-cell', providers: [HammerGesturesManager], template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n style=\"pointer-events: none;\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon\n >\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n style=\"pointer-events: none\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput [(ngModel)]=\"editValue\" [igxFocus]=\"true\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\">\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\">\n <igx-checkbox\n [(ngModel)]=\"editValue\"\n [disableRipple]=\"true\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n >\n </igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group>\n <input type=\"text\" igxInput [igxDateTimeEditor]=\"column.defaultDateTimeFormat\" [(ngModel)]=\"editValue\" [igxFocus]=\"true\"/>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\" >{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\">\n <input igxInput\n [(ngModel)]=\"editValue\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n" }]
|
|
65
65
|
}], propDecorators: { level: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}], showIndicator: [{
|
|
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
71
71
|
}], row: [{
|
|
72
72
|
type: Input
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90cmVlLWdyaWQvdHJlZS1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90cmVlLWdyaWQvdHJlZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNwRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsOEJBQThCO0lBTjVFOztRQVFJOztXQUVHO1FBRUksVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVqQjs7V0FFRztRQUVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBb0NoQztJQTVCRzs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxHQUFHO1FBQ1Ysa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEtBQVk7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7O3FIQS9DUSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw2SUFGdEIsQ0FBQyxxQkFBcUIsQ0FBQyxpRENkdEMsdXpRQXNNQTsyRkR0TGEsd0JBQXdCO2tCQU5wQyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsb0JBQW9CLGFBRW5CLENBQUMscUJBQXFCLENBQUM7OEJBUTNCLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFZSyxHQUFHO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhbW1lckdlc3R1cmVzTWFuYWdlciB9IGZyb20gJy4uLy4uL2NvcmUvdG91Y2gnO1xuaW1wb3J0IHsgSWd4R3JpZEV4cGFuZGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC9leHBhbmRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IElneFRyZWVHcmlkUm93IH0gZnJvbSAnLi4vZ3JpZC1wdWJsaWMtcm93JztcbmltcG9ydCB7IFJvd1R5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC10cmVlLWdyaWQtY2VsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICd0cmVlLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0hhbW1lckdlc3R1cmVzTWFuYWdlcl1cbn0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRDZWxsQ29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEV4cGFuZGFibGVDZWxsQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZXZlbCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0luZGljYXRvciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHJvdyBvZiB0aGUgY2VsbC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGNlbGxSb3cgPSB0aGlzLmNlbGwucm93O1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHJvdygpOiBSb3dUeXBlIHtcbiAgICAgICAgLy8gVE9ETzogRml4IHR5cGVzXG4gICAgICAgIHJldHVybiBuZXcgSWd4VHJlZUdyaWRSb3codGhpcy5ncmlkIGFzIGFueSwgdGhpcy5pbnRSb3cuaW5kZXgsIHRoaXMuaW50Um93LmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5ncmlkLmdyaWRBUEkuc2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5pbnRSb3cua2V5LCAhdGhpcy5pbnRSb3cuZXhwYW5kZWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG9uTG9hZGluZ0RibENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2RlZmF1bHRQaW5uZWRJbmRpY2F0b3I+XG4gICAgPGlneC1jaGlwXG4gICAgICAgICpuZ0lmPVwiZGlzcGxheVBpbm5lZENoaXBcIlxuICAgICAgICBjbGFzcz1cImlneC1ncmlkX190ZC0tcGlubmVkLWNoaXBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCInY29tcGFjdCdcIlxuICAgICAgICA+e3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfcGlubmVkX3Jvd19pbmRpY2F0b3IgfX08L2lneC1jaGlwXG4gICAgPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbGw+XG4gICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2Jvb2xlYW4nIHx8IChjb2x1bW4uZGF0YVR5cGUgPT09ICdib29sZWFuJyAmJiB0aGlzLmZvcm1hdHRlcilcIlxuICAgICAgICBpZ3hUZXh0SGlnaGxpZ2h0XG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkLXRleHRcIlxuICAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lO1wiXG4gICAgICAgIFtjc3NDbGFzc109XCJoaWdobGlnaHRDbGFzc1wiXG4gICAgICAgIFthY3RpdmVDc3NDbGFzc109XCJhY3RpdmVIaWdobGlnaHRDbGFzc1wiXG4gICAgICAgIFtncm91cE5hbWVdPVwiZ3JpZElEXCJcbiAgICAgICAgW3ZhbHVlXT1cIlxuICAgICAgICAgICAgZm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjb2x1bW5Gb3JtYXR0ZXI6Zm9ybWF0dGVyOnJvd0RhdGEpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBudW1iZXI6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiAoY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZScgfHwgY29sdW1uLmRhdGFUeXBlID09PSAndGltZScgfHwgY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZVRpbWUnKVxuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgZGF0ZTpjb2x1bW4ucGlwZUFyZ3MuZm9ybWF0OmNvbHVtbi5waXBlQXJncy50aW1lem9uZTpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgY3VycmVuY3k6Y3VycmVuY3lDb2RlOmNvbHVtbi5waXBlQXJncy5kaXNwbGF5OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgIDogY29sdW1uLmRhdGFUeXBlID09PSAncGVyY2VudCdcbiAgICAgICAgICAgICAgICA/ICh2YWx1ZSB8IHBlcmNlbnQ6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZVxuICAgICAgICBcIlxuICAgICAgICBbcm93XT1cInJvd0RhdGFcIlxuICAgICAgICBbY29sdW1uXT1cInRoaXMuY29sdW1uLmZpZWxkXCJcbiAgICAgICAgW2NvbnRhaW5lckNsYXNzXT1cIidpZ3gtZ3JpZF9fdGQtdGV4dCdcIlxuICAgICAgICBbbWV0YWRhdGFdPVwic2VhcmNoTWV0YWRhdGFcIlxuICAgID57e1xuICAgICAgICAgICAgZm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjb2x1bW5Gb3JtYXR0ZXI6Zm9ybWF0dGVyOnJvd0RhdGEpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICA/ICh2YWx1ZSB8IG51bWJlcjpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IChjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICd0aW1lJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlVGltZScpXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBkYXRlOmNvbHVtbi5waXBlQXJncy5mb3JtYXQ6Y29sdW1uLnBpcGVBcmdzLnRpbWV6b25lOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgIDogY29sdW1uLmRhdGFUeXBlID09PSAnY3VycmVuY3knXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjdXJyZW5jeTpjdXJyZW5jeUNvZGU6Y29sdW1uLnBpcGVBcmdzLmRpc3BsYXk6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09ICdwZXJjZW50J1xuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgcGVyY2VudDpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgIH19PC9kaXY+XG4gICAgPGlneC1pY29uXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnYm9vbGVhbicgJiYgIXRoaXMuZm9ybWF0dGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaWd4LWljb24tLXN1Y2Nlc3MnOiB2YWx1ZSwgJ2lneC1pY29uLS1lcnJvcic6ICF2YWx1ZSB9XCJcbiAgICAgICAgPnt7IHZhbHVlID8gXCJjaGVja1wiIDogXCJjbG9zZVwiIH19PC9pZ3gtaWNvblxuICAgID5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2FkZFJvd0NlbGwgbGV0LWNlbGw9XCJjZWxsXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2Jvb2xlYW4nIHx8IChjb2x1bW4uZGF0YVR5cGUgPT09ICdib29sZWFuJyAmJiB0aGlzLmZvcm1hdHRlcilcIlxuICAgIGlneFRleHRIaWdobGlnaHQgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQtdGV4dFwiXG4gICAgc3R5bGU9XCJwb2ludGVyLWV2ZW50czogbm9uZVwiXG4gICAgW2Nzc0NsYXNzXT1cImhpZ2hsaWdodENsYXNzXCJcbiAgICBbYWN0aXZlQ3NzQ2xhc3NdPVwiYWN0aXZlSGlnaGxpZ2h0Q2xhc3NcIlxuICAgIFtncm91cE5hbWVdPVwiZ3JpZElEXCJcbiAgICBbdmFsdWVdPVwiZm9ybWF0dGVyID8gKHZhbHVlIHwgY29sdW1uRm9ybWF0dGVyOmZvcm1hdHRlcjpyb3dEYXRhKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ251bWJlcicgP1xuICAgICAgICAodmFsdWUgfCBudW1iZXI6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpIDogKGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ3RpbWUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGVUaW1lJykgP1xuICAgICAgICAodmFsdWUgfCBkYXRlOmNvbHVtbi5waXBlQXJncy5mb3JtYXQ6Y29sdW1uLnBpcGVBcmdzLnRpbWV6b25lOmdyaWQubG9jYWxlKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5Jz9cbiAgICAgICAgKHZhbHVlIHwgY3VycmVuY3k6Y3VycmVuY3lDb2RlOmNvbHVtbi5waXBlQXJncy5kaXNwbGF5OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnID9cbiAgICAgICAgKHZhbHVlIHwgcGVyY2VudDpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSkgOiB2YWx1ZVwiXG4gICAgW3Jvd109XCJyb3dEYXRhXCJcbiAgICBbY29sdW1uXT1cInRoaXMuY29sdW1uLmZpZWxkXCJcbiAgICBbY29udGFpbmVyQ2xhc3NdPVwiJ2lneC1ncmlkX190ZC10ZXh0J1wiXG4gICAgW21ldGFkYXRhXT1cInNlYXJjaE1ldGFkYXRhXCI+e3tcbiAgICAgICAgIWlzRW1wdHlBZGRSb3dDZWxsID8gdmFsdWUgOiAoY29sdW1uLmhlYWRlciB8fCBjb2x1bW4uZmllbGQpXG4gICAgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2lubGluZUVkaXRvciBsZXQtY2VsbD1cImNlbGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnc3RyaW5nJ1wiPlxuICAgICAgICA8aWd4LWlucHV0LWdyb3VwIGRpc3BsYXlEZW5zaXR5PVwiY29tcGFjdFwiPlxuICAgICAgICAgICAgPGlucHV0IGlneElucHV0IFsobmdNb2RlbCldPVwiZWRpdFZhbHVlXCIgW2lneEZvY3VzXT1cInRydWVcIiAvPlxuICAgICAgICA8L2lneC1pbnB1dC1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnbnVtYmVyJ1wiPlxuICAgICAgICA8aWd4LWlucHV0LWdyb3VwIGRpc3BsYXlEZW5zaXR5PVwiY29tcGFjdFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWd4SW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nXCI+XG4gICAgICAgIDxpZ3gtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxuICAgICAgICA+PC9pZ3gtY2hlY2tib3g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGUnXCI+XG4gICAgICAgIDxpZ3gtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiXG4gICAgICAgICAgICBbb3V0bGV0XT1cImdyaWQub3V0bGV0XCJcbiAgICAgICAgICAgIG1vZGU9XCJkcm9wZG93blwiXG4gICAgICAgICAgICBbbG9jYWxlXT1cImdyaWQubG9jYWxlXCJcbiAgICAgICAgICAgIFt3ZWVrU3RhcnRdPVwiY29sdW1uLnBpcGVBcmdzLndlZWtTdGFydFwiXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJlZGl0VmFsdWVcIlxuICAgICAgICAgICAgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvaWd4LWRhdGUtcGlja2VyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICd0aW1lJ1wiPlxuICAgICAgICA8aWd4LXRpbWUtcGlja2VyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxuICAgICAgICAgICAgW291dGxldF09XCJncmlkLm91dGxldFwiXG4gICAgICAgICAgICBtb2RlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgW2lucHV0Rm9ybWF0XT1cImNvbHVtbi5kZWZhdWx0VGltZUZvcm1hdFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWYWx1ZVwiXG4gICAgICAgICAgICBbaWd4Rm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgIDwvaWd4LXRpbWUtcGlja2VyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlVGltZSdcIj5cbiAgICAgICAgPGlneC1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlneElucHV0IFtpZ3hEYXRlVGltZUVkaXRvcl09XCJjb2x1bW4uZGVmYXVsdERhdGVUaW1lRm9ybWF0XCIgWyhuZ01vZGVsKV09XCJlZGl0VmFsdWVcIiBbaWd4Rm9jdXNdPVwidHJ1ZVwiLz5cbiAgICAgICAgPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1wiPlxuICAgICAgICA8aWd4LWlucHV0LWdyb3VwIGRpc3BsYXlEZW5zaXR5PVwiY29tcGFjdFwiPlxuICAgICAgICAgICAgPGlneC1wcmVmaXggKm5nSWY9XCJncmlkLmN1cnJlbmN5UG9zaXRpb25MZWZ0XCI+e3sgY3VycmVuY3lDb2RlU3ltYm9sIH19PC9pZ3gtcHJlZml4PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWd4SW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpZ3gtc3VmZml4ICpuZ0lmPVwiIWdyaWQuY3VycmVuY3lQb3NpdGlvbkxlZnRcIiA+e3sgY3VycmVuY3lDb2RlU3ltYm9sIH19PC9pZ3gtc3VmZml4PlxuICAgICAgICA8L2lneC1pbnB1dC1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAncGVyY2VudCdcIj5cbiAgICAgICAgPGlneC1pbnB1dC1ncm91cCBkaXNwbGF5RGVuc2l0eT1cImNvbXBhY3RcIj5cbiAgICAgICAgICAgIDxpbnB1dCBpZ3hJbnB1dFxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZhbHVlXCJcbiAgICAgICAgICAgICAgICBbaWd4Rm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlneC1zdWZmaXg+IHt7IGVkaXRWYWx1ZSB8IHBlcmNlbnQ6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUgfX0gPC9pZ3gtc3VmZml4PlxuICAgICAgICA8L2lneC1pbnB1dC1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWVkaXRNb2RlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxldmVsID4gMFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjaW5kZW50YXRpb25EaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RyZWUtY2VsbC0tcGFkZGluZy1sZXZlbC17e2xldmVsfX1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydwYWRkaW5nLWlubGluZS1zdGFydCc6ICdjYWxjKHZhcigtLWlneC10cmVlLWluZGVudC1zaXplKSAqJyArIGxldmVsICsgJyknfVwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICAgICNpbmRpY2F0b3JcbiAgICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdHJlZS1ncm91cGluZy1pbmRpY2F0b3JcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IHZpc2liaWxpdHk6IHNob3dJbmRpY2F0b3IgPyAndmlzaWJsZScgOiAnaGlkZGVuJyB9XCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uSW5kaWNhdG9yRm9jdXMoKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6ICB0aGlzIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInBpbm5lZEluZGljYXRvclRlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uTG9hZGluZ0RibENsaWNrKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cImlneC1ncmlkX190cmVlLWxvYWRpbmctaW5kaWNhdG9yXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgZ3JpZC5yb3dMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgPyBncmlkLnJvd0xvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICA6IGRlZmF1bHRMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPlxuICAgICAgICA8aWd4LWNpcmN1bGFyLWJhciBbaW5kZXRlcm1pbmF0ZV09XCJ0cnVlXCI+IDwvaWd4LWNpcmN1bGFyLWJhcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj4gPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRFeHBhbmRlZFRlbXBsYXRlPlxuICAgIDxpZ3gtaWNvbj5leHBhbmRfbW9yZTwvaWd4LWljb24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sbGFwc2VkVGVtcGxhdGU+XG4gICAgPGlneC1pY29uPmNoZXZyb25fcmlnaHQ8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90cmVlLWdyaWQvdHJlZS1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90cmVlLWdyaWQvdHJlZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNwRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsOEJBQThCO0lBTjVFOztRQVFJOztXQUVHO1FBRUksVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVqQjs7V0FFRztRQUVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBb0NoQztJQTVCRzs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxHQUFHO1FBQ1Ysa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEtBQVk7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7O3FIQS9DUSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw2SUFGdEIsQ0FBQyxxQkFBcUIsQ0FBQyxpRENkdEMsbStRQXlNQTsyRkR6TGEsd0JBQXdCO2tCQU5wQyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsb0JBQW9CLGFBRW5CLENBQUMscUJBQXFCLENBQUM7OEJBUTNCLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFZSyxHQUFHO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhbW1lckdlc3R1cmVzTWFuYWdlciB9IGZyb20gJy4uLy4uL2NvcmUvdG91Y2gnO1xuaW1wb3J0IHsgSWd4R3JpZEV4cGFuZGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC9leHBhbmRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IElneFRyZWVHcmlkUm93IH0gZnJvbSAnLi4vZ3JpZC1wdWJsaWMtcm93JztcbmltcG9ydCB7IFJvd1R5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC10cmVlLWdyaWQtY2VsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICd0cmVlLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0hhbW1lckdlc3R1cmVzTWFuYWdlcl1cbn0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRDZWxsQ29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEV4cGFuZGFibGVDZWxsQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZXZlbCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0luZGljYXRvciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHJvdyBvZiB0aGUgY2VsbC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGNlbGxSb3cgPSB0aGlzLmNlbGwucm93O1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHJvdygpOiBSb3dUeXBlIHtcbiAgICAgICAgLy8gVE9ETzogRml4IHR5cGVzXG4gICAgICAgIHJldHVybiBuZXcgSWd4VHJlZUdyaWRSb3codGhpcy5ncmlkIGFzIGFueSwgdGhpcy5pbnRSb3cuaW5kZXgsIHRoaXMuaW50Um93LmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5ncmlkLmdyaWRBUEkuc2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5pbnRSb3cua2V5LCAhdGhpcy5pbnRSb3cuZXhwYW5kZWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG9uTG9hZGluZ0RibENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2RlZmF1bHRQaW5uZWRJbmRpY2F0b3I+XG4gICAgPGlneC1jaGlwXG4gICAgICAgICpuZ0lmPVwiZGlzcGxheVBpbm5lZENoaXBcIlxuICAgICAgICBjbGFzcz1cImlneC1ncmlkX190ZC0tcGlubmVkLWNoaXBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCInY29tcGFjdCdcIlxuICAgICAgICA+e3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfcGlubmVkX3Jvd19pbmRpY2F0b3IgfX08L2lneC1jaGlwXG4gICAgPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbGw+XG4gICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2Jvb2xlYW4nIHx8IChjb2x1bW4uZGF0YVR5cGUgPT09ICdib29sZWFuJyAmJiB0aGlzLmZvcm1hdHRlcilcIlxuICAgICAgICBpZ3hUZXh0SGlnaGxpZ2h0XG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RkLXRleHRcIlxuICAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lO1wiXG4gICAgICAgIFtjc3NDbGFzc109XCJoaWdobGlnaHRDbGFzc1wiXG4gICAgICAgIFthY3RpdmVDc3NDbGFzc109XCJhY3RpdmVIaWdobGlnaHRDbGFzc1wiXG4gICAgICAgIFtncm91cE5hbWVdPVwiZ3JpZElEXCJcbiAgICAgICAgW3ZhbHVlXT1cIlxuICAgICAgICAgICAgZm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjb2x1bW5Gb3JtYXR0ZXI6Zm9ybWF0dGVyOnJvd0RhdGEpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBudW1iZXI6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiAoY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZScgfHwgY29sdW1uLmRhdGFUeXBlID09PSAndGltZScgfHwgY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZVRpbWUnKVxuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgZGF0ZTpjb2x1bW4ucGlwZUFyZ3MuZm9ybWF0OmNvbHVtbi5waXBlQXJncy50aW1lem9uZTpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgY3VycmVuY3k6Y3VycmVuY3lDb2RlOmNvbHVtbi5waXBlQXJncy5kaXNwbGF5OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgIDogY29sdW1uLmRhdGFUeXBlID09PSAncGVyY2VudCdcbiAgICAgICAgICAgICAgICA/ICh2YWx1ZSB8IHBlcmNlbnQ6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZVxuICAgICAgICBcIlxuICAgICAgICBbcm93XT1cInJvd0RhdGFcIlxuICAgICAgICBbY29sdW1uXT1cInRoaXMuY29sdW1uLmZpZWxkXCJcbiAgICAgICAgW2NvbnRhaW5lckNsYXNzXT1cIidpZ3gtZ3JpZF9fdGQtdGV4dCdcIlxuICAgICAgICBbbWV0YWRhdGFdPVwic2VhcmNoTWV0YWRhdGFcIlxuICAgID57e1xuICAgICAgICAgICAgZm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjb2x1bW5Gb3JtYXR0ZXI6Zm9ybWF0dGVyOnJvd0RhdGEpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICA/ICh2YWx1ZSB8IG51bWJlcjpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IChjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICd0aW1lJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlVGltZScpXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBkYXRlOmNvbHVtbi5waXBlQXJncy5mb3JtYXQ6Y29sdW1uLnBpcGVBcmdzLnRpbWV6b25lOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgIDogY29sdW1uLmRhdGFUeXBlID09PSAnY3VycmVuY3knXG4gICAgICAgICAgICAgICAgPyAodmFsdWUgfCBjdXJyZW5jeTpjdXJyZW5jeUNvZGU6Y29sdW1uLnBpcGVBcmdzLmRpc3BsYXk6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uZGF0YVR5cGUgPT09ICdwZXJjZW50J1xuICAgICAgICAgICAgICAgID8gKHZhbHVlIHwgcGVyY2VudDpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgIH19PC9kaXY+XG4gICAgPGlneC1pY29uXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnYm9vbGVhbicgJiYgIXRoaXMuZm9ybWF0dGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaWd4LWljb24tLXN1Y2Nlc3MnOiB2YWx1ZSwgJ2lneC1pY29uLS1lcnJvcic6ICF2YWx1ZSB9XCJcbiAgICAgICAgPnt7IHZhbHVlID8gXCJjaGVja1wiIDogXCJjbG9zZVwiIH19PC9pZ3gtaWNvblxuICAgID5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2FkZFJvd0NlbGwgbGV0LWNlbGw9XCJjZWxsXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2Jvb2xlYW4nIHx8IChjb2x1bW4uZGF0YVR5cGUgPT09ICdib29sZWFuJyAmJiB0aGlzLmZvcm1hdHRlcilcIlxuICAgIGlneFRleHRIaWdobGlnaHQgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQtdGV4dFwiXG4gICAgc3R5bGU9XCJwb2ludGVyLWV2ZW50czogbm9uZVwiXG4gICAgW2Nzc0NsYXNzXT1cImhpZ2hsaWdodENsYXNzXCJcbiAgICBbYWN0aXZlQ3NzQ2xhc3NdPVwiYWN0aXZlSGlnaGxpZ2h0Q2xhc3NcIlxuICAgIFtncm91cE5hbWVdPVwiZ3JpZElEXCJcbiAgICBbdmFsdWVdPVwiZm9ybWF0dGVyID8gKHZhbHVlIHwgY29sdW1uRm9ybWF0dGVyOmZvcm1hdHRlcjpyb3dEYXRhKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ251bWJlcicgP1xuICAgICAgICAodmFsdWUgfCBudW1iZXI6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpIDogKGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ3RpbWUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGVUaW1lJykgP1xuICAgICAgICAodmFsdWUgfCBkYXRlOmNvbHVtbi5waXBlQXJncy5mb3JtYXQ6Y29sdW1uLnBpcGVBcmdzLnRpbWV6b25lOmdyaWQubG9jYWxlKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5Jz9cbiAgICAgICAgKHZhbHVlIHwgY3VycmVuY3k6Y3VycmVuY3lDb2RlOmNvbHVtbi5waXBlQXJncy5kaXNwbGF5OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKSA6IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnID9cbiAgICAgICAgKHZhbHVlIHwgcGVyY2VudDpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSkgOiB2YWx1ZVwiXG4gICAgW3Jvd109XCJyb3dEYXRhXCJcbiAgICBbY29sdW1uXT1cInRoaXMuY29sdW1uLmZpZWxkXCJcbiAgICBbY29udGFpbmVyQ2xhc3NdPVwiJ2lneC1ncmlkX190ZC10ZXh0J1wiXG4gICAgW21ldGFkYXRhXT1cInNlYXJjaE1ldGFkYXRhXCI+e3tcbiAgICAgICAgIWlzRW1wdHlBZGRSb3dDZWxsID8gdmFsdWUgOiAoY29sdW1uLmhlYWRlciB8fCBjb2x1bW4uZmllbGQpXG4gICAgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2lubGluZUVkaXRvciBsZXQtY2VsbD1cImNlbGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnc3RyaW5nJ1wiPlxuICAgICAgICA8aWd4LWlucHV0LWdyb3VwIGRpc3BsYXlEZW5zaXR5PVwiY29tcGFjdFwiPlxuICAgICAgICAgICAgPGlucHV0IGlneElucHV0IFsobmdNb2RlbCldPVwiZWRpdFZhbHVlXCIgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwiZ3JpZC5jcnVkU2VydmljZS5pc0luQ29tcG9zaXRpb25Nb2RlID0gdHJ1ZVwiXG4gICAgICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwiZ3JpZC5jcnVkU2VydmljZS5pc0luQ29tcG9zaXRpb25Nb2RlID0gZmFsc2VcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ251bWJlcidcIj5cbiAgICAgICAgPGlneC1pbnB1dC1ncm91cCBkaXNwbGF5RGVuc2l0eT1cImNvbXBhY3RcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlneElucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtpZ3hGb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvaWd4LWlucHV0LWdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdib29sZWFuJ1wiPlxuICAgICAgICA8aWd4LWNoZWNrYm94XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWYWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgPjwvaWd4LWNoZWNrYm94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlJ1wiPlxuICAgICAgICA8aWd4LWRhdGUtcGlja2VyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxuICAgICAgICAgICAgW291dGxldF09XCJncmlkLm91dGxldFwiXG4gICAgICAgICAgICBtb2RlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgW2xvY2FsZV09XCJncmlkLmxvY2FsZVwiXG4gICAgICAgICAgICBbd2Vla1N0YXJ0XT1cImNvbHVtbi5waXBlQXJncy53ZWVrU3RhcnRcIlxuICAgICAgICAgICAgWyh2YWx1ZSldPVwiZWRpdFZhbHVlXCJcbiAgICAgICAgICAgIFtpZ3hGb2N1c109XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2lneC1kYXRlLXBpY2tlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAndGltZSdcIj5cbiAgICAgICAgPGlneC10aW1lLXBpY2tlclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcbiAgICAgICAgICAgIFtvdXRsZXRdPVwiZ3JpZC5vdXRsZXRcIlxuICAgICAgICAgICAgbW9kZT1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgIFtpbnB1dEZvcm1hdF09XCJjb2x1bW4uZGVmYXVsdFRpbWVGb3JtYXRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmFsdWVcIlxuICAgICAgICAgICAgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICA8L2lneC10aW1lLXBpY2tlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZVRpbWUnXCI+XG4gICAgICAgIDxpZ3gtaW5wdXQtZ3JvdXA+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBpZ3hJbnB1dCBbaWd4RGF0ZVRpbWVFZGl0b3JdPVwiY29sdW1uLmRlZmF1bHREYXRlVGltZUZvcm1hdFwiIFsobmdNb2RlbCldPVwiZWRpdFZhbHVlXCIgW2lneEZvY3VzXT1cInRydWVcIi8+XG4gICAgICAgIDwvaWd4LWlucHV0LWdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdjdXJyZW5jeSdcIj5cbiAgICAgICAgPGlneC1pbnB1dC1ncm91cCBkaXNwbGF5RGVuc2l0eT1cImNvbXBhY3RcIj5cbiAgICAgICAgICAgIDxpZ3gtcHJlZml4ICpuZ0lmPVwiZ3JpZC5jdXJyZW5jeVBvc2l0aW9uTGVmdFwiPnt7IGN1cnJlbmN5Q29kZVN5bWJvbCB9fTwvaWd4LXByZWZpeD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlneElucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtpZ3hGb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aWd4LXN1ZmZpeCAqbmdJZj1cIiFncmlkLmN1cnJlbmN5UG9zaXRpb25MZWZ0XCIgPnt7IGN1cnJlbmN5Q29kZVN5bWJvbCB9fTwvaWd4LXN1ZmZpeD5cbiAgICAgICAgPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnXCI+XG4gICAgICAgIDxpZ3gtaW5wdXQtZ3JvdXAgZGlzcGxheURlbnNpdHk9XCJjb21wYWN0XCI+XG4gICAgICAgICAgICA8aW5wdXQgaWd4SW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2lneEZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpZ3gtc3VmZml4PiB7eyBlZGl0VmFsdWUgfCBwZXJjZW50OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlIH19IDwvaWd4LXN1ZmZpeD5cbiAgICAgICAgPC9pZ3gtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlZGl0TW9kZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsZXZlbCA+IDBcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2luZGVudGF0aW9uRGl2XG4gICAgICAgICAgICBjbGFzcz1cImlneC1ncmlkX190cmVlLWNlbGwtLXBhZGRpbmctbGV2ZWwte3tsZXZlbH19XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZy1pbmxpbmUtc3RhcnQnOiAnY2FsYyh2YXIoLS1pZ3gtdHJlZS1pbmRlbnQtc2l6ZSkgKicgKyBsZXZlbCArICcpJ31cIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdlxuICAgICAgICAjaW5kaWNhdG9yXG4gICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZ1wiXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWRfX3RyZWUtZ3JvdXBpbmctaW5kaWNhdG9yXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyB2aXNpYmlsaXR5OiBzaG93SW5kaWNhdG9yID8gJ3Zpc2libGUnIDogJ2hpZGRlbicgfVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkluZGljYXRvckZvY3VzKClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAgdGhpcyB9XCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwaW5uZWRJbmRpY2F0b3JUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzTG9hZGluZ1wiXG4gICAgICAgIChkYmxjbGljayk9XCJvbkxvYWRpbmdEYmxDbGljaygkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdHJlZS1sb2FkaW5nLWluZGljYXRvclwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGdyaWQucm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID8gZ3JpZC5yb3dMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0TG9hZGluZ0luZGljYXRvclRlbXBsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZT5cbiAgICAgICAgPGlneC1jaXJjdWxhci1iYXIgW2luZGV0ZXJtaW5hdGVdPVwidHJ1ZVwiPiA8L2lneC1jaXJjdWxhci1iYXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCI+IDwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwYW5kZWRUZW1wbGF0ZT5cbiAgICA8aWd4LWljb24+ZXhwYW5kX21vcmU8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbGxhcHNlZFRlbXBsYXRlPlxuICAgIDxpZ3gtaWNvbj5jaGV2cm9uX3JpZ2h0PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -381,10 +381,10 @@ export class IgxPageNavigationComponent {
|
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
IgxPageNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IgxPageNavigationComponent, deps: [{ token: IgxPaginatorComponent, host: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
-
IgxPageNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: IgxPageNavigationComponent, selector: "igx-page-nav", inputs: { role: "role" }, host: { properties: { "class.igx-page-nav": "this.cssClass", "attr.role": "this.role" } }, ngImport: i0, template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n", dependencies: [{ kind: "directive", type: i6.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: i7.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i8.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] });
|
|
384
|
+
IgxPageNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: IgxPageNavigationComponent, selector: "igx-page-nav", inputs: { role: "role" }, host: { properties: { "class.igx-page-nav": "this.cssClass", "attr.role": "this.role" } }, ngImport: i0, template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n type=\"button\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n", dependencies: [{ kind: "directive", type: i6.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: i7.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i8.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] });
|
|
385
385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IgxPageNavigationComponent, decorators: [{
|
|
386
386
|
type: Component,
|
|
387
|
-
args: [{ selector: 'igx-page-nav', template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n" }]
|
|
387
|
+
args: [{ selector: 'igx-page-nav', template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n type=\"button\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n" }]
|
|
388
388
|
}], ctorParameters: function () { return [{ type: IgxPaginatorComponent, decorators: [{
|
|
389
389
|
type: Host
|
|
390
390
|
}] }]; }, propDecorators: { cssClass: [{
|
|
@@ -396,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
396
396
|
}, {
|
|
397
397
|
type: Input
|
|
398
398
|
}] } });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3BhZ2luYXRvci9wYWdlLXNpemUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvcGFnaW5hdG9yL3BhZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQU16SCxNQUFNLE9BQU8sNkJBQTZCO0lBRDFDO1FBRUk7OztXQUdHO1FBRUksYUFBUSxHQUFHLHVCQUF1QixDQUFDO0tBQzdDOzswSEFQWSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDZDQUE2QyxFQUFFOzhCQU8zRCxRQUFRO3NCQURkLFdBQVc7dUJBQUMsNkJBQTZCOztBQU85QyxN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R0ksU0FBSSxHQUFHLFlBQVksQ0FBQztJQUVvQyxDQUFDOzt1SEFmdkQsMEJBQTBCLGtCQWVHLHFCQUFxQjsyR0FmbEQsMEJBQTBCLHlLR2hZdkMsNnREQXNEQTsyRkgwVWEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNJLGNBQWM7MERBa0JjLHFCQUFxQjswQkFBOUMsSUFBSTs0Q0FUVixRQUFRO3NCQURkLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVExQixJQUFJO3NCQUZWLFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5IH0gZnJvbSAnLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBJUGFnZUNhbmNlbGxhYmxlRXZlbnRBcmdzLCBJUGFnZUV2ZW50QXJncyB9IGZyb20gJy4vcGFnaW5hdG9yLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgSVBhZ2luYXRvclJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9wYWdpbmF0b3ItcmVzb3VyY2VzJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2lneFBhZ2luYXRvckNvbnRlbnRdLGlneC1wYWdpbmF0b3ItY29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdpbmF0b3JUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXBhZ2luYXRvci1jb250ZW50JylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2luYXRvci1jb250ZW50Jztcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdpbmF0b3JDb21wb25lbnQgZXh0ZW5kcyBEaXNwbGF5RGVuc2l0eUJhc2Uge1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4UGFnaW5hdG9yVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgcHVibGljIGN1c3RvbUNvbnRlbnQ6IElneFBhZ2luYXRvclRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGBwZXJQYWdlYCBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgcGFnaW5hdG9yIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXBhZ2luYXRvciAocGVyUGFnZUNoYW5nZSk9XCJvblBlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvaWd4LXBhZ2luYXRvcj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIG9uUGVyUGFnZUNoYW5nZShwZXJQYWdlOiBudW1iZXIpIHtcbiAgICAgKiAgIHRoaXMucGVyUGFnZSA9IHBlclBhZ2U7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBjdXJyZW50IHBhZ2UgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xuICAgICAqICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBwYWdpbmcgaXMgcGVyZm9ybWVkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBSZXR1cm5zIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIHRoZSBjdXJyZW50IGFuZCBuZXh0IHBhZ2VzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdpbmcpPVwicGFnaW5nSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElQYWdlQ2FuY2VsbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHBhZ2luZyBpcyBwZXJmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2YgdGhlIHByZXZpb3VzIGFuZCBjdXJyZW50IHBhZ2VzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdpbmdEb25lKT1cInBhZ2luZ0RvbmUoJGV2ZW50KVwiPjwvaWd4LXBhZ2luYXRvcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFnaW5nRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVBhZ2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUb3RhbCBwYWdlcyBjYWxjdWxhdGVkIGZyb20gdG90YWxSZWNvcmRzIGFuZCBwZXJQYWdlXG4gICAgICovXG4gICAgcHVibGljIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX3BhZ2UgPSAwO1xuICAgIHByb3RlY3RlZCBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9zZWxlY3RPcHRpb25zID0gWzUsIDEwLCAxNSwgMjUsIDUwLCAxMDAsIDUwMF07XG4gICAgcHJvdGVjdGVkIF9wZXJQYWdlID0gMTU7XG5cbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBDdXJyZW50UmVzb3VyY2VTdHJpbmdzLlBhZ2luYXRvclJlc1N0cmluZ3M7XG4gICAgcHJpdmF0ZSBfb3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7fTtcbiAgICBwcml2YXRlIGRlZmF1bHRTZWxlY3RWYWx1ZXMgPSBbNSwgMTAsIDE1LCAyNSwgNTAsIDEwMCwgNTAwXTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNsYXNzIG9mIHRoZSBJZ3hQYWdpbmF0b3JDb21wb25lbnQgYmFzZWRcbiAgICAgKiBvbiB0aGUgcHJvdmlkZWQgZGlzcGxheURlbnNpdHkuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yLS1jb3N5JylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29zeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheURlbnNpdHkgPT09IERpc3BsYXlEZW5zaXR5LmNvc3k7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yLS1jb21wYWN0JylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheURlbnNpdHkgPT09IERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yJylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29tZm9ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlEZW5zaXR5ID09PSBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHksIHNldHMgY3VycmVudCBwYWdlIG9mIHRoZSBgSWd4UGFnaW5hdG9yQ29tcG9uZW50YC5cbiAgICAgKiBUaGUgZGVmYXVsdCBpcyAwLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcGFnZSA9IHRoaXMucGFnaW5hdG9yLnBhZ2U7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9wYWdlID09PSB2YWx1ZSB8fCB2YWx1ZSA8IDAgfHwgdmFsdWUgPiB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW5jZWxFdmVudEFyZ3M6IElQYWdlQ2FuY2VsbGFibGVFdmVudEFyZ3MgPSB7IGN1cnJlbnQ6IHRoaXMuX3BhZ2UsIG5leHQ6IHZhbHVlLCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIGNvbnN0IGV2ZW50QXJnczogSVBhZ2VFdmVudEFyZ3MgPSB7IHByZXZpb3VzOiB0aGlzLl9wYWdlLCBjdXJyZW50OiB2YWx1ZSB9O1xuXG4gICAgICAgIHRoaXMucGFnaW5nLmVtaXQoY2FuY2VsRXZlbnRBcmdzKTtcbiAgICAgICAgaWYgKGNhbmNlbEV2ZW50QXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wYWdlID0gdmFsdWU7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMuX3BhZ2UpO1xuXG4gICAgICAgIHRoaXMucGFnaW5nRG9uZS5lbWl0KGV2ZW50QXJncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5LCBzZXRzIG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIHBlciBwYWdlIGluIHRoZSBgSWd4UGFnaW5hdG9yQ29tcG9uZW50YC5cbiAgICAgKiBUaGUgZGVmYXVsdCBpcyAxNS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGl0ZW1zUGVyUGFnZSA9IHRoaXMucGFnaW5hdG9yLnBlclBhZ2U7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHBlclBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJQYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdGhpcy5wZXJQYWdlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BlclBhZ2UgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICB0aGlzLnBlclBhZ2VDaGFuZ2UuZW1pdCh0aGlzLl9wZXJQYWdlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0T3B0aW9ucyA9IHRoaXMuc29ydFVuaXF1ZU9wdGlvbnModGhpcy5kZWZhdWx0U2VsZWN0VmFsdWVzLCB0aGlzLl9wZXJQYWdlKTtcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxSZWNvcmRzIC8gdGhpcy5fcGVyUGFnZSk7XG4gICAgICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgIT09IDAgJiYgdGhpcy5wYWdlID49IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICAgICAgdGhpcy5wYWdlID0gdGhpcy50b3RhbFBhZ2VzIC0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHRvdGFsIHJlY29yZHMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB0b3RhbFJlY29yZHMgPSB0aGlzLnBhZ2luYXRvci50b3RhbFJlY29yZHM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHRvdGFsUmVjb3JkcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdGFsUmVjb3JkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHRvdGFsUmVjb3Jkcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3RvdGFsUmVjb3JkcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbFJlY29yZHMgLyB0aGlzLnBlclBhZ2UpO1xuICAgICAgICBpZiAodGhpcy5wYWdlID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIGN1c3RvbSBvcHRpb25zIGluIHRoZSBzZWxlY3Qgb2YgdGhlIHBhZ2luYXRvclxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgb3B0aW9ucyA9IHRoaXMucGFnaW5hdG9yLnNlbGVjdE9wdGlvbnM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RPcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc2VsZWN0T3B0aW9ucyh2YWx1ZTogQXJyYXk8bnVtYmVyPikge1xuICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25zID0gdGhpcy5zb3J0VW5pcXVlT3B0aW9ucyh2YWx1ZSwgdGhpcy5fcGVyUGFnZSk7XG4gICAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdFZhbHVlcyA9IFsuLi52YWx1ZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyBjdXN0b20gT3ZlcmxheVNldHRpbmdzLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXBhZ2luYXRvciBbb3ZlcmxheVNldHRpbmdzXSA9IFwiY3VzdG9tT3ZlcmxheVNldHRpbmdzXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBvdmVybGF5U2V0dGluZ3MoKTogT3ZlcmxheVNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXlTZXR0aW5ncztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG92ZXJsYXlTZXR0aW5ncyh2YWx1ZTogT3ZlcmxheVNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJsYXlTZXR0aW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGFjY2Vzc29yIHRoYXQgc2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNvdXJjZVN0cmluZ3ModmFsdWU6IElQYWdpbmF0b3JSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gYWNjZXNzb3IgdGhhdCByZXR1cm5zIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb3VyY2VTdHJpbmdzKCk6IElQYWdpbmF0b3JSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgbGFzdCBwYWdlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBsYXN0UGFnZSA9IHRoaXMucGFnaW5hdG9yLmlzTGFzdFBhZ2U7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdlICsgMSA+PSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBmaXJzdCBwYWdlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBsYXN0UGFnZSA9IHRoaXMucGFnaW5hdG9yLmlzRmlyc3RQYWdlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNGaXJzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2UgPT09IDA7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGlmIHRoZSBmaXJzdCBwYWdlciBidXR0b25zIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNGaXJzdFBhZ2VEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGaXJzdFBhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpZiB0aGUgbGFzdCBwYWdlciBidXR0b25zIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNMYXN0UGFnZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0xhc3RQYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgRGlzcGxheURlbnNpdHkgZm9yIHRoZSA8c2VsZWN0PiBpbnNpZGUgdGhlIHBhZ2luYXRvclxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGFnaW5hdG9yU2VsZWN0RGlzcGxheURlbnNpdHkoKTogRGlzcGxheURlbnNpdHkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBEaXNwbGF5RGVuc2l0eS5jb3N5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBEaXNwbGF5RGVuc2l0eS5jb21wYWN0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHb2VzIHRvIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIGBJZ3hQYWdpbmF0b3JDb21wb25lbnRgLCBpZiB0aGUgcGFnaW5hdG9yIGlzIG5vdCBhbHJlYWR5IGF0IHRoZSBsYXN0IHBhZ2UuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucGFnaW5hdG9yLm5leHRQYWdlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNMYXN0UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR29lcyB0byB0aGUgcHJldmlvdXMgcGFnZSBvZiB0aGUgYElneFBhZ2luYXRvckNvbXBvbmVudGAsIGlmIHRoZSBwYWdpbmF0b3IgaXMgbm90IGFscmVhZHkgYXQgdGhlIGZpcnN0IHBhZ2UuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFBhZ2luYXRvckNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZpcnN0UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlIC09IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR29lcyB0byB0aGUgZGVzaXJlZCBwYWdlIGluZGV4LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnBhZ2luYXRvci5wYWdpbmF0ZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWxcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHBhZ2luYXRlKHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWwgPCAwIHx8IHZhbCA+IHRoaXMudG90YWxQYWdlcyAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhZ2UgPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0VW5pcXVlT3B0aW9ucyh2YWx1ZXM6IEFycmF5PG51bWJlcj4sIG5ld09wdGlvbjogbnVtYmVyKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi52YWx1ZXMsIG5ld09wdGlvbl0pKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXBhZ2Utc2l6ZScsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdlLXNpemUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdlU2l6ZVNlbGVjdG9yQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnZS1zaXplJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2Utc2l6ZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudCkgeyB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtcGFnZS1uYXYnLFxuICAgIHRlbXBsYXRlVXJsOiAncGFnZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdlTmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXBhZ2UtbmF2JylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2UtbmF2JztcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvbGUgPSAnbmF2aWdhdGlvbic7XG5cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudCkgeyB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbaWd4UGFnaW5hdG9yQ29udGVudF0saWd4LXBhZ2luYXRvci1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuXG48aWd4LXBhZ2Utc2l6ZSAqbmdJZj1cIiFjdXN0b21Db250ZW50XCI+PC9pZ3gtcGFnZS1zaXplPlxuPGlneC1wYWdlLW5hdiAqbmdJZj1cIiFjdXN0b21Db250ZW50XCI+PC9pZ3gtcGFnZS1uYXY+XG4iLCI8bGFiZWwgY2xhc3M9XCJpZ3gtcGFnZS1zaXplX19sYWJlbFwiPnt7IHBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9sYWJlbCB9fTwvbGFiZWw+XG48ZGl2IGNsYXNzPVwiaWd4LXBhZ2Utc2l6ZV9fc2VsZWN0XCI+XG4gICAgPGlneC1zZWxlY3QgW292ZXJsYXlTZXR0aW5nc109XCJwYWdpbmF0b3Iub3ZlcmxheVNldHRpbmdzXCIgWyhuZ01vZGVsKV09XCJwYWdpbmF0b3IucGVyUGFnZVwiXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJwYWdpbmF0b3IucGFnaW5hdG9yU2VsZWN0RGlzcGxheURlbnNpdHlcIiB0eXBlPVwiYm9yZGVyXCI+XG4gICAgICAgIDxsYWJlbCBpZ3hMYWJlbCBbaGlkZGVuXT1cInRydWVcIj57eyBwYWdpbmF0b3IucmVzb3VyY2VTdHJpbmdzLmlneF9wYWdpbmF0b3JfbGFiZWwgfX08L2xhYmVsPlxuICAgICAgICA8aWd4LXNlbGVjdC1pdGVtIFt2YWx1ZV09XCJ2YWxcIiAqbmdGb3I9XCJsZXQgdmFsIG9mIHBhZ2luYXRvci5zZWxlY3RPcHRpb25zXCI+XG4gICAgICAgICAgICB7eyB2YWwgfX1cbiAgICAgICAgPC9pZ3gtc2VsZWN0LWl0ZW0+XG4gICAgPC9pZ3gtc2VsZWN0PlxuPC9kaXY+XG4iLCI8YnV0dG9uXG4gICAgW3RpdGxlXT1cInBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9maXJzdF9wYWdlX2J1dHRvbl90ZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzRmlyc3RQYWdlRGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzRmlyc3RQYWdlRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJwYWdpbmF0b3IucGFnaW5hdGUoMClcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgIGlneFJpcHBsZVxuICAgIFtpZ3hSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbj5cbiAgICA8aWd4LWljb24+Zmlyc3RfcGFnZTwvaWd4LWljb24+XG48L2J1dHRvbj5cbjxidXR0b25cbiAgICBbdGl0bGVdPVwicGFnaW5hdG9yLnJlc291cmNlU3RyaW5ncy5pZ3hfcGFnaW5hdG9yX3ByZXZpb3VzX3BhZ2VfYnV0dG9uX3RleHRcIlxuICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNGaXJzdFBhZ2VEaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNGaXJzdFBhZ2VEaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cInBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKVwiXG4gICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgaWd4UmlwcGxlXG4gICAgW2lneFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIlxuPlxuICAgIDxpZ3gtaWNvbj5jaGV2cm9uX2xlZnQ8L2lneC1pY29uPlxuPC9idXR0b24+XG48ZGl2IGNsYXNzPVwiaWd4LXBhZ2UtbmF2X190ZXh0XCIgYXJpYS1jdXJyZW50PVwicGFnZVwiPlxuICAgIDxzcGFuPnt7IHBhZ2luYXRvci5wYWdlICsgMSB9fTwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgICA+Jm5ic3A7e3tcbiAgICAgICAgICAgIHBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9wYWdlcl90ZXh0XG4gICAgICAgIH19Jm5ic3A7PC9zcGFuXG4gICAgPlxuICAgIDxzcGFuPnt7IHBhZ2luYXRvci50b3RhbFBhZ2VzIH19PC9zcGFuPlxuPC9kaXY+XG48YnV0dG9uXG4gICAgW3RpdGxlXT1cInBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9uZXh0X3BhZ2VfYnV0dG9uX3RleHRcIlxuICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNMYXN0UGFnZURpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cInBhZ2luYXRvci5pc0xhc3RQYWdlRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJwYWdpbmF0b3IubmV4dFBhZ2UoKVwiXG4gICAgaWd4UmlwcGxlXG4gICAgW2lneFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuPlxuICAgIDxpZ3gtaWNvbj5jaGV2cm9uX3JpZ2h0PC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuPGJ1dHRvblxuICAgIFt0aXRsZV09XCJwYWdpbmF0b3IucmVzb3VyY2VTdHJpbmdzLmlneF9wYWdpbmF0b3JfbGFzdF9wYWdlX2J1dHRvbl90ZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzTGFzdFBhZ2VEaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNMYXN0UGFnZURpc2FibGVkXCJcbiAgICAoY2xpY2spPVwicGFnaW5hdG9yLnBhZ2luYXRlKHBhZ2luYXRvci50b3RhbFBhZ2VzIC0gMSlcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgIGlneFJpcHBsZVxuICAgIFtpZ3hSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbj5cbiAgICA8aWd4LWljb24+bGFzdF9wYWdlPC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuXG4iXX0=
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3BhZ2luYXRvci9wYWdlLXNpemUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvcGFnaW5hdG9yL3BhZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQU16SCxNQUFNLE9BQU8sNkJBQTZCO0lBRDFDO1FBRUk7OztXQUdHO1FBRUksYUFBUSxHQUFHLHVCQUF1QixDQUFDO0tBQzdDOzswSEFQWSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDZDQUE2QyxFQUFFOzhCQU8zRCxRQUFRO3NCQURkLFdBQVc7dUJBQUMsNkJBQTZCOztBQU85QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCO0lBb096RCxZQUErRCxzQkFBOEMsRUFDakcsVUFBc0IsRUFBVSxHQUFzQjtRQUM5RCxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUY2QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ2pHLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVObEU7Ozs7Ozs7Ozs7OztXQVlHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWxEOzs7Ozs7Ozs7Ozs7V0FZRztRQUVJLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9DOzs7Ozs7Ozs7V0FTRztRQUVJLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUU5RDs7Ozs7Ozs7O1dBU0c7UUFFSSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFNN0MsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLG1CQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWhCLHFCQUFnQixHQUFHLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDO1FBQzlELHFCQUFnQixHQUFvQixFQUFFLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQXlKNUQsQ0FBQztJQXZKRDs7O09BR0c7SUFDSCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFDVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsSUFDVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxLQUFhO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5RCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLGVBQWUsR0FBOEIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2RyxNQUFNLFNBQVMsR0FBbUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEMsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3hCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxJQUNXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFO1lBQ3JDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLFlBQVksQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNqQjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUNXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLGFBQWEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGVBQWUsQ0FBQyxLQUFzQjtRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLGVBQWUsQ0FBQyxLQUFnQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBT0Q7Ozs7O09BS0c7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyw2QkFBNkI7UUFDcEMsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQyxXQUFXLEVBQUU7WUFDcEQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSSxZQUFZO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBQ0Q7Ozs7Ozs7O09BUUc7SUFDSSxRQUFRLENBQUMsR0FBVztRQUN2QixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFxQixFQUFFLFNBQWlCO1FBQzlELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs7a0hBdlVRLHFCQUFxQixrQkFvT0UsbUJBQW1CO3NHQXBPMUMscUJBQXFCLHFqQkFNaEIsNkJBQTZCLHVFQ3ZDL0Msd01BSUEsME5ENFhhLDBCQUEwQixrSEFoQjFCLDRCQUE0QjsyRkEvVTVCLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDSSxlQUFlOzswQkF1T1osUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUI7cUdBN041QyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLDZCQUE2QjtnQkFpQnBDLGFBQWE7c0JBRG5CLE1BQU07Z0JBaUJBLFVBQVU7c0JBRGhCLE1BQU07Z0JBY0EsTUFBTTtzQkFEWixNQUFNO2dCQWNBLFVBQVU7c0JBRGhCLE1BQU07Z0JBcUJJLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsMkJBQTJCO2dCQU03QixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDhCQUE4QjtnQkFNaEMsZ0JBQWdCO3NCQUQxQixXQUFXO3VCQUFDLHFCQUFxQjtnQkFldkIsSUFBSTtzQkFEZCxLQUFLO2dCQWdDSyxPQUFPO3NCQURqQixLQUFLO2dCQTJCSyxZQUFZO3NCQUR0QixLQUFLO2dCQXVCSyxhQUFhO3NCQUR2QixLQUFLO2dCQWlCSyxlQUFlO3NCQUR6QixLQUFLO2dCQWNLLGVBQWU7c0JBRHpCLEtBQUs7O0FBdUhWLE1BQU0sT0FBTyw0QkFBNEI7SUFRckMsWUFBMkIsU0FBZ0M7UUFBaEMsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFQM0Q7OztXQUdHO1FBRUksYUFBUSxHQUFHLGVBQWUsQ0FBQztJQUU2QixDQUFDOzt5SEFSdkQsNEJBQTRCLGtCQVFDLHFCQUFxQjs2R0FSbEQsNEJBQTRCLHVIRWhYekMsb2xCQVVBOzJGRnNXYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0ksZUFBZTswREFXYSxxQkFBcUI7MEJBQTlDLElBQUk7NENBRlYsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjs7QUFXdEMsTUFBTSxPQUFPLDBCQUEwQjtJQWVuQyxZQUEyQixTQUFnQztRQUFoQyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQWQzRDs7O1dBR0c7UUFFSSxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBRWpDOztXQUVHO1FBR0ksU0FBSSxHQUFHLFlBQVksQ0FBQztJQUVvQyxDQUFDOzt1SEFmdkQsMEJBQTBCLGtCQWVHLHFCQUFxQjsyR0FmbEQsMEJBQTBCLHlLR2hZdkMsaXpEQTBEQTsyRkhzVWEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNJLGNBQWM7MERBa0JjLHFCQUFxQjswQkFBOUMsSUFBSTs0Q0FUVixRQUFRO3NCQURkLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVExQixJQUFJO3NCQUZWLFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5IH0gZnJvbSAnLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBJUGFnZUNhbmNlbGxhYmxlRXZlbnRBcmdzLCBJUGFnZUV2ZW50QXJncyB9IGZyb20gJy4vcGFnaW5hdG9yLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgSVBhZ2luYXRvclJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9wYWdpbmF0b3ItcmVzb3VyY2VzJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2lneFBhZ2luYXRvckNvbnRlbnRdLGlneC1wYWdpbmF0b3ItY29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdpbmF0b3JUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXBhZ2luYXRvci1jb250ZW50JylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2luYXRvci1jb250ZW50Jztcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdpbmF0b3JDb21wb25lbnQgZXh0ZW5kcyBEaXNwbGF5RGVuc2l0eUJhc2Uge1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4UGFnaW5hdG9yVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgcHVibGljIGN1c3RvbUNvbnRlbnQ6IElneFBhZ2luYXRvclRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGBwZXJQYWdlYCBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgcGFnaW5hdG9yIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXBhZ2luYXRvciAocGVyUGFnZUNoYW5nZSk9XCJvblBlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvaWd4LXBhZ2luYXRvcj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIG9uUGVyUGFnZUNoYW5nZShwZXJQYWdlOiBudW1iZXIpIHtcbiAgICAgKiAgIHRoaXMucGVyUGFnZSA9IHBlclBhZ2U7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBjdXJyZW50IHBhZ2UgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xuICAgICAqICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBwYWdpbmcgaXMgcGVyZm9ybWVkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBSZXR1cm5zIGFuIG9iamVjdCBjb25zaXN0aW5nIG9mIHRoZSBjdXJyZW50IGFuZCBuZXh0IHBhZ2VzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdpbmcpPVwicGFnaW5nSGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElQYWdlQ2FuY2VsbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHBhZ2luZyBpcyBwZXJmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGNvbnNpc3Rpbmcgb2YgdGhlIHByZXZpb3VzIGFuZCBjdXJyZW50IHBhZ2VzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcGFnaW5hdG9yIChwYWdpbmdEb25lKT1cInBhZ2luZ0RvbmUoJGV2ZW50KVwiPjwvaWd4LXBhZ2luYXRvcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFnaW5nRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVBhZ2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUb3RhbCBwYWdlcyBjYWxjdWxhdGVkIGZyb20gdG90YWxSZWNvcmRzIGFuZCBwZXJQYWdlXG4gICAgICovXG4gICAgcHVibGljIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX3BhZ2UgPSAwO1xuICAgIHByb3RlY3RlZCBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9zZWxlY3RPcHRpb25zID0gWzUsIDEwLCAxNSwgMjUsIDUwLCAxMDAsIDUwMF07XG4gICAgcHJvdGVjdGVkIF9wZXJQYWdlID0gMTU7XG5cbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBDdXJyZW50UmVzb3VyY2VTdHJpbmdzLlBhZ2luYXRvclJlc1N0cmluZ3M7XG4gICAgcHJpdmF0ZSBfb3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7fTtcbiAgICBwcml2YXRlIGRlZmF1bHRTZWxlY3RWYWx1ZXMgPSBbNSwgMTAsIDE1LCAyNSwgNTAsIDEwMCwgNTAwXTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNsYXNzIG9mIHRoZSBJZ3hQYWdpbmF0b3JDb21wb25lbnQgYmFzZWRcbiAgICAgKiBvbiB0aGUgcHJvdmlkZWQgZGlzcGxheURlbnNpdHkuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yLS1jb3N5JylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29zeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheURlbnNpdHkgPT09IERpc3BsYXlEZW5zaXR5LmNvc3k7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yLS1jb21wYWN0JylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheURlbnNpdHkgPT09IERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnaW5hdG9yJylcbiAgICBwdWJsaWMgZ2V0IGNsYXNzQ29tZm9ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlEZW5zaXR5ID09PSBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHksIHNldHMgY3VycmVudCBwYWdlIG9mIHRoZSBgSWd4UGFnaW5hdG9yQ29tcG9uZW50YC5cbiAgICAgKiBUaGUgZGVmYXVsdCBpcyAwLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcGFnZSA9IHRoaXMucGFnaW5hdG9yLnBhZ2U7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9wYWdlID09PSB2YWx1ZSB8fCB2YWx1ZSA8IDAgfHwgdmFsdWUgPiB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW5jZWxFdmVudEFyZ3M6IElQYWdlQ2FuY2VsbGFibGVFdmVudEFyZ3MgPSB7IGN1cnJlbnQ6IHRoaXMuX3BhZ2UsIG5leHQ6IHZhbHVlLCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIGNvbnN0IGV2ZW50QXJnczogSVBhZ2VFdmVudEFyZ3MgPSB7IHByZXZpb3VzOiB0aGlzLl9wYWdlLCBjdXJyZW50OiB2YWx1ZSB9O1xuXG4gICAgICAgIHRoaXMucGFnaW5nLmVtaXQoY2FuY2VsRXZlbnRBcmdzKTtcbiAgICAgICAgaWYgKGNhbmNlbEV2ZW50QXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wYWdlID0gdmFsdWU7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMuX3BhZ2UpO1xuXG4gICAgICAgIHRoaXMucGFnaW5nRG9uZS5lbWl0KGV2ZW50QXJncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5LCBzZXRzIG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIHBlciBwYWdlIGluIHRoZSBgSWd4UGFnaW5hdG9yQ29tcG9uZW50YC5cbiAgICAgKiBUaGUgZGVmYXVsdCBpcyAxNS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGl0ZW1zUGVyUGFnZSA9IHRoaXMucGFnaW5hdG9yLnBlclBhZ2U7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHBlclBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJQYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdGhpcy5wZXJQYWdlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BlclBhZ2UgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICB0aGlzLnBlclBhZ2VDaGFuZ2UuZW1pdCh0aGlzLl9wZXJQYWdlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0T3B0aW9ucyA9IHRoaXMuc29ydFVuaXF1ZU9wdGlvbnModGhpcy5kZWZhdWx0U2VsZWN0VmFsdWVzLCB0aGlzLl9wZXJQYWdlKTtcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxSZWNvcmRzIC8gdGhpcy5fcGVyUGFnZSk7XG4gICAgICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgIT09IDAgJiYgdGhpcy5wYWdlID49IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICAgICAgdGhpcy5wYWdlID0gdGhpcy50b3RhbFBhZ2VzIC0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHRvdGFsIHJlY29yZHMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB0b3RhbFJlY29yZHMgPSB0aGlzLnBhZ2luYXRvci50b3RhbFJlY29yZHM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHRvdGFsUmVjb3JkcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdGFsUmVjb3JkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHRvdGFsUmVjb3Jkcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3RvdGFsUmVjb3JkcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbFJlY29yZHMgLyB0aGlzLnBlclBhZ2UpO1xuICAgICAgICBpZiAodGhpcy5wYWdlID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIGN1c3RvbSBvcHRpb25zIGluIHRoZSBzZWxlY3Qgb2YgdGhlIHBhZ2luYXRvclxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgb3B0aW9ucyA9IHRoaXMucGFnaW5hdG9yLnNlbGVjdE9wdGlvbnM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RPcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc2VsZWN0T3B0aW9ucyh2YWx1ZTogQXJyYXk8bnVtYmVyPikge1xuICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25zID0gdGhpcy5zb3J0VW5pcXVlT3B0aW9ucyh2YWx1ZSwgdGhpcy5fcGVyUGFnZSk7XG4gICAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdFZhbHVlcyA9IFsuLi52YWx1ZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyBjdXN0b20gT3ZlcmxheVNldHRpbmdzLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXBhZ2luYXRvciBbb3ZlcmxheVNldHRpbmdzXSA9IFwiY3VzdG9tT3ZlcmxheVNldHRpbmdzXCI+PC9pZ3gtcGFnaW5hdG9yPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBvdmVybGF5U2V0dGluZ3MoKTogT3ZlcmxheVNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXlTZXR0aW5ncztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG92ZXJsYXlTZXR0aW5ncyh2YWx1ZTogT3ZlcmxheVNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJsYXlTZXR0aW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGFjY2Vzc29yIHRoYXQgc2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNvdXJjZVN0cmluZ3ModmFsdWU6IElQYWdpbmF0b3JSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gYWNjZXNzb3IgdGhhdCByZXR1cm5zIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb3VyY2VTdHJpbmdzKCk6IElQYWdpbmF0b3JSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgbGFzdCBwYWdlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBsYXN0UGFnZSA9IHRoaXMucGFnaW5hdG9yLmlzTGFzdFBhZ2U7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdlICsgMSA+PSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBmaXJzdCBwYWdlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBsYXN0UGFnZSA9IHRoaXMucGFnaW5hdG9yLmlzRmlyc3RQYWdlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNGaXJzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2UgPT09IDA7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGlmIHRoZSBmaXJzdCBwYWdlciBidXR0b25zIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNGaXJzdFBhZ2VEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGaXJzdFBhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpZiB0aGUgbGFzdCBwYWdlciBidXR0b25zIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNMYXN0UGFnZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0xhc3RQYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgRGlzcGxheURlbnNpdHkgZm9yIHRoZSA8c2VsZWN0PiBpbnNpZGUgdGhlIHBhZ2luYXRvclxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGFnaW5hdG9yU2VsZWN0RGlzcGxheURlbnNpdHkoKTogRGlzcGxheURlbnNpdHkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBEaXNwbGF5RGVuc2l0eS5jb3N5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBEaXNwbGF5RGVuc2l0eS5jb21wYWN0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHb2VzIHRvIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIGBJZ3hQYWdpbmF0b3JDb21wb25lbnRgLCBpZiB0aGUgcGFnaW5hdG9yIGlzIG5vdCBhbHJlYWR5IGF0IHRoZSBsYXN0IHBhZ2UuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucGFnaW5hdG9yLm5leHRQYWdlKCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNMYXN0UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR29lcyB0byB0aGUgcHJldmlvdXMgcGFnZSBvZiB0aGUgYElneFBhZ2luYXRvckNvbXBvbmVudGAsIGlmIHRoZSBwYWdpbmF0b3IgaXMgbm90IGFscmVhZHkgYXQgdGhlIGZpcnN0IHBhZ2UuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFBhZ2luYXRvckNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZpcnN0UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlIC09IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR29lcyB0byB0aGUgZGVzaXJlZCBwYWdlIGluZGV4LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnBhZ2luYXRvci5wYWdpbmF0ZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWxcbiAgICAgKiBAbWVtYmVyb2YgSWd4UGFnaW5hdG9yQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHBhZ2luYXRlKHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWwgPCAwIHx8IHZhbCA+IHRoaXMudG90YWxQYWdlcyAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhZ2UgPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0VW5pcXVlT3B0aW9ucyh2YWx1ZXM6IEFycmF5PG51bWJlcj4sIG5ld09wdGlvbjogbnVtYmVyKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi52YWx1ZXMsIG5ld09wdGlvbl0pKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXBhZ2Utc2l6ZScsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdlLXNpemUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdlU2l6ZVNlbGVjdG9yQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcGFnZS1zaXplJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2Utc2l6ZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudCkgeyB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtcGFnZS1uYXYnLFxuICAgIHRlbXBsYXRlVXJsOiAncGFnZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQYWdlTmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXBhZ2UtbmF2JylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXBhZ2UtbmF2JztcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvbGUgPSAnbmF2aWdhdGlvbic7XG5cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudCkgeyB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbaWd4UGFnaW5hdG9yQ29udGVudF0saWd4LXBhZ2luYXRvci1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuXG48aWd4LXBhZ2Utc2l6ZSAqbmdJZj1cIiFjdXN0b21Db250ZW50XCI+PC9pZ3gtcGFnZS1zaXplPlxuPGlneC1wYWdlLW5hdiAqbmdJZj1cIiFjdXN0b21Db250ZW50XCI+PC9pZ3gtcGFnZS1uYXY+XG4iLCI8bGFiZWwgY2xhc3M9XCJpZ3gtcGFnZS1zaXplX19sYWJlbFwiPnt7IHBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9sYWJlbCB9fTwvbGFiZWw+XG48ZGl2IGNsYXNzPVwiaWd4LXBhZ2Utc2l6ZV9fc2VsZWN0XCI+XG4gICAgPGlneC1zZWxlY3QgW292ZXJsYXlTZXR0aW5nc109XCJwYWdpbmF0b3Iub3ZlcmxheVNldHRpbmdzXCIgWyhuZ01vZGVsKV09XCJwYWdpbmF0b3IucGVyUGFnZVwiXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJwYWdpbmF0b3IucGFnaW5hdG9yU2VsZWN0RGlzcGxheURlbnNpdHlcIiB0eXBlPVwiYm9yZGVyXCI+XG4gICAgICAgIDxsYWJlbCBpZ3hMYWJlbCBbaGlkZGVuXT1cInRydWVcIj57eyBwYWdpbmF0b3IucmVzb3VyY2VTdHJpbmdzLmlneF9wYWdpbmF0b3JfbGFiZWwgfX08L2xhYmVsPlxuICAgICAgICA8aWd4LXNlbGVjdC1pdGVtIFt2YWx1ZV09XCJ2YWxcIiAqbmdGb3I9XCJsZXQgdmFsIG9mIHBhZ2luYXRvci5zZWxlY3RPcHRpb25zXCI+XG4gICAgICAgICAgICB7eyB2YWwgfX1cbiAgICAgICAgPC9pZ3gtc2VsZWN0LWl0ZW0+XG4gICAgPC9pZ3gtc2VsZWN0PlxuPC9kaXY+XG4iLCI8YnV0dG9uXG4gICAgW3RpdGxlXT1cInBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9maXJzdF9wYWdlX2J1dHRvbl90ZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzRmlyc3RQYWdlRGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzRmlyc3RQYWdlRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJwYWdpbmF0b3IucGFnaW5hdGUoMClcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgIGlneFJpcHBsZVxuICAgIFtpZ3hSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbj5cbiAgICA8aWd4LWljb24+Zmlyc3RfcGFnZTwvaWd4LWljb24+XG48L2J1dHRvbj5cbjxidXR0b25cbiAgICBbdGl0bGVdPVwicGFnaW5hdG9yLnJlc291cmNlU3RyaW5ncy5pZ3hfcGFnaW5hdG9yX3ByZXZpb3VzX3BhZ2VfYnV0dG9uX3RleHRcIlxuICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNGaXJzdFBhZ2VEaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNGaXJzdFBhZ2VEaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cInBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKVwiXG4gICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgaWd4UmlwcGxlXG4gICAgW2lneFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuPlxuICAgIDxpZ3gtaWNvbj5jaGV2cm9uX2xlZnQ8L2lneC1pY29uPlxuPC9idXR0b24+XG48ZGl2IGNsYXNzPVwiaWd4LXBhZ2UtbmF2X190ZXh0XCIgYXJpYS1jdXJyZW50PVwicGFnZVwiPlxuICAgIDxzcGFuPnt7IHBhZ2luYXRvci5wYWdlICsgMSB9fTwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgICA+Jm5ic3A7e3tcbiAgICAgICAgICAgIHBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9wYWdlcl90ZXh0XG4gICAgICAgIH19Jm5ic3A7PC9zcGFuXG4gICAgPlxuICAgIDxzcGFuPnt7IHBhZ2luYXRvci50b3RhbFBhZ2VzIH19PC9zcGFuPlxuPC9kaXY+XG48YnV0dG9uXG4gICAgW3RpdGxlXT1cInBhZ2luYXRvci5yZXNvdXJjZVN0cmluZ3MuaWd4X3BhZ2luYXRvcl9uZXh0X3BhZ2VfYnV0dG9uX3RleHRcIlxuICAgIFtkaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNMYXN0UGFnZURpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cInBhZ2luYXRvci5pc0xhc3RQYWdlRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJwYWdpbmF0b3IubmV4dFBhZ2UoKVwiXG4gICAgaWd4UmlwcGxlXG4gICAgW2lneFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuPlxuICAgIDxpZ3gtaWNvbj5jaGV2cm9uX3JpZ2h0PC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuPGJ1dHRvblxuICAgIFt0aXRsZV09XCJwYWdpbmF0b3IucmVzb3VyY2VTdHJpbmdzLmlneF9wYWdpbmF0b3JfbGFzdF9wYWdlX2J1dHRvbl90ZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwicGFnaW5hdG9yLmlzTGFzdFBhZ2VEaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJwYWdpbmF0b3IuaXNMYXN0UGFnZURpc2FibGVkXCJcbiAgICAoY2xpY2spPVwicGFnaW5hdG9yLnBhZ2luYXRlKHBhZ2luYXRvci50b3RhbFBhZ2VzIC0gMSlcIlxuICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgIGlneFJpcHBsZVxuICAgIFtpZ3hSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbj5cbiAgICA8aWd4LWljb24+bGFzdF9wYWdlPC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuXG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { noop } from 'rxjs';
|
|
3
|
+
import { noop, Subject } from 'rxjs';
|
|
4
4
|
import { mkenum } from '../core/utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../directives/ripple/ripple.directive";
|
|
@@ -25,6 +25,11 @@ let nextId = 0;
|
|
|
25
25
|
export class IgxRadioComponent {
|
|
26
26
|
constructor(cdr) {
|
|
27
27
|
this.cdr = cdr;
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
this.destroy$ = new Subject();
|
|
28
33
|
/**
|
|
29
34
|
* Sets/gets the `id` of the radio component.
|
|
30
35
|
* If not set, the `id` of the first radio component will be `"igx-radio-0"`.
|
|
@@ -198,6 +203,14 @@ export class IgxRadioComponent {
|
|
|
198
203
|
set disabled(value) {
|
|
199
204
|
this._disabled = (value === '') || value;
|
|
200
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* @hidden
|
|
208
|
+
* @internal
|
|
209
|
+
*/
|
|
210
|
+
ngOnDestroy() {
|
|
211
|
+
this.destroy$.next(true);
|
|
212
|
+
this.destroy$.complete();
|
|
213
|
+
}
|
|
201
214
|
/**
|
|
202
215
|
* @hidden
|
|
203
216
|
* @internal
|
|
@@ -388,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
388
401
|
type: HostListener,
|
|
389
402
|
args: ['click']
|
|
390
403
|
}] } });
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9yYWRpby9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQ3RELFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUM7SUFDckMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBR0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2Y7Ozs7Ozs7Ozs7OztHQVlHO0FBWUgsTUFBTSxPQUFPLGlCQUFpQjtJQTRSMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF4UDFDOzs7Ozs7Ozs7OztXQVdHO1FBR0ksT0FBRSxHQUFHLGFBQWEsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUVwQzs7Ozs7Ozs7Ozs7V0FXRztRQUVJLFlBQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQTZDcEM7Ozs7Ozs7Ozs7V0FVRztRQUVJLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFFL0I7Ozs7Ozs7Ozs7O1dBV0c7UUFFSSxr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ImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWRpdG9yUHJvdmlkZXIgfSBmcm9tICcuLi9jb3JlL2VkaXQtcHJvdmlkZXInO1xuaW1wb3J0IHsgSUJhc2VFdmVudEFyZ3MsIG1rZW51bSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGFuZ2VSYWRpb0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICB2YWx1ZTogYW55O1xuICAgIHJhZGlvOiBJZ3hSYWRpb0NvbXBvbmVudDtcbn1cblxuZXhwb3J0IGNvbnN0IFJhZGlvTGFiZWxQb3NpdGlvbiA9IG1rZW51bSh7XG4gICAgQkVGT1JFOiAnYmVmb3JlJyxcbiAgICBBRlRFUjogJ2FmdGVyJ1xufSk7XG5leHBvcnQgdHlwZSBSYWRpb0xhYmVsUG9zaXRpb24gPSAodHlwZW9mIFJhZGlvTGFiZWxQb3NpdGlvbilba2V5b2YgdHlwZW9mIFJhZGlvTGFiZWxQb3NpdGlvbl07XG5cbmxldCBuZXh0SWQgPSAwO1xuLyoqXG4gKiAqKklnbml0ZSBVSSBmb3IgQW5ndWxhciBSYWRpbyBCdXR0b24qKiAtXG4gKiBbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvcmFkaW9fYnV0dG9uLmh0bWwpXG4gKlxuICogVGhlIElnbml0ZSBVSSBSYWRpbyBCdXR0b24gYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhbiBhdmFpbGFibGUgc2V0IG9mIG9wdGlvbnMgdGhhdCBhcmUgbGlzdGVkIHNpZGUgYnkgc2lkZS5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGlneC1yYWRpbz5cbiAqICAgU2ltcGxlIHJhZGlvIGJ1dHRvblxuICogPC9pZ3gtcmFkaW8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IElneFJhZGlvQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2lneC1yYWRpbycsXG4gICAgdGVtcGxhdGVVcmw6ICdyYWRpby5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4UmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRWRpdG9yUHJvdmlkZXIge1xuICAgIHByaXZhdGUgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlcXVpcmVkOiBib29sZWFuIHwgJyc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IGJvb2xlYW4gfCAnJztcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHJlZmVyZW5jZSB0byBuYXRpdmUgcmFkaW8gZWxlbWVudC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHJhZGlvRWxlbWVudCA9ICB0aGlzLnJhZGlvLm5hdGl2ZVJhZGlvO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFN3aXRjaENvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3JhZGlvJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgbmF0aXZlUmFkaW86IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHJlZmVyZW5jZSB0byBuYXRpdmUgbGFiZWwgZWxlbWVudC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxhYmVsRWxlbWVudCA9ICB0aGlzLnJhZGlvLm5hdGl2ZUxhYmVsO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFN3aXRjaENvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ25hdGl2ZUxhYmVsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgbmF0aXZlTGFiZWw6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHJlZmVyZW5jZSB0byB0aGUgbGFiZWwgcGxhY2Vob2xkZXIgZWxlbWVudC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxhYmVsUGxhY2Vob2xkZXIgPSAgdGhpcy5yYWRpby5wbGFjZWhvbGRlckxhYmVsO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFN3aXRjaENvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BsYWNlaG9sZGVyTGFiZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlckxhYmVsOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBgaWRgIG9mIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBpZGAgb2YgdGhlIGZpcnN0IHJhZGlvIGNvbXBvbmVudCB3aWxsIGJlIGBcImlneC1yYWRpby0wXCJgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIGlkID0gXCJteS1maXJzdC1yYWRpb1wiPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcmFkaW9JZCA9ICB0aGlzLnJhZGlvLmlkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtcmFkaW8tJHtuZXh0SWQrK31gO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBpZCBvZiB0aGUgYGxhYmVsYCBlbGVtZW50IGluIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAgICogSWYgbm90IHNldCwgdGhlIGlkIG9mIHRoZSBgbGFiZWxgIGluIHRoZSBmaXJzdCByYWRpbyBjb21wb25lbnQgd2lsbCBiZSBgXCJpZ3gtcmFkaW8tMC1sYWJlbFwiYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBsYWJlbElkID0gXCJMYWJlbDFcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxhYmVsSWQgPSAgdGhpcy5yYWRpby5sYWJlbElkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxJZCA9IGAke3RoaXMuaWR9LWxhYmVsYDtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgcG9zaXRpb24gb2YgdGhlIGBsYWJlbGAgaW4gdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCBgbGFiZWxQb3NpdGlvbmAgd2lsbCBoYXZlIHZhbHVlIGBcImFmdGVyXCJgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIGxhYmVsUG9zaXRpb24gPSBcImJlZm9yZVwiPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGFiZWxQb3NpdGlvbiA9ICB0aGlzLnJhZGlvLmxhYmVsUG9zaXRpb247XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFBvc2l0aW9uOiBSYWRpb0xhYmVsUG9zaXRpb24gfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGB2YWx1ZWAgYXR0cmlidXRlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIFt2YWx1ZV0gPSBcIidyYWRpb0J1dHRvblZhbHVlJ1wiPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgdmFsdWUgPSAgdGhpcy5yYWRpby52YWx1ZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBuYW1lYCBhdHRyaWJ1dGUgb2YgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBuYW1lID0gXCJSYWRpbzFcIj48L2lneC1yYWRpbz5cbiAgICAgKiAgYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBuYW1lID0gIHRoaXMucmFkaW8ubmFtZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBbdGFiaW5kZXhdID0gXCIxXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB0YWJJbmRleCA9ICB0aGlzLnJhZGlvLnRhYmluZGV4O1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFiaW5kZXg6IG51bWJlciA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSByaXBwbGUgZWZmZWN0IG9uIHRoZSByYWRpbyBidXR0b24uLlxuICAgICAqIElmIG5vdCBzZXQsIHRoZSBgZGlzYWJsZVJpcHBsZWAgd2lsbCBoYXZlIHZhbHVlIGBmYWxzZWAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gW2Rpc2FibGVSaXBwbGVdID0gXCJ0cnVlXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0Rpc2FibGVkUmlwcGxlID0gIHRoaXMucmFkaW8uZGlzYWJsZVJpcHBsZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVSaXBwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgcmVxdWlyZWQuXG4gICAgICogSWYgbm90IHNldCwgYHJlcXVpcmVkYCB3aWxsIGhhdmUgdmFsdWUgYGZhbHNlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyByZXF1aXJlZD48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUmVxdWlyZWQgPSAgdGhpcy5yYWRpby5yZXF1aXJlZDtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgICBASW5wdXQoKVxuICAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgICB9XG4gICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgIHRoaXMuX3JlcXVpcmVkID0gKHZhbHVlIGFzIGFueSA9PT0gJycpIHx8IHZhbHVlO1xuICAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSBvZiB0aGUgcmFkaW8gY29tcG9uZW50LlxuICAgICAqIElmIG5vdCBzZXQsIHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCB3aWxsIGJlIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiBgbGFiZWxJZGAgYXR0cmlidXRlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIGFyaWEtbGFiZWxsZWRieSA9IFwiUmFkaW8xXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBhcmlhTGFiZWxsZWRCeSA9IHRoaXMucmFkaW8uYXJpYUxhYmVsbGVkQnk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpXG4gICAgcHVibGljIGFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5sYWJlbElkO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIG9mIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gYXJpYS1sYWJlbCA9IFwiUmFkaW8xXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBhcmlhTGFiZWwgPSAgdGhpcy5yYWRpby5hcmlhTGFiZWw7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoJ2FyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQW4gZXZlbnQgdGhhdCBpcyBlbWl0dGVkIGFmdGVyIHRoZSByYWRpbyBgdmFsdWVgIGlzIGNoYW5nZWQuXG4gICAgICogUHJvdmlkZXMgcmVmZXJlbmNlcyB0byB0aGUgYElneFJhZGlvQ29tcG9uZW50YCBhbmQgdGhlIGB2YWx1ZWAgcHJvcGVydHkgYXMgZXZlbnQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQ2hhbmdlUmFkaW9FdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhbmdlUmFkaW9FdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBvZiB0aGUgcmFkaW8gY29tcG9uZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcmFkaW9DbGFzcyA9IHRoaXMucmFkaW8uY3NzQ2xhc3M7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpbycpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1yYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgIHRoZSBgY2hlY2tlZGAgYXR0cmlidXRlLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBbY2hlY2tlZF0gPSBcInRydWVcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ2hlY2tlZCA9ICB0aGlzLnJhZGlvLmNoZWNrZWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpby0tY2hlY2tlZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hlY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzICB0aGUgYGRpc2FibGVkYCBhdHRyaWJ1dGUuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIGRpc2FibGVkPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNEaXNhYmxlZCA9ICB0aGlzLnJhZGlvLmRpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcmFkaW8tLWRpc2FibGVkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9ICh2YWx1ZSBhcyBhbnkgPT09ICcnKSB8fCB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgcmFkaW8gY29tcG9uZW50IGlzIG9uIGZvY3VzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5yYWRpby5mb2N1cyA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0ZvY3VzZWQgPSAgdGhpcy5yYWRpby5mb2N1c2VkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtcmFkaW8tLWZvY3VzZWQnKVxuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGlucHV0SWQgPSBgJHt0aGlzLmlkfS1pbnB1dGA7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgICBwdWJsaWMgX2NoYW5nZWQoKXtcbiAgICAgICAgICBpZihldmVudCBpbnN0YW5jZW9mIEV2ZW50KXtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHB1YmxpYyBfY2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IHJhZGlvIGJ1dHRvbi5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5yYWRpby5zZWxlY3QoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKSB7XG4gICAgICAgIHRoaXMubmF0aXZlUmFkaW8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgIGlmKCF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHsgdmFsdWU6IHRoaXMudmFsdWUsIHJhZGlvOiB0aGlzIH0pO1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0cyB0aGUgY3VycmVudCByYWRpbyBidXR0b24uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucmFkaW8uZGVzZWxlY3QoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdCgpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvdmlkZWQgdmFsdWUgaXMgY29uc2lzdGVudCB0byB0aGUgY3VycmVudCByYWRpbyBidXR0b24uXG4gICAgICogSWYgaXQgaXMsIHRoZSBjaGVja2VkIGF0dHJpYnV0ZSB3aWxsIGhhdmUgdmFsdWUgYHRydWVgO1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnJhZGlvLndyaXRlVmFsdWUoJ3JhZGlvQnV0dG9uVmFsdWUnKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlIHx8IHZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldEVkaXRFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVSYWRpby5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmxhYmVsUG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgUmFkaW9MYWJlbFBvc2l0aW9uLkJFRk9SRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jc3NDbGFzc31fX2xhYmVsLS1iZWZvcmVgO1xuICAgICAgICAgICAgY2FzZSBSYWRpb0xhYmVsUG9zaXRpb24uQUZURVI6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNzc0NsYXNzfV9fbGFiZWxgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbn1cbiIsIjxpbnB1dCAjcmFkaW8gY2xhc3M9XCJpZ3gtcmFkaW9fX2lucHV0XCIgdHlwZT1cInJhZGlvXCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbCA/IG51bGwgOiBhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cblxuPHNwYW4gI25hdGl2ZUxhYmVsIGNsYXNzPVwiaWd4LXJhZGlvX19jb21wb3NpdGVcIiBpZ3hSaXBwbGVcbiAgICBpZ3hSaXBwbGVUYXJnZXQ9XCIuaWd4LXJhZGlvX19yaXBwbGVcIlxuICAgIFtpZ3hSaXBwbGVEaXNhYmxlZF09XCJkaXNhYmxlUmlwcGxlXCJcbiAgICBbaWd4UmlwcGxlQ2VudGVyZWRdPVwidHJ1ZVwiXG4gICAgW2lneFJpcHBsZUR1cmF0aW9uXT1cIjMwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtcmFkaW9fX3JpcHBsZVwiPjwvZGl2PlxuPC9zcGFuPlxuXG48c3BhbiAjcGxhY2Vob2xkZXJMYWJlbFxuICAgIFtpZF09XCJsYWJlbElkXCJcbiAgICBbY2xhc3NdPVwibGFiZWxDbGFzc1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9yYWRpby9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQ3RELFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUMsQ0FBQztBQUdILElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNmOzs7Ozs7Ozs7Ozs7R0FZRztBQVlILE1BQU0sT0FBTyxpQkFBaUI7SUFtUzFCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL1IxQzs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQW1DekM7Ozs7Ozs7Ozs7O1dBV0c7UUFHSSxPQUFFLEdBQUcsYUFBYSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRXBDOzs7Ozs7Ozs7OztXQVdHO1FBRUksWUFBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBNkNwQzs7Ozs7Ozs7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QURiLFdBQVc7dUJBQUMsMEJBQTBCO2dCQTJDOUIsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZN0IsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXMUIsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBub29wLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFZGl0b3JQcm92aWRlciB9IGZyb20gJy4uL2NvcmUvZWRpdC1wcm92aWRlcic7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncywgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5nZVJhZGlvRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgcmFkaW86IElneFJhZGlvQ29tcG9uZW50O1xufVxuXG5leHBvcnQgY29uc3QgUmFkaW9MYWJlbFBvc2l0aW9uID0gbWtlbnVtKHtcbiAgICBCRUZPUkU6ICdiZWZvcmUnLFxuICAgIEFGVEVSOiAnYWZ0ZXInXG59KTtcbmV4cG9ydCB0eXBlIFJhZGlvTGFiZWxQb3NpdGlvbiA9ICh0eXBlb2YgUmFkaW9MYWJlbFBvc2l0aW9uKVtrZXlvZiB0eXBlb2YgUmFkaW9MYWJlbFBvc2l0aW9uXTtcblxubGV0IG5leHRJZCA9IDA7XG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIFJhZGlvIEJ1dHRvbioqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9yYWRpb19idXR0b24uaHRtbClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIFJhZGlvIEJ1dHRvbiBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGEgc2luZ2xlIG9wdGlvbiBmcm9tIGFuIGF2YWlsYWJsZSBzZXQgb2Ygb3B0aW9ucyB0aGF0IGFyZSBsaXN0ZWQgc2lkZSBieSBzaWRlLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8aWd4LXJhZGlvPlxuICogICBTaW1wbGUgcmFkaW8gYnV0dG9uXG4gKiA8L2lneC1yYWRpbz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSWd4UmFkaW9Db21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAnaWd4LXJhZGlvJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3JhZGlvLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBFZGl0b3JQcm92aWRlciwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogYm9vbGVhbiB8ICcnO1xuICAgIHByaXZhdGUgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgJyc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgcmVmZXJlbmNlIHRvIG5hdGl2ZSByYWRpbyBlbGVtZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcmFkaW9FbGVtZW50ID0gIHRoaXMucmFkaW8ubmF0aXZlUmFkaW87XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4U3dpdGNoQ29tcG9uZW50XG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncmFkaW8nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBuYXRpdmVSYWRpbzogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgcmVmZXJlbmNlIHRvIG5hdGl2ZSBsYWJlbCBlbGVtZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGFiZWxFbGVtZW50ID0gIHRoaXMucmFkaW8ubmF0aXZlTGFiZWw7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4U3dpdGNoQ29tcG9uZW50XG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnbmF0aXZlTGFiZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBuYXRpdmVMYWJlbDogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgcmVmZXJlbmNlIHRvIHRoZSBsYWJlbCBwbGFjZWhvbGRlciBlbGVtZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGFiZWxQbGFjZWhvbGRlciA9ICB0aGlzLnJhZGlvLnBsYWNlaG9sZGVyTGFiZWw7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4U3dpdGNoQ29tcG9uZW50XG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXJMYWJlbCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHBsYWNlaG9sZGVyTGFiZWw6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBpZGAgb2YgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCB0aGUgYGlkYCBvZiB0aGUgZmlyc3QgcmFkaW8gY29tcG9uZW50IHdpbGwgYmUgYFwiaWd4LXJhZGlvLTBcImAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gaWQgPSBcIm15LWZpcnN0LXJhZGlvXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCByYWRpb0lkID0gIHRoaXMucmFkaW8uaWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1yYWRpby0ke25leHRJZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGlkIG9mIHRoZSBgbGFiZWxgIGVsZW1lbnQgaW4gdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCB0aGUgaWQgb2YgdGhlIGBsYWJlbGAgaW4gdGhlIGZpcnN0IHJhZGlvIGNvbXBvbmVudCB3aWxsIGJlIGBcImlneC1yYWRpby0wLWxhYmVsXCJgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIGxhYmVsSWQgPSBcIkxhYmVsMVwiPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGFiZWxJZCA9ICB0aGlzLnJhZGlvLmxhYmVsSWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbElkID0gYCR7dGhpcy5pZH0tbGFiZWxgO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgYGxhYmVsYCBpbiB0aGUgcmFkaW8gY29tcG9uZW50LlxuICAgICAqIElmIG5vdCBzZXQsIGBsYWJlbFBvc2l0aW9uYCB3aWxsIGhhdmUgdmFsdWUgYFwiYWZ0ZXJcImAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gbGFiZWxQb3NpdGlvbiA9IFwiYmVmb3JlXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsYWJlbFBvc2l0aW9uID0gIHRoaXMucmFkaW8ubGFiZWxQb3NpdGlvbjtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsUG9zaXRpb246IFJhZGlvTGFiZWxQb3NpdGlvbiB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYHZhbHVlYCBhdHRyaWJ1dGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gW3ZhbHVlXSA9IFwiJ3JhZGlvQnV0dG9uVmFsdWUnXCI+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB2YWx1ZSA9ICB0aGlzLnJhZGlvLnZhbHVlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYG5hbWVgIGF0dHJpYnV0ZSBvZiB0aGUgcmFkaW8gY29tcG9uZW50LlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIG5hbWUgPSBcIlJhZGlvMVwiPjwvaWd4LXJhZGlvPlxuICAgICAqICBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IG5hbWUgPSAgdGhpcy5yYWRpby5uYW1lO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGB0YWJpbmRleGAgYXR0cmlidXRlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIFt0YWJpbmRleF0gPSBcIjFcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHRhYkluZGV4ID0gIHRoaXMucmFkaW8udGFiaW5kZXg7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YWJpbmRleDogbnVtYmVyID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIHJpcHBsZSBlZmZlY3Qgb24gdGhlIHJhZGlvIGJ1dHRvbi4uXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBkaXNhYmxlUmlwcGxlYCB3aWxsIGhhdmUgdmFsdWUgYGZhbHNlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBbZGlzYWJsZVJpcHBsZV0gPSBcInRydWVcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzRGlzYWJsZWRSaXBwbGUgPSAgdGhpcy5yYWRpby5kaXNhYmxlUmlwcGxlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZC5cbiAgICAgKiBJZiBub3Qgc2V0LCBgcmVxdWlyZWRgIHdpbGwgaGF2ZSB2YWx1ZSBgZmFsc2VgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIHJlcXVpcmVkPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNSZXF1aXJlZCA9ICB0aGlzLnJhZGlvLnJlcXVpcmVkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJhZGlvQ29tcG9uZW50XG4gICAgICovXG4gICAgIEBJbnB1dCgpXG4gICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgIH1cbiAgICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSAodmFsdWUgYXMgYW55ID09PSAnJykgfHwgdmFsdWU7XG4gICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIG9mIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIHdpbGwgYmUgZXF1YWwgdG8gdGhlIHZhbHVlIG9mIGBsYWJlbElkYCBhdHRyaWJ1dGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gYXJpYS1sYWJlbGxlZGJ5ID0gXCJSYWRpbzFcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5yYWRpby5hcmlhTGFiZWxsZWRCeTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JylcbiAgICBwdWJsaWMgYXJpYUxhYmVsbGVkQnkgPSB0aGlzLmxhYmVsSWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgb2YgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpbyBhcmlhLWxhYmVsID0gXCJSYWRpbzFcIj48L2lneC1yYWRpbz5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGFyaWFMYWJlbCA9ICB0aGlzLnJhZGlvLmFyaWFMYWJlbDtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gICAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBbiBldmVudCB0aGF0IGlzIGVtaXR0ZWQgYWZ0ZXIgdGhlIHJhZGlvIGB2YWx1ZWAgaXMgY2hhbmdlZC5cbiAgICAgKiBQcm92aWRlcyByZWZlcmVuY2VzIHRvIHRoZSBgSWd4UmFkaW9Db21wb25lbnRgIGFuZCB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBhcyBldmVudCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPElDaGFuZ2VSYWRpb0V2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyPElDaGFuZ2VSYWRpb0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNsYXNzIG9mIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCByYWRpb0NsYXNzID0gdGhpcy5yYWRpby5jc3NDbGFzcztcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXJhZGlvJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXJhZGlvJztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyAgdGhlIGBjaGVja2VkYCBhdHRyaWJ1dGUuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvIFtjaGVja2VkXSA9IFwidHJ1ZVwiPjwvaWd4LXJhZGlvPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNDaGVja2VkID0gIHRoaXMucmFkaW8uY2hlY2tlZDtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXJhZGlvLS1jaGVja2VkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjaGVja2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgIHRoZSBgZGlzYWJsZWRgIGF0dHJpYnV0ZS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8gZGlzYWJsZWQ+PC9pZ3gtcmFkaW8+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0Rpc2FibGVkID0gIHRoaXMucmFkaW8uZGlzYWJsZWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpby0tZGlzYWJsZWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IGZhbHNlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gKHZhbHVlIGFzIGFueSA9PT0gJycpIHx8IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSByYWRpbyBjb21wb25lbnQgaXMgb24gZm9jdXMuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnJhZGlvLmZvY3VzID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzRm9jdXNlZCA9ICB0aGlzLnJhZGlvLmZvY3VzZWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmFkaW9Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpby0tZm9jdXNlZCcpXG4gICAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5wdXRJZCA9IGAke3RoaXMuaWR9LWlucHV0YDtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX29uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgICBwdWJsaWMgX2NoYW5nZWQoKXtcbiAgICAgICAgICBpZihldmVudCBpbnN0YW5jZW9mIEV2ZW50KXtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHB1YmxpYyBfY2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IHJhZGlvIGJ1dHRvbi5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5yYWRpby5zZWxlY3QoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKSB7XG4gICAgICAgIHRoaXMubmF0aXZlUmFkaW8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgIGlmKCF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHsgdmFsdWU6IHRoaXMudmFsdWUsIHJhZGlvOiB0aGlzIH0pO1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0cyB0aGUgY3VycmVudCByYWRpbyBidXR0b24uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucmFkaW8uZGVzZWxlY3QoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSYWRpb0NvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdCgpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvdmlkZWQgdmFsdWUgaXMgY29uc2lzdGVudCB0byB0aGUgY3VycmVudCByYWRpbyBidXR0b24uXG4gICAgICogSWYgaXQgaXMsIHRoZSBjaGVja2VkIGF0dHJpYnV0ZSB3aWxsIGhhdmUgdmFsdWUgYHRydWVgO1xuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnJhZGlvLndyaXRlVmFsdWUoJ3JhZGlvQnV0dG9uVmFsdWUnKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlIHx8IHZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldEVkaXRFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVSYWRpby5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmxhYmVsUG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgUmFkaW9MYWJlbFBvc2l0aW9uLkJFRk9SRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jc3NDbGFzc31fX2xhYmVsLS1iZWZvcmVgO1xuICAgICAgICAgICAgY2FzZSBSYWRpb0xhYmVsUG9zaXRpb24uQUZURVI6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNzc0NsYXNzfV9fbGFiZWxgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbn1cbiIsIjxpbnB1dCAjcmFkaW8gY2xhc3M9XCJpZ3gtcmFkaW9fX2lucHV0XCIgdHlwZT1cInJhZGlvXCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbCA/IG51bGwgOiBhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cblxuPHNwYW4gI25hdGl2ZUxhYmVsIGNsYXNzPVwiaWd4LXJhZGlvX19jb21wb3NpdGVcIiBpZ3hSaXBwbGVcbiAgICBpZ3hSaXBwbGVUYXJnZXQ9XCIuaWd4LXJhZGlvX19yaXBwbGVcIlxuICAgIFtpZ3hSaXBwbGVEaXNhYmxlZF09XCJkaXNhYmxlUmlwcGxlXCJcbiAgICBbaWd4UmlwcGxlQ2VudGVyZWRdPVwidHJ1ZVwiXG4gICAgW2lneFJpcHBsZUR1cmF0aW9uXT1cIjMwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtcmFkaW9fX3JpcHBsZVwiPjwvZGl2PlxuPC9zcGFuPlxuXG48c3BhbiAjcGxhY2Vob2xkZXJMYWJlbFxuICAgIFtpZF09XCJsYWJlbElkXCJcbiAgICBbY2xhc3NdPVwibGFiZWxDbGFzc1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
|