aril 0.1.83 → 0.1.85

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.
@@ -175,10 +175,10 @@ export class CalendarComponent extends BaseInputComponent {
175
175
  });
176
176
  }
177
177
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component }); }
178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: CalendarComponent, isStandalone: true, selector: "aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]", inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, inputStyle: { classPropertyName: "inputStyle", publicName: "inputStyle", isSignal: true, isRequired: false, transformFunction: null }, inputStyleClass: { classPropertyName: "inputStyleClass", publicName: "inputStyleClass", isSignal: true, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, showWeek: { classPropertyName: "showWeek", publicName: "showWeek", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "showSeconds", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonthToShow: { classPropertyName: "numberOfMonthToShow", publicName: "numberOfMonthToShow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, showOnFocus: { classPropertyName: "showOnFocus", publicName: "showOnFocus", isSignal: true, isRequired: false, transformFunction: null }, timeOnly: { classPropertyName: "timeOnly", publicName: "timeOnly", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<div [ngClass]=\"{ invalidCalendar: ngControl.dirty && ngControl.invalid }\">\r\n\t<p-calendar\r\n\t\t[showIcon]=\"true\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[dateFormat]=\"_dateFormat()\"\r\n\t\t[showButtonBar]=\"true\"\r\n\t\t[minDate]=\"_minJSDate()\"\r\n\t\t[maxDate]=\"_maxJSDate()\"\r\n\t\t[tabindex]=\"tabindex()\"\r\n\t\t[disabledDates]=\"_selectedDisabledDates()\"\r\n\t\t[selectionMode]=\"selectionMode()\"\r\n\t\t[disabled]=\"ngControl.control.disabled\"\r\n\t\t[readonlyInput]=\"false\"\r\n\t\t[showTime]=\"showTime()\"\r\n\t\t[showSeconds]=\"showSeconds()\"\r\n\t\t[inline]=\"inline()\"\r\n\t\t[showWeek]=\"showWeek()\"\r\n\t\t[showOnFocus]=\"showOnFocus()\"\r\n\t\t[timeOnly]=\"timeOnly()\"\r\n\t\t[view]=\"_view()\"\r\n\t\t[inputStyle]=\"inputStyle()\"\r\n\t\t[inputStyleClass]=\"inputStyleClass()\"\r\n\t\t[firstDayOfWeek]=\"1\"\r\n\t\t[autoZIndex]=\"autoZIndex()\"\r\n\t\t[pTooltip]=\"ngControl.invalid ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t[tooltipOptions]=\"tooltipOptions\"\r\n\t\t[numberOfMonths]=\"numberOfMonthToShow()\"\r\n\t\t[(ngModel)]=\"model\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event); setFormCtrl($event)\"\r\n\t\t[dataType]=\"dataType()\"\r\n\t\t[appendTo]=\"appendTo()\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t</p-calendar>\r\n</div>\r\n", styles: [".invalidCalendar{border:1px solid #e24c4c;border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i4.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: InputErrorMessagePipe, name: "inputErrorMessage" }] }); }
178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: CalendarComponent, isStandalone: true, selector: "aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]", inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, inputStyle: { classPropertyName: "inputStyle", publicName: "inputStyle", isSignal: true, isRequired: false, transformFunction: null }, inputStyleClass: { classPropertyName: "inputStyleClass", publicName: "inputStyleClass", isSignal: true, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, showWeek: { classPropertyName: "showWeek", publicName: "showWeek", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "showSeconds", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonthToShow: { classPropertyName: "numberOfMonthToShow", publicName: "numberOfMonthToShow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, showOnFocus: { classPropertyName: "showOnFocus", publicName: "showOnFocus", isSignal: true, isRequired: false, transformFunction: null }, timeOnly: { classPropertyName: "timeOnly", publicName: "timeOnly", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<div [ngClass]=\"{ invalidCalendar: ngControl.dirty && ngControl.invalid }\">\r\n\t<p-calendar\r\n\t\t[showIcon]=\"true\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[dateFormat]=\"_dateFormat()\"\r\n\t\t[showButtonBar]=\"true\"\r\n\t\t[minDate]=\"_minJSDate()\"\r\n\t\t[maxDate]=\"_maxJSDate()\"\r\n\t\t[tabindex]=\"tabindex()\"\r\n\t\t[disabledDates]=\"_selectedDisabledDates()\"\r\n\t\t[selectionMode]=\"selectionMode()\"\r\n\t\t[disabled]=\"ngControl.control.disabled\"\r\n\t\t[readonlyInput]=\"false\"\r\n\t\t[showTime]=\"showTime()\"\r\n\t\t[showSeconds]=\"showSeconds()\"\r\n\t\t[inline]=\"inline()\"\r\n\t\t[showWeek]=\"showWeek()\"\r\n\t\t[showOnFocus]=\"showOnFocus()\"\r\n\t\t[timeOnly]=\"timeOnly()\"\r\n\t\t[view]=\"_view()\"\r\n\t\t[inputStyle]=\"inputStyle()\"\r\n\t\t[inputStyleClass]=\"inputStyleClass()\"\r\n\t\t[firstDayOfWeek]=\"1\"\r\n\t\t[autoZIndex]=\"autoZIndex()\"\r\n\t\t[pTooltip]=\"ngControl.invalid ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t[tooltipOptions]=\"tooltipOptions\"\r\n\t\t[numberOfMonths]=\"numberOfMonthToShow()\"\r\n\t\t[(ngModel)]=\"model\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event); setFormCtrl($event)\"\r\n\t\t[dataType]=\"dataType()\"\r\n\t\t[panelStyleClass]=\"ngControl.control.disabled ? 'hidden' : ''\"\r\n\t\t[appendTo]=\"appendTo()\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t</p-calendar>\r\n</div>\r\n", styles: [".invalidCalendar{border:1px solid #e24c4c;border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i4.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: InputErrorMessagePipe, name: "inputErrorMessage" }] }); }
179
179
  }
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CalendarComponent, decorators: [{
181
181
  type: Component,
182
- args: [{ standalone: true, selector: 'aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]', imports: [ReactiveFormsModule, FormsModule, NgClass, CalendarModule, TooltipModule, InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<div [ngClass]=\"{ invalidCalendar: ngControl.dirty && ngControl.invalid }\">\r\n\t<p-calendar\r\n\t\t[showIcon]=\"true\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[dateFormat]=\"_dateFormat()\"\r\n\t\t[showButtonBar]=\"true\"\r\n\t\t[minDate]=\"_minJSDate()\"\r\n\t\t[maxDate]=\"_maxJSDate()\"\r\n\t\t[tabindex]=\"tabindex()\"\r\n\t\t[disabledDates]=\"_selectedDisabledDates()\"\r\n\t\t[selectionMode]=\"selectionMode()\"\r\n\t\t[disabled]=\"ngControl.control.disabled\"\r\n\t\t[readonlyInput]=\"false\"\r\n\t\t[showTime]=\"showTime()\"\r\n\t\t[showSeconds]=\"showSeconds()\"\r\n\t\t[inline]=\"inline()\"\r\n\t\t[showWeek]=\"showWeek()\"\r\n\t\t[showOnFocus]=\"showOnFocus()\"\r\n\t\t[timeOnly]=\"timeOnly()\"\r\n\t\t[view]=\"_view()\"\r\n\t\t[inputStyle]=\"inputStyle()\"\r\n\t\t[inputStyleClass]=\"inputStyleClass()\"\r\n\t\t[firstDayOfWeek]=\"1\"\r\n\t\t[autoZIndex]=\"autoZIndex()\"\r\n\t\t[pTooltip]=\"ngControl.invalid ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t[tooltipOptions]=\"tooltipOptions\"\r\n\t\t[numberOfMonths]=\"numberOfMonthToShow()\"\r\n\t\t[(ngModel)]=\"model\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event); setFormCtrl($event)\"\r\n\t\t[dataType]=\"dataType()\"\r\n\t\t[appendTo]=\"appendTo()\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t</p-calendar>\r\n</div>\r\n", styles: [".invalidCalendar{border:1px solid #e24c4c;border-radius:6px}\n"] }]
182
+ args: [{ standalone: true, selector: 'aril-calendar[ngModel], aril-calendar[formControl], aril-calendar[formControlName]', imports: [ReactiveFormsModule, FormsModule, NgClass, CalendarModule, TooltipModule, InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<div [ngClass]=\"{ invalidCalendar: ngControl.dirty && ngControl.invalid }\">\r\n\t<p-calendar\r\n\t\t[showIcon]=\"true\"\r\n\t\t[iconDisplay]=\"'input'\"\r\n\t\t[dateFormat]=\"_dateFormat()\"\r\n\t\t[showButtonBar]=\"true\"\r\n\t\t[minDate]=\"_minJSDate()\"\r\n\t\t[maxDate]=\"_maxJSDate()\"\r\n\t\t[tabindex]=\"tabindex()\"\r\n\t\t[disabledDates]=\"_selectedDisabledDates()\"\r\n\t\t[selectionMode]=\"selectionMode()\"\r\n\t\t[disabled]=\"ngControl.control.disabled\"\r\n\t\t[readonlyInput]=\"false\"\r\n\t\t[showTime]=\"showTime()\"\r\n\t\t[showSeconds]=\"showSeconds()\"\r\n\t\t[inline]=\"inline()\"\r\n\t\t[showWeek]=\"showWeek()\"\r\n\t\t[showOnFocus]=\"showOnFocus()\"\r\n\t\t[timeOnly]=\"timeOnly()\"\r\n\t\t[view]=\"_view()\"\r\n\t\t[inputStyle]=\"inputStyle()\"\r\n\t\t[inputStyleClass]=\"inputStyleClass()\"\r\n\t\t[firstDayOfWeek]=\"1\"\r\n\t\t[autoZIndex]=\"autoZIndex()\"\r\n\t\t[pTooltip]=\"ngControl.invalid ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t[tooltipOptions]=\"tooltipOptions\"\r\n\t\t[numberOfMonths]=\"numberOfMonthToShow()\"\r\n\t\t[(ngModel)]=\"model\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event); setFormCtrl($event)\"\r\n\t\t[dataType]=\"dataType()\"\r\n\t\t[panelStyleClass]=\"ngControl.control.disabled ? 'hidden' : ''\"\r\n\t\t[appendTo]=\"appendTo()\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t</p-calendar>\r\n</div>\r\n", styles: [".invalidCalendar{border:1px solid #e24c4c;border-radius:6px}\n"] }]
183
183
  }], ctorParameters: () => [{ type: i1.PrimeNGConfig }] });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZEOztFQUVFO0FBQ0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBVSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xFLE9BQU8sRUFBRSxjQUFjLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLGdDQUFnQyxDQUFDOzs7Ozs7O0FBYXhDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDeEQsWUFBb0IsYUFBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEVyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUsvQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBNkQ3QyxZQUFPLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDMUIsWUFBTyxHQUFHLEtB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Y0FBYyxpNkNBQUUsYUFBYSxpWEFBRSxxQkFBcUI7OzJGQUk3RixpQkFBaUI7a0JBUjdCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLG9GQUFvRixXQUVyRixDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxrQkFDMUYsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbi8qIFRPRE9cclxuXHRcdDEuIEFkanVzdCBkaWZmZXJlbnQgY29sb3Igb3IgYmFja2dyb3VuZCBmb3Igd2Vla2VuZHNcclxuKi9cclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBQcmltZU5HQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSwgQ2FsZW5kYXJUeXBlVmlldyB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5pbXBvcnQgJ2FyaWwvdXRpbC9wcmltaXRpdmUtZXh0ZW5zaW9ucyc7XHJcblxyXG50eXBlIFZpZXcgPSBDYWxlbmRhclR5cGVWaWV3IHwgJ29ubHlNb250aCc7XHJcbnR5cGUgU2VsZWN0aW9uTW9kZSA9ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1jYWxlbmRhcltuZ01vZGVsXSwgYXJpbC1jYWxlbmRhcltmb3JtQ29udHJvbF0sIGFyaWwtY2FsZW5kYXJbZm9ybUNvbnRyb2xOYW1lXScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIENhbGVuZGFyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBJbnB1dEVycm9yTWVzc2FnZVBpcGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXHJcblx0c3R5bGVzOiAnLmludmFsaWRDYWxlbmRhciB7IGJvcmRlcjoxcHggc29saWQgI2UyNGM0Yztib3JkZXItcmFkaXVzOiA2cHg7IH0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBwcmltZU5nQ29uZmlnOiBQcmltZU5HQ29uZmlnKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5zZXRMb2NhbGUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0eXBlb2YgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlID09PSAnbnVtYmVyJykgdGhpcy5tb2RlbCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZT8ubG9uZ1RvRGF0ZSgpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0cnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcclxuXHRcdFx0dGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlQ2hhbmdlcz8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcblx0XHRcdFx0aWYgKE51bWJlcih2YWx1ZSkpIHRoaXMubW9kZWwgPSB2YWx1ZT8ubG9uZ1RvRGF0ZSgpO1xyXG5cdFx0XHRcdGVsc2UgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHQvKmlmIChOdW1iZXIodmFsdWUpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50RGF0ZSA9IHRoaXMubW9kZWwgfHwgbmV3IERhdGUoKTtcclxuXHRcdFx0XHRcdGN1cnJlbnREYXRlLnNldFRpbWUodmFsdWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5tb2RlbCA9IGN1cnJlbnREYXRlO1xyXG5cdFx0XHRcdH0qL1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c2V0Rm9ybUN0cmwodmFsdWU6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAncmFuZ2UnKSB7XHJcblx0XHRcdGlmICh0aGlzLnNob3dTZWNvbmRzKCkpIHtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUoW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd0aW1lJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd0aW1lJyldKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnNob3dUaW1lKCkpIHtcclxuXHRcdFx0XHR2YWx1ZVswXT8uc2V0U2Vjb25kcygwKTtcclxuXHRcdFx0XHR2YWx1ZVsxXT8uc2V0U2Vjb25kcygwKTtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUoW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd0aW1lJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd0aW1lJyldKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnZpZXcoKSA9PT0gJ21vbnRoJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVR5cGUoKSA9PT0gJ2RhdGUnXHJcblx0XHRcdFx0XHRcdD8gW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCdtb250aCcpLCB2YWx1ZVsxXT8uZGF0ZVRvTG9uZygnbW9udGgnKV1cclxuXHRcdFx0XHRcdFx0OiBbdmFsdWVbMF0sIHZhbHVlWzFdXVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy52aWV3KCkgPT09ICd5ZWFyJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVR5cGUoKSA9PT0gJ2RhdGUnXHJcblx0XHRcdFx0XHRcdD8gW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd5ZWFyJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd5ZWFyJyldXHJcblx0XHRcdFx0XHRcdDogW3ZhbHVlWzBdLCB2YWx1ZVsxXV1cclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShbdmFsdWVbMF0/LmRhdGVUb0xvbmcoKSwgdmFsdWVbMV0/LmRhdGVUb0xvbmcoKV0pO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5zaG93U2Vjb25kcygpKSB7XHJcblx0XHRcdFx0dGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKHZhbHVlPy5kYXRlVG9Mb25nKCd0aW1lJykpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2hvd1RpbWUoKSkge1xyXG5cdFx0XHRcdHZhbHVlPy5zZXRTZWNvbmRzKDApO1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZT8uZGF0ZVRvTG9uZygndGltZScpKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnZpZXcoKSA9PT0gJ21vbnRoJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmRhdGFUeXBlKCkgPT09ICdkYXRlJyA/IHZhbHVlPy5kYXRlVG9Mb25nKCdtb250aCcpIDogdmFsdWUpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMudmlldygpID09PSAneWVhcicpIHtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUodGhpcy5kYXRhVHlwZSgpID09PSAnZGF0ZScgPyB2YWx1ZT8uZGF0ZVRvTG9uZygneWVhcicpIDogdmFsdWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZT8uZGF0ZVRvTG9uZygpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bW9kZWwhOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRtaW5EYXRlID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cdG1heERhdGUgPSBpbnB1dDxudW1iZXI+KCk7XHJcblx0aW5wdXRTdHlsZSA9IGlucHV0PG9iamVjdD4oKTtcclxuXHRpbnB1dFN0eWxlQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0YXV0b1pJbmRleCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdGlubGluZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93SWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93VGltZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93V2VlayA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93U2Vjb25kcyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkaXNhYmxlZERhdGVzID0gaW5wdXQ8bnVtYmVyW10+KFtdKTtcclxuXHRudW1iZXJPZk1vbnRoVG9TaG93ID0gaW5wdXQ8bnVtYmVyPigxKTtcclxuXHRhcHBlbmRUbyA9IGlucHV0PHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbD4oJ2JvZHknKTtcclxuXHRkYXRhVHlwZSA9IGlucHV0PCdkYXRlJyB8ICdzdHJpbmcnPignZGF0ZScpO1xyXG5cclxuXHR2aWV3ID0gaW5wdXQ8Vmlldz4oJ2RhdGUnKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uTW9kZT4oJ3NpbmdsZScpO1xyXG5cdHRhYmluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuXHRzaG93T25Gb2N1cyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0dGltZU9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdF9taW5KU0RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5taW5EYXRlKCk/LmxvbmdUb0RhdGUoKSBhcyBEYXRlO1xyXG5cdH0pO1xyXG5cclxuXHRfbWF4SlNEYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubWF4RGF0ZSgpPy5sb25nVG9EYXRlKCkgYXMgRGF0ZTtcclxuXHR9KTtcclxuXHJcblx0X3NlbGVjdGVkRGlzYWJsZWREYXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMoKT8ubWFwKCh2YWx1ZTogbnVtYmVyKSA9PiB2YWx1ZS5sb25nVG9EYXRlKCkgYXMgRGF0ZSk7XHJcblx0fSk7XHJcblxyXG5cdF9kYXRlRm9ybWF0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0c3dpdGNoICh0aGlzLnZpZXcoKSkge1xyXG5cdFx0XHRjYXNlICdtb250aCc6XHJcblx0XHRcdFx0cmV0dXJuICdNTS95eSc7XHJcblx0XHRcdGNhc2UgJ29ubHlNb250aCc6XHJcblx0XHRcdFx0cmV0dXJuICdNTSc7XHJcblx0XHRcdGNhc2UgJ3llYXInOlxyXG5cdFx0XHRcdHJldHVybiAneXknO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnZGQvTU0veXknO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRfdmlldyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3KCkpIHtcclxuXHRcdFx0Y2FzZSAnbW9udGgnOlxyXG5cdFx0XHRcdHJldHVybiAnbW9udGgnO1xyXG5cdFx0XHRjYXNlICdvbmx5TW9udGgnOlxyXG5cdFx0XHRcdHJldHVybiAnbW9udGgnO1xyXG5cdFx0XHRjYXNlICd5ZWFyJzpcclxuXHRcdFx0XHRyZXR1cm4gJ3llYXInO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnZGF0ZSc7XHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdC8vIGlzV2Vla2VuZChkYXRlOiBhbnkpOiBib29sZWFuIHtcclxuXHQvLyAgIGlmICghZGF0ZSkge1xyXG5cdC8vICAgICByZXR1cm4gZmFsc2U7XHJcblx0Ly8gICB9XHJcblxyXG5cdC8vICAgaWYgKHRoaXMudmlldyA9PSAnZGF0ZScpIHtcclxuXHQvLyAgICAgY29uc3QgZGF5T2ZXZWVrID0gZGF0ZS5nZXREYXkoKTtcclxuXHQvLyAgICAgcmV0dXJuIGRheU9mV2VlayA9PT0gNSB8fCBkYXlPZldlZWsgPT09IDY7XHJcblx0Ly8gICB9XHJcblx0Ly8gfVxyXG5cclxuXHRzZXRMb2NhbGUoKSB7XHJcblx0XHR0aGlzLnByaW1lTmdDb25maWcuc2V0VHJhbnNsYXRpb24oe1xyXG5cdFx0XHRmaXJzdERheU9mV2VlazogMCxcclxuXHRcdFx0ZGF5TmFtZXM6IFsnUGF6YXInLCAnUGF6YXJ0ZXNpJywgJ1NhbMSxJywgJ8OHYXLFn2FtYmEnLCAnUGVyxZ9lbWJlJywgJ0N1bWEnLCAnQ3VtYXJ0ZXNpJ10sXHJcblx0XHRcdGRheU5hbWVzTWluOiBbJ1B6cicsICdQenQnLCAnU2FsJywgJ8OHYXInLCAnUGVyJywgJ0N1bScsICdDbXQnXSxcclxuXHRcdFx0ZGF5TmFtZXNTaG9ydDogWydQenInLCAnUHp0JywgJ1NhbCcsICfDh2FyJywgJ1BlcicsICdDdW0nLCAnQ210J10sXHJcblx0XHRcdG1vbnRoTmFtZXM6IFtcclxuXHRcdFx0XHQnT2NhaycsXHJcblx0XHRcdFx0J8WedWJhdCcsXHJcblx0XHRcdFx0J01hcnQnLFxyXG5cdFx0XHRcdCdOaXNhbicsXHJcblx0XHRcdFx0J01hecSxcycsXHJcblx0XHRcdFx0J0hhemlyYW4nLFxyXG5cdFx0XHRcdCdUZW1tdXonLFxyXG5cdFx0XHRcdCdBxJ91c3RvcycsXHJcblx0XHRcdFx0J0V5bMO8bCcsXHJcblx0XHRcdFx0J0VraW0nLFxyXG5cdFx0XHRcdCdLYXPEsW0nLFxyXG5cdFx0XHRcdCdBcmFsxLFrJ1xyXG5cdFx0XHRdLFxyXG5cdFx0XHRtb250aE5hbWVzU2hvcnQ6IFsnT2NhJywgJ8WedWInLCAnTWFyJywgJ05pcycsICdNYXknLCAnSGF6JywgJ1RlbScsICdBxJ91JywgJ0V5bCcsICdFa2knLCAnS2FzJywgJ0FyYSddLFxyXG5cdFx0XHR0b2RheTogJ0J1Z8O8bicsXHJcblx0XHRcdGNsZWFyOiAnVGVtaXpsZScsXHJcblx0XHRcdGRhdGVGb3JtYXQ6ICdkZC9tbS95eScsXHJcblx0XHRcdHdlZWtIZWFkZXI6ICdIYWZ0YSdcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZENhbGVuZGFyOiBuZ0NvbnRyb2wuZGlydHkgJiYgbmdDb250cm9sLmludmFsaWQgfVwiPlxyXG5cdDxwLWNhbGVuZGFyXHJcblx0XHRbc2hvd0ljb25dPVwidHJ1ZVwiXHJcblx0XHRbaWNvbkRpc3BsYXldPVwiJ2lucHV0J1wiXHJcblx0XHRbZGF0ZUZvcm1hdF09XCJfZGF0ZUZvcm1hdCgpXCJcclxuXHRcdFtzaG93QnV0dG9uQmFyXT1cInRydWVcIlxyXG5cdFx0W21pbkRhdGVdPVwiX21pbkpTRGF0ZSgpXCJcclxuXHRcdFttYXhEYXRlXT1cIl9tYXhKU0RhdGUoKVwiXHJcblx0XHRbdGFiaW5kZXhdPVwidGFiaW5kZXgoKVwiXHJcblx0XHRbZGlzYWJsZWREYXRlc109XCJfc2VsZWN0ZWREaXNhYmxlZERhdGVzKClcIlxyXG5cdFx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRcdFtkaXNhYmxlZF09XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZFwiXHJcblx0XHRbcmVhZG9ubHlJbnB1dF09XCJmYWxzZVwiXHJcblx0XHRbc2hvd1RpbWVdPVwic2hvd1RpbWUoKVwiXHJcblx0XHRbc2hvd1NlY29uZHNdPVwic2hvd1NlY29uZHMoKVwiXHJcblx0XHRbaW5saW5lXT1cImlubGluZSgpXCJcclxuXHRcdFtzaG93V2Vla109XCJzaG93V2VlaygpXCJcclxuXHRcdFtzaG93T25Gb2N1c109XCJzaG93T25Gb2N1cygpXCJcclxuXHRcdFt0aW1lT25seV09XCJ0aW1lT25seSgpXCJcclxuXHRcdFt2aWV3XT1cIl92aWV3KClcIlxyXG5cdFx0W2lucHV0U3R5bGVdPVwiaW5wdXRTdHlsZSgpXCJcclxuXHRcdFtpbnB1dFN0eWxlQ2xhc3NdPVwiaW5wdXRTdHlsZUNsYXNzKClcIlxyXG5cdFx0W2ZpcnN0RGF5T2ZXZWVrXT1cIjFcIlxyXG5cdFx0W2F1dG9aSW5kZXhdPVwiYXV0b1pJbmRleCgpXCJcclxuXHRcdFtwVG9vbHRpcF09XCJuZ0NvbnRyb2wuaW52YWxpZCA/IChuZ0NvbnRyb2wuY29udHJvbC52YWx1ZSB8IGlucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2wpIDogJydcIlxyXG5cdFx0W3Rvb2x0aXBPcHRpb25zXT1cInRvb2x0aXBPcHRpb25zXCJcclxuXHRcdFtudW1iZXJPZk1vbnRoc109XCJudW1iZXJPZk1vbnRoVG9TaG93KClcIlxyXG5cdFx0WyhuZ01vZGVsKV09XCJtb2RlbFwiXHJcblx0XHQobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KTsgc2V0Rm9ybUN0cmwoJGV2ZW50KVwiXHJcblx0XHRbZGF0YVR5cGVdPVwiZGF0YVR5cGUoKVwiXHJcblx0XHRbYXBwZW5kVG9dPVwiYXBwZW5kVG8oKVwiPlxyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtY2FsZW5kYXI+XHJcbjwvZGl2PlxyXG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jYWxlbmRhci9zcmMvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZEOztFQUVFO0FBQ0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBVSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xFLE9BQU8sRUFBRSxjQUFjLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLGdDQUFnQyxDQUFDOzs7Ozs7O0FBYXhDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDeEQsWUFBb0IsYUFBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEVyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUsvQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBNkQ3QyxZQUFPLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDMUIsWUFBTyxHQUFHLEtB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Y0FBYyxpNkNBQUUsYUFBYSxpWEFBRSxxQkFBcUI7OzJGQUk3RixpQkFBaUI7a0JBUjdCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLG9GQUFvRixXQUVyRixDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxrQkFDMUYsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbi8qIFRPRE9cclxuXHRcdDEuIEFkanVzdCBkaWZmZXJlbnQgY29sb3Igb3IgYmFja2dyb3VuZCBmb3Igd2Vla2VuZHNcclxuKi9cclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBQcmltZU5HQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSwgQ2FsZW5kYXJUeXBlVmlldyB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5pbXBvcnQgJ2FyaWwvdXRpbC9wcmltaXRpdmUtZXh0ZW5zaW9ucyc7XHJcblxyXG50eXBlIFZpZXcgPSBDYWxlbmRhclR5cGVWaWV3IHwgJ29ubHlNb250aCc7XHJcbnR5cGUgU2VsZWN0aW9uTW9kZSA9ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8ICdyYW5nZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1jYWxlbmRhcltuZ01vZGVsXSwgYXJpbC1jYWxlbmRhcltmb3JtQ29udHJvbF0sIGFyaWwtY2FsZW5kYXJbZm9ybUNvbnRyb2xOYW1lXScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIENhbGVuZGFyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBJbnB1dEVycm9yTWVzc2FnZVBpcGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXHJcblx0c3R5bGVzOiAnLmludmFsaWRDYWxlbmRhciB7IGJvcmRlcjoxcHggc29saWQgI2UyNGM0Yztib3JkZXItcmFkaXVzOiA2cHg7IH0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBwcmltZU5nQ29uZmlnOiBQcmltZU5HQ29uZmlnKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5zZXRMb2NhbGUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0eXBlb2YgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlID09PSAnbnVtYmVyJykgdGhpcy5tb2RlbCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZT8ubG9uZ1RvRGF0ZSgpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0cnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcclxuXHRcdFx0dGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlQ2hhbmdlcz8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcblx0XHRcdFx0aWYgKE51bWJlcih2YWx1ZSkpIHRoaXMubW9kZWwgPSB2YWx1ZT8ubG9uZ1RvRGF0ZSgpO1xyXG5cdFx0XHRcdGVsc2UgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHQvKmlmIChOdW1iZXIodmFsdWUpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50RGF0ZSA9IHRoaXMubW9kZWwgfHwgbmV3IERhdGUoKTtcclxuXHRcdFx0XHRcdGN1cnJlbnREYXRlLnNldFRpbWUodmFsdWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5tb2RlbCA9IGN1cnJlbnREYXRlO1xyXG5cdFx0XHRcdH0qL1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c2V0Rm9ybUN0cmwodmFsdWU6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAncmFuZ2UnKSB7XHJcblx0XHRcdGlmICh0aGlzLnNob3dTZWNvbmRzKCkpIHtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUoW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd0aW1lJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd0aW1lJyldKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnNob3dUaW1lKCkpIHtcclxuXHRcdFx0XHR2YWx1ZVswXT8uc2V0U2Vjb25kcygwKTtcclxuXHRcdFx0XHR2YWx1ZVsxXT8uc2V0U2Vjb25kcygwKTtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUoW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd0aW1lJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd0aW1lJyldKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnZpZXcoKSA9PT0gJ21vbnRoJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVR5cGUoKSA9PT0gJ2RhdGUnXHJcblx0XHRcdFx0XHRcdD8gW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCdtb250aCcpLCB2YWx1ZVsxXT8uZGF0ZVRvTG9uZygnbW9udGgnKV1cclxuXHRcdFx0XHRcdFx0OiBbdmFsdWVbMF0sIHZhbHVlWzFdXVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy52aWV3KCkgPT09ICd5ZWFyJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVR5cGUoKSA9PT0gJ2RhdGUnXHJcblx0XHRcdFx0XHRcdD8gW3ZhbHVlWzBdPy5kYXRlVG9Mb25nKCd5ZWFyJyksIHZhbHVlWzFdPy5kYXRlVG9Mb25nKCd5ZWFyJyldXHJcblx0XHRcdFx0XHRcdDogW3ZhbHVlWzBdLCB2YWx1ZVsxXV1cclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShbdmFsdWVbMF0/LmRhdGVUb0xvbmcoKSwgdmFsdWVbMV0/LmRhdGVUb0xvbmcoKV0pO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5zaG93U2Vjb25kcygpKSB7XHJcblx0XHRcdFx0dGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKHZhbHVlPy5kYXRlVG9Mb25nKCd0aW1lJykpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2hvd1RpbWUoKSkge1xyXG5cdFx0XHRcdHZhbHVlPy5zZXRTZWNvbmRzKDApO1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZT8uZGF0ZVRvTG9uZygndGltZScpKTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnZpZXcoKSA9PT0gJ21vbnRoJykge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmRhdGFUeXBlKCkgPT09ICdkYXRlJyA/IHZhbHVlPy5kYXRlVG9Mb25nKCdtb250aCcpIDogdmFsdWUpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMudmlldygpID09PSAneWVhcicpIHtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUodGhpcy5kYXRhVHlwZSgpID09PSAnZGF0ZScgPyB2YWx1ZT8uZGF0ZVRvTG9uZygneWVhcicpIDogdmFsdWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZT8uZGF0ZVRvTG9uZygpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bW9kZWwhOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRtaW5EYXRlID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cdG1heERhdGUgPSBpbnB1dDxudW1iZXI+KCk7XHJcblx0aW5wdXRTdHlsZSA9IGlucHV0PG9iamVjdD4oKTtcclxuXHRpbnB1dFN0eWxlQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0YXV0b1pJbmRleCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdGlubGluZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93SWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93VGltZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93V2VlayA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93U2Vjb25kcyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkaXNhYmxlZERhdGVzID0gaW5wdXQ8bnVtYmVyW10+KFtdKTtcclxuXHRudW1iZXJPZk1vbnRoVG9TaG93ID0gaW5wdXQ8bnVtYmVyPigxKTtcclxuXHRhcHBlbmRUbyA9IGlucHV0PHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbD4oJ2JvZHknKTtcclxuXHRkYXRhVHlwZSA9IGlucHV0PCdkYXRlJyB8ICdzdHJpbmcnPignZGF0ZScpO1xyXG5cclxuXHR2aWV3ID0gaW5wdXQ8Vmlldz4oJ2RhdGUnKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uTW9kZT4oJ3NpbmdsZScpO1xyXG5cdHRhYmluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuXHRzaG93T25Gb2N1cyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0dGltZU9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdF9taW5KU0RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5taW5EYXRlKCk/LmxvbmdUb0RhdGUoKSBhcyBEYXRlO1xyXG5cdH0pO1xyXG5cclxuXHRfbWF4SlNEYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubWF4RGF0ZSgpPy5sb25nVG9EYXRlKCkgYXMgRGF0ZTtcclxuXHR9KTtcclxuXHJcblx0X3NlbGVjdGVkRGlzYWJsZWREYXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMoKT8ubWFwKCh2YWx1ZTogbnVtYmVyKSA9PiB2YWx1ZS5sb25nVG9EYXRlKCkgYXMgRGF0ZSk7XHJcblx0fSk7XHJcblxyXG5cdF9kYXRlRm9ybWF0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0c3dpdGNoICh0aGlzLnZpZXcoKSkge1xyXG5cdFx0XHRjYXNlICdtb250aCc6XHJcblx0XHRcdFx0cmV0dXJuICdNTS95eSc7XHJcblx0XHRcdGNhc2UgJ29ubHlNb250aCc6XHJcblx0XHRcdFx0cmV0dXJuICdNTSc7XHJcblx0XHRcdGNhc2UgJ3llYXInOlxyXG5cdFx0XHRcdHJldHVybiAneXknO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnZGQvTU0veXknO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRfdmlldyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHN3aXRjaCAodGhpcy52aWV3KCkpIHtcclxuXHRcdFx0Y2FzZSAnbW9udGgnOlxyXG5cdFx0XHRcdHJldHVybiAnbW9udGgnO1xyXG5cdFx0XHRjYXNlICdvbmx5TW9udGgnOlxyXG5cdFx0XHRcdHJldHVybiAnbW9udGgnO1xyXG5cdFx0XHRjYXNlICd5ZWFyJzpcclxuXHRcdFx0XHRyZXR1cm4gJ3llYXInO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnZGF0ZSc7XHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdC8vIGlzV2Vla2VuZChkYXRlOiBhbnkpOiBib29sZWFuIHtcclxuXHQvLyAgIGlmICghZGF0ZSkge1xyXG5cdC8vICAgICByZXR1cm4gZmFsc2U7XHJcblx0Ly8gICB9XHJcblxyXG5cdC8vICAgaWYgKHRoaXMudmlldyA9PSAnZGF0ZScpIHtcclxuXHQvLyAgICAgY29uc3QgZGF5T2ZXZWVrID0gZGF0ZS5nZXREYXkoKTtcclxuXHQvLyAgICAgcmV0dXJuIGRheU9mV2VlayA9PT0gNSB8fCBkYXlPZldlZWsgPT09IDY7XHJcblx0Ly8gICB9XHJcblx0Ly8gfVxyXG5cclxuXHRzZXRMb2NhbGUoKSB7XHJcblx0XHR0aGlzLnByaW1lTmdDb25maWcuc2V0VHJhbnNsYXRpb24oe1xyXG5cdFx0XHRmaXJzdERheU9mV2VlazogMCxcclxuXHRcdFx0ZGF5TmFtZXM6IFsnUGF6YXInLCAnUGF6YXJ0ZXNpJywgJ1NhbMSxJywgJ8OHYXLFn2FtYmEnLCAnUGVyxZ9lbWJlJywgJ0N1bWEnLCAnQ3VtYXJ0ZXNpJ10sXHJcblx0XHRcdGRheU5hbWVzTWluOiBbJ1B6cicsICdQenQnLCAnU2FsJywgJ8OHYXInLCAnUGVyJywgJ0N1bScsICdDbXQnXSxcclxuXHRcdFx0ZGF5TmFtZXNTaG9ydDogWydQenInLCAnUHp0JywgJ1NhbCcsICfDh2FyJywgJ1BlcicsICdDdW0nLCAnQ210J10sXHJcblx0XHRcdG1vbnRoTmFtZXM6IFtcclxuXHRcdFx0XHQnT2NhaycsXHJcblx0XHRcdFx0J8WedWJhdCcsXHJcblx0XHRcdFx0J01hcnQnLFxyXG5cdFx0XHRcdCdOaXNhbicsXHJcblx0XHRcdFx0J01hecSxcycsXHJcblx0XHRcdFx0J0hhemlyYW4nLFxyXG5cdFx0XHRcdCdUZW1tdXonLFxyXG5cdFx0XHRcdCdBxJ91c3RvcycsXHJcblx0XHRcdFx0J0V5bMO8bCcsXHJcblx0XHRcdFx0J0VraW0nLFxyXG5cdFx0XHRcdCdLYXPEsW0nLFxyXG5cdFx0XHRcdCdBcmFsxLFrJ1xyXG5cdFx0XHRdLFxyXG5cdFx0XHRtb250aE5hbWVzU2hvcnQ6IFsnT2NhJywgJ8WedWInLCAnTWFyJywgJ05pcycsICdNYXknLCAnSGF6JywgJ1RlbScsICdBxJ91JywgJ0V5bCcsICdFa2knLCAnS2FzJywgJ0FyYSddLFxyXG5cdFx0XHR0b2RheTogJ0J1Z8O8bicsXHJcblx0XHRcdGNsZWFyOiAnVGVtaXpsZScsXHJcblx0XHRcdGRhdGVGb3JtYXQ6ICdkZC9tbS95eScsXHJcblx0XHRcdHdlZWtIZWFkZXI6ICdIYWZ0YSdcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZENhbGVuZGFyOiBuZ0NvbnRyb2wuZGlydHkgJiYgbmdDb250cm9sLmludmFsaWQgfVwiPlxyXG5cdDxwLWNhbGVuZGFyXHJcblx0XHRbc2hvd0ljb25dPVwidHJ1ZVwiXHJcblx0XHRbaWNvbkRpc3BsYXldPVwiJ2lucHV0J1wiXHJcblx0XHRbZGF0ZUZvcm1hdF09XCJfZGF0ZUZvcm1hdCgpXCJcclxuXHRcdFtzaG93QnV0dG9uQmFyXT1cInRydWVcIlxyXG5cdFx0W21pbkRhdGVdPVwiX21pbkpTRGF0ZSgpXCJcclxuXHRcdFttYXhEYXRlXT1cIl9tYXhKU0RhdGUoKVwiXHJcblx0XHRbdGFiaW5kZXhdPVwidGFiaW5kZXgoKVwiXHJcblx0XHRbZGlzYWJsZWREYXRlc109XCJfc2VsZWN0ZWREaXNhYmxlZERhdGVzKClcIlxyXG5cdFx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRcdFtkaXNhYmxlZF09XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZFwiXHJcblx0XHRbcmVhZG9ubHlJbnB1dF09XCJmYWxzZVwiXHJcblx0XHRbc2hvd1RpbWVdPVwic2hvd1RpbWUoKVwiXHJcblx0XHRbc2hvd1NlY29uZHNdPVwic2hvd1NlY29uZHMoKVwiXHJcblx0XHRbaW5saW5lXT1cImlubGluZSgpXCJcclxuXHRcdFtzaG93V2Vla109XCJzaG93V2VlaygpXCJcclxuXHRcdFtzaG93T25Gb2N1c109XCJzaG93T25Gb2N1cygpXCJcclxuXHRcdFt0aW1lT25seV09XCJ0aW1lT25seSgpXCJcclxuXHRcdFt2aWV3XT1cIl92aWV3KClcIlxyXG5cdFx0W2lucHV0U3R5bGVdPVwiaW5wdXRTdHlsZSgpXCJcclxuXHRcdFtpbnB1dFN0eWxlQ2xhc3NdPVwiaW5wdXRTdHlsZUNsYXNzKClcIlxyXG5cdFx0W2ZpcnN0RGF5T2ZXZWVrXT1cIjFcIlxyXG5cdFx0W2F1dG9aSW5kZXhdPVwiYXV0b1pJbmRleCgpXCJcclxuXHRcdFtwVG9vbHRpcF09XCJuZ0NvbnRyb2wuaW52YWxpZCA/IChuZ0NvbnRyb2wuY29udHJvbC52YWx1ZSB8IGlucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2wpIDogJydcIlxyXG5cdFx0W3Rvb2x0aXBPcHRpb25zXT1cInRvb2x0aXBPcHRpb25zXCJcclxuXHRcdFtudW1iZXJPZk1vbnRoc109XCJudW1iZXJPZk1vbnRoVG9TaG93KClcIlxyXG5cdFx0WyhuZ01vZGVsKV09XCJtb2RlbFwiXHJcblx0XHQobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KTsgc2V0Rm9ybUN0cmwoJGV2ZW50KVwiXHJcblx0XHRbZGF0YVR5cGVdPVwiZGF0YVR5cGUoKVwiXHJcblx0XHRbcGFuZWxTdHlsZUNsYXNzXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ2hpZGRlbicgOiAnJ1wiXHJcblx0XHRbYXBwZW5kVG9dPVwiYXBwZW5kVG8oKVwiPlxyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtY2FsZW5kYXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -118,14 +118,6 @@ export class TableComponent {
118
118
  this.isInitialLoad = false;
119
119
  return;
120
120
  }
121
- const currentData = changes['data'].currentValue;
122
- if (this.isShowNoDataFoundMessage() && !currentData?.length) {
123
- this.messageService.add({
124
- severity: 'info',
125
- summary: this.translocoService.translate('messages.noDataToDisplay'),
126
- key: 'toast-root'
127
- });
128
- }
129
121
  }
130
122
  }
131
123
  createExportForm() {
@@ -269,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
269
261
  }], expandableFields: [{
270
262
  type: Input
271
263
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxN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QkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cclxuXHRpc1Nob3dOb0RhdGFGb3VuZE1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHQvKipcclxuXHQgKiBAc2VlIHtAbGluayBFeHBvcnRPcHRpb25zfVxyXG5cdCAqL1xyXG5cdGV4cG9ydENvbmZpZyA9IGlucHV0PEV4cG9ydE9wdGlvbnM+KCk7XHJcblxyXG5cdGV4cG9ydEZvcm0hOiBGb3JtR3JvdXA8RXhwb3J0Rm9ybT47XHJcblx0ZXhwb3J0VHlwZU9wdGlvbnMgPSBbXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5FeGNlbCwgbGFiZWw6ICdFeGNlbCcsIGZpbGVFeHRlbnNpb246ICcueGxzeCcgfSxcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkNzdiwgbGFiZWw6ICdDc3YnLCBmaWxlRXh0ZW5zaW9uOiAnLmNzdicgfVxyXG5cdF07XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgc2VsZWN0aW9uR3JvdXBTZXJ2aWNlOiBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih0cmFubGF0aW9ucyk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuaXNGaXJzdFJvd1NlbGVjdGVkKCkgJiYgdGhpcy5kYXRhKCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuZGF0YSgpWzBdO1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkUm93c0lucHV0KCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZXhwb3J0Q29uZmlnKCkpIHtcclxuXHRcdFx0XHR0aGlzLmNyZWF0ZUV4cG9ydEZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuY2hlY2tib3hTZWxlY3Rpb24oKSkgdGhpcy5oYW5kbGVkU2VsZWN0aW9uTW9kZSA9IG51bGw7XHJcblx0XHRcdGVsc2UgdGhpcy5oYW5kbGVkU2VsZWN0aW9uTW9kZSA9IHRoaXMuc2VsZWN0aW9uTW9kZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZGF0YSgpPy5sZW5ndGggPT0gMTApIHRoaXMudGFibGVSZWYucm93cyA9IDEwO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGlzSW5pdGlhbExvYWQgPSB0cnVlO1xyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlc1snZGF0YSddICYmIGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2RhdGEnXS5wcmV2aW91c1ZhbHVlKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzSW5pdGlhbExvYWQpIHtcclxuXHRcdFx0XHR0aGlzLmlzSW5pdGlhbExvYWQgPSBmYWxzZTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IGN1cnJlbnREYXRhID0gY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZTtcclxuXHRcdFx0aWYgKHRoaXMuaXNTaG93Tm9EYXRhRm91bmRNZXNzYWdlKCkgJiYgIWN1cnJlbnREYXRhPy5sZW5ndGgpIHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRzZXZlcml0eTogJ2luZm8nLFxyXG5cdFx0XHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMubm9EYXRhVG9EaXNwbGF5JyksXHJcblx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZUV4cG9ydEZvcm0oKTogdm9pZCB7XHJcblx0XHRjb25zdCB7IGV4cG9ydExhYmVsIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHR0aGlzLmV4cG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwPEV4cG9ydEZvcm0+KHtcclxuXHRcdFx0ZXhwb3J0VHlwZTogdGhpcy5mYi5jb250cm9sKEV4cG9ydFR5cGUuRXhjZWwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogdGhpcy5mYi5jb250cm9sKGV4cG9ydExhYmVsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0Y29sdW1uczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8Q29sRm9ybT4+KFtdKVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5jb2x1bW5zLl9yZXN1bHRzXHJcblx0XHRcdC5maWx0ZXIoKGNvbCkgPT4gY29sLnR5cGUoKSAhPT0gJ29wZXJhdGlvbnMnKVxyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBleHBvcnRDb25maWcgPSB0aGlzLmV4cG9ydENvbmZpZygpO1xyXG5cdFx0XHRcdGNvbnN0IGV4Y2x1ZGVkRmllbGRzID0gZXhwb3J0Q29uZmlnPy5leGNsdWRlZEZpZWxkcyA/PyBbXTtcclxuXHJcblx0XHRcdFx0cmV0dXJuICFleGNsdWRlZEZpZWxkcy5pbmNsdWRlcyhjb2wuZmllbGQoKSk7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5mb3JFYWNoKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBjb2xHcm91cCA9IHRoaXMuZmIuZ3JvdXA8Q29sRm9ybT4oe1xyXG5cdFx0XHRcdFx0Y2hlY2tlZDogdGhpcy5mYi5jb250cm9sKHRydWUpLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHRoaXMuZmIuY29udHJvbChjb2wuaGVhZGVyKCkpLFxyXG5cdFx0XHRcdFx0ZGF0YUtleTogdGhpcy5mYi5jb250cm9sKGNvbC5maWVsZCgpKVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHR0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5wdXNoKGNvbEdyb3VwKTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodCkgPT4gKHRoaXMuaXNBbGxTZWxlY3RlZCA9IHQuZXZlcnkoKGEpID0+IGEuY2hlY2tlZCkpKTtcclxuXHR9XHJcblxyXG5cdGdldCBob3N0VXJsKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYCR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5ob3N0fS9odG1sL2A7XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBvcnQoKSB7XHJcblx0XHRjb25zdCB7IGV4cG9ydFR5cGUsIGV4cG9ydExhYmVsLCBjb2x1bW5zIH0gPSB0aGlzLmV4cG9ydEZvcm0udmFsdWU7XHJcblx0XHRjb25zdCB7IHJvdXRlLCBwYXJhbXMsIHBhZ2VTaXplLCBjb2x1bW5GaWVsZFZhbHVlTWFwLCBkYXRlQ29sdW1uRm9ybWF0TWFwLCBjb21wdXRlZENvbHVtbk1hcCwgY3VzdG9tUmVxVXJsIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHRjb25zdCBjaGVja2VkQ29sdW1ucyA9IGNvbHVtbnMhLmZpbHRlcigodCkgPT4gdC5jaGVja2VkKTtcclxuXHRcdGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmV4cG9ydFR5cGVPcHRpb25zLmZpbmQoKHQpID0+IHQua2V5ID09PSBleHBvcnRUeXBlKT8uZmlsZUV4dGVuc2lvbjtcclxuXHJcblx0XHRsZXQgY29sdW1uRmllbGRWYWx1ZU1hcE9iajogQ29sdW1uRmllbGRWYWx1ZU1hcCB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHRpZiAoY29sdW1uRmllbGRWYWx1ZU1hcCkge1xyXG5cdFx0XHRjb25zdCB0ZW1wT2JqID0ge30gYXMgQ29sdW1uRmllbGRWYWx1ZU1hcDtcclxuXHJcblx0XHRcdGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdGZyb20oT2JqZWN0LmVudHJpZXMoY29sdW1uRmllbGRWYWx1ZU1hcCkpLnBpcGUoXHJcblx0XHRcdFx0XHRjb25jYXRNYXAoKFtmaWVsZE5hbWUsIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0IXRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3ZhbHVlLmdyb3VwTmFtZX1+JHt2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCd9YF1cclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHZhbHVlLmdyb3VwTmFtZSwgdmFsdWUucGFyZW50U2VsZWN0aW9uS2V5KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3Qga2V5ID0gdmFsdWUuZ3JvdXBOYW1lICsgJ34nICsgKHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSA/PyAnQUxMJyk7XHJcblxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJ2YWwoMTApLnBpcGUoXHJcblx0XHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5pc0xvYWRpbmcoa2V5KSksXHJcblx0XHRcdFx0XHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0XHRcdFx0XHRtYXAoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSB0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtrZXldO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRlbXBPYmpbZmllbGROYW1lXSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBpdGVtKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWNjW2l0ZW0uc2VsZWN0aW9uS2V5XSA9IGl0ZW0uc2VsZWN0aW9uRGlzcGxheTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0sIHt9KSBhcyBhbnk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dG9BcnJheSgpLFxyXG5cdFx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwT2JqID0gdGVtcE9iajtcclxuXHRcdFx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0XHRcdHNldmVyaXR5OiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuZXhwb3J0aW5nJyksXHJcblx0XHRcdFx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCdcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZXF1ZXN0OiBFeHBvcnRSZXF1ZXN0ID0ge1xyXG5cdFx0XHRyb3V0ZTogcm91dGUhLFxyXG5cdFx0XHRwYXJhbXM6IHBhcmFtcyEsXHJcblx0XHRcdHBhZ2VTaXplOiBwYWdlU2l6ZSEsXHJcblx0XHRcdGV4cG9ydFR5cGU6IGV4cG9ydFR5cGUhLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogZXhwb3J0TGFiZWwhLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcDogY29tcHV0ZWRDb2x1bW5NYXAhLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiBkYXRlQ29sdW1uRm9ybWF0TWFwISxcclxuXHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcDogY29sdW1uRmllbGRWYWx1ZU1hcE9iaiEsXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgYXBpVXJsID0gY3VzdG9tUmVxVXJsID8gQVBJX0NPTkZJR1MuYXBpLnJlcGxhY2UoL1xcL1teXFwvXStcXC92MSQvLCBgLyR7Y3VzdG9tUmVxVXJsfS92MWApIDogQVBJX0NPTkZJR1MuYXBpO1xyXG5cdFx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdHRoaXMuaHR0cC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbjsgdXJsOiBzdHJpbmcgfT4oYCR7YXBpVXJsfS9iYXRjaC1leHBvcnRlcnMvZXhwb3J0YCwgcmVxdWVzdCkucGlwZShcclxuXHRcdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0XHR0aGlzLmh0dHAuZ2V0KGAke2FwaVVybH0vYnVja2V0LW9iamVjdHMvZG93bmxvYWRgLCB7XHJcblx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7IHVybDogcmVzLnVybCB9LFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGVycm9yLnN0YXR1cyA9PT0gNTA0KSB7XHJcblx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLmhvc3RVcmx9bW5nLyMvbW5nL2NvbnRyb2wtbWFuYWdlbWVudC9leHBvcnQtcmVxdWVzdHNgO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ0hhdGEgb2x1xZ90dTonLCBlcnJvcik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRzYXZlQXMocmVzcG9uc2UsIGAke2V4cG9ydExhYmVsfS0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfSR7ZmlsZUV4dGVuc2lvbn1gKTtcclxuXHJcblx0XHRcdHRoaXMuZXhwb3J0Rm9ybS5yZXNldCgpO1xyXG5cdFx0XHR0aGlzLm9wPy5oaWRlKCk7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdIYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25TZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0Y29uc3QgZm9ybUdyb3VwID0gdGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuYXQoaSk7XHJcblx0XHRcdGZvcm1Hcm91cC5jb250cm9scy5jaGVja2VkLnNldFZhbHVlKHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRvZ2dsZUV4cG9ydCA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHRoaXMub3AudG9nZ2xlKGV2ZW50KTtcclxuXHJcblx0aGFuZGxlTGF6eUxvYWRFdmVudChldmVudDogYW55KTogdm9pZCB7XHJcblx0XHRjb25zdCBuZXdFdmVudERhdGEgPSB7XHJcblx0XHRcdHBhZ2VyOiB7XHJcblx0XHRcdFx0cGFnZVNpemU6IGV2ZW50LnJvd3MsXHJcblx0XHRcdFx0cGFnZU51bWJlcjogZXZlbnQuZmlyc3QgLyBldmVudC5yb3dzICsgMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzb3J0OiBldmVudC5tdWx0aVNvcnRNZXRhLFxyXG5cdFx0XHRmaWx0ZXI6IGV2ZW50LmZpbHRlcnNcclxuXHRcdH07XHJcblx0XHR0aGlzLmxhenlMb2FkRXZlbnQuZW1pdChuZXdFdmVudERhdGEpO1xyXG5cdH1cclxuXHJcblx0Y2xlYXIoKTogdm9pZCB7XHJcblx0XHR0aGlzLnRhYmxlUmVmLnZhbHVlID0gW107XHJcblx0XHR0aGlzLnRhYmxlUmVmLmNsZWFyKCk7XHJcblx0XHR0aGlzLm9wPy5oaWRlKCk7XHJcblx0fVxyXG59XHJcbiIsIjxwLXRhYmxlXHJcblx0I3JlZlxyXG5cdFt2YWx1ZV09XCJkYXRhKClcIlxyXG5cdFtkYXRhS2V5XT1cImRhdGFLZXkoKVwiXHJcblx0W2NvbHVtbnNdPVwiY29sdW1ucy5fcmVzdWx0c1wiXHJcblx0W3Jvd3NdPVwicGFnZVNpemUoKVwiXHJcblx0W3Jvd0hvdmVyXT1cInRydWVcIlxyXG5cdFtwYWdpbmF0b3JdPVwiIXRoaXMuaXNMYXp5KCkgfHwgdGhpcy50b3RhbFJlY29yZHMoKSA+IDEwID8gdGhpcy5wYWdpbmF0b3IoKSA6IGZhbHNlXCJcclxuXHRbbGF6eV09XCJpc0xhenkoKVwiXHJcblx0W2xhenlMb2FkT25Jbml0XT1cImZhbHNlXCJcclxuXHRbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3JkcygpXCJcclxuXHRbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwgMjAsIDUwLCAxMDBdXCJcclxuXHRbZmlsdGVyRGVsYXldPVwiMFwiXHJcblx0c29ydE1vZGU9XCJtdWx0aXBsZVwiXHJcblx0WyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkUm93c1wiXHJcblx0KG9uUGFnZSk9XCJvblBhZ2VFdmVudC5lbWl0KCRldmVudClcIlxyXG5cdChvbkxhenlMb2FkKT1cImhhbmRsZUxhenlMb2FkRXZlbnQoJGV2ZW50KVwiXHJcblx0KHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkUm93cylcIlxyXG5cdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRbY29sdW1uUmVzaXplTW9kZV09XCJpc0NvbHVtbkV4cGFuZE1vZGUoKSA/ICdleHBhbmQnIDogJydcIlxyXG5cdFtyZXNpemFibGVDb2x1bW5zXT1cImlzUmVzaXphYmxlQ29sdW1ucygpXCJcclxuXHRjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiVG9wbGFtIDoge3RvdGFsUmVjb3Jkc30ga2F5xLF0IHwgU2F5ZmEgOiB7Y3VycmVudFBhZ2V9IC8ge3RvdGFsUGFnZXN9XCJcclxuXHRzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc21cIlxyXG5cdFtwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvXT1cInBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8oKVwiPlxyXG5cdDwhLS1AaWYgKHRhYmxlSGVhZGVyKCkgfHwgc2hvd1NlYXJjaFRvb2woKSB8fCBzaG93RXhwb3J0VG9vbCgpKSB7XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBzcGFjZS1iZXR3ZWVuXCI+XHJcblx0XHRcdFx0PGRpdiBzdHlsZT1cImZsZXg6IGF1dG9cIj5cclxuXHRcdFx0XHRcdEBpZiAodGFibGVIZWFkZXIoKS5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHRhYmxlSGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PGRpdiBzdHlsZT1cImZsZXg6IGF1dG9cIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdEBpZiAoZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC10ZXh0XHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiU0VBUkNIXCJcclxuXHRcdFx0XHRcdFx0XHRcdGljb25Qb3M9XCJsZWZ0XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiQXJhbWFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiZmlsdGVyVGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cIm1yLTFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwicmVmLmZpbHRlckdsb2JhbCgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY29udGFpbnMnKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC10ZXh0PlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiRklMRV9FWENFTFwiXHJcblx0XHRcdFx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cFRvb2x0aXA9XCJYTFNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImV4Y2VsRXhwb3J0KClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiRklMRV9QREZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleHBvcnRQZGYoKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0QGlmIChkYXRhKCkgJiYga2ViYWJNZW51SXRlbXMubGVuZ3RoID4gMCApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IHRvb2xzIHN0eWxlPVwicGFkZGluZzogNHB4O21hcmdpbi1sZWZ0OiA0cHg7Ym9yZGVyOjFweCBzb2xpZCAjNjM2NmYxO2JvcmRlci1yYWRpdXM6IDZweDtiYWNrZ3JvdW5kLWNvbG9yOiAjNjM2NmYxOyBjb2xvcjogd2hpdGU7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2F0dHIucm9sZV09XCInbm9uZSdcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIG1yLTEgaGVhZGVyLWljb24gcGktZWxsaXBzaXMtdlwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJidWxrT3BlcmF0aW9ucy50b2dnbGUoJGV2ZW50KTtcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cC1tZW51XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNidWxrT3BlcmF0aW9uc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRbcG9wdXBdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFttb2RlbF09XCJrZWJhYk1lbnVJdGVtc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlQ2xhc3M9XCJ6LWluZGV4OiA5OTk4ODk5O1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH0tLT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYgKGhlYWRlckNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdFx0PHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRAaWYgKGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJykge1xyXG5cdFx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+xLDFn2xlbWxlcjwvZGl2PlxyXG5cdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdEBpZiAoaXNSZXNpemFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoXHJcblx0XHRcdFx0XHRcdFx0W3BTb3J0YWJsZUNvbHVtbl09XCJjb2x1bW4uZmllbGQoKVwiXHJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCJcclxuXHRcdFx0XHRcdFx0XHRwUmVzaXphYmxlQ29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmICghaXNMYXp5KCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAoaXNTb3J0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8dGggW25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCIgc3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKGhhbmRsZWRTZWxlY3Rpb25Nb2RlKSB7XHJcblx0XHRcdDx0ciBbcFNlbGVjdGFibGVSb3ddPVwiaXRlbVwiIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PHRyIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVDaGVja2JveD5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH1cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHNob3dGb290ZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIj5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLl9yZXN1bHRzLmxlbmd0aFwiPnt7IG5vRGF0YUZvdW5kTGFiZWwoKSB9fTwvdGQ+XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwiZXhwb3J0LW92ZXJsYXktcGFuZWxcIj5cclxuXHRAaWYgKGV4cG9ydEZvcm0pIHtcclxuXHRcdDxhcmlsLWZvcm0gW2Zvcm1Hcm91cF09XCJleHBvcnRGb3JtXCIgY2xhc3M9XCJ3LTIwcmVtXCI+XHJcblx0XHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCInRG9zeWEgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC1yYWRpby1idXR0b24gZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0VHlwZVwiIFtvcHRpb25zXT1cImV4cG9ydFR5cGVPcHRpb25zXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC10ZXh0IGNsYXNzPVwidy1mdWxsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0TGFiZWxcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdFx0PHAtb3JkZXJMaXN0XHJcblx0XHRcdFx0XHQjb3JkZXJMaXN0UmVmXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtsaXN0U3R5bGVdPVwieyAnbWF4LWhlaWdodCc6ICcyMHJlbScgfVwiXHJcblx0XHRcdFx0XHRmaWx0ZXJCeT1cInZhbHVlLnRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94XHJcblx0XHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwiJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiaXNBbGxTZWxlY3RlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIC8+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ZpbHRlcidcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjZmlsdGVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0cm9sZT1cInRleHRib3hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoa2V5dXApPVwib3JkZXJMaXN0UmVmLm9uRmlsdGVyS2V5dXAoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJvcmRlckxpc3RSZWYuZGlzYWJsZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlci1pbnB1dCBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiIC8+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtY29sIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3ggW2xhYmVsXT1cImNvbC52YWx1ZS50aXRsZVwiIFtmb3JtQ29udHJvbF09XCJjb2wuY29udHJvbHMuY2hlY2tlZFwiIC8+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1vcmRlckxpc3Q+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNsYXNzPVwiY29sLTEyXCIgW2xhYmVsXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydCcpXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrRXZlbnQpPVwiZXhwb3J0KClcIiAvPlxyXG5cdFx0PC9hcmlsLWZvcm0+XHJcblx0fVxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxN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QUFLLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7YUFDeEM7WUFDRCxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDekIsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3JCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0FqUVcsY0FBYztrR0FBZCxjQUFjLHNxSUFJVCxvQkFBb0IsaUVBQzFCLFlBQVksMkVBQ1osS0FBSyxxRUNyRWpCLG8vVEF3UEE7OzJGRHpMYSxjQUFjO2tCQUwxQixTQUFTOytCQUNDLFlBQVk7Z1BBS1osV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ2dDLE9BQU87c0JBQTdDLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNaLEVBQUU7c0JBQTFCLFNBQVM7dUJBQUMsWUFBWTtnQkFDTCxRQUFRO3NCQUF6QixTQUFTO3VCQUFDLEtBQUs7Z0JBQ1AsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGRyZW4sXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRlZmZlY3QsXHJcblx0aW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlLCBQcmltZU5HQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuXHRjYXRjaEVycm9yLFxyXG5cdGNvbmNhdE1hcCxcclxuXHRmaWx0ZXIsXHJcblx0ZmluYWxpemUsXHJcblx0Zmlyc3RWYWx1ZUZyb20sXHJcblx0ZnJvbSxcclxuXHRpbnRlcnZhbCxcclxuXHRtYXAsXHJcblx0c3dpdGNoTWFwLFxyXG5cdHRha2UsXHJcblx0dGhyb3dFcnJvcixcclxuXHR0b0FycmF5XHJcbn0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgUHJveHlUeXBlcyB9IGZyb20gJ2FyaWwvaHR0cCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuXHJcbmltcG9ydCB7IHRyYW5sYXRpb25zIH0gZnJvbSAnLi9pMThuJztcclxuaW1wb3J0IHsgQ29sRm9ybSwgQ29sdW1uRmllbGRWYWx1ZU1hcCwgRXhwb3J0Rm9ybSwgRXhwb3J0T3B0aW9ucywgRXhwb3J0UmVxdWVzdCwgRXhwb3J0VHlwZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEFsaWduVHlwZXMsIFRhYmxlQ29sdW1uQ29tcG9uZW50LCBUYWJsZUNvbHVtbnMgfSBmcm9tICcuL3RhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuLyogVE9ETyA6XHJcbiAqIHNlcnZlci1zaWRlLXByb3h5IChQcm94eVR5cGVzLlNlcnZlclNpZGUpXHJcbiAqIHNlYXJjaCAmIGNvbHVtIGZpbHRlciAmIHNvcnRcclxuICogcGFnaW5hdGlvbiBvcGVyYXRpb25cclxuICogUXVlcnkgU2lnbmFsc1xyXG4gKi9cclxuY29uc3QgcGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSBhcyBjb25zdDtcclxuXHJcbnR5cGUgU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCBudWxsO1xyXG5pbnRlcmZhY2UgSUtlYmFiTWVudUl0ZW0ge1xyXG5cdGljb246IHN0cmluZztcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdG9uQ2xpY2s6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcmlsLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcclxuXHRAT3V0cHV0KCkgb25QYWdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBsYXp5TG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVDb2x1bW5Db21wb25lbnQpIGNvbHVtbnMhOiBUYWJsZUNvbHVtbnM7XHJcblx0QFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIG9wITogT3ZlcmxheVBhbmVsO1xyXG5cdEBWaWV3Q2hpbGQoVGFibGUpIHRhYmxlUmVmITogVGFibGU7XHJcblx0QElucHV0KCkga2ViYWJNZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHRASW5wdXQoKSBleHBhbmRhYmxlRmllbGRzITogc3RyaW5nO1xyXG5cclxuXHRkYXRhID0gaW5wdXQucmVxdWlyZWQ8YW55W10+KCk7XHJcblx0Y2hlY2tib3hTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdGhlYWRlckNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRwYWdlU2l6ZSA9IGlucHV0PCh0eXBlb2YgcGFnZU9wdGlvbnMpW251bWJlcl0+KDEwKTtcclxuXHRwcm94eSA9IGlucHV0PFByb3h5VHlwZXM+KFByb3h5VHlwZXMuTmF0aXZlKTtcclxuXHRzaG93Rm9vdGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHRBbGlnbiA9IGlucHV0PEFsaWduVHlwZXM+KCdsZWZ0Jyk7XHJcblx0c2VsZWN0aW9uTW9kZSA9IGlucHV0PFNlbGVjdGlvblR5cGVzPignc2luZ2xlJyk7XHJcblx0c2hvd1NlYXJjaFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRzaG93RXhwb3J0VG9vbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdGV4cG9ydEZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0bm9EYXRhRm91bmRMYWJlbCA9IGlucHV0PHN0cmluZz4oJ05vIERhdGEgRm91bmQnKTtcclxuXHR0YWJsZUhlYWRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNob3dUYWJsZUhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc0ZpcnN0Um93U2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0ZGF0YUtleSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNlbGVjdGVkUm93c0lucHV0ID0gaW5wdXQ8YW55PihbXSk7XHJcblx0aXNMYXp5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHRvdGFsUmVjb3JkcyA9IGlucHV0PG51bWJlcj4oMCk7XHJcblx0cGFnaW5hdG9yID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0cGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUbyA9IGlucHV0PHN0cmluZz4oJ2JvZHknKTsgLy8gJ2JvZHknfCAnbXlEaXYnXHJcblxyXG5cdGlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdC8qKlxyXG5cdCAqIEBzZWUge0BsaW5rIEV4cG9ydE9wdGlvbnN9XHJcblx0ICovXHJcblx0ZXhwb3J0Q29uZmlnID0gaW5wdXQ8RXhwb3J0T3B0aW9ucz4oKTtcclxuXHJcblx0ZXhwb3J0Rm9ybSE6IEZvcm1Hcm91cDxFeHBvcnRGb3JtPjtcclxuXHRleHBvcnRUeXBlT3B0aW9ucyA9IFtcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkV4Y2VsLCBsYWJlbDogJ0V4Y2VsJywgZmlsZUV4dGVuc2lvbjogJy54bHN4JyB9LFxyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuQ3N2LCBsYWJlbDogJ0NzdicsIGZpbGVFeHRlbnNpb246ICcuY3N2JyB9XHJcblx0XTtcclxuXHJcblx0ZmlsdGVyVGV4dCE6IHN0cmluZztcclxuXHRpc0FsbFNlbGVjdGVkID0gdHJ1ZTtcclxuXHRzZWxlY3RlZFJvd3M6IGFueTtcclxuXHRwYWdlT3B0aW9ucyA9IHBhZ2VPcHRpb25zO1xyXG5cdGV4cG9ydENvbHVtbnM6IEFycmF5PHsgdGl0bGU6IHN0cmluZzsgZGF0YUtleTogc3RyaW5nIH0+ID0gW107XHJcblx0aXNDb2x1bW5FeHBhbmRNb2RlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzUmVzaXphYmxlQ29sdW1ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1NvcnRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGhhbmRsZWRTZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25UeXBlcyA9ICdzaW5nbGUnO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgZmI6IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXHJcblx0XHRwcml2YXRlIHByaW1lbmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBzZWxlY3Rpb25Hcm91cFNlcnZpY2U6IFNlbGVjdGlvbkdyb3VwU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5wcmltZW5nQ29uZmlnLnNldFRyYW5zbGF0aW9uKHRyYW5sYXRpb25zKTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5pc0ZpcnN0Um93U2VsZWN0ZWQoKSAmJiB0aGlzLmRhdGEoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhKClbMF07XHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25FdmVudC5lbWl0KHRoaXMuc2VsZWN0ZWRSb3dzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5leHBvcnRDb25maWcoKSkge1xyXG5cdFx0XHRcdHRoaXMuY3JlYXRlRXhwb3J0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5jaGVja2JveFNlbGVjdGlvbigpKSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gbnVsbDtcclxuXHRcdFx0ZWxzZSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gdGhpcy5zZWxlY3Rpb25Nb2RlKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5kYXRhKCk/Lmxlbmd0aCA9PSAxMCkgdGhpcy50YWJsZVJlZi5yb3dzID0gMTA7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaXNJbml0aWFsTG9hZCA9IHRydWU7XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWUpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNJbml0aWFsTG9hZCkge1xyXG5cdFx0XHRcdHRoaXMuaXNJbml0aWFsTG9hZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0vaHRtbC9gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3QgeyByb3V0ZSwgcGFyYW1zLCBwYWdlU2l6ZSwgY29sdW1uRmllbGRWYWx1ZU1hcCwgZGF0ZUNvbHVtbkZvcm1hdE1hcCwgY29tcHV0ZWRDb2x1bW5NYXAsIGN1c3RvbVJlcVVybCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0Y29uc3QgY2hlY2tlZENvbHVtbnMgPSBjb2x1bW5zIS5maWx0ZXIoKHQpID0+IHQuY2hlY2tlZCk7XHJcblx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5leHBvcnRUeXBlT3B0aW9ucy5maW5kKCh0KSA9PiB0LmtleSA9PT0gZXhwb3J0VHlwZSk/LmZpbGVFeHRlbnNpb247XHJcblxyXG5cdFx0bGV0IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmo6IENvbHVtbkZpZWxkVmFsdWVNYXAgfCB1bmRlZmluZWQ7XHJcblxyXG5cdFx0aWYgKGNvbHVtbkZpZWxkVmFsdWVNYXApIHtcclxuXHRcdFx0Y29uc3QgdGVtcE9iaiA9IHt9IGFzIENvbHVtbkZpZWxkVmFsdWVNYXA7XHJcblxyXG5cdFx0XHRhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHRmcm9tKE9iamVjdC5lbnRyaWVzKGNvbHVtbkZpZWxkVmFsdWVNYXApKS5waXBlKFxyXG5cdFx0XHRcdFx0Y29uY2F0TWFwKChbZmllbGROYW1lLCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdCF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt2YWx1ZS5ncm91cE5hbWV9fiR7dmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnfWBdXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh2YWx1ZS5ncm91cE5hbWUsIHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IHZhbHVlLmdyb3VwTmFtZSArICd+JyArICh2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGludGVydmFsKDEwKS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuaXNMb2FkaW5nKGtleSkpLFxyXG5cdFx0XHRcdFx0XHRcdHRha2UoMSksXHJcblx0XHRcdFx0XHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZW1wT2JqW2ZpZWxkTmFtZV0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFjY1tpdGVtLnNlbGVjdGlvbktleV0gPSBpdGVtLnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LCB7fSkgYXMgYW55O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvQXJyYXkoKSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcE9iaiA9IHRlbXBPYmo7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRcdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydGluZycpLFxyXG5cdFx0XHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmVxdWVzdDogRXhwb3J0UmVxdWVzdCA9IHtcclxuXHRcdFx0cm91dGU6IHJvdXRlISxcclxuXHRcdFx0cGFyYW1zOiBwYXJhbXMhLFxyXG5cdFx0XHRwYWdlU2l6ZTogcGFnZVNpemUhLFxyXG5cdFx0XHRleHBvcnRUeXBlOiBleHBvcnRUeXBlISxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IGV4cG9ydExhYmVsISxcclxuXHRcdFx0Y29tcHV0ZWRDb2x1bW5NYXA6IGNvbXB1dGVkQ29sdW1uTWFwISxcclxuXHRcdFx0ZGF0ZUNvbHVtbkZvcm1hdE1hcDogZGF0ZUNvbHVtbkZvcm1hdE1hcCEsXHJcblx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXA6IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmohLFxyXG5cdFx0XHRoZWFkZXJOYW1lczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC50aXRsZSEpLFxyXG5cdFx0XHRvdXRwdXRGaWVsZHM6IGNoZWNrZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuZGF0YUtleSEpXHJcblx0XHR9O1xyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IGFwaVVybCA9IGN1c3RvbVJlcVVybCA/IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC8ke2N1c3RvbVJlcVVybH0vdjFgKSA6IEFQSV9DT05GSUdTLmFwaTtcclxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHR0aGlzLmh0dHAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW47IHVybDogc3RyaW5nIH0+KGAke2FwaVVybH0vYmF0Y2gtZXhwb3J0ZXJzL2V4cG9ydGAsIHJlcXVlc3QpLnBpcGUoXHJcblx0XHRcdFx0XHRzd2l0Y2hNYXAoKHJlcykgPT5cclxuXHRcdFx0XHRcdFx0dGhpcy5odHRwLmdldChgJHthcGlVcmx9L2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkYCwge1xyXG5cdFx0XHRcdFx0XHRcdHBhcmFtczogeyB1cmw6IHJlcy51cmwgfSxcclxuXHRcdFx0XHRcdFx0XHRyZXNwb25zZVR5cGU6ICdibG9iJ1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChlcnJvci5zdGF0dXMgPT09IDUwNCkge1xyXG5cdFx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5ob3N0VXJsfW1uZy8jL21uZy9jb250cm9sLW1hbmFnZW1lbnQvZXhwb3J0LXJlcXVlc3RzYDtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdIYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0c2F2ZUFzKHJlc3BvbnNlLCBgJHtleHBvcnRMYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ke2ZpbGVFeHRlbnNpb259YCk7XHJcblxyXG5cdFx0XHR0aGlzLmV4cG9ydEZvcm0ucmVzZXQoKTtcclxuXHRcdFx0dGhpcy5vcD8uaGlkZSgpO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignSGF0YSBvbHXFn3R1OicsIGVycm9yKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uU2VsZWN0QWxsKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmF0KGkpO1xyXG5cdFx0XHRmb3JtR3JvdXAuY29udHJvbHMuY2hlY2tlZC5zZXRWYWx1ZSh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVFeHBvcnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB0aGlzLm9wLnRvZ2dsZShldmVudCk7XHJcblxyXG5cdGhhbmRsZUxhenlMb2FkRXZlbnQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0Y29uc3QgbmV3RXZlbnREYXRhID0ge1xyXG5cdFx0XHRwYWdlcjoge1xyXG5cdFx0XHRcdHBhZ2VTaXplOiBldmVudC5yb3dzLFxyXG5cdFx0XHRcdHBhZ2VOdW1iZXI6IGV2ZW50LmZpcnN0IC8gZXZlbnQucm93cyArIDFcclxuXHRcdFx0fSxcclxuXHRcdFx0c29ydDogZXZlbnQubXVsdGlTb3J0TWV0YSxcclxuXHRcdFx0ZmlsdGVyOiBldmVudC5maWx0ZXJzXHJcblx0XHR9O1xyXG5cdFx0dGhpcy5sYXp5TG9hZEV2ZW50LmVtaXQobmV3RXZlbnREYXRhKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy50YWJsZVJlZi52YWx1ZSA9IFtdO1xyXG5cdFx0dGhpcy50YWJsZVJlZi5jbGVhcigpO1xyXG5cdFx0dGhpcy5vcD8uaGlkZSgpO1xyXG5cdH1cclxufVxyXG4iLCI8cC10YWJsZVxyXG5cdCNyZWZcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbZGF0YUtleV09XCJkYXRhS2V5KClcIlxyXG5cdFtjb2x1bW5zXT1cImNvbHVtbnMuX3Jlc3VsdHNcIlxyXG5cdFtyb3dzXT1cInBhZ2VTaXplKClcIlxyXG5cdFtyb3dIb3Zlcl09XCJ0cnVlXCJcclxuXHRbcGFnaW5hdG9yXT1cIiF0aGlzLmlzTGF6eSgpIHx8IHRoaXMudG90YWxSZWNvcmRzKCkgPiAxMCA/IHRoaXMucGFnaW5hdG9yKCkgOiBmYWxzZVwiXHJcblx0W2xhenldPVwiaXNMYXp5KClcIlxyXG5cdFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcblx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcblx0W3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwXVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdHNvcnRNb2RlPVwibXVsdGlwbGVcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZFJvd3NcIlxyXG5cdChvblBhZ2UpPVwib25QYWdlRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuXHQob25MYXp5TG9hZCk9XCJoYW5kbGVMYXp5TG9hZEV2ZW50KCRldmVudClcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZFJvd3MpXCJcclxuXHRbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG5cdFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGUoKVwiXHJcblx0W2NvbHVtblJlc2l6ZU1vZGVdPVwiaXNDb2x1bW5FeHBhbmRNb2RlKCkgPyAnZXhwYW5kJyA6ICcnXCJcclxuXHRbcmVzaXphYmxlQ29sdW1uc109XCJpc1Jlc2l6YWJsZUNvbHVtbnMoKVwiXHJcblx0Y3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIlRvcGxhbSA6IHt0b3RhbFJlY29yZHN9IGthecSxdCB8IFNheWZhIDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfVwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuXHRcdDx0cj5cclxuXHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0QGlmIChoZWFkZXJDaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC90aD5cclxuXHRcdFx0fVxyXG5cdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0QGlmIChjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycpIHtcclxuXHRcdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPsSwxZ9sZW1sZXI8L2Rpdj5cclxuXHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRAaWYgKGlzUmVzaXphYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0cFJlc2l6YWJsZUNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWlzTGF6eSgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2UgaWYgKGlzU29ydGFibGUoKSkge1xyXG5cdFx0XHRcdFx0XHQ8dGhcclxuXHRcdFx0XHRcdFx0XHRbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0PHRoIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiIHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1pdGVtIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG5cdFx0QGlmIChoYW5kbGVkU2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIiBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogaXRlbT8ucm93Q29sb3IgPyBpdGVtPy5yb3dDb2xvciA6IG51bGwgfVwiPlxyXG5cdFx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdDx0ZCBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnID8gJ2NlbnRlcicgOiBjb2x1bW4udEFsaWduKCkgfHwgdEFsaWduKCkgfVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiW2l0ZW1dXCIgW25nRm9yVGVtcGxhdGVdPVwiY29sdW1uLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L3RyPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDx0ciBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogaXRlbT8ucm93Q29sb3IgPyBpdGVtPy5yb3dDb2xvciA6IG51bGwgfVwiPlxyXG5cdFx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0QGlmIChzaG93Rm9vdGVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj57eyBub0RhdGFGb3VuZExhYmVsKCkgfX08L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cImV4cG9ydC1vdmVybGF5LXBhbmVsXCI+XHJcblx0QGlmIChleHBvcnRGb3JtKSB7XHJcblx0XHQ8YXJpbC1mb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybVwiIGNsYXNzPVwidy0yMHJlbVwiPlxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0Rvc3lhIFRpcGknXCIgW2NvbHNdPVwieyBkZWZhdWx0OiAxMiB9XCI+XHJcblx0XHRcdFx0PGFyaWwtcmFkaW8tYnV0dG9uIGZvcm1Db250cm9sTmFtZT1cImV4cG9ydFR5cGVcIiBbb3B0aW9uc109XCJleHBvcnRUeXBlT3B0aW9uc1wiIC8+XHJcblx0XHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCInRG9zeWEgxLBzbWknXCIgW2NvbHNdPVwieyBkZWZhdWx0OiAxMiB9XCI+XHJcblx0XHRcdFx0PGFyaWwtdGV4dCBjbGFzcz1cInctZnVsbFwiIGZvcm1Db250cm9sTmFtZT1cImV4cG9ydExhYmVsXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwiY29sdW1uc1wiPlxyXG5cdFx0XHRcdDxwLW9yZGVyTGlzdFxyXG5cdFx0XHRcdFx0I29yZGVyTGlzdFJlZlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb2wtMTJcIlxyXG5cdFx0XHRcdFx0W3ZhbHVlXT1cImV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5jb250cm9sc1wiXHJcblx0XHRcdFx0XHRbbGlzdFN0eWxlXT1cInsgJ21heC1oZWlnaHQnOiAnMjByZW0nIH1cIlxyXG5cdFx0XHRcdFx0ZmlsdGVyQnk9XCJ2YWx1ZS50aXRsZVwiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbHRlclwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveFxyXG5cdFx0XHRcdFx0XHRcdFx0W2xhYmVsXT1cIicnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImlzQWxsU2VsZWN0ZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIiAvPlxyXG5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidmaWx0ZXInXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdFx0XHRcdFx0I2ZpbHRlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJvbGU9XCJ0ZXh0Ym94XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KGtleXVwKT1cIm9yZGVyTGlzdFJlZi5vbkZpbHRlcktleXVwKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwib3JkZXJMaXN0UmVmLmRpc2FibGVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXItaW5wdXQgcC1pbnB1dHRleHQgcC1jb21wb25lbnRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LWNvbCBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94IFtsYWJlbF09XCJjb2wudmFsdWUudGl0bGVcIiBbZm9ybUNvbnRyb2xdPVwiY29sLmNvbnRyb2xzLmNoZWNrZWRcIiAvPlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3Atb3JkZXJMaXN0PlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdDxhcmlsLWJ1dHRvbiBjbGFzcz1cImNvbC0xMlwiIFtsYWJlbF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5leHBvcnQnKVwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGlja0V2ZW50KT1cImV4cG9ydCgpXCIgLz5cclxuXHRcdDwvYXJpbC1mb3JtPlxyXG5cdH1cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuIl19
@@ -29,7 +29,7 @@ export class ValueComponent {
29
29
  this.arrayTypeMaxBadgeCount = input(3);
30
30
  this.colorList = ['#8ECEEB', '#5EBAE0', '#2C9CCB', '#1D7DAC', '#19658B', '185574', '7D85FC', '5957F5', '194761', '5141EA'];
31
31
  this.display = computed(() => {
32
- const appliedFormat = this.format() || (this.type() === 'decimal' ? '#.000' : '0.###');
32
+ const appliedFormat = this.format() || (this.type() === 'decimal' ? 'customDecimalFormat' : '0.###');
33
33
  switch (this.type()) {
34
34
  case 'text':
35
35
  return this.model();
@@ -68,12 +68,28 @@ export class ValueComponent {
68
68
  formatNumber(value, formatString, isDecimal) {
69
69
  const [integerPart, decimalPart = ''] = value.toString().split('.');
70
70
  const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
71
- return isDecimal ? `${formattedInteger},${this.formatDecimal(decimalPart, formatString)}` : formattedInteger;
71
+ if (formatString === 'customDecimalFormat') {
72
+ const customFormattedDecimal = this.customFormatDecimal(decimalPart);
73
+ if (customFormattedDecimal) {
74
+ return `${formattedInteger},${customFormattedDecimal}`;
75
+ }
76
+ else {
77
+ return formattedInteger;
78
+ }
79
+ }
80
+ else {
81
+ return isDecimal ? `${formattedInteger},${this.formatDecimal(decimalPart, formatString)}` : formattedInteger;
82
+ }
72
83
  }
73
84
  formatDecimal(decimalPart, formatString) {
74
85
  const decimalPlaces = formatString.includes('.') ? formatString.split('.')[1].length : 3;
75
86
  return decimalPart.slice(0, decimalPlaces).padEnd(decimalPlaces, '0');
76
87
  }
88
+ customFormatDecimal(decimalPart) {
89
+ const roundedDecimal = (parseFloat('0.' + decimalPart) || 0).toFixed(3);
90
+ const formattedDecimal = roundedDecimal.substring(2);
91
+ return formattedDecimal.replace(/0+$/, '');
92
+ }
77
93
  getArrayItemValue(item) {
78
94
  return item[this.arrayTypeDisplayName()];
79
95
  }
@@ -84,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
84
100
  type: Component,
85
101
  args: [{ standalone: true, selector: 'aril-value', imports: [BadgeComponent, TooltipModule, TranslocoModule, OverlayPanelModule, EnumColorPickerPipe, SlicePipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService], template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (enumSelectionDisplay() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\"></aril-badge>\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span\r\n\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t{{ type() === 'text' && isTextClamp() && display().length > 15 ? display().substr(0, 14) + '...' : display() }}\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n" }]
86
102
  }], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.SelectionGroupService }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBcUJ4QyxNQUFNLE9BQU8sY0FBYztJQWMxQixZQUNRLGdCQUFrQyxFQUNqQyxxQkFBNEM7UUFEN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBZnJELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQyxDQUFDO1FBQzFELFNBQUksR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BD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V0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBZ0RELGlCQUFpQixDQUFDLElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTlFVyxjQUFjO2tHQUFkLGNBQWMsMjZDQUZmLENBQUMsYUFBYSxDQUFDLDBCQy9CM0IsODZFQXlEQSw0Q0Q1QlcsY0FBYyxvSUFBRSxhQUFhLHFYQUFFLGVBQWUsOEJBQUUsa0JBQWtCLDhWQUFFLG1CQUFtQixtREFBRSxTQUFTOzsyRkFJaEcsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUViLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLG1CQUM1Rix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxuLyogbnVtYmVyLWZvcm1hdC5qcyAqL1xyXG4vLyBUT0RPIGRlY2xhcmUgY29uc3QgZm9ybWF0OiBGdW5jdGlvbjtcclxuXHJcbi8qKiBUeXBlIEZvcm1hdHNcclxuICogIy4wMCAtPiBWaXJnw7xsZGVuIHNvbnJhIDIgaGFuZSAoRGVjaW1hbClcclxuICogIy4wMDAwIC0+IFZpcmfDvGxkZW4gc29ucmEgNCBoYW5lIChEZWNpbWFsKVxyXG4gKiAwLiMjIyAtPiBTYWRlY2UgdGFtIHNhecSxIGfDtnN0ZXJtZXNpIGnDp2luIChOdW1iZXIpXHJcbiAqL1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAncGFzc3dvcmQnIHwgJ2VudW0nIHwgJ2FycmF5JyB8ICdpc29EYXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXZhbHVlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtCYWRnZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZSwgVHJhbnNsb2NvTW9kdWxlLCBPdmVybGF5UGFuZWxNb2R1bGUsIEVudW1Db2xvclBpY2tlclBpcGUsIFNsaWNlUGlwZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlQ29tcG9uZW50IHtcclxuXHRtb2RlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk+KCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXM+KCd0ZXh0Jyk7XHJcblx0Zm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGlzQ2xpY2thYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGdyb3VwTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dDxzdHJpbmc+KCdBTEwnKTtcclxuXHRpc1RleHRDbGFtcCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzdHlsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcblx0Ly8gb25seSBmb3IgYXJyYXkgdHlwZVxyXG5cdGFycmF5VHlwZURpc3BsYXlOYW1lID0gaW5wdXQ8c3RyaW5nPigndmFsdWVEZXNjJyk7XHJcblx0YXJyYXlUeXBlTWF4QmFkZ2VDb3VudCA9IGlucHV0PG51bWJlcj4oMyk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBmb3JtYXRTdHJpbmc6IHN0cmluZywgaXNEZWNpbWFsOiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IFtpbnRlZ2VyUGFydCwgZGVjaW1hbFBhcnQgPSAnJ10gPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XHJcblx0XHRjb25zdCBmb3JtYXR0ZWRJbnRlZ2VyID0gaW50ZWdlclBhcnQucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJy4nKTtcclxuXHRcdHJldHVybiBpc0RlY2ltYWwgPyBgJHtmb3JtYXR0ZWRJbnRlZ2VyfSwke3RoaXMuZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydCwgZm9ybWF0U3RyaW5nKX1gIDogZm9ybWF0dGVkSW50ZWdlcjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydDogc3RyaW5nLCBmb3JtYXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0U3RyaW5nLmluY2x1ZGVzKCcuJykgPyBmb3JtYXRTdHJpbmcuc3BsaXQoJy4nKVsxXS5sZW5ndGggOiAzO1xyXG5cdFx0cmV0dXJuIGRlY2ltYWxQYXJ0LnNsaWNlKDAsIGRlY2ltYWxQbGFjZXMpLnBhZEVuZChkZWNpbWFsUGxhY2VzLCAnMCcpO1xyXG5cdH1cclxuXHJcblx0Y29sb3JMaXN0ID0gWycjOEVDRUVCJywgJyM1RUJBRTAnLCAnIzJDOUNDQicsICcjMUQ3REFDJywgJyMxOTY1OEInLCAnMTg1NTc0JywgJzdEODVGQycsICc1OTU3RjUnLCAnMTk0NzYxJywgJzUxNDFFQSddO1xyXG5cclxuXHRkaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgYXBwbGllZEZvcm1hdCA9IHRoaXMuZm9ybWF0KCkgfHwgKHRoaXMudHlwZSgpID09PSAnZGVjaW1hbCcgPyAnIy4wMDAnIDogJzAuIyMjJyk7XHJcblxyXG5cdFx0c3dpdGNoICh0aGlzLnR5cGUoKSkge1xyXG5cdFx0XHRjYXNlICd0ZXh0JzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5tb2RlbCgpO1xyXG5cdFx0XHRjYXNlICdudW1iZXInOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZvcm1hdE51bWJlcig8bnVtYmVyPnRoaXMubW9kZWwoKSwgYXBwbGllZEZvcm1hdCwgZmFsc2UpO1xyXG5cdFx0XHRjYXNlICdkZWNpbWFsJzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIoPG51bWJlcj50aGlzLm1vZGVsKCksIGFwcGxpZWRGb3JtYXQsIHRydWUpO1xyXG5cdFx0XHRjYXNlICdkYXRlJzpcclxuXHRcdFx0XHRyZXR1cm4gKDxudW1iZXI+dGhpcy5tb2RlbCgpKS5sb25nVG9TdHJpbmcodGhpcy5mb3JtYXQoKSA/PyAndGltZScpO1xyXG5cdFx0XHRjYXNlICdwYXNzd29yZCc6XHJcblx0XHRcdFx0cmV0dXJuICg8c3RyaW5nPnRoaXMubW9kZWwoKSkucmVwbGFjZSgvLi9nLCAnKicpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIHR5cGU6ICdcIiArIHRoaXMudHlwZSgpICsgXCInXCIpO1xyXG5cdFx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0ZW51bVNlbGVjdGlvbkRpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh0aGlzLmdyb3VwTmFtZSgpISwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSEpO1xyXG5cclxuXHRcdHJldHVybiBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk/LnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0fSk7XHJcblxyXG5cdGVudW1CYWRnZUJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID1cclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dGhpcy5ncm91cE5hbWUoKSF9fiR7dGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSF9YF07XHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtcyA9IHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcyA/PyBbXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtID0gc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk7XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSB7XHJcblx0XHRcdHJldHVybiAnIzMzMyc7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29sb3JMaXN0W3NlbGVjdGlvbkl0ZW0uc2hvd09yZGVyXSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmNvbG9yTGlzdFtzZWxlY3Rpb25JdGVtLnNob3dPcmRlcl07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJyNBMkFGRkYnO1xyXG5cdH0pO1xyXG5cclxuXHRnZXRBcnJheUl0ZW1WYWx1ZShpdGVtOiBhbnkpOiBhbnkge1xyXG5cdFx0cmV0dXJuIGl0ZW1bdGhpcy5hcnJheVR5cGVEaXNwbGF5TmFtZSgpXTtcclxuXHR9XHJcbn1cclxuIiwiQGlmIChtb2RlbCgpID09IHVuZGVmaW5lZCB8fCBtb2RlbCgpID09IG51bGwpIHtcclxuXHQ8aVxyXG5cdFx0Y2xhc3M9XCJwaSBwaS1taW51c1wiXHJcblx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLm5vSXRlbVRvU2hvdycpXCI+PC9pPlxyXG59IEBlbHNlIHtcclxuXHRAaWYgKHR5cGUoKSA9PSAnYm9vbCcpIHtcclxuXHRcdEBpZiAoISFtb2RlbCgpKSB7XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hlY2tcIiBzdHlsZT1cImNvbG9yOiBncmVlblwiPjwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXRpbWVzXCIgc3R5bGU9XCJjb2xvcjogY3JpbXNvblwiPjwvaT5cclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICh0eXBlKCkgPT09ICdlbnVtJykge1xyXG5cdFx0QGlmIChlbnVtU2VsZWN0aW9uRGlzcGxheSgpID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHQ8aVxyXG5cdFx0XHRcdGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlXCJcclxuXHRcdFx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5pbnZhbGlkRGF0YUZvcm1hdCcpXCI+XHJcblx0XHRcdDwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJlbnVtQmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiIFt2YWx1ZV09XCJlbnVtU2VsZWN0aW9uRGlzcGxheSgpXCI+PC9hcmlsLWJhZGdlPlxyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKHR5cGUoKSA9PT0gJ2FycmF5Jykge1xyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcblx0XHRcdEBmb3IgKGl0ZW0gb2YgbW9kZWwoKS5zbGljZSgwLCBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSkgfHwgJycgfCBlbnVtQ29sb3JQaWNrZXJcIiBbdmFsdWVdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSlcIiAvPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBpZiAobW9kZWwoKS5sZW5ndGggPiBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpIHtcclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWVsbGlwc2lzLXYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3AudG9nZ2xlKCRldmVudClcIj48L2k+XHJcblxyXG5cdFx0XHRcdDxwLW92ZXJsYXlQYW5lbCAjb3AgY2xhc3M9XCJzaGFkb3ctNFwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTIgbWF4LXctMzByZW0gbWF4LWgtMjByZW0gcHItMyBvdmVyZmxvdy15LWF1dG9cIj5cclxuXHRcdFx0XHRcdFx0QGZvciAoaXRlbSBvZiBtb2RlbCgpIHwgc2xpY2U6IGFycmF5VHlwZU1heEJhZGdlQ291bnQoKTsgdHJhY2sgaXRlbSkge1xyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWJhZGdlXHJcblx0XHRcdFx0XHRcdFx0XHRbYmFja2dyb3VuZF09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKSB8fCAnJyB8IGVudW1Db2xvclBpY2tlclwiXHJcblx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSlcIiAvPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L3Atb3ZlcmxheVBhbmVsPlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHR9IEBlbHNlIHtcclxuXHRcdEBpZiAoZGlzcGxheSgpID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHQ8aVxyXG5cdFx0XHRcdGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlXCJcclxuXHRcdFx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5pbnZhbGlkRGF0YUZvcm1hdCcpXCI+XHJcblx0XHRcdDwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0eXBlKCkgPT09ICd0ZXh0JyAmJiBpc1RleHRDbGFtcCgpID8gZGlzcGxheSgpPy50b1N0cmluZygpIDogJydcIlxyXG5cdFx0XHRcdFtzdHlsZV09XCJpc0NsaWNrYWJsZSgpID8geyAndGV4dC1kZWNvcmF0aW9uJzogJ3VuZGVybGluZScsIGNvbG9yOiAnIzAwMDBFRScsIGN1cnNvcjogJ3BvaW50ZXInIH0gOiAnJ1wiPlxyXG5cdFx0XHRcdHt7IHR5cGUoKSA9PT0gJ3RleHQnICYmIGlzVGV4dENsYW1wKCkgJiYgZGlzcGxheSgpLmxlbmd0aCA+IDE1ID8gZGlzcGxheSgpLnN1YnN0cigwLCAxNCkgKyAnLi4uJyA6IGRpc3BsYXkoKSB9fVxyXG5cdFx0XHQ8L3NwYW4+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBcUJ4QyxNQUFNLE9BQU8sY0FBYztJQWMxQixZQUNRLGdCQUFrQyxFQUNqQyxxQkFBNEM7UUFEN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBZnJELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQyxDQUFDO1FBQzFELFNBQUksR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM1Qix1QkFBa0IsR0FBRyxLQUFLLENBQVMsS0FBSyxDQUFDLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXhCLHNCQUFzQjtRQUN0Qix5QkFBb0IsR0FBRyxLQUFLLENBQVMsV0FBVyxDQUFDLENBQUM7UUFDbEQsMkJBQXNCLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBb0MxQyxjQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV0SCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFckcsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDckIsS0FBSyxNQUFNO29CQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQixLQUFLLFFBQVE7b0JBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RFLEtBQUssU0FBUztvQkFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDckUsS0FBSyxNQUFNO29CQUNWLE9BQWdCLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDO2dCQUNyRSxLQUFLLFVBQVU7b0JBQ2QsT0FBZ0IsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xEO29CQUNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILHlCQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxjQUFjLEdBQ25CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUcsRUFBRSxDQUFDLENBQUM7WUFFcEcsSUFBSSxDQUFDLGNBQWM7Z0JBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFHLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFHLENBQUMsQ0FBQztZQUV6RyxPQUFPLGNBQWMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO1FBQ3RHLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkJBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxNQUFNLGNBQWMsR0FDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRyxFQUFFLENBQUMsQ0FBQztZQUNwRyxNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUU1RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBRWxGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxNQUFNLENBQUM7WUFDZixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2xFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBM0VBLENBQUM7SUFFSSxZQUFZLENBQUMsS0FBYSxFQUFFLFlBQW9CLEVBQUUsU0FBa0I7UUFDM0UsTUFBTSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRSxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFM0UsSUFBSSxZQUFZLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxnQkFBZ0IsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDUCxPQUFPLGdCQUFnQixDQUFDO1lBQ3pCLENBQUM7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBQzlHLENBQUM7SUFDRixDQUFDO0lBR08sYUFBYSxDQUFDLFdBQW1CLEVBQUUsWUFBb0I7UUFDOUQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFdBQW1CO1FBQzlDLE1BQU0sY0FBYyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBZ0RELGlCQUFpQixDQUFDLElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQWhHVyxjQUFjO2tHQUFkLGNBQWMsMjZDQUZmLENBQUMsYUFBYSxDQUFDLDBCQy9CM0IsODZFQXlEQSw0Q0Q1QlcsY0FBYyxvSUFBRSxhQUFhLHFYQUFFLGVBQWUsOEJBQUUsa0JBQWtCLDhWQUFFLG1CQUFtQixtREFBRSxTQUFTOzsyRkFJaEcsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUViLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLG1CQUM1Rix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxuLyogbnVtYmVyLWZvcm1hdC5qcyAqL1xyXG4vLyBUT0RPIGRlY2xhcmUgY29uc3QgZm9ybWF0OiBGdW5jdGlvbjtcclxuXHJcbi8qKiBUeXBlIEZvcm1hdHNcclxuICogIy4wMCAtPiBWaXJnw7xsZGVuIHNvbnJhIDIgaGFuZSAoRGVjaW1hbClcclxuICogIy4wMDAwIC0+IFZpcmfDvGxkZW4gc29ucmEgNCBoYW5lIChEZWNpbWFsKVxyXG4gKiAwLiMjIyAtPiBTYWRlY2UgdGFtIHNhecSxIGfDtnN0ZXJtZXNpIGnDp2luIChOdW1iZXIpXHJcbiAqL1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAncGFzc3dvcmQnIHwgJ2VudW0nIHwgJ2FycmF5JyB8ICdpc29EYXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXZhbHVlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtCYWRnZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZSwgVHJhbnNsb2NvTW9kdWxlLCBPdmVybGF5UGFuZWxNb2R1bGUsIEVudW1Db2xvclBpY2tlclBpcGUsIFNsaWNlUGlwZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlQ29tcG9uZW50IHtcclxuXHRtb2RlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk+KCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXM+KCd0ZXh0Jyk7XHJcblx0Zm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGlzQ2xpY2thYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGdyb3VwTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dDxzdHJpbmc+KCdBTEwnKTtcclxuXHRpc1RleHRDbGFtcCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzdHlsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcblx0Ly8gb25seSBmb3IgYXJyYXkgdHlwZVxyXG5cdGFycmF5VHlwZURpc3BsYXlOYW1lID0gaW5wdXQ8c3RyaW5nPigndmFsdWVEZXNjJyk7XHJcblx0YXJyYXlUeXBlTWF4QmFkZ2VDb3VudCA9IGlucHV0PG51bWJlcj4oMyk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBmb3JtYXRTdHJpbmc6IHN0cmluZywgaXNEZWNpbWFsOiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IFtpbnRlZ2VyUGFydCwgZGVjaW1hbFBhcnQgPSAnJ10gPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XHJcblxyXG5cdFx0Y29uc3QgZm9ybWF0dGVkSW50ZWdlciA9IGludGVnZXJQYXJ0LnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csICcuJyk7XHJcblxyXG5cdFx0aWYgKGZvcm1hdFN0cmluZyA9PT0gJ2N1c3RvbURlY2ltYWxGb3JtYXQnKSB7XHJcblx0XHRcdGNvbnN0IGN1c3RvbUZvcm1hdHRlZERlY2ltYWwgPSB0aGlzLmN1c3RvbUZvcm1hdERlY2ltYWwoZGVjaW1hbFBhcnQpO1xyXG5cdFx0XHRpZiAoY3VzdG9tRm9ybWF0dGVkRGVjaW1hbCkge1xyXG5cdFx0XHRcdHJldHVybiBgJHtmb3JtYXR0ZWRJbnRlZ2VyfSwke2N1c3RvbUZvcm1hdHRlZERlY2ltYWx9YDtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXR1cm4gZm9ybWF0dGVkSW50ZWdlcjtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGlzRGVjaW1hbCA/IGAke2Zvcm1hdHRlZEludGVnZXJ9LCR7dGhpcy5mb3JtYXREZWNpbWFsKGRlY2ltYWxQYXJ0LCBmb3JtYXRTdHJpbmcpfWAgOiBmb3JtYXR0ZWRJbnRlZ2VyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdHByaXZhdGUgZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydDogc3RyaW5nLCBmb3JtYXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0U3RyaW5nLmluY2x1ZGVzKCcuJykgPyBmb3JtYXRTdHJpbmcuc3BsaXQoJy4nKVsxXS5sZW5ndGggOiAzO1xyXG5cdFx0cmV0dXJuIGRlY2ltYWxQYXJ0LnNsaWNlKDAsIGRlY2ltYWxQbGFjZXMpLnBhZEVuZChkZWNpbWFsUGxhY2VzLCAnMCcpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjdXN0b21Gb3JtYXREZWNpbWFsKGRlY2ltYWxQYXJ0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3Qgcm91bmRlZERlY2ltYWwgPSAocGFyc2VGbG9hdCgnMC4nICsgZGVjaW1hbFBhcnQpIHx8IDApLnRvRml4ZWQoMyk7XHJcblx0XHRjb25zdCBmb3JtYXR0ZWREZWNpbWFsID0gcm91bmRlZERlY2ltYWwuc3Vic3RyaW5nKDIpO1xyXG5cdFx0cmV0dXJuIGZvcm1hdHRlZERlY2ltYWwucmVwbGFjZSgvMCskLywgJycpO1xyXG5cdH1cclxuXHJcblx0Y29sb3JMaXN0ID0gWycjOEVDRUVCJywgJyM1RUJBRTAnLCAnIzJDOUNDQicsICcjMUQ3REFDJywgJyMxOTY1OEInLCAnMTg1NTc0JywgJzdEODVGQycsICc1OTU3RjUnLCAnMTk0NzYxJywgJzUxNDFFQSddO1xyXG5cclxuXHRkaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgYXBwbGllZEZvcm1hdCA9IHRoaXMuZm9ybWF0KCkgfHwgKHRoaXMudHlwZSgpID09PSAnZGVjaW1hbCcgPyAnY3VzdG9tRGVjaW1hbEZvcm1hdCcgOiAnMC4jIyMnKTtcclxuXHJcblx0XHRzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XHJcblx0XHRcdGNhc2UgJ3RleHQnOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLm1vZGVsKCk7XHJcblx0XHRcdGNhc2UgJ251bWJlcic6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKDxudW1iZXI+dGhpcy5tb2RlbCgpLCBhcHBsaWVkRm9ybWF0LCBmYWxzZSk7XHJcblx0XHRcdGNhc2UgJ2RlY2ltYWwnOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZvcm1hdE51bWJlcig8bnVtYmVyPnRoaXMubW9kZWwoKSwgYXBwbGllZEZvcm1hdCwgdHJ1ZSk7XHJcblx0XHRcdGNhc2UgJ2RhdGUnOlxyXG5cdFx0XHRcdHJldHVybiAoPG51bWJlcj50aGlzLm1vZGVsKCkpLmxvbmdUb1N0cmluZyh0aGlzLmZvcm1hdCgpID8/ICd0aW1lJyk7XHJcblx0XHRcdGNhc2UgJ3Bhc3N3b3JkJzpcclxuXHRcdFx0XHRyZXR1cm4gKDxzdHJpbmc+dGhpcy5tb2RlbCgpKS5yZXBsYWNlKC8uL2csICcqJyk7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcihcIkludmFsaWQgdHlwZTogJ1wiICsgdGhpcy50eXBlKCkgKyBcIidcIik7XHJcblx0XHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRlbnVtU2VsZWN0aW9uRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID1cclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dGhpcy5ncm91cE5hbWUoKSF9fiR7dGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSF9YF07XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25Hcm91cCkgdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHRoaXMuZ3JvdXBOYW1lKCkhLCB0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpISk7XHJcblxyXG5cdFx0cmV0dXJuIHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcy5maW5kKCh0KSA9PiB0LnNlbGVjdGlvbktleSA9PT0gdGhpcy5tb2RlbCgpKT8uc2VsZWN0aW9uRGlzcGxheTtcclxuXHR9KTtcclxuXHJcblx0ZW51bUJhZGdlQmFja2dyb3VuZENvbG9yID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPVxyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt0aGlzLmdyb3VwTmFtZSgpIX1+JHt0aGlzLnBhcmVudFNlbGVjdGlvbktleSgpIX1gXTtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW1zID0gc2VsZWN0aW9uR3JvdXA/LnNlbGVjdGlvbkl0ZW1zID8/IFtdO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW0gPSBzZWxlY3Rpb25JdGVtcy5maW5kKCh0KSA9PiB0LnNlbGVjdGlvbktleSA9PT0gdGhpcy5tb2RlbCgpKTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkl0ZW0pIHtcclxuXHRcdFx0cmV0dXJuICcjMzMzJztcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5jb2xvckxpc3Rbc2VsZWN0aW9uSXRlbS5zaG93T3JkZXJdICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuY29sb3JMaXN0W3NlbGVjdGlvbkl0ZW0uc2hvd09yZGVyXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiAnI0EyQUZGRic7XHJcblx0fSk7XHJcblxyXG5cdGdldEFycmF5SXRlbVZhbHVlKGl0ZW06IGFueSk6IGFueSB7XHJcblx0XHRyZXR1cm4gaXRlbVt0aGlzLmFycmF5VHlwZURpc3BsYXlOYW1lKCldO1xyXG5cdH1cclxufVxyXG4iLCJAaWYgKG1vZGVsKCkgPT0gdW5kZWZpbmVkIHx8IG1vZGVsKCkgPT0gbnVsbCkge1xyXG5cdDxpXHJcblx0XHRjbGFzcz1cInBpIHBpLW1pbnVzXCJcclxuXHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRbcFRvb2x0aXBdPVwidGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndmFsaWRhdGlvbnMubm9JdGVtVG9TaG93JylcIj48L2k+XHJcbn0gQGVsc2Uge1xyXG5cdEBpZiAodHlwZSgpID09ICdib29sJykge1xyXG5cdFx0QGlmICghIW1vZGVsKCkpIHtcclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jaGVja1wiIHN0eWxlPVwiY29sb3I6IGdyZWVuXCI+PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXNcIiBzdHlsZT1cImNvbG9yOiBjcmltc29uXCI+PC9pPlxyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKHR5cGUoKSA9PT0gJ2VudW0nKSB7XHJcblx0XHRAaWYgKGVudW1TZWxlY3Rpb25EaXNwbGF5KCkgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdDxpXHJcblx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIlxyXG5cdFx0XHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLmludmFsaWREYXRhRm9ybWF0JylcIj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxhcmlsLWJhZGdlIFtiYWNrZ3JvdW5kXT1cImVudW1CYWRnZUJhY2tncm91bmRDb2xvcigpXCIgW3ZhbHVlXT1cImVudW1TZWxlY3Rpb25EaXNwbGF5KClcIj48L2FyaWwtYmFkZ2U+XHJcblx0XHR9XHJcblx0fSBAZWxzZSBpZiAodHlwZSgpID09PSAnYXJyYXknKSB7XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuXHRcdFx0QGZvciAoaXRlbSBvZiBtb2RlbCgpLnNsaWNlKDAsIGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSk7IHRyYWNrIGl0ZW0pIHtcclxuXHRcdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKSB8fCAnJyB8IGVudW1Db2xvclBpY2tlclwiIFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIC8+XHJcblx0XHRcdH1cclxuXHRcdFx0QGlmIChtb2RlbCgpLmxlbmd0aCA+IGFycmF5VHlwZU1heEJhZGdlQ291bnQoKSkge1xyXG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktZWxsaXBzaXMtdiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuXHJcblx0XHRcdFx0PHAtb3ZlcmxheVBhbmVsICNvcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBtYXgtdy0zMHJlbSBtYXgtaC0yMHJlbSBwci0zIG92ZXJmbG93LXktYXV0b1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIG1vZGVsKCkgfCBzbGljZTogYXJyYXlUeXBlTWF4QmFkZ2VDb3VudCgpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYmFkZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFtiYWNrZ3JvdW5kXT1cImdldEFycmF5SXRlbVZhbHVlKGl0ZW0pIHx8ICcnIHwgZW51bUNvbG9yUGlja2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1vdmVybGF5UGFuZWw+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGlmIChkaXNwbGF5KCkgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdDxpXHJcblx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIlxyXG5cdFx0XHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLmludmFsaWREYXRhRm9ybWF0JylcIj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxzcGFuXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInR5cGUoKSA9PT0gJ3RleHQnICYmIGlzVGV4dENsYW1wKCkgPyBkaXNwbGF5KCk/LnRvU3RyaW5nKCkgOiAnJ1wiXHJcblx0XHRcdFx0W3N0eWxlXT1cImlzQ2xpY2thYmxlKCkgPyB7ICd0ZXh0LWRlY29yYXRpb24nOiAndW5kZXJsaW5lJywgY29sb3I6ICcjMDAwMEVFJywgY3Vyc29yOiAncG9pbnRlcicgfSA6ICcnXCI+XHJcblx0XHRcdFx0e3sgdHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSAmJiBkaXNwbGF5KCkubGVuZ3RoID4gMTUgPyBkaXNwbGF5KCkuc3Vic3RyKDAsIDE0KSArICcuLi4nIDogZGlzcGxheSgpIH19XHJcblx0XHRcdDwvc3Bhbj5cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
@@ -70,12 +70,14 @@ export class EnumPickerComponent extends BaseInputComponent {
70
70
  // eslint-disable-next-line no-useless-escape
71
71
  const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
72
72
  const selectionGroup = await firstValueFrom(this.http.post(hostApi + '/selection-group/load', payload));
73
- this.originalSelectionItems = selectionGroup?.selectionItems;
73
+ this.originalSelectionItems = selectionGroup?.selectionItems || [];
74
74
  this.updateSelectionItemsText();
75
75
  }
76
76
  updateSelectionItemsText() {
77
- if (!this.originalSelectionItems || this.originalSelectionItems.length === 0)
77
+ if (!this.originalSelectionItems || this.originalSelectionItems.length === 0) {
78
+ this.selectionItems.set(null);
78
79
  return;
80
+ }
79
81
  const currentLang = this.translocoService.getActiveLang();
80
82
  this.selectionItems.set(null);
81
83
  this.selectionItems.set(this.originalSelectionItems.map((item) => ({
@@ -95,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
95
97
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { onSelectionChanged: [{
96
98
  type: Output
97
99
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy9lbnVtUGlja2VyL3NyYy9lbnVtLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2VudW1QaWNrZXIvc3JjL2VudW0tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7O0FBWXJCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFrQzFELFlBQ2tCLElBQWdCLEVBQzFCLGdCQUFrQztRQUV6QyxLQUFLLEVBQUUsQ0FBQztRQUhTLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQW5DMUMsbUJBQWMsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQzlDLDJCQUFzQixHQUFvQixFQUFFLENBQUM7UUFDckQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0Qix1QkFBa0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1QixVQUFLLEdBQUcsS0FBSyxFQUFtQixDQUFDO1FBQ2pDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLHlGQUF5RjtRQUN6RixZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxLQUFLLENBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRTFDOztXQUVHO1FBRUgsdUJBQWtCLEdBQUcsS0FBSyxDQUFTLG9CQUFvQixDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDakcsYUFBUSxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUNqQyxVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1QixvQkFBZSxHQUFHLEtBQUssQ0FBTSxLQUFLLENBQUMsQ0FBQztRQUUxQix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQU9oRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFNLElBQUksQ0FBQyxjQUFjLEVBQXNCLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVc7UUFDbkIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQjtRQUN0QixNQUFNLE9BQU8sR0FBd0I7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1NBQzdDLENBQUM7UUFDRiw2Q0FBNkM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sY0FBYyxHQUFHLE1BQU0sY0FBYyxDQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBb0IsT0FBTyxHQUFHLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUM3RSxDQUFDO1FBRUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsRUFBRSxjQUFjLENBQUU7UUFDOUQsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLHdCQUF3QjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFckYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTFELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUN0QixJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDdEIsSUFBSSxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSxDQUFDLFdBQVcsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ3hCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7U0FDM0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNILENBQUM7OEdBeEZXLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHc3RUFIcEIsQ0FBQyxxQkFBcUIsQ0FBQyw2R0N6Qm5DLHlpREFxQ0EsMkNEYlcsbUJBQW1CLHlUQUFFLGlCQUFpQiw0cUZBQUUsdUJBQXVCLDJEQUFFLGVBQWUsOEJBQUUsaUJBQWlCOzsyRkFJakcsbUJBQW1CO2tCQVIvQixTQUFTO2lDQUNHLElBQUksWUFDTiw4RUFBOEUsV0FFL0UsQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUMsYUFDbkcsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFDbEIsQ0FBQyxzQkFBc0IsQ0FBQzs4R0FrQzlCLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgRHhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvc2VsZWN0LWJveCc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHtcclxuXHRCYXNlSW5wdXRDb21wb25lbnQsXHJcblx0RFhJbnB1dEVycm9yTWVzc2FnZVBpcGUsXHJcblx0SW5wdXRFcnJvck1lc3NhZ2VQaXBlLFxyXG5cdFZhbHVlQWNjZXNzb3JEaXJlY3RpdmVcclxufSBmcm9tICdhcmlsL3VpL2xpYic7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RCb3hJdGVtLCBTZWxlY3Rpb25Hcm91cERUTywgU2VsZWN0aW9uSXRlbSwgU2VsZWN0aW9uUmVxdWVzdERUTyB9IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdlbnVtLXBpY2tlcltuZ01vZGVsXSwgZW51bS1waWNrZXJbZm9ybUNvbnRyb2xdLCBlbnVtLXBpY2tlcltmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW51bS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRFhJbnB1dEVycm9yTWVzc2FnZVBpcGUsIFRyYW5zbG9jb01vZHVsZSwgTXVsdGlTZWxlY3RNb2R1bGVdLFxyXG5cdHByb3ZpZGVyczogW0lucHV0RXJyb3JNZXNzYWdlUGlwZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW51bVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0c2VsZWN0aW9uSXRlbXMgPSBzaWduYWw8U2VsZWN0Qm94SXRlbVtdIHwgbnVsbD4obnVsbCk7XHJcblx0cHJpdmF0ZSBvcmlnaW5hbFNlbGVjdGlvbkl0ZW1zOiBTZWxlY3Rpb25JdGVtW10gPSBbXTtcclxuXHQvKipcclxuXHQgKiBTaW5nbGUgU2VsZWN0IFN0YXRlc1xyXG5cdCAqL1xyXG5cclxuXHRpdGVtS2V5ID0gaW5wdXQoJ2tleScpO1xyXG5cdGl0ZW1UZXh0ID0gaW5wdXQoJ3RleHQnKTtcclxuXHRncm91cE5hbWUgPSBpbnB1dCgnJyk7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5ID0gaW5wdXQobnVsbCk7XHJcblx0dGFiaW5kZXggPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdGl0ZW1zID0gaW5wdXQ8U2VsZWN0Qm94SXRlbVtdPigpO1xyXG5cdGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2VsZWN0ZWRJdGVtVGV4dDogc3RyaW5nID0gJyc7XHJcblx0LyoqICogQGRlc2NyaXB0aW9uIHdoZW4gZ3JvdXBlZCA9IHRydWUsIG9wdGlvbiBpdGVtIHN0cnVjdHVyZSB7IGtleTpzdHJpbmcsIGl0ZW1zOltdIH0gKi9cclxuXHRncm91cGVkID0gaW5wdXQoZmFsc2UpO1xyXG5cdHNob3dDbGVhckJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2VhcmNoRXhwciA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPignJyk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE11bHRpIFNlbGVjdCBTdGF0ZXNcclxuXHQgKi9cclxuXHJcblx0c2VsZWN0ZWRJdGVtc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignezB9ICBkZcSfZXIgc2XDp2lsZGknKTsgLy8gZGVmYXVsdCB2YWx1ZSAtPiAoezB9IGl0ZW1zIHNlbGVjdGVkXHJcblx0YXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7XHJcblx0c3R5bGUgPSBpbnB1dDxvYmplY3Q+KHt9KTtcclxuXHRzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0dG9vbHRpcCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PGFueT4oJ3RvcCcpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCb3hJdGVtPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ3JvdXBOYW1lKCkgfHwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSkgdGhpcy5nZXRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25JdGVtcygpICYmICAodGhpcy5zZWxlY3Rpb25JdGVtcygpIGFzIFNlbGVjdEJveEl0ZW1bXSk/Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdGlvbkl0ZW1zVGV4dCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHNldFRpdGxlKGV2ZW50PzogYW55KSB7XHJcblx0XHRpZiAoZXZlbnQgJiYgZXZlbnRbdGhpcy5pdGVtVGV4dCgpXS5sZW5ndGggPiAyNSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbVRleHQgPSBldmVudCA/IGV2ZW50W3RoaXMuaXRlbVRleHQoKV0gOiAnJztcclxuXHRcdH1cclxuXHRcdHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0U2VsZWN0aW9uSXRlbXMoKSB7XHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWU6IHRoaXMuZ3JvdXBOYW1lKCksXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleTogdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKVxyXG5cdFx0fTtcclxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxyXG5cdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDxTZWxlY3Rpb25Hcm91cERUTz4oaG9zdEFwaSArICcvc2VsZWN0aW9uLWdyb3VwL2xvYWQnLCBwYXlsb2FkKVxyXG5cdFx0KTtcclxuXHJcblx0XHR0aGlzLm9yaWdpbmFsU2VsZWN0aW9uSXRlbXMgPSBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMgO1xyXG5cdFx0dGhpcy51cGRhdGVTZWxlY3Rpb25JdGVtc1RleHQoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uSXRlbXNUZXh0KCkge1xyXG5cdFx0aWYgKCF0aGlzLm9yaWdpbmFsU2VsZWN0aW9uSXRlbXMgfHwgdGhpcy5vcmlnaW5hbFNlbGVjdGlvbkl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGlvbkl0ZW1zLnNldChudWxsKTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGlvbkl0ZW1zLnNldChcclxuXHRcdFx0dGhpcy5vcmlnaW5hbFNlbGVjdGlvbkl0ZW1zLm1hcCgoaXRlbTogU2VsZWN0aW9uSXRlbSkgPT4gKHtcclxuXHRcdFx0XHRrZXk6IGl0ZW0uc2VsZWN0aW9uS2V5LFxyXG5cdFx0XHRcdHRleHQ6IGl0ZW0/LnNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz8uW2N1cnJlbnRMYW5nXVxyXG5cdFx0XHRcdFx0PyBpdGVtLnNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5c1tjdXJyZW50TGFuZ11cclxuXHRcdFx0XHRcdDogaXRlbS5zZWxlY3Rpb25EaXNwbGF5LFxyXG5cdFx0XHRcdHBhcmVudFNlbGVjdGlvbktleTogaXRlbS5wYXJlbnRTZWxlY3Rpb25LZXlcclxuXHRcdFx0fSkpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcbn0iLCJAaWYoaXNNdWx0aXBsZSgpKXtcclxuICA8cC1tdWx0aVNlbGVjdFxyXG5cdFtvcHRpb25zXT1cInNlbGVjdGlvbkl0ZW1zKCkgfHwgaXRlbXMoKSB8fCBbXVwiXHJcblx0W29wdGlvbkxhYmVsXT1cIml0ZW1UZXh0KClcIlxyXG5cdFtvcHRpb25WYWx1ZV09XCJpdGVtS2V5KClcIlxyXG5cdFtkZWZhdWx0TGFiZWxdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W3NlbGVjdGVkSXRlbXNMYWJlbF09XCJzZWxlY3RlZEl0ZW1zTGFiZWwoKVwiXHJcblx0W3N0eWxlXT1cInN0eWxlKClcIlxyXG5cdFtzdHlsZUNsYXNzXT1cInN0eWxlQ2xhc3MoKVwiXHJcblx0W3Rvb2x0aXBdPVwidG9vbHRpcCgpXCJcclxuXHRbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbigpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwiMlwiXHJcblx0W2FwcGVuZFRvXT1cImFwcGVuZFRvKClcIj5cclxuPC9wLW11bHRpU2VsZWN0PlxyXG59QGVsc2Uge1xyXG4gIDxkeC1zZWxlY3QtYm94XHJcbiAgICBbaXRlbXNdPVwic2VsZWN0aW9uSXRlbXMoKSB8fCBpdGVtcygpIHx8IFtdXCJcclxuICAgIFt2YWx1ZUV4cHJdPVwiaXRlbUtleSgpXCJcclxuICAgIFtkaXNwbGF5RXhwcl09XCJpdGVtVGV4dCgpXCJcclxuICAgIFtzZWFyY2hFbmFibGVkXT1cInRydWVcIlxyXG4gICAgW3NlYXJjaEV4cHJdPVwic2VhcmNoRXhwcigpXCJcclxuICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleCgpXCJcclxuICAgIFtncm91cGVkXT1cImdyb3VwZWQoKVwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInNob3dDbGVhckJ1dHRvbigpXCJcclxuICAgIFtpc1ZhbGlkXT1cIm5nQ29udHJvbD8uY29udHJvbD8udmFsaWQgfHwgbmdDb250cm9sPy5jb250cm9sPy5wcmlzdGluZSB8fCBuZ0NvbnRyb2w/LmNvbnRyb2w/LmRpc2FibGVkIHx8IGZhbHNlXCJcclxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwibmdDb250cm9sPy5jb250cm9sPy5lcnJvcnMgfCBkeElucHV0RXJyb3JNZXNzYWdlOiBuZ0NvbnRyb2w/LmNvbnRyb2xcIlxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VQb3NpdGlvbj1cInRvcFwiXHJcbiAgICBbbm9EYXRhVGV4dF09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMubm9EYXRhVG9EaXNwbGF5JylcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50LnNlbGVjdGVkSXRlbSk7c2V0VGl0bGUoJGV2ZW50LnNlbGVjdGVkSXRlbSlcIlxyXG4gICAgW2lucHV0QXR0cl09XCJ7ICd0aXRsZSc6IHNlbGVjdGVkSXRlbVRleHQgfVwiPlxyXG4gIDwvZHgtc2VsZWN0LWJveD5cclxufVxyXG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy9lbnVtUGlja2VyL3NyYy9lbnVtLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2VudW1QaWNrZXIvc3JjL2VudW0tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7O0FBWXJCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFrQzFELFlBQ2tCLElBQWdCLEVBQzFCLGdCQUFrQztRQUV6QyxLQUFLLEVBQUUsQ0FBQztRQUhTLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQW5DMUMsbUJBQWMsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FB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WUFDTiw4RUFBOEUsV0FFL0UsQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUMsYUFDbkcsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFDbEIsQ0FBQyxzQkFBc0IsQ0FBQzs4R0FrQzlCLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgRHhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvc2VsZWN0LWJveCc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHtcclxuXHRCYXNlSW5wdXRDb21wb25lbnQsXHJcblx0RFhJbnB1dEVycm9yTWVzc2FnZVBpcGUsXHJcblx0SW5wdXRFcnJvck1lc3NhZ2VQaXBlLFxyXG5cdFZhbHVlQWNjZXNzb3JEaXJlY3RpdmVcclxufSBmcm9tICdhcmlsL3VpL2xpYic7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RCb3hJdGVtLCBTZWxlY3Rpb25Hcm91cERUTywgU2VsZWN0aW9uSXRlbSwgU2VsZWN0aW9uUmVxdWVzdERUTyB9IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdlbnVtLXBpY2tlcltuZ01vZGVsXSwgZW51bS1waWNrZXJbZm9ybUNvbnRyb2xdLCBlbnVtLXBpY2tlcltmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZW51bS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRFhJbnB1dEVycm9yTWVzc2FnZVBpcGUsIFRyYW5zbG9jb01vZHVsZSwgTXVsdGlTZWxlY3RNb2R1bGVdLFxyXG5cdHByb3ZpZGVyczogW0lucHV0RXJyb3JNZXNzYWdlUGlwZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW51bVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0c2VsZWN0aW9uSXRlbXMgPSBzaWduYWw8U2VsZWN0Qm94SXRlbVtdIHwgbnVsbD4obnVsbCk7XHJcblx0cHJpdmF0ZSBvcmlnaW5hbFNlbGVjdGlvbkl0ZW1zOiBTZWxlY3Rpb25JdGVtW10gPSBbXTtcclxuXHQvKipcclxuXHQgKiBTaW5nbGUgU2VsZWN0IFN0YXRlc1xyXG5cdCAqL1xyXG5cclxuXHRpdGVtS2V5ID0gaW5wdXQoJ2tleScpO1xyXG5cdGl0ZW1UZXh0ID0gaW5wdXQoJ3RleHQnKTtcclxuXHRncm91cE5hbWUgPSBpbnB1dCgnJyk7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5ID0gaW5wdXQobnVsbCk7XHJcblx0dGFiaW5kZXggPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdGl0ZW1zID0gaW5wdXQ8U2VsZWN0Qm94SXRlbVtdPigpO1xyXG5cdGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2VsZWN0ZWRJdGVtVGV4dDogc3RyaW5nID0gJyc7XHJcblx0LyoqICogQGRlc2NyaXB0aW9uIHdoZW4gZ3JvdXBlZCA9IHRydWUsIG9wdGlvbiBpdGVtIHN0cnVjdHVyZSB7IGtleTpzdHJpbmcsIGl0ZW1zOltdIH0gKi9cclxuXHRncm91cGVkID0gaW5wdXQoZmFsc2UpO1xyXG5cdHNob3dDbGVhckJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2VhcmNoRXhwciA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPignJyk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE11bHRpIFNlbGVjdCBTdGF0ZXNcclxuXHQgKi9cclxuXHJcblx0c2VsZWN0ZWRJdGVtc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignezB9ICBkZcSfZXIgc2XDp2lsZGknKTsgLy8gZGVmYXVsdCB2YWx1ZSAtPiAoezB9IGl0ZW1zIHNlbGVjdGVkXHJcblx0YXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7XHJcblx0c3R5bGUgPSBpbnB1dDxvYmplY3Q+KHt9KTtcclxuXHRzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0dG9vbHRpcCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PGFueT4oJ3RvcCcpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCb3hJdGVtPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ3JvdXBOYW1lKCkgfHwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSkgdGhpcy5nZXRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25JdGVtcygpICYmICAodGhpcy5zZWxlY3Rpb25JdGVtcygpIGFzIFNlbGVjdEJveEl0ZW1bXSk/Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdGlvbkl0ZW1zVGV4dCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHNldFRpdGxlKGV2ZW50PzogYW55KSB7XHJcblx0XHRpZiAoZXZlbnQgJiYgZXZlbnRbdGhpcy5pdGVtVGV4dCgpXS5sZW5ndGggPiAyNSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbVRleHQgPSBldmVudCA/IGV2ZW50W3RoaXMuaXRlbVRleHQoKV0gOiAnJztcclxuXHRcdH1cclxuXHRcdHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0U2VsZWN0aW9uSXRlbXMoKSB7XHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWU6IHRoaXMuZ3JvdXBOYW1lKCksXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleTogdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKVxyXG5cdFx0fTtcclxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxyXG5cdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDxTZWxlY3Rpb25Hcm91cERUTz4oaG9zdEFwaSArICcvc2VsZWN0aW9uLWdyb3VwL2xvYWQnLCBwYXlsb2FkKVxyXG5cdFx0KTtcclxuXHJcblx0XHR0aGlzLm9yaWdpbmFsU2VsZWN0aW9uSXRlbXMgPSBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMgfHwgW107XHJcblx0XHR0aGlzLnVwZGF0ZVNlbGVjdGlvbkl0ZW1zVGV4dCgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb25JdGVtc1RleHQoKSB7XHJcblx0XHRpZiAoIXRoaXMub3JpZ2luYWxTZWxlY3Rpb25JdGVtcyB8fCB0aGlzLm9yaWdpbmFsU2VsZWN0aW9uSXRlbXMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uSXRlbXMuc2V0KG51bGwpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCk7XHJcblxyXG5cdFx0dGhpcy5zZWxlY3Rpb25JdGVtcy5zZXQobnVsbCk7XHJcblxyXG5cdFx0dGhpcy5zZWxlY3Rpb25JdGVtcy5zZXQoXHJcblx0XHRcdHRoaXMub3JpZ2luYWxTZWxlY3Rpb25JdGVtcy5tYXAoKGl0ZW06IFNlbGVjdGlvbkl0ZW0pID0+ICh7XHJcblx0XHRcdFx0a2V5OiBpdGVtLnNlbGVjdGlvbktleSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtPy5zZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/LltjdXJyZW50TGFuZ11cclxuXHRcdFx0XHRcdD8gaXRlbS5zZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXNbY3VycmVudExhbmddXHJcblx0XHRcdFx0XHQ6IGl0ZW0uc2VsZWN0aW9uRGlzcGxheSxcclxuXHRcdFx0XHRwYXJlbnRTZWxlY3Rpb25LZXk6IGl0ZW0ucGFyZW50U2VsZWN0aW9uS2V5XHJcblx0XHRcdH0pKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG59IiwiQGlmKGlzTXVsdGlwbGUoKSl7XHJcbiAgPHAtbXVsdGlTZWxlY3RcclxuXHRbb3B0aW9uc109XCJzZWxlY3Rpb25JdGVtcygpIHx8IGl0ZW1zKCkgfHwgW11cIlxyXG5cdFtvcHRpb25MYWJlbF09XCJpdGVtVGV4dCgpXCJcclxuXHRbb3B0aW9uVmFsdWVdPVwiaXRlbUtleSgpXCJcclxuXHRbZGVmYXVsdExhYmVsXT1cInBsYWNlaG9sZGVyKClcIlxyXG5cdFtzZWxlY3RlZEl0ZW1zTGFiZWxdPVwic2VsZWN0ZWRJdGVtc0xhYmVsKClcIlxyXG5cdFtzdHlsZV09XCJzdHlsZSgpXCJcclxuXHRbc3R5bGVDbGFzc109XCJzdHlsZUNsYXNzKClcIlxyXG5cdFt0b29sdGlwXT1cInRvb2x0aXAoKVwiXHJcblx0W3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHQobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KVwiXHJcbiAgW21heFNlbGVjdGVkTGFiZWxzXT1cIjJcIlxyXG5cdFthcHBlbmRUb109XCJhcHBlbmRUbygpXCI+XHJcbjwvcC1tdWx0aVNlbGVjdD5cclxufUBlbHNlIHtcclxuICA8ZHgtc2VsZWN0LWJveFxyXG4gICAgW2l0ZW1zXT1cInNlbGVjdGlvbkl0ZW1zKCkgfHwgaXRlbXMoKSB8fCBbXVwiXHJcbiAgICBbdmFsdWVFeHByXT1cIml0ZW1LZXkoKVwiXHJcbiAgICBbZGlzcGxheUV4cHJdPVwiaXRlbVRleHQoKVwiXHJcbiAgICBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgIFtzZWFyY2hFeHByXT1cInNlYXJjaEV4cHIoKVwiXHJcbiAgICBbdGFiSW5kZXhdPVwidGFiaW5kZXgoKVwiXHJcbiAgICBbZ3JvdXBlZF09XCJncm91cGVkKClcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gICAgW3Nob3dDbGVhckJ1dHRvbl09XCJzaG93Q2xlYXJCdXR0b24oKVwiXHJcbiAgICBbaXNWYWxpZF09XCJuZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkIHx8IG5nQ29udHJvbD8uY29udHJvbD8ucHJpc3RpbmUgfHwgbmdDb250cm9sPy5jb250cm9sPy5kaXNhYmxlZCB8fCBmYWxzZVwiXHJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cIm5nQ29udHJvbD8uY29udHJvbD8uZXJyb3JzIHwgZHhJbnB1dEVycm9yTWVzc2FnZTogbmdDb250cm9sPy5jb250cm9sXCJcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgW25vRGF0YVRleHRdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJuZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUoJGV2ZW50KVwiXHJcbiAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudC5zZWxlY3RlZEl0ZW0pO3NldFRpdGxlKCRldmVudC5zZWxlY3RlZEl0ZW0pXCJcclxuICAgIFtpbnB1dEF0dHJdPVwieyAndGl0bGUnOiBzZWxlY3RlZEl0ZW1UZXh0IH1cIj5cclxuICA8L2R4LXNlbGVjdC1ib3g+XHJcbn1cclxuIl19
@@ -71,12 +71,14 @@ class EnumPickerComponent extends BaseInputComponent {
71
71
  // eslint-disable-next-line no-useless-escape
72
72
  const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
73
73
  const selectionGroup = await firstValueFrom(this.http.post(hostApi + '/selection-group/load', payload));
74
- this.originalSelectionItems = selectionGroup?.selectionItems;
74
+ this.originalSelectionItems = selectionGroup?.selectionItems || [];
75
75
  this.updateSelectionItemsText();
76
76
  }
77
77
  updateSelectionItemsText() {
78
- if (!this.originalSelectionItems || this.originalSelectionItems.length === 0)
78
+ if (!this.originalSelectionItems || this.originalSelectionItems.length === 0) {
79
+ this.selectionItems.set(null);
79
80
  return;
81
+ }
80
82
  const currentLang = this.translocoService.getActiveLang();
81
83
  this.selectionItems.set(null);
82
84
  this.selectionItems.set(this.originalSelectionItems.map((item) => ({