mis-crystal-design-system 18.0.23 → 18.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/button.directive.scss +15 -13
- package/drawer/drawer.scss +1 -1
- package/dynamic-theme/branding.types.d.ts +84 -0
- package/dynamic-theme/dynamic-theme.module.d.ts +9 -0
- package/dynamic-theme/dynamic-theme.service.d.ts +89 -0
- package/dynamic-theme/index.d.ts +1 -0
- package/dynamic-theme/public_api.d.ts +3 -0
- package/esm2022/action-list/action-list.component.mjs +4 -4
- package/esm2022/action-list/action-list.module.mjs +2 -2
- package/esm2022/analytics/analytics.module.mjs +2 -2
- package/esm2022/analytics/analytics.service.mjs +2 -2
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +4 -4
- package/esm2022/async-search-dropdown/async-dropdown.module.mjs +2 -2
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.directive.mjs +2 -2
- package/esm2022/button/button.module.mjs +2 -2
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/checkbox/checkbox.module.mjs +2 -2
- package/esm2022/chip/chip.component.mjs +4 -4
- package/esm2022/chip/chip.module.mjs +2 -2
- package/esm2022/datepicker_v2/datepicker.module.mjs +2 -2
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +2 -2
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +5 -5
- package/esm2022/datepicker_v2/utils/index.mjs +1 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +2 -2
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +2 -2
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +4 -4
- package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +2 -2
- package/esm2022/drawer/drawer.module.mjs +2 -2
- package/esm2022/drawer/drawer.service.mjs +2 -2
- package/esm2022/dropdown/calculate-container-height.directive.mjs +2 -2
- package/esm2022/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form.component.mjs +4 -4
- package/esm2022/dynamic-form/dynamic-form.module.mjs +2 -2
- package/esm2022/dynamic-theme/branding.types.mjs +93 -0
- package/esm2022/dynamic-theme/dynamic-theme.module.mjs +25 -0
- package/esm2022/dynamic-theme/dynamic-theme.service.mjs +193 -0
- package/esm2022/dynamic-theme/index.mjs +2 -0
- package/esm2022/dynamic-theme/mis-crystal-design-system-dynamic-theme.mjs +5 -0
- package/esm2022/dynamic-theme/public_api.mjs +4 -0
- package/esm2022/fab/fab.component.mjs +4 -4
- package/esm2022/fab/fab.module.mjs +2 -2
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +4 -4
- package/esm2022/filter/filters.module.mjs +2 -2
- package/esm2022/filter/has-value.pipe.mjs +2 -2
- package/esm2022/input/directives/input/input.directive.mjs +2 -2
- package/esm2022/input/mis-input.component.mjs +4 -4
- package/esm2022/input/mis-input.module.mjs +2 -2
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +6 -6
- package/esm2022/input-stepper/input-stepper.module.mjs +2 -2
- package/esm2022/loader/loader.component.mjs +4 -4
- package/esm2022/loader/loader.module.mjs +2 -2
- package/esm2022/menu/menu-close.directive.mjs +3 -3
- package/esm2022/menu/menu.directive.mjs +3 -3
- package/esm2022/menu/menu.module.mjs +2 -2
- package/esm2022/mobile-filter/mobile-filter.component.mjs +4 -4
- package/esm2022/mobile-filter/mobile-filter.module.mjs +2 -2
- package/esm2022/modal/modal.module.mjs +2 -2
- package/esm2022/modal/modal.service.mjs +2 -2
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +2 -2
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.module.mjs +2 -2
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +4 -4
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +2 -2
- package/esm2022/phone-input/phone-input.component.mjs +4 -4
- package/esm2022/phone-input/phone-input.module.mjs +2 -2
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/radio-button/radio-button.module.mjs +2 -2
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.module.mjs +2 -2
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +2 -2
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/snackbar/snackbar.module.mjs +2 -2
- package/esm2022/snackbar/snackbar.service.mjs +2 -2
- package/esm2022/specificdatepicker/specificdatepicker.module.mjs +2 -2
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +4 -4
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +2 -2
- package/esm2022/specificdatepicker/utils/index.mjs +1 -1
- package/esm2022/star-rating/star-rating.component.mjs +4 -4
- package/esm2022/star-rating/star-rating.module.mjs +2 -2
- package/esm2022/switch/switch.component.mjs +4 -4
- package/esm2022/switch/switch.module.mjs +2 -2
- package/esm2022/table/actions-cell/actions-cell.component.mjs +4 -4
- package/esm2022/table/custom-table-cell.directive.mjs +2 -2
- package/esm2022/table/filter/filter.component.mjs +4 -4
- package/esm2022/table/sort-icons.directive.mjs +3 -3
- package/esm2022/table/sub-table/sub-table.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +5 -5
- package/esm2022/table/table.module.mjs +2 -2
- package/esm2022/timepicker/timepicker.component.mjs +4 -4
- package/esm2022/timepicker/timepicker.directive.mjs +3 -3
- package/esm2022/timepicker/timepicker.module.mjs +2 -2
- package/esm2022/timerangepicker/timerangepicker.component.mjs +2 -2
- package/esm2022/timerangepicker/timerangepicker.module.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/toast/toast.data.service.mjs +2 -2
- package/esm2022/toast/toast.module.mjs +2 -2
- package/esm2022/toast/toast.service.mjs +2 -2
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +2 -2
- package/esm2022/tooltip/tooltip.module.mjs +2 -2
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +2 -2
- package/esm2022/virtual-scroll/virtual-scroll.module.mjs +2 -2
- package/esm2022/widgets/classes/async-widget.mjs +1 -1
- package/esm2022/widgets/classes/base-widget.mjs +1 -1
- package/esm2022/widgets/classes/sync-widget.mjs +1 -1
- package/esm2022/widgets/services/widget.service.mjs +2 -2
- package/esm2022/widgets/widgets.module.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-action-list.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-analytics.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs +313 -0
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-fab.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +7 -7
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +5 -5
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +18 -18
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +7 -7
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system.mjs.map +1 -1
- package/input/mis-input.component.scss +18 -18
- package/modal/modal.scss +1 -1
- package/package.json +13 -7
- package/styles/mis-color-constants.scss +204 -0
- package/styles/mis-icons.scss +56 -56
- package/styles/mis-old-icon-styles.scss +21 -21
|
@@ -674,7 +674,7 @@ export class TzDpContainerComponent {
|
|
|
674
674
|
// Force calendar re-render to show highlighting
|
|
675
675
|
this.currentMonthDates = this.generateDates(this.currentMonthNumber, this.currentYearNumber);
|
|
676
676
|
// Automatically show apply button when time is enabled, otherwise apply immediately
|
|
677
|
-
if (!this.data.dpConfig.enableTime) {
|
|
677
|
+
if (!this.data.dpConfig.showApplyButton && !this.data.dpConfig.enableTime) {
|
|
678
678
|
this.applyDate(day);
|
|
679
679
|
}
|
|
680
680
|
}
|
|
@@ -783,7 +783,7 @@ export class TzDpContainerComponent {
|
|
|
783
783
|
this.resetDateSelection();
|
|
784
784
|
this.calculateDisabledMonthsAndYears();
|
|
785
785
|
}
|
|
786
|
-
static { this.ɵfac = function TzDpContainerComponent_Factory(
|
|
786
|
+
static { this.ɵfac = function TzDpContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzDpContainerComponent)(i0.ɵɵdirectiveInject(CONTAINER_DATA), i0.ɵɵdirectiveInject(i1.ToastService)); }; }
|
|
787
787
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TzDpContainerComponent, selectors: [["mis-tz-dp"]], hostBindings: function TzDpContainerComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
788
788
|
i0.ɵɵlistener("keydown.esc", function TzDpContainerComponent_keydown_esc_HostBindingHandler() { return ctx.closeOnEsc(); });
|
|
789
789
|
} }, decls: 18, vars: 16, consts: [["aria-label", "date picker", "cdkTrapFocus", "", 1, "datepicker-container", 3, "ngClass", "cdkTrapFocusAutoCapture"], ["tabindex", "-1", "cdkFocusInitial", ""], [1, "datepicker-container__header"], ["tabindex", "0", "aria-label", "Previous Month", 1, "datepicker-container__arrow__icon", 3, "click", "keyup.enter", "ngClass"], ["width", "20", "height", "16", "viewBox", "0 0 20 16", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z", "fill", "#181F33"], ["class", "month-header", 3, "click", 4, "ngIf"], ["class", "year-header", 3, "click", 4, "ngIf"], ["tabindex", "0", "aria-label", "Next Month", 1, "datepicker-container__arrow__icon", 3, "click", "keyup.enter", "ngClass"], [1, "datepicker-container__body"], ["class", "month-selector", 4, "ngIf"], ["class", "year-selector", 4, "ngIf"], ["class", "datepicker-container__weekdays", 4, "ngIf"], ["class", "datepicker-container__days", 4, "ngIf"], ["class", "datepicker-container__time", 4, "ngIf"], ["class", "datepicker-container__footer", 4, "ngIf"], [1, "month-header", 3, "click"], [1, "year-header", 3, "click"], [1, "month-selector"], [1, "row"], ["class", "month", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "month", 3, "click", "ngClass"], [1, "year-selector"], ["class", "year", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "year", 3, "click", "ngClass"], [1, "datepicker-container__weekdays"], ["class", "datepicker-container__weekday", 4, "ngFor", "ngForOf"], [1, "datepicker-container__weekday"], [3, "ngClass"], [1, "datepicker-container__days"], ["class", "datepicker-container__day", 3, "ngClass", "click", "keyup.enter", 4, "ngFor", "ngForOf"], [1, "datepicker-container__day", 3, "click", "keyup.enter", "ngClass"], [3, "tabindex", "ngClass", 4, "ngIf"], [3, "tabindex", "ngClass"], [1, "datepicker-container__time"], [1, "time-picker-header"], [1, "time-picker-controls"], [1, "time-input-group"], ["for", "hourInput"], ["id", "hourInput", "type", "number", 1, "time-input", 3, "ngModelChange", "input", "blur", "min", "max", "step", "ngModel", "title"], [1, "time-separator"], ["for", "minuteInput"], ["id", "minuteInput", "type", "number", "min", "0", "max", "59", "title", "Enter minute (0-59)", 1, "time-input", 3, "ngModelChange", "input", "blur", "step", "ngModel"], ["class", "am-pm-selector", 4, "ngIf"], [1, "am-pm-selector"], ["for", "amPmSelect"], ["id", "amPmSelect", 1, "am-pm-select", 3, "ngModelChange", "ngModel"], ["value", "AM"], ["value", "PM"], [1, "datepicker-container__footer"], ["mis-button", "", "size", "md", "type", "'none'", 3, "click"], ["mis-button", "", "size", "md", "type", "primary", 3, "click", "disabled"]], template: function TzDpContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -831,11 +831,11 @@ export class TzDpContainerComponent {
|
|
|
831
831
|
i0.ɵɵproperty("ngIf", ctx.data.dpConfig.enableTime === true);
|
|
832
832
|
i0.ɵɵadvance();
|
|
833
833
|
i0.ɵɵproperty("ngIf", ctx.data.dpConfig.showApplyButton || ctx.data.dpConfig.enableTime);
|
|
834
|
-
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.ButtonDirective, i5.CdkTrapFocus], styles: [".h1[_ngcontent-%COMP%]{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2[_ngcontent-%COMP%]{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3[_ngcontent-%COMP%]{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4[_ngcontent-%COMP%]{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b[_ngcontent-%COMP%]{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5[_ngcontent-%COMP%]{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b[_ngcontent-%COMP%]{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b[_ngcontent-%COMP%]{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8[_ngcontent-%COMP%]{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9[_ngcontent-%COMP%]{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1[_ngcontent-%COMP%]{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-disabled: #929DAB;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3}.datepicker-container[_ngcontent-%COMP%]{background:#fff;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:290px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%]{display:flex;height:32px;margin:16px;justify-content:space-between;align-items:center;width:258px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .month-header[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .year-header[_ngcontent-%COMP%]{padding:8px;border-radius:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .month-header[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .year-header[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#e6ebf7}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon.disabled-month[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]:not(.disabled-month):hover{cursor:pointer;background-color:#cbddfb}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]:nth-child(1){transform:rotate(180deg)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%]{width:258px;height:100%;margin:0 16px 16px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]{padding:10px 6px;cursor:pointer;border-radius:5px;text-align:center;background-color:#fff}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]:hover{background-color:#cbddfb}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-year[_ngcontent-%COMP%]{cursor:default;color:#c8cdd3}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-year[_ngcontent-%COMP%]:hover{background-color:transparent}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-year[_ngcontent-%COMP%]{background-color:#0937b2;color:#fff}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-year[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#cbddfb}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%]{width:100%;display:flex;padding-bottom:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%]{width:36px;height:18px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:#c7c7c7}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:#181f33}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%]{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.selected-day[_ngcontent-%COMP%]{background-color:#0937b2;cursor:pointer}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.disabled-day[_ngcontent-%COMP%]{cursor:default}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.disabled-day[_ngcontent-%COMP%]:hover{background-color:transparent}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-day):hover{background-color:#cbddfb;cursor:pointer}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-day):hover span.selected-day[_ngcontent-%COMP%]{color:#181f33!important}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:#181f33}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.selected-day[_ngcontent-%COMP%]{color:#fff}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.disabled-day[_ngcontent-%COMP%]{color:#c7c7c7}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%]{border-top:1px solid #e0e0e0;padding:16px;margin:0 16px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-header[_ngcontent-%COMP%]{margin-bottom:12px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#181f33}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#6a737d}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]{width:50px;height:32px;padding:4px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]:focus{outline:none;border-color:#0937b2;box-shadow:0 0 0 2px #0937b21a}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]:invalid{border-color:#dc3545;background-color:#fff5f5}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]::-webkit-inner-spin-button, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[type=number][_ngcontent-%COMP%]{-moz-appearance:textfield}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-separator[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#181f33;margin-top:20px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#6a737d}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] .am-pm-select[_ngcontent-%COMP%]{width:60px;height:42px;padding:4px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;background-color:#fff}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] .am-pm-select[_ngcontent-%COMP%]:focus{outline:none;border-color:#0937b2;box-shadow:0 0 0 2px #0937b21a}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px;bottom:0;align-items:center;position:sticky;padding:16px;border-top:1px solid #e0e0e0}.remove-box-shadow[_ngcontent-%COMP%]{box-shadow:none!important;border:none!important;border-radius:0!important}"] }); }
|
|
834
|
+
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.ButtonDirective, i5.CdkTrapFocus], styles: [".h1[_ngcontent-%COMP%]{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2[_ngcontent-%COMP%]{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3[_ngcontent-%COMP%]{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4[_ngcontent-%COMP%]{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b[_ngcontent-%COMP%]{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5[_ngcontent-%COMP%]{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b[_ngcontent-%COMP%]{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b[_ngcontent-%COMP%]{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8[_ngcontent-%COMP%]{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9[_ngcontent-%COMP%]{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b[_ngcontent-%COMP%]{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link[_ngcontent-%COMP%]{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1[_ngcontent-%COMP%]{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2[_ngcontent-%COMP%]{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.datepicker-container[_ngcontent-%COMP%]{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:290px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%]{display:flex;height:32px;margin:16px;justify-content:space-between;align-items:center;width:258px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .month-header[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .year-header[_ngcontent-%COMP%]{padding:8px;border-radius:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .month-header[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .year-header[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:var(--brand-primary-active, #DAE1F3)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon.disabled-month[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__header[_ngcontent-%COMP%] .datepicker-container__arrow__icon[_ngcontent-%COMP%]:nth-child(1){transform:rotate(180deg)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%]{width:258px;height:100%;margin:0 16px 16px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]{padding:10px 6px;cursor:pointer;border-radius:5px;text-align:center;background-color:var(--bg-primary, #FFFFFF)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .year[_ngcontent-%COMP%]:hover{background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-year[_ngcontent-%COMP%]{cursor:default;color:var(--text-disabled, #C8CDD3)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .disable-year[_ngcontent-%COMP%]:hover{background-color:transparent}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-month[_ngcontent-%COMP%], .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-year[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);color:var(--bg-primary, #FFFFFF)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-month[_ngcontent-%COMP%]:hover, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .select-year[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%]{width:100%;display:flex;padding-bottom:10px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%]{width:36px;height:18px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-disabled, #C8CDD3)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__weekdays[_ngcontent-%COMP%] .datepicker-container__weekday[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%]{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.selected-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);cursor:pointer}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.disabled-day[_ngcontent-%COMP%]{cursor:default}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.disabled-day[_ngcontent-%COMP%]:hover{background-color:transparent}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-day):hover span.selected-day[_ngcontent-%COMP%]{color:var(--text-primary, #181F33)!important}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.selected-day[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__body[_ngcontent-%COMP%] .datepicker-container__days[_ngcontent-%COMP%] .datepicker-container__day[_ngcontent-%COMP%] span.disabled-day[_ngcontent-%COMP%]{color:var(--text-disabled, #C8CDD3)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%]{border-top:1px solid var(--border-primary, #E0E0E0);padding:16px;margin:0 16px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-header[_ngcontent-%COMP%]{margin-bottom:12px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:var(--text-primary, #181F33)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:var(--text-secondary, #6A737D)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]{width:50px;height:32px;padding:4px 8px;border:1px solid var(--border-primary, #E0E0E0);border-radius:4px;font-size:14px;text-align:center}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b21a}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]:invalid{border-color:#dc3545;background-color:#fff5f5}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]::-webkit-inner-spin-button, .datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[_ngcontent-%COMP%]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-input-group[_ngcontent-%COMP%] .time-input[type=number][_ngcontent-%COMP%]{-moz-appearance:textfield}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .time-separator[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:var(--text-primary, #181F33);margin-top:20px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:var(--text-secondary, #6A737D)}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] .am-pm-select[_ngcontent-%COMP%]{width:60px;height:42px;padding:4px 8px;border:1px solid var(--border-primary, #E0E0E0);border-radius:4px;font-size:14px;background-color:#fff}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__time[_ngcontent-%COMP%] .time-picker-controls[_ngcontent-%COMP%] .am-pm-selector[_ngcontent-%COMP%] .am-pm-select[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b21a}.datepicker-container[_ngcontent-%COMP%] .datepicker-container__footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px;bottom:0;align-items:center;position:sticky;padding:16px;border-top:1px solid var(--border-primary, #E0E0E0)}.remove-box-shadow[_ngcontent-%COMP%]{box-shadow:none!important;border:none!important;border-radius:0!important}"] }); }
|
|
835
835
|
}
|
|
836
836
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TzDpContainerComponent, [{
|
|
837
837
|
type: Component,
|
|
838
|
-
args: [{ selector: "mis-tz-dp", template: "<div class=\"datepicker-container\" [ngClass]=\"data.disableBoxShadow?'remove-box-shadow':''\" aria-label=\"date picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div class=\"datepicker-container__header\">\n <div\n class=\"datepicker-container__arrow__icon\"\n (click)=\"navigateView('PREVIOUS')\"\n tabindex=\"0\"\n aria-label=\"Previous Month\"\n (keyup.enter)=\"navigateView('PREVIOUS')\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled || isSelectingMonth\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n\n <div *ngIf=\"!isSelectingYear\" (click)=\"toggleMonthSelector()\" class=\"month-header\">\n {{ isYearSelectionFlow ? selectedYear : availableMonths[currentMonthNumber] }}\n </div>\n <div *ngIf=\"!isSelectingMonth\" (click)=\"toggleYearSelector()\" class=\"year-header\">\n {{ isSelectingYear ? yearRange : currentYearNumber }}\n </div>\n\n\n <div\n class=\"datepicker-container__arrow__icon\"\n (click)=\"navigateView('NEXT')\"\n tabindex=\"0\"\n aria-label=\"Next Month\"\n (keyup.enter)=\"navigateView('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled || isSelectingMonth\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"datepicker-container__body\">\n\n <div *ngIf=\"isSelectingMonth && !isSelectingYear\" class=\"month-selector\">\n <div class=\"row\">\n <div *ngFor=\"let month of availableMonths; let i = index\" \n class=\"month\" \n (click)=\"!disabledMonths[i] && selectMonth(month)\" \n [ngClass]=\"{\n 'disable-month': disabledMonths[i],\n 'select-month': !disabledMonths[currentMonthNumber] && month === availableMonths[currentMonthNumber]\n }\">\n {{ month }}\n </div>\n </div>\n </div>\n \n <div *ngIf=\"isSelectingYear && !isSelectingMonth\" class=\"year-selector\">\n <div class=\"row\">\n <div *ngFor=\"let year of availableYears; let i = index\" \n class=\"year\" \n (click)=\"!disabledYears[i] && selectYear(year)\" \n [ngClass]=\"{\n 'disable-year': disabledYears[i],\n 'select-year': year === currentYearNumber\n }\">\n {{ year }}\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!isSelectingMonth && !isSelectingYear\" class=\"datepicker-container__weekdays\">\n <div class=\"datepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span [ngClass]=\"{ 'current-day': weekDay.isCurrentDay }\">{{ weekDay.label }}</span>\n </div>\n </div>\n <div *ngIf=\"!isSelectingMonth && !isSelectingYear\" class=\"datepicker-container__days\">\n <div\n class=\"datepicker-container__day\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay,\n 'disabled-day': day.isDisabledDay,\n 'is-valid-date': day.date > 0 && !day.isSelectedDay\n }\"\n *ngFor=\"let day of currentMonthDates\"\n (click)=\"selectDay(day)\"\n (keyup.enter)=\"selectDay(day)\"\n >\n <span\n *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [ngClass]=\"{\n 'current-day': day.isCurrentDay,\n 'selected-day': day.isSelectedDay,\n 'disabled-day': day.isDisabledDay\n }\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth, currentYearNumber)\"\n >\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Time Picker Section -->\n <div class=\"datepicker-container__time\" *ngIf=\"data.dpConfig.enableTime === true\">\n <div class=\"time-picker-header\">\n <span>Time</span>\n </div>\n <div class=\"time-picker-controls\">\n <div class=\"time-input-group\">\n <label for=\"hourInput\">Hour</label>\n <input \n id=\"hourInput\"\n type=\"number\" \n [min]=\"is12HourFormat() ? 1 : 0\"\n [max]=\"is12HourFormat() ? 12 : 23\"\n [step]=\"1\"\n [(ngModel)]=\"selectedHour\"\n (input)=\"onHourInput($event)\"\n (blur)=\"validateHourInput()\"\n class=\"time-input\"\n [title]=\"is12HourFormat() ? 'Enter hour (1-12)' : 'Enter hour (0-23)'\">\n </div>\n <div class=\"time-separator\">:</div>\n <div class=\"time-input-group\">\n <label for=\"minuteInput\">Minute</label>\n <input \n id=\"minuteInput\"\n type=\"number\" \n min=\"0\" \n max=\"59\"\n [step]=\"1\"\n [(ngModel)]=\"selectedMinute\"\n (input)=\"onMinuteInput($event)\"\n (blur)=\"validateMinuteInput()\"\n class=\"time-input\"\n title=\"Enter minute (0-59)\">\n </div>\n <div class=\"am-pm-selector\" *ngIf=\"is12HourFormat()\">\n <label for=\"amPmSelect\">AM/PM</label>\n <select \n id=\"amPmSelect\"\n [(ngModel)]=\"selectedAmPm\"\n class=\"am-pm-select\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"datepicker-container__footer\" *ngIf=\"data.dpConfig.showApplyButton || data.dpConfig.enableTime\">\n <button mis-button size=\"md\" type=\"'none'\" (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button size=\"md\" type=\"primary\" (click)=\"applyDate()\" [disabled]=\"!(data.date || localSelectedDate.date)\">Apply</button>\n </div>\n</div>\n", styles: [".h1{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7,.datepicker-container .datepicker-container__body .month,.datepicker-container .datepicker-container__body .year{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-disabled: #929DAB;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3}.datepicker-container{background:#fff;border:1px solid #e0e0e0;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:290px}.datepicker-container .datepicker-container__header{display:flex;height:32px;margin:16px;justify-content:space-between;align-items:center;width:258px}.datepicker-container .datepicker-container__header span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.datepicker-container .datepicker-container__header .month-header,.datepicker-container .datepicker-container__header .year-header{padding:8px;border-radius:10px}.datepicker-container .datepicker-container__header .month-header:hover,.datepicker-container .datepicker-container__header .year-header:hover{cursor:pointer;background-color:#e6ebf7}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:#cbddfb}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}.datepicker-container .datepicker-container__body{width:258px;height:100%;margin:0 16px 16px}.datepicker-container .datepicker-container__body .row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.datepicker-container .datepicker-container__body .month,.datepicker-container .datepicker-container__body .year{padding:10px 6px;cursor:pointer;border-radius:5px;text-align:center;background-color:#fff}.datepicker-container .datepicker-container__body .month:hover,.datepicker-container .datepicker-container__body .year:hover{background-color:#cbddfb}.datepicker-container .datepicker-container__body .disable-month,.datepicker-container .datepicker-container__body .disable-year{cursor:default;color:#c8cdd3}.datepicker-container .datepicker-container__body .disable-month:hover,.datepicker-container .datepicker-container__body .disable-year:hover{background-color:transparent}.datepicker-container .datepicker-container__body .select-month,.datepicker-container .datepicker-container__body .select-year{background-color:#0937b2;color:#fff}.datepicker-container .datepicker-container__body .select-month:hover,.datepicker-container .datepicker-container__body .select-year:hover{cursor:pointer;background-color:#cbddfb}.datepicker-container .datepicker-container__body .datepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday{width:36px;height:18px;text-align:center}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:#c7c7c7}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:#181f33}.datepicker-container .datepicker-container__body .datepicker-container__days{display:flex;flex-wrap:wrap;gap:2px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:4px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.selected-day{background-color:#0937b2;cursor:pointer}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.disabled-day{cursor:default}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.disabled-day:hover{background-color:transparent}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-day):hover{background-color:#cbddfb;cursor:pointer}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-day):hover span.selected-day{color:#181f33!important}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:#181f33}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.selected-day{color:#fff}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.disabled-day{color:#c7c7c7}.datepicker-container .datepicker-container__time{border-top:1px solid #e0e0e0;padding:16px;margin:0 16px}.datepicker-container .datepicker-container__time .time-picker-header{margin-bottom:12px}.datepicker-container .datepicker-container__time .time-picker-header span{font-size:14px;font-weight:600;color:#181f33}.datepicker-container .datepicker-container__time .time-picker-controls{display:flex;align-items:center;gap:8px}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group{display:flex;flex-direction:column;gap:4px}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group label{font-size:12px;font-weight:500;color:#6a737d}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input{width:50px;height:32px;padding:4px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;text-align:center}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input:focus{outline:none;border-color:#0937b2;box-shadow:0 0 0 2px #0937b21a}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input:invalid{border-color:#dc3545;background-color:#fff5f5}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input::-webkit-inner-spin-button,.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input[type=number]{-moz-appearance:textfield}.datepicker-container .datepicker-container__time .time-picker-controls .time-separator{font-size:18px;font-weight:600;color:#181f33;margin-top:20px}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector{display:flex;flex-direction:column;gap:4px}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector label{font-size:12px;font-weight:500;color:#6a737d}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector .am-pm-select{width:60px;height:42px;padding:4px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;background-color:#fff}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector .am-pm-select:focus{outline:none;border-color:#0937b2;box-shadow:0 0 0 2px #0937b21a}.datepicker-container .datepicker-container__footer{display:flex;justify-content:flex-end;gap:8px;bottom:0;align-items:center;position:sticky;padding:16px;border-top:1px solid #e0e0e0}.remove-box-shadow{box-shadow:none!important;border:none!important;border-radius:0!important}\n"] }]
|
|
838
|
+
args: [{ selector: "mis-tz-dp", template: "<div class=\"datepicker-container\" [ngClass]=\"data.disableBoxShadow?'remove-box-shadow':''\" aria-label=\"date picker\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div class=\"datepicker-container__header\">\n <div\n class=\"datepicker-container__arrow__icon\"\n (click)=\"navigateView('PREVIOUS')\"\n tabindex=\"0\"\n aria-label=\"Previous Month\"\n (keyup.enter)=\"navigateView('PREVIOUS')\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled || isSelectingMonth\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n\n <div *ngIf=\"!isSelectingYear\" (click)=\"toggleMonthSelector()\" class=\"month-header\">\n {{ isYearSelectionFlow ? selectedYear : availableMonths[currentMonthNumber] }}\n </div>\n <div *ngIf=\"!isSelectingMonth\" (click)=\"toggleYearSelector()\" class=\"year-header\">\n {{ isSelectingYear ? yearRange : currentYearNumber }}\n </div>\n\n\n <div\n class=\"datepicker-container__arrow__icon\"\n (click)=\"navigateView('NEXT')\"\n tabindex=\"0\"\n aria-label=\"Next Month\"\n (keyup.enter)=\"navigateView('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled || isSelectingMonth\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"datepicker-container__body\">\n\n <div *ngIf=\"isSelectingMonth && !isSelectingYear\" class=\"month-selector\">\n <div class=\"row\">\n <div *ngFor=\"let month of availableMonths; let i = index\" \n class=\"month\" \n (click)=\"!disabledMonths[i] && selectMonth(month)\" \n [ngClass]=\"{\n 'disable-month': disabledMonths[i],\n 'select-month': !disabledMonths[currentMonthNumber] && month === availableMonths[currentMonthNumber]\n }\">\n {{ month }}\n </div>\n </div>\n </div>\n \n <div *ngIf=\"isSelectingYear && !isSelectingMonth\" class=\"year-selector\">\n <div class=\"row\">\n <div *ngFor=\"let year of availableYears; let i = index\" \n class=\"year\" \n (click)=\"!disabledYears[i] && selectYear(year)\" \n [ngClass]=\"{\n 'disable-year': disabledYears[i],\n 'select-year': year === currentYearNumber\n }\">\n {{ year }}\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!isSelectingMonth && !isSelectingYear\" class=\"datepicker-container__weekdays\">\n <div class=\"datepicker-container__weekday\" *ngFor=\"let weekDay of weekDays\">\n <span [ngClass]=\"{ 'current-day': weekDay.isCurrentDay }\">{{ weekDay.label }}</span>\n </div>\n </div>\n <div *ngIf=\"!isSelectingMonth && !isSelectingYear\" class=\"datepicker-container__days\">\n <div\n class=\"datepicker-container__day\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay,\n 'disabled-day': day.isDisabledDay,\n 'is-valid-date': day.date > 0 && !day.isSelectedDay\n }\"\n *ngFor=\"let day of currentMonthDates\"\n (click)=\"selectDay(day)\"\n (keyup.enter)=\"selectDay(day)\"\n >\n <span\n *ngIf=\"day.date > 0\"\n [tabindex]=\"day.isDisabledDay ? -1 : 0\"\n [ngClass]=\"{\n 'current-day': day.isCurrentDay,\n 'selected-day': day.isSelectedDay,\n 'disabled-day': day.isDisabledDay\n }\"\n [attr.aria-label]=\"retractDayMonth(day.date, currentMonth, currentYearNumber)\"\n >\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n\n <!-- Time Picker Section -->\n <div class=\"datepicker-container__time\" *ngIf=\"data.dpConfig.enableTime === true\">\n <div class=\"time-picker-header\">\n <span>Time</span>\n </div>\n <div class=\"time-picker-controls\">\n <div class=\"time-input-group\">\n <label for=\"hourInput\">Hour</label>\n <input \n id=\"hourInput\"\n type=\"number\" \n [min]=\"is12HourFormat() ? 1 : 0\"\n [max]=\"is12HourFormat() ? 12 : 23\"\n [step]=\"1\"\n [(ngModel)]=\"selectedHour\"\n (input)=\"onHourInput($event)\"\n (blur)=\"validateHourInput()\"\n class=\"time-input\"\n [title]=\"is12HourFormat() ? 'Enter hour (1-12)' : 'Enter hour (0-23)'\">\n </div>\n <div class=\"time-separator\">:</div>\n <div class=\"time-input-group\">\n <label for=\"minuteInput\">Minute</label>\n <input \n id=\"minuteInput\"\n type=\"number\" \n min=\"0\" \n max=\"59\"\n [step]=\"1\"\n [(ngModel)]=\"selectedMinute\"\n (input)=\"onMinuteInput($event)\"\n (blur)=\"validateMinuteInput()\"\n class=\"time-input\"\n title=\"Enter minute (0-59)\">\n </div>\n <div class=\"am-pm-selector\" *ngIf=\"is12HourFormat()\">\n <label for=\"amPmSelect\">AM/PM</label>\n <select \n id=\"amPmSelect\"\n [(ngModel)]=\"selectedAmPm\"\n class=\"am-pm-select\">\n <option value=\"AM\">AM</option>\n <option value=\"PM\">PM</option>\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"datepicker-container__footer\" *ngIf=\"data.dpConfig.showApplyButton || data.dpConfig.enableTime\">\n <button mis-button size=\"md\" type=\"'none'\" (click)=\"cancelDatePicker()\">Cancel</button>\n <button mis-button size=\"md\" type=\"primary\" (click)=\"applyDate()\" [disabled]=\"!(data.date || localSelectedDate.date)\">Apply</button>\n </div>\n</div>\n", styles: [".h1{font-size:40px;font-weight:400;letter-spacing:0px;line-height:48px}.h2{font-size:32px;font-weight:400;letter-spacing:0px;line-height:40px}.h3{font-size:28px;font-weight:400;letter-spacing:0px;line-height:36px}.h4{font-size:24px;font-weight:400;letter-spacing:0px;line-height:32px}.h5-b{font-size:20px;font-weight:700;letter-spacing:.25px;line-height:28px}.h5{font-size:20px;font-weight:400;letter-spacing:.15px;line-height:28px}.h6-b{font-size:16px;font-weight:700;letter-spacing:0px;line-height:24px}.h6{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.p{font-size:16px;font-weight:400;letter-spacing:0px;line-height:180%}.h7-b{font-size:14px;font-weight:700;letter-spacing:.25px;line-height:20px}.h7,.datepicker-container .datepicker-container__body .month,.datepicker-container .datepicker-container__body .year{font-size:14px;font-weight:400;letter-spacing:.2px;line-height:20px}.h8-b{font-size:12px;font-weight:700;letter-spacing:.25px;line-height:18px}.h8{font-size:12px;font-weight:400;letter-spacing:.2px;line-height:18px}.h9{font-size:10px;font-weight:400;letter-spacing:0px;line-height:15px}.btn-lg-b{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:24px}.btn-lg{font-size:16px;font-weight:400;letter-spacing:.2px;line-height:24px}.btn-sm{font-size:14px;font-weight:400;letter-spacing:.25px;line-height:20px}.btn-link{font-size:16px;font-weight:400;letter-spacing:0px;line-height:24px}.display-1{font-size:48px;font-weight:400;letter-spacing:0px;line-height:56px}.display-2{font-size:14px;font-weight:400;letter-spacing:.5px;line-height:20px}:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.datepicker-container{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:290px}.datepicker-container .datepicker-container__header{display:flex;height:32px;margin:16px;justify-content:space-between;align-items:center;width:258px}.datepicker-container .datepicker-container__header span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.datepicker-container .datepicker-container__header .month-header,.datepicker-container .datepicker-container__header .year-header{padding:8px;border-radius:10px}.datepicker-container .datepicker-container__header .month-header:hover,.datepicker-container .datepicker-container__header .year-header:hover{cursor:pointer;background-color:var(--brand-primary-active, #DAE1F3)}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container .datepicker-container__header .datepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}.datepicker-container .datepicker-container__body{width:258px;height:100%;margin:0 16px 16px}.datepicker-container .datepicker-container__body .row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.datepicker-container .datepicker-container__body .month,.datepicker-container .datepicker-container__body .year{padding:10px 6px;cursor:pointer;border-radius:5px;text-align:center;background-color:var(--bg-primary, #FFFFFF)}.datepicker-container .datepicker-container__body .month:hover,.datepicker-container .datepicker-container__body .year:hover{background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container .datepicker-container__body .disable-month,.datepicker-container .datepicker-container__body .disable-year{cursor:default;color:var(--text-disabled, #C8CDD3)}.datepicker-container .datepicker-container__body .disable-month:hover,.datepicker-container .datepicker-container__body .disable-year:hover{background-color:transparent}.datepicker-container .datepicker-container__body .select-month,.datepicker-container .datepicker-container__body .select-year{background-color:var(--brand-primary, #0937B2);color:var(--bg-primary, #FFFFFF)}.datepicker-container .datepicker-container__body .select-month:hover,.datepicker-container .datepicker-container__body .select-year:hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.datepicker-container .datepicker-container__body .datepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday{width:36px;height:18px;text-align:center}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-disabled, #C8CDD3)}.datepicker-container .datepicker-container__body .datepicker-container__weekdays .datepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.datepicker-container .datepicker-container__body .datepicker-container__days{display:flex;flex-wrap:wrap;gap:2px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:4px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.selected-day{background-color:var(--brand-primary, #0937B2);cursor:pointer}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.disabled-day{cursor:default}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.disabled-day:hover{background-color:transparent}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-day):hover span.selected-day{color:var(--text-primary, #181F33)!important}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.selected-day{color:var(--bg-primary, #FFFFFF)}.datepicker-container .datepicker-container__body .datepicker-container__days .datepicker-container__day span.disabled-day{color:var(--text-disabled, #C8CDD3)}.datepicker-container .datepicker-container__time{border-top:1px solid var(--border-primary, #E0E0E0);padding:16px;margin:0 16px}.datepicker-container .datepicker-container__time .time-picker-header{margin-bottom:12px}.datepicker-container .datepicker-container__time .time-picker-header span{font-size:14px;font-weight:600;color:var(--text-primary, #181F33)}.datepicker-container .datepicker-container__time .time-picker-controls{display:flex;align-items:center;gap:8px}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group{display:flex;flex-direction:column;gap:4px}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group label{font-size:12px;font-weight:500;color:var(--text-secondary, #6A737D)}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input{width:50px;height:32px;padding:4px 8px;border:1px solid var(--border-primary, #E0E0E0);border-radius:4px;font-size:14px;text-align:center}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b21a}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input:invalid{border-color:#dc3545;background-color:#fff5f5}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input::-webkit-inner-spin-button,.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.datepicker-container .datepicker-container__time .time-picker-controls .time-input-group .time-input[type=number]{-moz-appearance:textfield}.datepicker-container .datepicker-container__time .time-picker-controls .time-separator{font-size:18px;font-weight:600;color:var(--text-primary, #181F33);margin-top:20px}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector{display:flex;flex-direction:column;gap:4px}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector label{font-size:12px;font-weight:500;color:var(--text-secondary, #6A737D)}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector .am-pm-select{width:60px;height:42px;padding:4px 8px;border:1px solid var(--border-primary, #E0E0E0);border-radius:4px;font-size:14px;background-color:#fff}.datepicker-container .datepicker-container__time .time-picker-controls .am-pm-selector .am-pm-select:focus{outline:none;border-color:var(--brand-primary, #0937B2);box-shadow:0 0 0 2px #0937b21a}.datepicker-container .datepicker-container__footer{display:flex;justify-content:flex-end;gap:8px;bottom:0;align-items:center;position:sticky;padding:16px;border-top:1px solid var(--border-primary, #E0E0E0)}.remove-box-shadow{box-shadow:none!important;border:none!important;border-radius:0!important}\n"] }]
|
|
839
839
|
}], () => [{ type: undefined, decorators: [{
|
|
840
840
|
type: Inject,
|
|
841
841
|
args: [CONTAINER_DATA]
|
|
@@ -844,4 +844,4 @@ export class TzDpContainerComponent {
|
|
|
844
844
|
args: ["keydown.esc"]
|
|
845
845
|
}] }); })();
|
|
846
846
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TzDpContainerComponent, { className: "TzDpContainerComponent" }); })();
|
|
847
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotZHAtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXJfdjIvdHotZHAtY29udGFpbmVyL3R6LWRwLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyX3YyL3R6LWRwLWNvbnRhaW5lci90ei1kcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEtBQW9CLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUE7Ozs7Ozs7Ozs7Ozs7OztJQ1cxRCwrQkFBbUY7SUFBckQsK0tBQVMsNEJBQXFCLEtBQUM7SUFDM0QsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUscUlBQ0Y7Ozs7SUFDQSwrQkFBa0Y7SUFBbkQsK0tBQVMsMkJBQW9CLEtBQUM7SUFDM0QsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUscUdBQ0Y7Ozs7SUF5QkksK0JBTU87SUFKSCxvU0FBK0IsNEJBQWtCLEtBQUM7SUFLcEQsWUFDRjtJQUFBLGlCQUFNOzs7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IEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENPTlRBSU5FUl9EQVRBLCBEQVRFX0ZPUk1BVCB9IGZyb20gXCIuLi9kYXRlcGlja2VyLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgSUN1cnJlbnRNb250aCwgSUN1cnJlbnRNb250aERhdGVzLCBJRGF0ZVBpY2tlckRhdGEsIElXZWVrRGF5IH0gZnJvbSBcIi4uL21vZGVscy9kcC1jb25maWcubW9kZWxcIjtcbmltcG9ydCB7IGdldE1vbnRoIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS90b2FzdFwiO1xuaW1wb3J0IGRheWpzLCB7IERheWpzLCB0eiB9IGZyb20gJ2RheWpzJztcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcbmltcG9ydCBpc1NhbWVPckFmdGVyIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckFmdGVyJztcbmltcG9ydCBpc1NhbWVPckJlZm9yZSBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmUnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCdcblxuZGF5anMuZXh0ZW5kKHV0Yyk7XG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcbmRheWpzLmV4dGVuZChpc1NhbWVPckFmdGVyKTtcbmRheWpzLmV4dGVuZChpc1NhbWVPckJlZm9yZSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdHotZHBcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90ei1kcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3R6LWRwLWNvbnRhaW5lci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUekRwQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGF0YTogSURhdGVQaWNrZXJEYXRhO1xuICBwcml2YXRlIHBhcnNlWm9uZUluc3RhbmNlID0gKC4uLmFyZ3MpID0+IHtcbiAgICByZXR1cm4gZGF5anMoLi4uYXJncyk7XG4gIH07XG4gIHByaXZhdGUgcmF3V2Vla0RheXM6IHN0cmluZ1tdID0gW1wiU1VOXCIsIFwiTU9OXCIsIFwiVFVFXCIsIFwiV0VEXCIsIFwiVEhVXCIsIFwiRlJJXCIsIFwiU0FUXCJdO1xuICB3ZWVrRGF5czogSVdlZWtEYXlbXSA9IFtdO1xuICBjdXJyZW50TW9udGhOdW1iZXI6IG51bWJlcjtcbiAgY3VycmVudE1vbnRoOiBJQ3VycmVudE1vbnRoO1xuICBjdXJyZW50WWVhck51bWJlcjogbnVtYmVyO1xuICBjdXJyZW50TW9udGhEYXRlczogSUN1cnJlbnRNb250aERhdGVzW10gPSBbXTtcbiAgaXNQcmV2aW91c01vbnRoRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNOZXh0TW9udGhEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBsb2NhbFNlbGVjdGVkRGF0ZTogSUN1cnJlbnRNb250aERhdGVzO1xuICBhbGxvd0Jvb2tpbmdPbkRpc2FibGVkRGF5OiBib29sZWFuID0gZmFsc2U7XG4gIGN1cnJlbnRTZWxlY3Rpb246IGFueTtcbiAgXG4gIC8vIFRpbWUgZnVuY3Rpb25hbGl0eSAtIG9ubHkgd2hhdCdzIG5lZWRlZFxuICBzZWxlY3RlZEhvdXI6IG51bWJlciA9IDA7XG4gIHNlbGVjdGVkTWludXRlOiBudW1iZXIgPSAwO1xuICBzZWxlY3RlZEFtUG06IHN0cmluZyA9ICdBTSc7XG5cbiAgaXNTZWxlY3RpbmdNb250aDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbGVjdGluZ1llYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYXZhaWxhYmxlWWVhcnM6IG51bWJlcltdID0gW107XG4gIGF2YWlsYWJsZU1vbnRoczogc3RyaW5nW10gPSBbXTtcbiAgZGlzYWJsZWRNb250aHM6IGJvb2xlYW5bXSA9IFtdO1xuICBkaXNhYmxlZFllYXJzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRZZWFyOiBudW1iZXI7XG4gIGlzWWVhclNlbGVjdGlvbkZsb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KENPTlRBSU5FUl9EQVRBKSBkYXRhOiBJRGF0ZVBpY2tlckRhdGEsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSBwYXJzZVpvbmVJbnN0YW5jZSB3aXRoIGJldHRlciBlcnJvciBoYW5kbGluZ1xuICAgIHRoaXMucGFyc2Vab25lSW5zdGFuY2UgPSAoLi4uYXJncykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YT8uZHBDb25maWc/LnRpbWV6b25lKSB7XG4gICAgICAgICAgcmV0dXJuIGRheWpzLnR6KGFyZ3NbMF0sIGFyZ3NbMV0gIHx8ICdERC9NTS9ZWVlZJywgdGhpcy5kYXRhLmRwQ29uZmlnLnRpbWV6b25lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZGF5anMoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSB0aW1lem9uZSBwYXJzaW5nIGVycm9yLCBmYWxsYmFjayB0byBsb2NhbCB0aW1lXG4gICAgICAgIHJldHVybiBkYXlqcyguLi5hcmdzKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFxuICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlcyBzYWZlbHlcbiAgICB0aGlzLmN1cnJlbnRNb250aE51bWJlciA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS5tb250aCgpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gZ2V0TW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpO1xuICAgIHRoaXMuY3VycmVudFllYXJOdW1iZXIgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcigpO1xuICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLnJhd1dlZWtEYXlzLm1hcCgoZGF5LCBpbmRleCkgPT4gKHtcbiAgICAgIGxhYmVsOiBgJHtkYXlbMF19JHtkYXkuc2xpY2UoMSkudG9Mb3dlckNhc2UoKX1gLFxuICAgICAgaXNDdXJyZW50RGF5OiB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkuZGF5KCkgPT09IGluZGV4XG4gICAgfSkpO1xuICAgIFxuICAgIGlmICghdGhpcy5kYXRhPy5kcENvbmZpZz8uZm9ybWF0KSB7XG4gICAgICB0aGlzLmRhdGEuZHBDb25maWcgPSB7XG4gICAgICAgIC4uLnRoaXMuZGF0YS5kcENvbmZpZyxcbiAgICAgICAgZm9ybWF0OiBEQVRFX0ZPUk1BVFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZighdGhpcy5kYXRhPy5kYXRlKXtcbiAgICAgIHRoaXMuZGF0YS5kYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLmZvcm1hdCh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICB9XG5cbiAgICB0aGlzLmF2YWlsYWJsZU1vbnRocyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PiBkYXlqcygpLm1vbnRoKGkpLmZvcm1hdCgnTU1NTScpKTtcbiAgICB0aGlzLmF2YWlsYWJsZVllYXJzID0gQXJyYXkuZnJvbShcbiAgICAgIHsgbGVuZ3RoOiAxMiB9LFxuICAgICAgKF8sIGluZGV4KSA9PiB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyIC0gNiArIGluZGV4XG4gICAgKTtcbiAgICBcbiAgfVxuXG4gIG9uSG91cklucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgIT09IHRydWUpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgICAgaWYgKHZhbHVlID49IDEgJiYgdmFsdWUgPD0gMTIpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSAyMykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbk1pbnV0ZUlucHV0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgIT09IHRydWUpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSA1OSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlSG91cklucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgIFxuICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSG91ciA8IDEpIHRoaXMuc2VsZWN0ZWRIb3VyID0gMTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSG91ciA+IDEyKSB0aGlzLnNlbGVjdGVkSG91ciA9IDEyO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEhvdXIgPCAwKSB0aGlzLnNlbGVjdGVkSG91ciA9IDA7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEhvdXIgPiAyMykgdGhpcy5zZWxlY3RlZEhvdXIgPSAyMztcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZU1pbnV0ZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgIFxuICAgIGlmICh0aGlzLnNlbGVjdGVkTWludXRlIDwgMCkgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IDA7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNaW51dGUgPiA1OSkgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IDU5O1xuICB9XG5cbiAgaXMxMkhvdXJGb3JtYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lID09PSB0cnVlICYmIFxuICAgICAgICAgICAodGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdC5pbmNsdWRlcygnQScpIHx8IHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQuaW5jbHVkZXMoJ2EnKSk7XG4gIH1cblxuICByZXRyYWN0RGF5TW9udGgoZGF5OiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGAke2RheX0gJHttb250aH0gJHt5ZWFyfWA7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnREYXRlSW5zdGFuY2UoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZU1pbk1heERheXMoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZURpc2FibGVkTW9udGhzQW5kWWVhcnMoKTtcbiAgICB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5jdXJyZW50TW9udGhOdW1iZXIsIHRoaXMuY3VycmVudFllYXJOdW1iZXIpO1xuICAgIFxuICAgIC8vIEluaXRpYWxpemUgdGltZSBpZiBlbmFibGVkXG4gICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVUaW1lVmFsdWVzKCk7XG4gICAgfVxuICB9XG4gIGdldCB5ZWFyUmFuZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3RlZFllYXIgLSA2fSAtICR7dGhpcy5zZWxlY3RlZFllYXIgKyA1fWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUaW1lVmFsdWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSA9PT0gdHJ1ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0YS5kYXRlKSB7XG4gICAgICAgIC8vIFRyeSB0byBwYXJzZSBleGlzdGluZyBkYXRlIGZvciB0aW1lIHZhbHVlc1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSh0aGlzLmRhdGEuZGF0ZSwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgbGV0IGhvdXIgPSBjdXJyZW50RGF0ZS5ob3VyKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gY3VycmVudERhdGUubWludXRlKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgICAgICAgICAgaWYgKGhvdXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMTI7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSAnQU0nO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPiAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSBob3VyIC0gMTI7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSAnUE0nO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSAnUE0nO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBbVBtID0gJ0FNJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGhvdXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEludmFsaWQgZGF0ZSwgdXNlIGRlZmF1bHRzXG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRUaW1lVmFsdWVzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFBhcnNpbmcgZXJyb3IsIHVzZSBkZWZhdWx0c1xuICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFRpbWVWYWx1ZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSBcbiAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm8gZXhpc3RpbmcgZGF0ZSwgdXNlIGRlZmF1bHRzXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFRpbWVWYWx1ZXMoKTtcbiAgICAgIH1cbiAgICBcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdFRpbWVWYWx1ZXMoKTogdm9pZCB7XG4gICAgLy8gVXNlIGN1cnJlbnQgdGltZSBhcyBkZWZhdWx0IGluc3RlYWQgb2YgMTI6MDAgUE1cbiAgICBjb25zdCBub3cgPSBkYXlqcygpO1xuICAgIGNvbnN0IGN1cnJlbnRIb3VyID0gbm93LmhvdXIoKTtcbiAgICBjb25zdCBjdXJyZW50TWludXRlID0gbm93Lm1pbnV0ZSgpO1xuICAgIFxuICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgIC8vIENvbnZlcnQgY3VycmVudCB0aW1lIHRvIDEyLWhvdXIgZm9ybWF0XG4gICAgICBsZXQgaG91cjEyID0gY3VycmVudEhvdXI7XG4gICAgICBsZXQgYW1QbSA9ICdBTSc7XG4gICAgICBcbiAgICAgIGlmIChjdXJyZW50SG91ciA9PT0gMCkge1xuICAgICAgICBob3VyMTIgPSAxMjtcbiAgICAgICAgYW1QbSA9ICdBTSc7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRIb3VyID09PSAxMikge1xuICAgICAgICBob3VyMTIgPSAxMjtcbiAgICAgICAgYW1QbSA9ICdQTSc7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRIb3VyID4gMTIpIHtcbiAgICAgICAgaG91cjEyID0gY3VycmVudEhvdXIgLSAxMjtcbiAgICAgICAgYW1QbSA9ICdQTSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbVBtID0gJ0FNJztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBob3VyMTI7XG4gICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gY3VycmVudE1pbnV0ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBbVBtID0gYW1QbTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXNlIGN1cnJlbnQgdGltZSBkaXJlY3RseSBmb3IgMjQtaG91ciBmb3JtYXRcbiAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gY3VycmVudEhvdXI7XG4gICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gY3VycmVudE1pbnV0ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBbVBtID0gJ0FNJzsgLy8gTm90IHVzZWQgaW4gMjQtaG91ciBmb3JtYXQgYnV0IGtlZXAgY29uc2lzdGVudFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudERhdGVJbnN0YW5jZSgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuZGF0YS5kYXRlKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGRheWpzKHRoaXMuZGF0YS5kYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyID0gdGhpcy5jdXJyZW50WWVhck51bWJlciA9IHNlbGVjdGVkRGF0ZS55ZWFyKCk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50TW9udGhOdW1iZXIgPSBzZWxlY3RlZERhdGUubW9udGgoKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGdldE1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoIXRoaXMubG9jYWxTZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGUgPSB7XG4gICAgICAgICAgICAgIGRhdGU6IHNlbGVjdGVkRGF0ZS5kYXRlKCksXG4gICAgICAgICAgICAgIHdlZWtEYXk6IHNlbGVjdGVkRGF0ZS5kYXkoKSxcbiAgICAgICAgICAgICAgbW9udGg6IHNlbGVjdGVkRGF0ZS5tb250aCgpLFxuICAgICAgICAgICAgICB5ZWFyOiBzZWxlY3RlZERhdGUueWVhcigpLFxuICAgICAgICAgICAgICBpc1NlbGVjdGVkRGF5OiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIoKTtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLm1vbnRoKCk7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGdldE1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyA9IHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlciwgdGhpcy5jdXJyZW50WWVhck51bWJlcik7XG4gIH1cblxuXG4gIHByaXZhdGUgY2FsY3VsYXRlTWluTWF4RGF5cygpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgIFxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlKSB7XG4gICAgICAgICAgY29uc3QgbWluRGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICAgIGlmIChtaW5EYXRlPy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2aW91c01vbnRoRGlzYWJsZWQgPSBtaW5EYXRlLmlzU2FtZU9yQWZ0ZXIoY3VycmVudEluc3RhbmNlLCBcIm1vbnRoXCIpO1xuICAgICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlKSB7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgaWYgKG1heERhdGU/LmlzVmFsaWQoKSkge1xuICAgICAgICAgIHRoaXMuaXNOZXh0TW9udGhEaXNhYmxlZCA9IG1heERhdGUuaXNTYW1lT3JCZWZvcmUoY3VycmVudEluc3RhbmNlLCBcIm1vbnRoXCIpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpIHtcbiAgICBjb25zdCBtaW5EYXRlID0gISF0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSA/IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICBjb25zdCBtYXhEYXRlID0gISF0aGlzLmRhdGEuZHBDb25maWcubWF4RGF0ZSA/IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICBcbiAgICB0aGlzLmRpc2FibGVkTW9udGhzID0gdGhpcy5hdmFpbGFibGVNb250aHMubWFwKChtb250aCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IG1vbnRoRGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS55ZWFyKHRoaXMuc2VsZWN0ZWRZZWFyKS5tb250aChpbmRleCk7XG4gICAgICByZXR1cm4gKG1pbkRhdGUuaXNWYWxpZCgpICYmIG1vbnRoRGF0ZS5pc0JlZm9yZShtaW5EYXRlLCAnbW9udGgnKSkgfHwgXG4gICAgICAgICAgICAgKG1heERhdGUuaXNWYWxpZCgpICYmIG1vbnRoRGF0ZS5pc0FmdGVyKG1heERhdGUsICdtb250aCcpKTtcbiAgICB9KTtcbiAgXG4gICAgdGhpcy5kaXNhYmxlZFllYXJzID0gdGhpcy5hdmFpbGFibGVZZWFycy5tYXAoKHllYXIpID0+IHtcbiAgICAgIGNvbnN0IHllYXJEYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIoeWVhcik7XG4gICAgICByZXR1cm4gKG1pbkRhdGUuaXNWYWxpZCgpICYmIHllYXJEYXRlLmlzQmVmb3JlKG1pbkRhdGUsICd5ZWFyJykpIHx8IFxuICAgICAgICAgICAgIChtYXhEYXRlLmlzVmFsaWQoKSAmJiB5ZWFyRGF0ZS5pc0FmdGVyKG1heERhdGUsICd5ZWFyJykpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RpbmdZZWFyKSB7XG4gICAgICB0aGlzLmlzUHJldmlvdXNNb250aERpc2FibGVkID0gbWluRGF0ZS5pc1ZhbGlkKCkgJiYgKCh0aGlzLnNlbGVjdGVkWWVhciAtIDYpIDw9IG1pbkRhdGUueWVhcigpKTtcbiAgICAgIHRoaXMuaXNOZXh0TW9udGhEaXNhYmxlZCA9IG1heERhdGUuaXNWYWxpZCgpICYmICgodGhpcy5zZWxlY3RlZFllYXIgKyA1KSA+PSBtYXhEYXRlLnllYXIoKSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgbmF2aWdhdGVWaWV3KGRpcmVjdGlvbjogXCJORVhUXCIgfCBcIlBSRVZJT1VTXCIpOiB2b2lkIHtcbiAgICBpZiAoKGRpcmVjdGlvbiA9PT0gJ05FWFQnICYmICh0aGlzLmlzTmV4dE1vbnRoRGlzYWJsZWQgfHwgdGhpcy5pc1NlbGVjdGluZ01vbnRoKSkgfHxcbiAgICAgICAgKGRpcmVjdGlvbiA9PT0gJ1BSRVZJT1VTJyAmJiAodGhpcy5pc1ByZXZpb3VzTW9udGhEaXNhYmxlZCB8fCB0aGlzLmlzU2VsZWN0aW5nTW9udGgpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZih0aGlzLmlzU2VsZWN0aW5nWWVhcil7XG4gICAgICB0aGlzLnNlbGVjdGVkWWVhciArPSBkaXJlY3Rpb24gPT09IFwiTkVYVFwiID8gMTIgOiAtMTI7XG4gICAgICB0aGlzLmF2YWlsYWJsZVllYXJzID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6IDEyIH0sXG4gICAgICAgIChfLCBpbmRleCkgPT4gdGhpcy5zZWxlY3RlZFllYXIgLSA2ICsgaW5kZXhcbiAgICAgICk7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBsZXQgdGhpc01vbnRoIDogZGF5anMuRGF5anMgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKS5tb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcik7XG4gICAgICB0aGlzTW9udGggPSBkaXJlY3Rpb24gPT09IFwiTkVYVFwiID8gdGhpc01vbnRoLmFkZCgxLCBcIm1vbnRoXCIpIDogdGhpc01vbnRoLnN1YnRyYWN0KDEsIFwibW9udGhcIik7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aE51bWJlciA9IHRoaXNNb250aC5tb250aCgpO1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSBnZXRNb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcik7XG4gICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMuY3VycmVudFllYXJOdW1iZXIgPSB0aGlzTW9udGgueWVhcigpO1xuICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyA9IHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlciwgdGhpcy5jdXJyZW50WWVhck51bWJlcik7XG4gICAgfVxuICAgIHRoaXMuY2FsY3VsYXRlTWluTWF4RGF5cygpO1xuICAgIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpO1xuICB9XG5cbiAgbmF2aWdhdGVNb250aChkaXJlY3Rpb246IFwiTkVYVFwiIHwgXCJQUkVWSU9VU1wiKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0aGlzTW9udGg6IGRheWpzLkRheWpzID0gZGF5anMoKS55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IFwiTkVYVFwiKSB7XG4gICAgICAgIHRoaXNNb250aCA9IHRoaXNNb250aC5hZGQoMSwgXCJtb250aFwiKTtcbiAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcIlBSRVZJT1VTXCIpIHtcbiAgICAgICAgdGhpc01vbnRoID0gdGhpc01vbnRoLnN1YnRyYWN0KDEsIFwibW9udGhcIik7XG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRNb250aE51bWJlciA9IHRoaXNNb250aC5tb250aCgpO1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSBnZXRNb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcik7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyID0gdGhpc01vbnRoLnllYXIoKTtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMgPSB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5jdXJyZW50TW9udGhOdW1iZXIsIHRoaXMuY3VycmVudFllYXJOdW1iZXIpO1xuICAgICAgXG4gICAgICB0aGlzLmNhbGN1bGF0ZU1pbk1heERheXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIG5hdmlnYXRlTW9udGggZXJyb3JcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRGF0ZXMobW9udGg6IG51bWJlciwgY3VycmVudFllYXJOdW1iZXI6IG51bWJlcik6IElDdXJyZW50TW9udGhEYXRlc1tdIHtcbiAgICBjb25zdCBkYXRlczogSUN1cnJlbnRNb250aERhdGVzW10gPSBbXTtcbiAgICBcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF5c0luTW9udGggPSBkYXlqcygpLnllYXIoY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKG1vbnRoKS5kYXlzSW5Nb250aCgpO1xuICAgICAgXG4gICAgICBsZXQgbWluRGF0ZSA9IG51bGw7XG4gICAgICBsZXQgbWF4RGF0ZSA9IG51bGw7XG4gICAgICBcbiAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1pbkRhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBTaWxlbnRseSBoYW5kbGUgbWluIGRhdGUgcGFyc2luZyBlcnJvclxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1heERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBTaWxlbnRseSBoYW5kbGUgbWF4IGRhdGUgcGFyc2luZyBlcnJvclxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIGZvciAobGV0IGN1cnJlbnREYXRlID0gMTsgY3VycmVudERhdGUgPD0gZGF5c0luTW9udGg7IGN1cnJlbnREYXRlKyspIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIoY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKG1vbnRoKS5kYXRlKGN1cnJlbnREYXRlKTtcbiAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZS5mb3JtYXQodGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICAgICAgXG4gICAgICAgICAgbGV0IGlzRGlzYWJsZWREYXkgPSB0aGlzLmRhdGEuZGF0ZXNEaXNhYmxlZD8uc29tZShkID0+IGQgPT09IGRhdGVTdHJpbmcpIHx8IGZhbHNlO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICghaXNEaXNhYmxlZERheSAmJiBtaW5EYXRlPy5pc1ZhbGlkKCkgJiYgdGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgICAgIGlzRGlzYWJsZWREYXkgPSBtaW5EYXRlLmlzQWZ0ZXIoZGF0ZSwgXCJkYXlcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaXNEaXNhYmxlZERheSAmJiBtYXhEYXRlPy5pc1ZhbGlkKCkgJiYgdGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUpIHtcbiAgICAgICAgICAgIGlzRGlzYWJsZWREYXkgPSBtYXhEYXRlLmlzQmVmb3JlKGRhdGUsIFwiZGF5XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZUluc3RhbmNlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIoY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKG1vbnRoKS5kYXRlKGN1cnJlbnREYXRlKTtcbiAgICAgICAgICBjb25zdCBpc0N1cnJlbnREYXkgPSBjdXJyZW50RGF0ZUluc3RhbmNlLmZvcm1hdCh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KSA9PT0gZGF5anMoKS5mb3JtYXQodGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICAgICAgXG4gICAgICAgICAgbGV0IGlzU2VsZWN0ZWREYXkgPSBmYWxzZTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBQcmlvcml0aXplIGN1cnJlbnQgc2VsZWN0aW9uIG92ZXIgcHJldmlvdXNseSBhcHBsaWVkIGRhdGVcbiAgICAgICAgICBpZiAodGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSAmJiBcbiAgICAgICAgICAgICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZS5kYXRlID09PSBjdXJyZW50RGF0ZSAmJlxuICAgICAgICAgICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlLm1vbnRoID09PSBtb250aCAmJlxuICAgICAgICAgICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlLnllYXIgPT09IGN1cnJlbnRZZWFyTnVtYmVyKSB7XG4gICAgICAgICAgICBpc1NlbGVjdGVkRGF5ID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5kYXRlICYmICF0aGlzLmxvY2FsU2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICAvLyBPbmx5IGNoZWNrIHByZXZpb3VzbHkgYXBwbGllZCBkYXRlIGlmIG5vIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZERheSA9IHNlbGVjdGVkRGF0ZS5pc1NhbWUoY3VycmVudERhdGVJbnN0YW5jZSwgJ2RheScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBGb3IgZGF0ZS1vbmx5IGZvcm1hdCwgY29tcGFyZSB0aGUgZGF0ZSBwYXJ0cyBvbmx5XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSh0aGlzLmRhdGEuZGF0ZSwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWREYXkgPSBzZWxlY3RlZERhdGUuaXNTYW1lKGN1cnJlbnREYXRlSW5zdGFuY2UsICdkYXknKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgdG8gc3RyaW5nIGNvbXBhcmlzb24gaWYgcGFyc2luZyBmYWlsc1xuICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZERheSA9IGRhdGVTdHJpbmcgPT09IHRoaXMuZGF0YS5kYXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIGRhdGUgY29tcGFyaXNvbiBlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICBkYXRlcy5wdXNoKHtcbiAgICAgICAgICAgIGRhdGU6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgd2Vla0RheTogZGF0ZS5kYXkoKSxcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCxcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRZZWFyTnVtYmVyLFxuICAgICAgICAgICAgaXNDdXJyZW50RGF5LFxuICAgICAgICAgICAgaXNTZWxlY3RlZERheSxcbiAgICAgICAgICAgIHRvYXN0TWVzc2FnZTogdGhpcy5kYXRhLm1lc3NhZ2VzPy5maW5kKHEgPT4gZGF0ZVN0cmluZyA9PT0gcS5kYXRlKT8ubWVzc2FnZSB8fCBcIlwiLFxuICAgICAgICAgICAgaXNEaXNhYmxlZERheVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBkYXRlIHByb2Nlc3NpbmcgZXJyb3JcbiAgICAgICAgICBkYXRlcy5wdXNoKHtcbiAgICAgICAgICAgIGRhdGU6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgd2Vla0RheTogdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIoY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKG1vbnRoKS5kYXRlKGN1cnJlbnREYXRlKS5kYXkoKSxcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCxcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRZZWFyTnVtYmVyLFxuICAgICAgICAgICAgaXNEaXNhYmxlZERheTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSBkYXRlc1swXS53ZWVrRGF5OyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgZGF0ZXMudW5zaGlmdCh7IFxuICAgICAgICAgICAgZGF0ZTogMCwgXG4gICAgICAgICAgICB3ZWVrRGF5OiBpIC0gMSxcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCxcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRZZWFyTnVtYmVyXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIGdlbmVyYXRlRGF0ZXMgZXJyb3JcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGRhdGVzO1xuICB9XG5cbiAgc2VsZWN0RGF5KGRheTogSUN1cnJlbnRNb250aERhdGVzKSB7XG4gICAgaWYgKGRheS5kYXRlIDw9IDApIHJldHVybjtcbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gQ3JlYXRlIHRoZSBiYXNlIGRhdGUgc2VsZWN0aW9uIHdpdGhvdXQgdGltZVxuICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIodGhpcy5jdXJyZW50WWVhck51bWJlcikubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpLmRhdGUoZGF5LmRhdGUpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKS5taWxsaXNlY29uZCgwKTtcbiAgICAgIFxuICAgICAgLy8gQXBwbHkgdGhlIGN1cnJlbnQgdGltZSB2YWx1ZXMgdG8gdGhlIHNlbGVjdGlvblxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lID09PSB0cnVlKSB7XG4gICAgICAgIGxldCBob3VyID0gdGhpcy5zZWxlY3RlZEhvdXI7XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5pczEySG91ckZvcm1hdCgpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBbVBtID09PSAnUE0nICYmIGhvdXIgIT09IDEyKSB7XG4gICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEFtUG0gPT09ICdBTScgJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uXG4gICAgICAgICAgLmhvdXIoaG91cilcbiAgICAgICAgICAubWludXRlKHRoaXMuc2VsZWN0ZWRNaW51dGUpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBsZXQgbWF4RGF0ZSA9IG51bGw7XG4gICAgICBsZXQgbWluRGF0ZSA9IG51bGw7XG4gICAgICBcbiAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1heERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KS5lbmRPZihcImRheVwiKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBTaWxlbnRseSBoYW5kbGUgbWF4IGRhdGUgcGFyc2luZyBlcnJvclxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1pbkRhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KS5zdGFydE9mKFwiZGF5XCIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBtaW4gZGF0ZSBwYXJzaW5nIGVycm9yXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5hbGxvd0Jvb2tpbmdPbkRpc2FibGVkRGF5ID0gdGhpcy5kYXRhLmFsbG93Qm9va2luZ09uRGlzYWJsZWREYXk7XG4gICAgICBcbiAgICAgIGlmICgoKCFtaW5EYXRlIHx8IHRoaXMuY3VycmVudFNlbGVjdGlvbi5pc1NhbWVPckFmdGVyKG1pbkRhdGUpKSAmJiAoIW1heERhdGUgfHwgdGhpcy5jdXJyZW50U2VsZWN0aW9uLmlzU2FtZU9yQmVmb3JlKG1heERhdGUpKSAmJiB0aGlzLmFsbG93Qm9va2luZ09uRGlzYWJsZWREYXkpIHx8ICghZGF5LmlzRGlzYWJsZWREYXkgJiYgIXRoaXMuYWxsb3dCb29raW5nT25EaXNhYmxlZERheSkpIHtcbiAgICAgICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSA9IHtcbiAgICAgICAgICAuLi5kYXksXG4gICAgICAgICAgbW9udGg6IHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLFxuICAgICAgICAgIHllYXI6IHRoaXMuY3VycmVudFllYXJOdW1iZXJcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIEZvcmNlIGNhbGVuZGFyIHJlLXJlbmRlciB0byBzaG93IGhpZ2hsaWdodGluZ1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzID0gdGhpcy5nZW5lcmF0ZURhdGVzKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgc2hvdyBhcHBseSBidXR0b24gd2hlbiB0aW1lIGlzIGVuYWJsZWQsIG90aGVyd2lzZSBhcHBseSBpbW1lZGlhdGVseVxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgdGhpcy5hcHBseURhdGUoZGF5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF5LnRvYXN0TWVzc2FnZSB8fCAodGhpcy5hbGxvd0Jvb2tpbmdPbkRpc2FibGVkRGF5ICYmIGRheS50b2FzdE1lc3NhZ2UpKSB7XG4gICAgICAgIHRoaXMudG9hc3QuZGlzcGxheU1zZyhkYXkudG9hc3RNZXNzYWdlLCA0MDAwKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIHNlbGVjdERheSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFwcGx5RGF0ZShkYXk/OiBJQ3VycmVudE1vbnRoRGF0ZXMpIHtcbiAgICBsZXQgZGF0ZTogc3RyaW5nO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWUpIHtcbiAgICAgICAgLy8gQWx3YXlzIHVzZSB0aW1lIGlucHV0IHZhbHVlcyB3aGVuIHRpbWUgaXMgZW5hYmxlZCwgcmVnYXJkbGVzcyBvZiBjdXJyZW50U2VsZWN0aW9uXG4gICAgICAgIGxldCBob3VyID0gdGhpcy5zZWxlY3RlZEhvdXI7XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5pczEySG91ckZvcm1hdCgpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBbVBtID09PSAnUE0nICYmIGhvdXIgIT09IDEyKSB7XG4gICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEFtUG0gPT09ICdBTScgJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGRhdGUgaW5zdGFuY2Ugd2l0aCB0aGUgc2VsZWN0ZWQgdGltZVxuICAgICAgICBjb25zdCBmaW5hbFNlbGVjdGlvbiA9IGRheWpzKClcbiAgICAgICAgICAueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKVxuICAgICAgICAgIC5tb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcilcbiAgICAgICAgICAuZGF0ZSh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlPy5kYXRlIHx8IGRheT8uZGF0ZSB8fCBkYXlqcygpLmRhdGUoKSlcbiAgICAgICAgICAuaG91cihob3VyKVxuICAgICAgICAgIC5taW51dGUodGhpcy5zZWxlY3RlZE1pbnV0ZSlcbiAgICAgICAgICAuc2Vjb25kKDApXG4gICAgICAgICAgLm1pbGxpc2Vjb25kKDApO1xuICAgICAgICBcbiAgICAgICAgZGF0ZSA9IGZpbmFsU2VsZWN0aW9uLmZvcm1hdCh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERhdGUtb25seSBmb3JtYXQgLSBubyB0aW1lXG4gICAgICAgIGRhdGUgPSBkYXlqcygpXG4gICAgICAgICAgLnllYXIodGhpcy5jdXJyZW50WWVhck51bWJlcilcbiAgICAgICAgICAubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpXG4gICAgICAgICAgLmRhdGUoZGF5ID8gZGF5LmRhdGUgOiB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlPy5kYXRlIHx8IGRheWpzKCkuZGF0ZSgpKVxuICAgICAgICAgIC5ob3VyKDApXG4gICAgICAgICAgLm1pbnV0ZSgwKVxuICAgICAgICAgIC5zZWNvbmQoMClcbiAgICAgICAgICAubWlsbGlzZWNvbmQoMClcbiAgICAgICAgICAuZm9ybWF0KHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF5IHx8IHRoaXMubG9jYWxTZWxlY3RlZERhdGUgfHwgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lID09PSB0cnVlKSkge1xuICAgICAgICB0aGlzLmRhdGEuZGF0ZUNoYW5nZShkYXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FuY2VsRGF0ZVBpY2tlcigpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBTaWxlbnRseSBoYW5kbGUgYXBwbHlEYXRlIGVycm9yXG4gICAgICB0aGlzLmRhdGEuZGF0ZUNoYW5nZShcIlwiKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93bi5lc2NcIilcbiAgY2xvc2VPbkVzYygpIHtcbiAgICB0aGlzLmNhbmNlbERhdGVQaWNrZXIoKTtcbiAgfVxuXG4gIGNhbmNlbERhdGVQaWNrZXIoKSB7XG4gICAgdGhpcy5kYXRhLmRhdGVDaGFuZ2UoXCJcIik7XG4gIH1cblxuICB0b2dnbGVNb250aFNlbGVjdG9yKCkge1xuICAgIGlmKHRoaXMuaXNZZWFyU2VsZWN0aW9uRmxvdykgcmV0dXJuO1xuICAgIHRoaXMuaXNTZWxlY3RpbmdNb250aCA9ICF0aGlzLmlzU2VsZWN0aW5nTW9udGg7XG4gICAgdGhpcy5pc1NlbGVjdGluZ1llYXIgPSBmYWxzZTtcbiAgICB0aGlzLmNhbGN1bGF0ZURpc2FibGVkTW9udGhzQW5kWWVhcnMoKTtcbiAgfVxuXG4gIHRvZ2dsZVllYXJTZWxlY3RvcigpIHtcbiAgICB0aGlzLmlzU2VsZWN0aW5nWWVhciA9ICF0aGlzLmlzU2VsZWN0aW5nWWVhcjtcbiAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMuY3VycmVudFllYXJOdW1iZXI7XG4gICAgdGhpcy5hdmFpbGFibGVZZWFycyA9IEFycmF5LmZyb20oXG4gICAgICB7IGxlbmd0aDogMTIgfSxcbiAgICAgIChfLCBpbmRleCkgPT4gdGhpcy5zZWxlY3RlZFllYXIgLSA2ICsgaW5kZXhcbiAgICApO1xuICAgIHRoaXMuaXNTZWxlY3RpbmdNb250aCA9IGZhbHNlO1xuICAgIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpO1xuXG4gIH1cblxuICByZXNldERhdGVTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSA9IHtcbiAgICAgIGRhdGU6IDAsXG4gICAgICB3ZWVrRGF5OiAwLFxuICAgICAgaXNDdXJyZW50RGF5OiBmYWxzZSxcbiAgICAgIGlzU2VsZWN0ZWREYXk6IGZhbHNlLFxuICAgICAgaXNEaXNhYmxlZERheTogZmFsc2UsXG4gICAgICB0b2FzdE1lc3NhZ2U6ICcnXG4gICAgfTtcbiAgICB0aGlzLmRhdGEuZGF0ZSA9ICcnO1xuICB9XG5cbiAgc2VsZWN0TW9udGgobW9udGg6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyID0gdGhpcy5hdmFpbGFibGVNb250aHMuaW5kZXhPZihtb250aCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBnZXRNb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcik7XG4gICAgdGhpcy5pc1NlbGVjdGluZ01vbnRoID0gZmFsc2U7XG4gICAgdGhpcy5pc1llYXJTZWxlY3Rpb25GbG93ID0gZmFsc2U7XG4gICAgdGhpcy5yZXNldERhdGVTZWxlY3Rpb24oKTtcbiAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzID0gdGhpcy5nZW5lcmF0ZURhdGVzKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKTtcbiAgICB0aGlzLmNhbGN1bGF0ZU1pbk1heERheXMoKTtcbiAgfVxuXG4gIHNlbGVjdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFllYXIgPSB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyID0geWVhcjtcbiAgICB0aGlzLmlzU2VsZWN0aW5nWWVhciA9IGZhbHNlO1xuICAgIHRoaXMuaXNTZWxlY3RpbmdNb250aCA9IHRydWU7XG4gICAgdGhpcy5pc1llYXJTZWxlY3Rpb25GbG93ID0gdHJ1ZTtcbiAgICB0aGlzLnJlc2V0RGF0ZVNlbGVjdGlvbigpO1xuICAgIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJcIiBbbmdDbGFzc109XCJkYXRhLmRpc2FibGVCb3hTaGFkb3c/J3JlbW92ZS1ib3gtc2hhZG93JzonJ1wiIGFyaWEtbGFiZWw9XCJkYXRlIHBpY2tlclwiIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxuICA8ZGl2IHRhYmluZGV4PVwiLTFcIiBjZGtGb2N1c0luaXRpYWw+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lcl9faGVhZGVyXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lcl9fYXJyb3dfX2ljb25cIlxuICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVmlldygnUFJFVklPVVMnKVwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIE1vbnRoXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJuYXZpZ2F0ZVZpZXcoJ1BSRVZJT1VTJylcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZGlzYWJsZWQtbW9udGgnOiBpc1ByZXZpb3VzTW9udGhEaXNhYmxlZCB8fCBpc1NlbGVjdGluZ01vbnRoXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjAgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE5LjcwNzEgOC43MDcxMUMyMC4wOTc2IDguMzE2NTggMjAuMDk3NiA3LjY4MzQyIDE5LjcwNzEgNy4yOTI4OUwxMy4zNDMxIDAuOTI4OTMzQzEyLjk1MjYgMC41Mzg0MDkgMTIuMzE5NSAwLjUzODQwOSAxMS45Mjg5IDAuOTI4OTMzQzExLjUzODQgMS4zMTk0NiAxMS41Mzg0IDEuOTUyNjIgMTEuOTI4OSAyLjM0MzE1TDE3LjU4NTggOEwxMS45Mjg5IDEzLjY1NjlDMTEuNTM4NCAxNC4wNDc0IDExLjUzODQgMTQuNjgwNSAxMS45Mjg5IDE1LjA3MTFDMTIuMzE5NSAxNS40NjE2IDEyLjk1MjYgMTUuNDYxNiAxMy4zNDMxIDE1LjA3MTFMMTkuNzA3MSA4LjcwNzExWk0tOC43NDIyOGUtMDggOUwxOSA5TDE5IDdMOC43NDIyOGUtMDggN0wtOC43NDIyOGUtMDggOVpcIlxuICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc1NlbGVjdGluZ1llYXJcIiAoY2xpY2spPVwidG9nZ2xlTW9udGhTZWxlY3RvcigpXCIgY2xhc3M9XCJtb250aC1oZWFkZXJcIj5cbiAgICAgIHt7IGlzWWVhclNlbGVjdGlvbkZsb3cgPyBzZWxlY3RlZFllYXIgOiBhdmFpbGFibGVNb250aHNbY3VycmVudE1vbnRoTnVtYmVyXSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNTZWxlY3RpbmdNb250aFwiIChjbGljayk9XCJ0b2dnbGVZZWFyU2VsZWN0b3IoKVwiIGNsYXNzPVwieWVhci1oZWFkZXJcIj5cbiAgICAgIHt7IGlzU2VsZWN0aW5nWWVhciA/IHllYXJSYW5nZSA6IGN1cnJlbnRZZWFyTnVtYmVyIH19XG4gICAgPC9kaXY+XG5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX2Fycm93X19pY29uXCJcbiAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVZpZXcoJ05FWFQnKVwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgYXJpYS1sYWJlbD1cIk5leHQgTW9udGhcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm5hdmlnYXRlVmlldygnTkVYVCcpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Rpc2FibGVkLW1vbnRoJzogaXNOZXh0TW9udGhEaXNhYmxlZCB8fCBpc1NlbGVjdGluZ01vbnRoXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjAgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE5LjcwNzEgOC43MDcxMUMyMC4wOTc2IDguMzE2NTggMjAuMDk3NiA3LjY4MzQyIDE5LjcwNzEgNy4yOTI4OUwxMy4zNDMxIDAuOTI4OTMzQzEyLjk1MjYgMC41Mzg0MDkgMTIuMzE5NSAwLjUzODQwOSAxMS45Mjg5IDAuOTI4OTMzQzExLjUzODQgMS4zMTk0NiAxMS41Mzg0IDEuOTUyNjIgMTEuOTI4OSAyLjM0MzE1TDE3LjU4NTggOEwxMS45Mjg5IDEzLjY1NjlDMTEuNTM4NCAxNC4wNDc0IDExLjUzODQgMTQuNjgwNSAxMS45Mjg5IDE1LjA3MTFDMTIuMzE5NSAxNS40NjE2IDEyLjk1MjYgMTUuNDYxNiAxMy4zNDMxIDE1LjA3MTFMMTkuNzA3MSA4LjcwNzExWk0tOC43NDIyOGUtMDggOUwxOSA5TDE5IDdMOC43NDIyOGUtMDggN0wtOC43NDIyOGUtMDggOVpcIlxuICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX19ib2R5XCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTZWxlY3RpbmdNb250aCAmJiAhaXNTZWxlY3RpbmdZZWFyXCIgY2xhc3M9XCJtb250aC1zZWxlY3RvclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtb250aCBvZiBhdmFpbGFibGVNb250aHM7IGxldCBpID0gaW5kZXhcIiBcbiAgICAgICAgICAgIGNsYXNzPVwibW9udGhcIiBcbiAgICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWRNb250aHNbaV0gJiYgc2VsZWN0TW9udGgobW9udGgpXCIgXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdkaXNhYmxlLW1vbnRoJzogZGlzYWJsZWRNb250aHNbaV0sXG4gICAgICAgICAgICAgICdzZWxlY3QtbW9udGgnOiAhZGlzYWJsZWRNb250aHNbY3VycmVudE1vbnRoTnVtYmVyXSAmJiBtb250aCA9PT0gYXZhaWxhYmxlTW9udGhzW2N1cnJlbnRNb250aE51bWJlcl1cbiAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICB7eyBtb250aCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2ICpuZ0lmPVwiaXNTZWxlY3RpbmdZZWFyICYmICFpc1NlbGVjdGluZ01vbnRoXCIgY2xhc3M9XCJ5ZWFyLXNlbGVjdG9yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHllYXIgb2YgYXZhaWxhYmxlWWVhcnM7IGxldCBpID0gaW5kZXhcIiBcbiAgICAgICAgICAgIGNsYXNzPVwieWVhclwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZFllYXJzW2ldICYmIHNlbGVjdFllYXIoeWVhcilcIiBcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2Rpc2FibGUteWVhcic6IGRpc2FibGVkWWVhcnNbaV0sXG4gICAgICAgICAgICAgICdzZWxlY3QteWVhcic6IHllYXIgPT09IGN1cnJlbnRZZWFyTnVtYmVyXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAge3sgeWVhciB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc1NlbGVjdGluZ01vbnRoICYmICFpc1NlbGVjdGluZ1llYXJcIiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX193ZWVrZGF5c1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX193ZWVrZGF5XCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXNcIj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieyAnY3VycmVudC1kYXknOiB3ZWVrRGF5LmlzQ3VycmVudERheSB9XCI+e3sgd2Vla0RheS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNTZWxlY3RpbmdNb250aCAmJiAhaXNTZWxlY3RpbmdZZWFyXCIgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lcl9fZGF5c1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX19kYXlcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NlbGVjdGVkLWRheSc6IGRheS5pc1NlbGVjdGVkRGF5LFxuICAgICAgICAgICdkaXNhYmxlZC1kYXknOiBkYXkuaXNEaXNhYmxlZERheSxcbiAgICAgICAgICAnaXMtdmFsaWQtZGF0ZSc6IGRheS5kYXRlID4gMCAmJiAhZGF5LmlzU2VsZWN0ZWREYXlcbiAgICAgICAgfVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgY3VycmVudE1vbnRoRGF0ZXNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF5KGRheSlcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VsZWN0RGF5KGRheSlcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZGF5LmRhdGUgPiAwXCJcbiAgICAgICAgICBbdGFiaW5kZXhdPVwiZGF5LmlzRGlzYWJsZWREYXkgPyAtMSA6IDBcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdjdXJyZW50LWRheSc6IGRheS5pc0N1cnJlbnREYXksXG4gICAgICAgICAgICAnc2VsZWN0ZWQtZGF5JzogZGF5LmlzU2VsZWN0ZWREYXksXG4gICAgICAgICAgICAnZGlzYWJsZWQtZGF5JzogZGF5LmlzRGlzYWJsZWREYXlcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJldHJhY3REYXlNb250aChkYXkuZGF0ZSwgY3VycmVudE1vbnRoLCBjdXJyZW50WWVhck51bWJlcilcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVGltZSBQaWNrZXIgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX190aW1lXCIgKm5nSWY9XCJkYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXItaGVhZGVyXCI+XG4gICAgICA8c3Bhbj5UaW1lPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1jb250cm9sc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImhvdXJJbnB1dFwiPkhvdXI8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgaWQ9XCJob3VySW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBcbiAgICAgICAgICBbbWluXT1cImlzMTJIb3VyRm9ybWF0KCkgPyAxIDogMFwiXG4gICAgICAgICAgW21heF09XCJpczEySG91ckZvcm1hdCgpID8gMTIgOiAyM1wiXG4gICAgICAgICAgW3N0ZXBdPVwiMVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEhvdXJcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbkhvdXJJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJ2YWxpZGF0ZUhvdXJJbnB1dCgpXCJcbiAgICAgICAgICBjbGFzcz1cInRpbWUtaW5wdXRcIlxuICAgICAgICAgIFt0aXRsZV09XCJpczEySG91ckZvcm1hdCgpID8gJ0VudGVyIGhvdXIgKDEtMTIpJyA6ICdFbnRlciBob3VyICgwLTIzKSdcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2VwYXJhdG9yXCI+OjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cIm1pbnV0ZUlucHV0XCI+TWludXRlPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFxuICAgICAgICAgIGlkPVwibWludXRlSW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBcbiAgICAgICAgICBtaW49XCIwXCIgXG4gICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgIFtzdGVwXT1cIjFcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNaW51dGVcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbk1pbnV0ZUlucHV0KCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTWludXRlSW5wdXQoKVwiXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0XCJcbiAgICAgICAgICB0aXRsZT1cIkVudGVyIG1pbnV0ZSAoMC01OSlcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFtLXBtLXNlbGVjdG9yXCIgKm5nSWY9XCJpczEySG91ckZvcm1hdCgpXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhbVBtU2VsZWN0XCI+QU0vUE08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IFxuICAgICAgICAgIGlkPVwiYW1QbVNlbGVjdFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEFtUG1cIlxuICAgICAgICAgIGNsYXNzPVwiYW0tcG0tc2VsZWN0XCI+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkFNXCI+QU08L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiUE1cIj5QTTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX2Zvb3RlclwiICpuZ0lmPVwiZGF0YS5kcENvbmZpZy5zaG93QXBwbHlCdXR0b24gfHwgZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lXCI+XG4gICAgPGJ1dHRvbiBtaXMtYnV0dG9uIHNpemU9XCJtZFwiIHR5cGU9XCInbm9uZSdcIiAoY2xpY2spPVwiY2FuY2VsRGF0ZVBpY2tlcigpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtaXMtYnV0dG9uIHNpemU9XCJtZFwiIHR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFwcGx5RGF0ZSgpXCIgW2Rpc2FibGVkXT1cIiEoZGF0YS5kYXRlIHx8IGxvY2FsU2VsZWN0ZWREYXRlLmRhdGUpXCI+QXBwbHk8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
847
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotZHAtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXJfdjIvdHotZHAtY29udGFpbmVyL3R6LWRwLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyX3YyL3R6LWRwLWNvbnRhaW5lci90ei1kcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEtBQW9CLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUE7Ozs7Ozs7Ozs7Ozs7OztJQ1cxRCwrQkFBbUY7SUFBckQsK0tBQVMsNEJBQXFCLEtBQUM7SUFDM0QsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUscUlBQ0Y7Ozs7SUFDQSwrQkFBa0Y7SUFBbkQsK0tBQVMsMkJBQW9CLEtBQUM7SUFDM0QsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUscUdBQ0Y7Ozs7SUF5QkksK0JBTU87SUFKSCxvU0FBK0IsNEJBQWtCLEtBQUM7SUFLcEQsWUFDRjtJQUFBLGlCQUFNOzs7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Q1IsTUFBTTt1QkFBQyxjQUFjO2dEQXloQmxDLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxhQUFhOztrRkF2akJoQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ09OVEFJTkVSX0RBVEEsIERBVEVfRk9STUFUIH0gZnJvbSBcIi4uL2RhdGVwaWNrZXItY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJQ3VycmVudE1vbnRoLCBJQ3VycmVudE1vbnRoRGF0ZXMsIElEYXRlUGlja2VyRGF0YSwgSVdlZWtEYXkgfSBmcm9tIFwiLi4vbW9kZWxzL2RwLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgZ2V0TW9udGggfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3RvYXN0XCI7XG5pbXBvcnQgZGF5anMsIHsgRGF5anMsIHR6IH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xuaW1wb3J0IGlzU2FtZU9yQWZ0ZXIgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQWZ0ZXInO1xuaW1wb3J0IGlzU2FtZU9yQmVmb3JlIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckJlZm9yZSc7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0J1xuXG5kYXlqcy5leHRlbmQodXRjKTtcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQWZ0ZXIpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQmVmb3JlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10ei1kcFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3R6LWRwLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdHotZHAtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFR6RHBDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkYXRhOiBJRGF0ZVBpY2tlckRhdGE7XG4gIHByaXZhdGUgcGFyc2Vab25lSW5zdGFuY2UgPSAoLi4uYXJncykgPT4ge1xuICAgIHJldHVybiBkYXlqcyguLi5hcmdzKTtcbiAgfTtcbiAgcHJpdmF0ZSByYXdXZWVrRGF5czogc3RyaW5nW10gPSBbXCJTVU5cIiwgXCJNT05cIiwgXCJUVUVcIiwgXCJXRURcIiwgXCJUSFVcIiwgXCJGUklcIiwgXCJTQVRcIl07XG4gIHdlZWtEYXlzOiBJV2Vla0RheVtdID0gW107XG4gIGN1cnJlbnRNb250aE51bWJlcjogbnVtYmVyO1xuICBjdXJyZW50TW9udGg6IElDdXJyZW50TW9udGg7XG4gIGN1cnJlbnRZZWFyTnVtYmVyOiBudW1iZXI7XG4gIGN1cnJlbnRNb250aERhdGVzOiBJQ3VycmVudE1vbnRoRGF0ZXNbXSA9IFtdO1xuICBpc1ByZXZpb3VzTW9udGhEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc05leHRNb250aERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGxvY2FsU2VsZWN0ZWREYXRlOiBJQ3VycmVudE1vbnRoRGF0ZXM7XG4gIGFsbG93Qm9va2luZ09uRGlzYWJsZWREYXk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudFNlbGVjdGlvbjogYW55O1xuICBcbiAgLy8gVGltZSBmdW5jdGlvbmFsaXR5IC0gb25seSB3aGF0J3MgbmVlZGVkXG4gIHNlbGVjdGVkSG91cjogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRNaW51dGU6IG51bWJlciA9IDA7XG4gIHNlbGVjdGVkQW1QbTogc3RyaW5nID0gJ0FNJztcblxuICBpc1NlbGVjdGluZ01vbnRoOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VsZWN0aW5nWWVhcjogYm9vbGVhbiA9IGZhbHNlO1xuICBhdmFpbGFibGVZZWFyczogbnVtYmVyW10gPSBbXTtcbiAgYXZhaWxhYmxlTW9udGhzOiBzdHJpbmdbXSA9IFtdO1xuICBkaXNhYmxlZE1vbnRoczogYm9vbGVhbltdID0gW107XG4gIGRpc2FibGVkWWVhcnM6IGJvb2xlYW5bXSA9IFtdO1xuICBzZWxlY3RlZFllYXI6IG51bWJlcjtcbiAgaXNZZWFyU2VsZWN0aW9uRmxvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEFJTkVSX0RBVEEpIGRhdGE6IElEYXRlUGlja2VyRGF0YSwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlKSB7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICBcbiAgICAvLyBJbml0aWFsaXplIHBhcnNlWm9uZUluc3RhbmNlIHdpdGggYmV0dGVyIGVycm9yIGhhbmRsaW5nXG4gICAgdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAodGhpcy5kYXRhPy5kcENvbmZpZz8udGltZXpvbmUpIHtcbiAgICAgICAgICByZXR1cm4gZGF5anMudHooYXJnc1swXSwgYXJnc1sxXSAgfHwgJ0REL01NL1lZWVknLCB0aGlzLmRhdGEuZHBDb25maWcudGltZXpvbmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBkYXlqcyguLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIHRpbWV6b25lIHBhcnNpbmcgZXJyb3IsIGZhbGxiYWNrIHRvIGxvY2FsIHRpbWVcbiAgICAgICAgcmV0dXJuIGRheWpzKC4uLmFyZ3MpO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzIHNhZmVseVxuICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLm1vbnRoKCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBnZXRNb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcik7XG4gICAgdGhpcy5jdXJyZW50WWVhck51bWJlciA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS55ZWFyKCk7XG4gICAgdGhpcy53ZWVrRGF5cyA9IHRoaXMucmF3V2Vla0RheXMubWFwKChkYXksIGluZGV4KSA9PiAoe1xuICAgICAgbGFiZWw6IGAke2RheVswXX0ke2RheS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICBpc0N1cnJlbnREYXk6IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS5kYXkoKSA9PT0gaW5kZXhcbiAgICB9KSk7XG4gICAgXG4gICAgaWYgKCF0aGlzLmRhdGE/LmRwQ29uZmlnPy5mb3JtYXQpIHtcbiAgICAgIHRoaXMuZGF0YS5kcENvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5kYXRhLmRwQ29uZmlnLFxuICAgICAgICBmb3JtYXQ6IERBVEVfRk9STUFUXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmKCF0aGlzLmRhdGE/LmRhdGUpe1xuICAgICAgdGhpcy5kYXRhLmRhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkuZm9ybWF0KHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgIH1cblxuICAgIHRoaXMuYXZhaWxhYmxlTW9udGhzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGRheWpzKCkubW9udGgoaSkuZm9ybWF0KCdNTU1NJykpO1xuICAgIHRoaXMuYXZhaWxhYmxlWWVhcnMgPSBBcnJheS5mcm9tKFxuICAgICAgeyBsZW5ndGg6IDEyIH0sXG4gICAgICAoXywgaW5kZXgpID0+IHRoaXMuY3VycmVudFllYXJOdW1iZXIgLSA2ICsgaW5kZXhcbiAgICApO1xuICAgIFxuICB9XG5cbiAgb25Ib3VySW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuaXMxMkhvdXJGb3JtYXQoKSkge1xuICAgICAgICBpZiAodmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSAxMikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDIzKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uTWludXRlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDU5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVIb3VySW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lICE9PSB0cnVlKSByZXR1cm47XG4gICAgXG4gICAgaWYgKHRoaXMuaXMxMkhvdXJGb3JtYXQoKSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRIb3VyIDwgMSkgdGhpcy5zZWxlY3RlZEhvdXIgPSAxO1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRIb3VyID4gMTIpIHRoaXMuc2VsZWN0ZWRIb3VyID0gMTI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSG91ciA8IDApIHRoaXMuc2VsZWN0ZWRIb3VyID0gMDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSG91ciA+IDIzKSB0aGlzLnNlbGVjdGVkSG91ciA9IDIzO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlTWludXRlSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lICE9PSB0cnVlKSByZXR1cm47XG4gICAgXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNaW51dGUgPCAwKSB0aGlzLnNlbGVjdGVkTWludXRlID0gMDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE1pbnV0ZSA+IDU5KSB0aGlzLnNlbGVjdGVkTWludXRlID0gNTk7XG4gIH1cblxuICBpczEySG91ckZvcm1hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWUgJiYgXG4gICAgICAgICAgICh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0LmluY2x1ZGVzKCdBJykgfHwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdC5pbmNsdWRlcygnYScpKTtcbiAgfVxuXG4gIHJldHJhY3REYXlNb250aChkYXk6IGFueSwgbW9udGg6IGFueSwgeWVhcjogYW55KTogYW55IHtcbiAgICByZXR1cm4gYCR7ZGF5fSAke21vbnRofSAke3llYXJ9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudERhdGVJbnN0YW5jZSgpO1xuICAgIHRoaXMuY2FsY3VsYXRlTWluTWF4RGF5cygpO1xuICAgIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpO1xuICAgIHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlciwgdGhpcy5jdXJyZW50WWVhck51bWJlcik7XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSB0aW1lIGlmIGVuYWJsZWRcbiAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVRpbWVWYWx1ZXMoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHllYXJSYW5nZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGVkWWVhciAtIDZ9IC0gJHt0aGlzLnNlbGVjdGVkWWVhciArIDV9YDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVRpbWVWYWx1ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5lbmFibGVUaW1lID09PSB0cnVlKSB7XG4gICAgICBpZiAodGhpcy5kYXRhLmRhdGUpIHtcbiAgICAgICAgLy8gVHJ5IHRvIHBhcnNlIGV4aXN0aW5nIGRhdGUgZm9yIHRpbWUgdmFsdWVzXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICBsZXQgaG91ciA9IGN1cnJlbnREYXRlLmhvdXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBjdXJyZW50RGF0ZS5taW51dGUoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHRoaXMuaXMxMkhvdXJGb3JtYXQoKSkge1xuICAgICAgICAgICAgICBpZiAoaG91ciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAxMjtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQW1QbSA9ICdBTSc7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA+IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IGhvdXIgLSAxMjtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQW1QbSA9ICdQTSc7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQW1QbSA9ICdQTSc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSAnQU0nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gaG91cjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSW52YWxpZCBkYXRlLCB1c2UgZGVmYXVsdHNcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFRpbWVWYWx1ZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgLy8gUGFyc2luZyBlcnJvciwgdXNlIGRlZmF1bHRzXG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0VGltZVZhbHVlcygpO1xuICAgICAgICB9XG4gICAgICB9IFxuICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyBleGlzdGluZyBkYXRlLCB1c2UgZGVmYXVsdHNcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0VGltZVZhbHVlcygpO1xuICAgICAgfVxuICAgIFxuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0VGltZVZhbHVlcygpOiB2b2lkIHtcbiAgICAvLyBVc2UgY3VycmVudCB0aW1lIGFzIGRlZmF1bHQgaW5zdGVhZCBvZiAxMjowMCBQTVxuICAgIGNvbnN0IG5vdyA9IGRheWpzKCk7XG4gICAgY29uc3QgY3VycmVudEhvdXIgPSBub3cuaG91cigpO1xuICAgIGNvbnN0IGN1cnJlbnRNaW51dGUgPSBub3cubWludXRlKCk7XG4gICAgXG4gICAgaWYgKHRoaXMuaXMxMkhvdXJGb3JtYXQoKSkge1xuICAgICAgLy8gQ29udmVydCBjdXJyZW50IHRpbWUgdG8gMTItaG91ciBmb3JtYXRcbiAgICAgIGxldCBob3VyMTIgPSBjdXJyZW50SG91cjtcbiAgICAgIGxldCBhbVBtID0gJ0FNJztcbiAgICAgIFxuICAgICAgaWYgKGN1cnJlbnRIb3VyID09PSAwKSB7XG4gICAgICAgIGhvdXIxMiA9IDEyO1xuICAgICAgICBhbVBtID0gJ0FNJztcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudEhvdXIgPT09IDEyKSB7XG4gICAgICAgIGhvdXIxMiA9IDEyO1xuICAgICAgICBhbVBtID0gJ1BNJztcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudEhvdXIgPiAxMikge1xuICAgICAgICBob3VyMTIgPSBjdXJyZW50SG91ciAtIDEyO1xuICAgICAgICBhbVBtID0gJ1BNJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFtUG0gPSAnQU0nO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGhvdXIxMjtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBjdXJyZW50TWludXRlO1xuICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSBhbVBtO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgY3VycmVudCB0aW1lIGRpcmVjdGx5IGZvciAyNC1ob3VyIGZvcm1hdFxuICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBjdXJyZW50SG91cjtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBjdXJyZW50TWludXRlO1xuICAgICAgdGhpcy5zZWxlY3RlZEFtUG0gPSAnQU0nOyAvLyBOb3QgdXNlZCBpbiAyNC1ob3VyIGZvcm1hdCBidXQga2VlcCBjb25zaXN0ZW50XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50RGF0ZUluc3RhbmNlKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5kYXRhLmRhdGUpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gZGF5anModGhpcy5kYXRhLmRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFllYXIgPSB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyID0gc2VsZWN0ZWREYXRlLnllYXIoKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRNb250aE51bWJlciA9IHNlbGVjdGVkRGF0ZS5tb250aCgpO1xuICAgICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gZ2V0TW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICghdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSA9IHtcbiAgICAgICAgICAgICAgZGF0ZTogc2VsZWN0ZWREYXRlLmRhdGUoKSxcbiAgICAgICAgICAgICAgd2Vla0RheTogc2VsZWN0ZWREYXRlLmRheSgpLFxuICAgICAgICAgICAgICBtb250aDogc2VsZWN0ZWREYXRlLm1vbnRoKCksXG4gICAgICAgICAgICAgIHllYXI6IHNlbGVjdGVkRGF0ZS55ZWFyKCksXG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWREYXk6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXJOdW1iZXIgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcigpO1xuICAgICAgdGhpcy5jdXJyZW50TW9udGhOdW1iZXIgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkubW9udGgoKTtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gZ2V0TW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzID0gdGhpcy5nZW5lcmF0ZURhdGVzKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVNaW5NYXhEYXlzKCkge1xuICAgICAgY29uc3QgY3VycmVudEluc3RhbmNlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIodGhpcy5jdXJyZW50WWVhck51bWJlcikubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpO1xuICAgICAgXG4gICAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSh0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICAgICAgaWYgKG1pbkRhdGU/LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZpb3VzTW9udGhEaXNhYmxlZCA9IG1pbkRhdGUuaXNTYW1lT3JBZnRlcihjdXJyZW50SW5zdGFuY2UsIFwibW9udGhcIik7XG4gICAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUpIHtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICBpZiAobWF4RGF0ZT8uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgdGhpcy5pc05leHRNb250aERpc2FibGVkID0gbWF4RGF0ZS5pc1NhbWVPckJlZm9yZShjdXJyZW50SW5zdGFuY2UsIFwibW9udGhcIik7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVEaXNhYmxlZE1vbnRoc0FuZFllYXJzKCkge1xuICAgIGNvbnN0IG1pbkRhdGUgPSAhIXRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlID8gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSh0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCkgOiBkYXlqcygnaW52YWxpZCcpO1xuICAgIGNvbnN0IG1heERhdGUgPSAhIXRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlID8gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSh0aGlzLmRhdGEuZHBDb25maWcubWF4RGF0ZSwgdGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCkgOiBkYXlqcygnaW52YWxpZCcpO1xuICAgIFxuICAgIHRoaXMuZGlzYWJsZWRNb250aHMgPSB0aGlzLmF2YWlsYWJsZU1vbnRocy5tYXAoKG1vbnRoLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgbW9udGhEYXRlID0gdGhpcy5wYXJzZVpvbmVJbnN0YW5jZSgpLnllYXIodGhpcy5zZWxlY3RlZFllYXIpLm1vbnRoKGluZGV4KTtcbiAgICAgIHJldHVybiAobWluRGF0ZS5pc1ZhbGlkKCkgJiYgbW9udGhEYXRlLmlzQmVmb3JlKG1pbkRhdGUsICdtb250aCcpKSB8fCBcbiAgICAgICAgICAgICAobWF4RGF0ZS5pc1ZhbGlkKCkgJiYgbW9udGhEYXRlLmlzQWZ0ZXIobWF4RGF0ZSwgJ21vbnRoJykpO1xuICAgIH0pO1xuICBcbiAgICB0aGlzLmRpc2FibGVkWWVhcnMgPSB0aGlzLmF2YWlsYWJsZVllYXJzLm1hcCgoeWVhcikgPT4ge1xuICAgICAgY29uc3QgeWVhckRhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcih5ZWFyKTtcbiAgICAgIHJldHVybiAobWluRGF0ZS5pc1ZhbGlkKCkgJiYgeWVhckRhdGUuaXNCZWZvcmUobWluRGF0ZSwgJ3llYXInKSkgfHwgXG4gICAgICAgICAgICAgKG1heERhdGUuaXNWYWxpZCgpICYmIHllYXJEYXRlLmlzQWZ0ZXIobWF4RGF0ZSwgJ3llYXInKSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc1NlbGVjdGluZ1llYXIpIHtcbiAgICAgIHRoaXMuaXNQcmV2aW91c01vbnRoRGlzYWJsZWQgPSBtaW5EYXRlLmlzVmFsaWQoKSAmJiAoKHRoaXMuc2VsZWN0ZWRZZWFyIC0gNikgPD0gbWluRGF0ZS55ZWFyKCkpO1xuICAgICAgdGhpcy5pc05leHRNb250aERpc2FibGVkID0gbWF4RGF0ZS5pc1ZhbGlkKCkgJiYgKCh0aGlzLnNlbGVjdGVkWWVhciArIDUpID49IG1heERhdGUueWVhcigpKTtcbiAgICB9XG4gICAgXG4gIH1cblxuICBuYXZpZ2F0ZVZpZXcoZGlyZWN0aW9uOiBcIk5FWFRcIiB8IFwiUFJFVklPVVNcIik6IHZvaWQge1xuICAgIGlmICgoZGlyZWN0aW9uID09PSAnTkVYVCcgJiYgKHRoaXMuaXNOZXh0TW9udGhEaXNhYmxlZCB8fCB0aGlzLmlzU2VsZWN0aW5nTW9udGgpKSB8fFxuICAgICAgICAoZGlyZWN0aW9uID09PSAnUFJFVklPVVMnICYmICh0aGlzLmlzUHJldmlvdXNNb250aERpc2FibGVkIHx8IHRoaXMuaXNTZWxlY3RpbmdNb250aCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKHRoaXMuaXNTZWxlY3RpbmdZZWFyKXtcbiAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyICs9IGRpcmVjdGlvbiA9PT0gXCJORVhUXCIgPyAxMiA6IC0xMjtcbiAgICAgIHRoaXMuYXZhaWxhYmxlWWVhcnMgPSBBcnJheS5mcm9tKFxuICAgICAgICB7IGxlbmd0aDogMTIgfSxcbiAgICAgICAgKF8sIGluZGV4KSA9PiB0aGlzLnNlbGVjdGVkWWVhciAtIDYgKyBpbmRleFxuICAgICAgKTtcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIGxldCB0aGlzTW9udGggOiBkYXlqcy5EYXlqcyA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UoKS55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgIHRoaXNNb250aCA9IGRpcmVjdGlvbiA9PT0gXCJORVhUXCIgPyB0aGlzTW9udGguYWRkKDEsIFwibW9udGhcIikgOiB0aGlzTW9udGguc3VidHJhY3QoMSwgXCJtb250aFwiKTtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyID0gdGhpc01vbnRoLm1vbnRoKCk7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGdldE1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyID0gdGhpcy5jdXJyZW50WWVhck51bWJlciA9IHRoaXNNb250aC55ZWFyKCk7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aERhdGVzID0gdGhpcy5nZW5lcmF0ZURhdGVzKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKTtcbiAgICB9XG4gICAgdGhpcy5jYWxjdWxhdGVNaW5NYXhEYXlzKCk7XG4gICAgdGhpcy5jYWxjdWxhdGVEaXNhYmxlZE1vbnRoc0FuZFllYXJzKCk7XG4gIH1cblxuICBuYXZpZ2F0ZU1vbnRoKGRpcmVjdGlvbjogXCJORVhUXCIgfCBcIlBSRVZJT1VTXCIpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHRoaXNNb250aDogZGF5anMuRGF5anMgPSBkYXlqcygpLnllYXIodGhpcy5jdXJyZW50WWVhck51bWJlcikubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIpO1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJORVhUXCIpIHtcbiAgICAgICAgdGhpc01vbnRoID0gdGhpc01vbnRoLmFkZCgxLCBcIm1vbnRoXCIpO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IFwiUFJFVklPVVNcIikge1xuICAgICAgICB0aGlzTW9udGggPSB0aGlzTW9udGguc3VidHJhY3QoMSwgXCJtb250aFwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyID0gdGhpc01vbnRoLm1vbnRoKCk7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGdldE1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICAgIHRoaXMuY3VycmVudFllYXJOdW1iZXIgPSB0aGlzTW9udGgueWVhcigpO1xuICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRlcyA9IHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlciwgdGhpcy5jdXJyZW50WWVhck51bWJlcik7XG4gICAgICBcbiAgICAgIHRoaXMuY2FsY3VsYXRlTWluTWF4RGF5cygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBTaWxlbnRseSBoYW5kbGUgbmF2aWdhdGVNb250aCBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVEYXRlcyhtb250aDogbnVtYmVyLCBjdXJyZW50WWVhck51bWJlcjogbnVtYmVyKTogSUN1cnJlbnRNb250aERhdGVzW10ge1xuICAgIGNvbnN0IGRhdGVzOiBJQ3VycmVudE1vbnRoRGF0ZXNbXSA9IFtdO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXlzSW5Nb250aCA9IGRheWpzKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRheXNJbk1vbnRoKCk7XG4gICAgICBcbiAgICAgIGxldCBtaW5EYXRlID0gbnVsbDtcbiAgICAgIGxldCBtYXhEYXRlID0gbnVsbDtcbiAgICAgIFxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbWluRGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBtaW4gZGF0ZSBwYXJzaW5nIGVycm9yXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbWF4RGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBtYXggZGF0ZSBwYXJzaW5nIGVycm9yXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgZm9yIChsZXQgY3VycmVudERhdGUgPSAxOyBjdXJyZW50RGF0ZSA8PSBkYXlzSW5Nb250aDsgY3VycmVudERhdGUrKykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRhdGUoY3VycmVudERhdGUpO1xuICAgICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBkYXRlLmZvcm1hdCh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgICBcbiAgICAgICAgICBsZXQgaXNEaXNhYmxlZERheSA9IHRoaXMuZGF0YS5kYXRlc0Rpc2FibGVkPy5zb21lKGQgPT4gZCA9PT0gZGF0ZVN0cmluZykgfHwgZmFsc2U7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKCFpc0Rpc2FibGVkRGF5ICYmIG1pbkRhdGU/LmlzVmFsaWQoKSAmJiB0aGlzLmRhdGEuZHBDb25maWcubWluRGF0ZSkge1xuICAgICAgICAgICAgaXNEaXNhYmxlZERheSA9IG1pbkRhdGUuaXNBZnRlcihkYXRlLCBcImRheVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc0Rpc2FibGVkRGF5ICYmIG1heERhdGU/LmlzVmFsaWQoKSAmJiB0aGlzLmRhdGEuZHBDb25maWcubWF4RGF0ZSkge1xuICAgICAgICAgICAgaXNEaXNhYmxlZERheSA9IG1heERhdGUuaXNCZWZvcmUoZGF0ZSwgXCJkYXlcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlSW5zdGFuY2UgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRhdGUoY3VycmVudERhdGUpO1xuICAgICAgICAgIGNvbnN0IGlzQ3VycmVudERheSA9IGN1cnJlbnREYXRlSW5zdGFuY2UuZm9ybWF0KHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpID09PSBkYXlqcygpLmZvcm1hdCh0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgICBcbiAgICAgICAgICBsZXQgaXNTZWxlY3RlZERheSA9IGZhbHNlO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFByaW9yaXRpemUgY3VycmVudCBzZWxlY3Rpb24gb3ZlciBwcmV2aW91c2x5IGFwcGxpZWQgZGF0ZVxuICAgICAgICAgIGlmICh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlICYmIFxuICAgICAgICAgICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlLmRhdGUgPT09IGN1cnJlbnREYXRlICYmXG4gICAgICAgICAgICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGUubW9udGggPT09IG1vbnRoICYmXG4gICAgICAgICAgICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGUueWVhciA9PT0gY3VycmVudFllYXJOdW1iZXIpIHtcbiAgICAgICAgICAgIGlzU2VsZWN0ZWREYXkgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmRhdGUgJiYgIXRoaXMubG9jYWxTZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIC8vIE9ubHkgY2hlY2sgcHJldmlvdXNseSBhcHBsaWVkIGRhdGUgaWYgbm8gY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkRGF5ID0gc2VsZWN0ZWREYXRlLmlzU2FtZShjdXJyZW50RGF0ZUluc3RhbmNlLCAnZGF5Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEZvciBkYXRlLW9ubHkgZm9ybWF0LCBjb21wYXJlIHRoZSBkYXRlIHBhcnRzIG9ubHlcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKHRoaXMuZGF0YS5kYXRlLCB0aGlzLmRhdGEuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZERheSA9IHNlbGVjdGVkRGF0ZS5pc1NhbWUoY3VycmVudERhdGVJbnN0YW5jZSwgJ2RheScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBGYWxsYmFjayB0byBzdHJpbmcgY29tcGFyaXNvbiBpZiBwYXJzaW5nIGZhaWxzXG4gICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkRGF5ID0gZGF0ZVN0cmluZyA9PT0gdGhpcy5kYXRhLmRhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaWxlbnRseSBoYW5kbGUgZGF0ZSBjb21wYXJpc29uIGVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIGRhdGVzLnB1c2goe1xuICAgICAgICAgICAgZGF0ZTogY3VycmVudERhdGUsXG4gICAgICAgICAgICB3ZWVrRGF5OiBkYXRlLmRheSgpLFxuICAgICAgICAgICAgbW9udGg6IG1vbnRoLFxuICAgICAgICAgICAgeWVhcjogY3VycmVudFllYXJOdW1iZXIsXG4gICAgICAgICAgICBpc0N1cnJlbnREYXksXG4gICAgICAgICAgICBpc1NlbGVjdGVkRGF5LFxuICAgICAgICAgICAgdG9hc3RNZXNzYWdlOiB0aGlzLmRhdGEubWVzc2FnZXM/LmZpbmQocSA9PiBkYXRlU3RyaW5nID09PSBxLmRhdGUpPy5tZXNzYWdlIHx8IFwiXCIsXG4gICAgICAgICAgICBpc0Rpc2FibGVkRGF5XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIGRhdGUgcHJvY2Vzc2luZyBlcnJvclxuICAgICAgICAgIGRhdGVzLnB1c2goe1xuICAgICAgICAgICAgZGF0ZTogY3VycmVudERhdGUsXG4gICAgICAgICAgICB3ZWVrRGF5OiB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRhdGUoY3VycmVudERhdGUpLmRheSgpLFxuICAgICAgICAgICAgbW9udGg6IG1vbnRoLFxuICAgICAgICAgICAgeWVhcjogY3VycmVudFllYXJOdW1iZXIsXG4gICAgICAgICAgICBpc0Rpc2FibGVkRGF5OiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKGRhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRhdGVzWzBdLndlZWtEYXk7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICBkYXRlcy51bnNoaWZ0KHsgXG4gICAgICAgICAgICBkYXRlOiAwLCBcbiAgICAgICAgICAgIHdlZWtEYXk6IGkgLSAxLFxuICAgICAgICAgICAgbW9udGg6IG1vbnRoLFxuICAgICAgICAgICAgeWVhcjogY3VycmVudFllYXJOdW1iZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBTaWxlbnRseSBoYW5kbGUgZ2VuZXJhdGVEYXRlcyBlcnJvclxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZGF0ZXM7XG4gIH1cblxuICBzZWxlY3REYXkoZGF5OiBJQ3VycmVudE1vbnRoRGF0ZXMpIHtcbiAgICBpZiAoZGF5LmRhdGUgPD0gMCkgcmV0dXJuO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICAvLyBDcmVhdGUgdGhlIGJhc2UgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lXG4gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLnBhcnNlWm9uZUluc3RhbmNlKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKS5tb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcikuZGF0ZShkYXkuZGF0ZSkuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApO1xuICAgICAgXG4gICAgICAvLyBBcHBseSB0aGUgY3VycmVudCB0aW1lIHZhbHVlcyB0byB0aGUgc2VsZWN0aW9uXG4gICAgICBpZiAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWUpIHtcbiAgICAgICAgbGV0IGhvdXIgPSB0aGlzLnNlbGVjdGVkSG91cjtcbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFtUG0gPT09ICdQTScgJiYgaG91ciAhPT0gMTIpIHtcbiAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQW1QbSA9PT0gJ0FNJyAmJiBob3VyID09PSAxMikge1xuICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb25cbiAgICAgICAgICAuaG91cihob3VyKVxuICAgICAgICAgIC5taW51dGUodGhpcy5zZWxlY3RlZE1pbnV0ZSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGxldCBtYXhEYXRlID0gbnVsbDtcbiAgICAgIGxldCBtaW5EYXRlID0gbnVsbDtcbiAgICAgIFxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5tYXhEYXRlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbWF4RGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1heERhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpLmVuZE9mKFwiZGF5XCIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBtYXggZGF0ZSBwYXJzaW5nIGVycm9yXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKHRoaXMuZGF0YS5kcENvbmZpZy5taW5EYXRlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbWluRGF0ZSA9IHRoaXMucGFyc2Vab25lSW5zdGFuY2UodGhpcy5kYXRhLmRwQ29uZmlnLm1pbkRhdGUsIHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpLnN0YXJ0T2YoXCJkYXlcIik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgLy8gU2lsZW50bHkgaGFuZGxlIG1pbiBkYXRlIHBhcnNpbmcgZXJyb3JcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLmFsbG93Qm9va2luZ09uRGlzYWJsZWREYXkgPSB0aGlzLmRhdGEuYWxsb3dCb29raW5nT25EaXNhYmxlZERheTtcbiAgICAgIFxuICAgICAgaWYgKCgoIW1pbkRhdGUgfHwgdGhpcy5jdXJyZW50U2VsZWN0aW9uLmlzU2FtZU9yQWZ0ZXIobWluRGF0ZSkpICYmICghbWF4RGF0ZSB8fCB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uaXNTYW1lT3JCZWZvcmUobWF4RGF0ZSkpICYmIHRoaXMuYWxsb3dCb29raW5nT25EaXNhYmxlZERheSkgfHwgKCFkYXkuaXNEaXNhYmxlZERheSAmJiAhdGhpcy5hbGxvd0Jvb2tpbmdPbkRpc2FibGVkRGF5KSkge1xuICAgICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlID0ge1xuICAgICAgICAgIC4uLmRheSxcbiAgICAgICAgICBtb250aDogdGhpcy5jdXJyZW50TW9udGhOdW1iZXIsXG4gICAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50WWVhck51bWJlclxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gRm9yY2UgY2FsZW5kYXIgcmUtcmVuZGVyIHRvIHNob3cgaGlnaGxpZ2h0aW5nXG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMgPSB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5jdXJyZW50TW9udGhOdW1iZXIsIHRoaXMuY3VycmVudFllYXJOdW1iZXIpO1xuICAgICAgICBcbiAgICAgICAgLy8gQXV0b21hdGljYWxseSBzaG93IGFwcGx5IGJ1dHRvbiB3aGVuIHRpbWUgaXMgZW5hYmxlZCwgb3RoZXJ3aXNlIGFwcGx5IGltbWVkaWF0ZWx5XG4gICAgICAgIGlmICghdGhpcy5kYXRhLmRwQ29uZmlnLnNob3dBcHBseUJ1dHRvbiAmJiAhdGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICB0aGlzLmFwcGx5RGF0ZShkYXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChkYXkudG9hc3RNZXNzYWdlIHx8ICh0aGlzLmFsbG93Qm9va2luZ09uRGlzYWJsZWREYXkgJiYgZGF5LnRvYXN0TWVzc2FnZSkpIHtcbiAgICAgICAgdGhpcy50b2FzdC5kaXNwbGF5TXNnKGRheS50b2FzdE1lc3NhZ2UsIDQwMDApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBTaWxlbnRseSBoYW5kbGUgc2VsZWN0RGF5IGVycm9yXG4gICAgfVxuICB9XG5cbiAgYXBwbHlEYXRlKGRheT86IElDdXJyZW50TW9udGhEYXRlcykge1xuICAgIGxldCBkYXRlOiBzdHJpbmc7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmRhdGEuZHBDb25maWcuZW5hYmxlVGltZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBBbHdheXMgdXNlIHRpbWUgaW5wdXQgdmFsdWVzIHdoZW4gdGltZSBpcyBlbmFibGVkLCByZWdhcmRsZXNzIG9mIGN1cnJlbnRTZWxlY3Rpb25cbiAgICAgICAgbGV0IGhvdXIgPSB0aGlzLnNlbGVjdGVkSG91cjtcbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmlzMTJIb3VyRm9ybWF0KCkpIHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFtUG0gPT09ICdQTScgJiYgaG91ciAhPT0gMTIpIHtcbiAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQW1QbSA9PT0gJ0FNJyAmJiBob3VyID09PSAxMikge1xuICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZGF0ZSBpbnN0YW5jZSB3aXRoIHRoZSBzZWxlY3RlZCB0aW1lXG4gICAgICAgIGNvbnN0IGZpbmFsU2VsZWN0aW9uID0gZGF5anMoKVxuICAgICAgICAgIC55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIpXG4gICAgICAgICAgLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKVxuICAgICAgICAgIC5kYXRlKHRoaXMubG9jYWxTZWxlY3RlZERhdGU/LmRhdGUgfHwgZGF5Py5kYXRlIHx8IGRheWpzKCkuZGF0ZSgpKVxuICAgICAgICAgIC5ob3VyKGhvdXIpXG4gICAgICAgICAgLm1pbnV0ZSh0aGlzLnNlbGVjdGVkTWludXRlKVxuICAgICAgICAgIC5zZWNvbmQoMClcbiAgICAgICAgICAubWlsbGlzZWNvbmQoMCk7XG4gICAgICAgIFxuICAgICAgICBkYXRlID0gZmluYWxTZWxlY3Rpb24uZm9ybWF0KHRoaXMuZGF0YS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGF0ZS1vbmx5IGZvcm1hdCAtIG5vIHRpbWVcbiAgICAgICAgZGF0ZSA9IGRheWpzKClcbiAgICAgICAgICAueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKVxuICAgICAgICAgIC5tb250aCh0aGlzLmN1cnJlbnRNb250aE51bWJlcilcbiAgICAgICAgICAuZGF0ZShkYXkgPyBkYXkuZGF0ZSA6IHRoaXMubG9jYWxTZWxlY3RlZERhdGU/LmRhdGUgfHwgZGF5anMoKS5kYXRlKCkpXG4gICAgICAgICAgLmhvdXIoMClcbiAgICAgICAgICAubWludXRlKDApXG4gICAgICAgICAgLnNlY29uZCgwKVxuICAgICAgICAgIC5taWxsaXNlY29uZCgwKVxuICAgICAgICAgIC5mb3JtYXQodGhpcy5kYXRhLmRwQ29uZmlnLmZvcm1hdCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChkYXkgfHwgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZSB8fCAodGhpcy5kYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWUgPT09IHRydWUpKSB7XG4gICAgICAgIHRoaXMuZGF0YS5kYXRlQ2hhbmdlKGRhdGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYW5jZWxEYXRlUGlja2VyKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFNpbGVudGx5IGhhbmRsZSBhcHBseURhdGUgZXJyb3JcbiAgICAgIHRoaXMuZGF0YS5kYXRlQ2hhbmdlKFwiXCIpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLmVzY1wiKVxuICBjbG9zZU9uRXNjKCkge1xuICAgIHRoaXMuY2FuY2VsRGF0ZVBpY2tlcigpO1xuICB9XG5cbiAgY2FuY2VsRGF0ZVBpY2tlcigpIHtcbiAgICB0aGlzLmRhdGEuZGF0ZUNoYW5nZShcIlwiKTtcbiAgfVxuXG4gIHRvZ2dsZU1vbnRoU2VsZWN0b3IoKSB7XG4gICAgaWYodGhpcy5pc1llYXJTZWxlY3Rpb25GbG93KSByZXR1cm47XG4gICAgdGhpcy5pc1NlbGVjdGluZ01vbnRoID0gIXRoaXMuaXNTZWxlY3RpbmdNb250aDtcbiAgICB0aGlzLmlzU2VsZWN0aW5nWWVhciA9IGZhbHNlO1xuICAgIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRNb250aHNBbmRZZWFycygpO1xuICB9XG5cbiAgdG9nZ2xlWWVhclNlbGVjdG9yKCkge1xuICAgIHRoaXMuaXNTZWxlY3RpbmdZZWFyID0gIXRoaXMuaXNTZWxlY3RpbmdZZWFyO1xuICAgIHRoaXMuc2VsZWN0ZWRZZWFyID0gdGhpcy5jdXJyZW50WWVhck51bWJlcjtcbiAgICB0aGlzLmF2YWlsYWJsZVllYXJzID0gQXJyYXkuZnJvbShcbiAgICAgIHsgbGVuZ3RoOiAxMiB9LFxuICAgICAgKF8sIGluZGV4KSA9PiB0aGlzLnNlbGVjdGVkWWVhciAtIDYgKyBpbmRleFxuICAgICk7XG4gICAgdGhpcy5pc1NlbGVjdGluZ01vbnRoID0gZmFsc2U7XG4gICAgdGhpcy5jYWxjdWxhdGVEaXNhYmxlZE1vbnRoc0FuZFllYXJzKCk7XG5cbiAgfVxuXG4gIHJlc2V0RGF0ZVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlID0ge1xuICAgICAgZGF0ZTogMCxcbiAgICAgIHdlZWtEYXk6IDAsXG4gICAgICBpc0N1cnJlbnREYXk6IGZhbHNlLFxuICAgICAgaXNTZWxlY3RlZERheTogZmFsc2UsXG4gICAgICBpc0Rpc2FibGVkRGF5OiBmYWxzZSxcbiAgICAgIHRvYXN0TWVzc2FnZTogJydcbiAgICB9O1xuICAgIHRoaXMuZGF0YS5kYXRlID0gJyc7XG4gIH1cblxuICBzZWxlY3RNb250aChtb250aDogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50TW9udGhOdW1iZXIgPSB0aGlzLmF2YWlsYWJsZU1vbnRocy5pbmRleE9mKG1vbnRoKTtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IGdldE1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKTtcbiAgICB0aGlzLmlzU2VsZWN0aW5nTW9udGggPSBmYWxzZTtcbiAgICB0aGlzLmlzWWVhclNlbGVjdGlvbkZsb3cgPSBmYWxzZTtcbiAgICB0aGlzLnJlc2V0RGF0ZVNlbGVjdGlvbigpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoRGF0ZXMgPSB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5jdXJyZW50TW9udGhOdW1iZXIsIHRoaXMuY3VycmVudFllYXJOdW1iZXIpO1xuICAgIHRoaXMuY2FsY3VsYXRlTWluTWF4RGF5cygpO1xuICB9XG5cbiAgc2VsZWN0WWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMuY3VycmVudFllYXJOdW1iZXIgPSB5ZWFyO1xuICAgIHRoaXMuaXNTZWxlY3RpbmdZZWFyID0gZmFsc2U7XG4gICAgdGhpcy5pc1NlbGVjdGluZ01vbnRoID0gdHJ1ZTtcbiAgICB0aGlzLmlzWWVhclNlbGVjdGlvbkZsb3cgPSB0cnVlO1xuICAgIHRoaXMucmVzZXREYXRlU2VsZWN0aW9uKCk7XG4gICAgdGhpcy5jYWxjdWxhdGVEaXNhYmxlZE1vbnRoc0FuZFllYXJzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImRhdGEuZGlzYWJsZUJveFNoYWRvdz8ncmVtb3ZlLWJveC1zaGFkb3cnOicnXCIgYXJpYS1sYWJlbD1cImRhdGUgcGlja2VyXCIgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCI+XG4gIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX19oZWFkZXJcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX19hcnJvd19faWNvblwiXG4gICAgICAoY2xpY2spPVwibmF2aWdhdGVWaWV3KCdQUkVWSU9VUycpXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgTW9udGhcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm5hdmlnYXRlVmlldygnUFJFVklPVVMnKVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdkaXNhYmxlZC1tb250aCc6IGlzUHJldmlvdXNNb250aERpc2FibGVkIHx8IGlzU2VsZWN0aW5nTW9udGhcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTkuNzA3MSA4LjcwNzExQzIwLjA5NzYgOC4zMTY1OCAyMC4wOTc2IDcuNjgzNDIgMTkuNzA3MSA3LjI5Mjg5TDEzLjM0MzEgMC45Mjg5MzNDMTIuOTUyNiAwLjUzODQwOSAxMi4zMTk1IDAuNTM4NDA5IDExLjkyODkgMC45Mjg5MzNDMTEuNTM4NCAxLjMxOTQ2IDExLjUzODQgMS45NTI2MiAxMS45Mjg5IDIuMzQzMTVMMTcuNTg1OCA4TDExLjkyODkgMTMuNjU2OUMxMS41Mzg0IDE0LjA0NzQgMTEuNTM4NCAxNC42ODA1IDExLjkyODkgMTUuMDcxMUMxMi4zMTk1IDE1LjQ2MTYgMTIuOTUyNiAxNS40NjE2IDEzLjM0MzEgMTUuMDcxMUwxOS43MDcxIDguNzA3MTFaTS04Ljc0MjI4ZS0wOCA5TDE5IDlMMTkgN0w4Ljc0MjI4ZS0wOCA3TC04Ljc0MjI4ZS0wOCA5WlwiXG4gICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICA+PC9wYXRoPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzU2VsZWN0aW5nWWVhclwiIChjbGljayk9XCJ0b2dnbGVNb250aFNlbGVjdG9yKClcIiBjbGFzcz1cIm1vbnRoLWhlYWRlclwiPlxuICAgICAge3sgaXNZZWFyU2VsZWN0aW9uRmxvdyA/IHNlbGVjdGVkWWVhciA6IGF2YWlsYWJsZU1vbnRoc1tjdXJyZW50TW9udGhOdW1iZXJdIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpc1NlbGVjdGluZ01vbnRoXCIgKGNsaWNrKT1cInRvZ2dsZVllYXJTZWxlY3RvcigpXCIgY2xhc3M9XCJ5ZWFyLWhlYWRlclwiPlxuICAgICAge3sgaXNTZWxlY3RpbmdZZWFyID8geWVhclJhbmdlIDogY3VycmVudFllYXJOdW1iZXIgfX1cbiAgICA8L2Rpdj5cblxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lcl9fYXJyb3dfX2ljb25cIlxuICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVmlldygnTkVYVCcpXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBhcmlhLWxhYmVsPVwiTmV4dCBNb250aFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwibmF2aWdhdGVWaWV3KCdORVhUJylcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZGlzYWJsZWQtbW9udGgnOiBpc05leHRNb250aERpc2FibGVkIHx8IGlzU2VsZWN0aW5nTW9udGhcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTkuNzA3MSA4LjcwNzExQzIwLjA5NzYgOC4zMTY1OCAyMC4wOTc2IDcuNjgzNDIgMTkuNzA3MSA3LjI5Mjg5TDEzLjM0MzEgMC45Mjg5MzNDMTIuOTUyNiAwLjUzODQwOSAxMi4zMTk1IDAuNTM4NDA5IDExLjkyODkgMC45Mjg5MzNDMTEuNTM4NCAxLjMxOTQ2IDExLjUzODQgMS45NTI2MiAxMS45Mjg5IDIuMzQzMTVMMTcuNTg1OCA4TDExLjkyODkgMTMuNjU2OUMxMS41Mzg0IDE0LjA0NzQgMTEuNTM4NCAxNC42ODA1IDExLjkyODkgMTUuMDcxMUMxMi4zMTk1IDE1LjQ2MTYgMTIuOTUyNiAxNS40NjE2IDEzLjM0MzEgMTUuMDcxMUwxOS43MDcxIDguNzA3MTFaTS04Ljc0MjI4ZS0wOCA5TDE5IDlMMTkgN0w4Ljc0MjI4ZS0wOCA3TC04Ljc0MjI4ZS0wOCA5WlwiXG4gICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICA+PC9wYXRoPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX2JvZHlcIj5cblxuICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdGluZ01vbnRoICYmICFpc1NlbGVjdGluZ1llYXJcIiBjbGFzcz1cIm1vbnRoLXNlbGVjdG9yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1vbnRoIG9mIGF2YWlsYWJsZU1vbnRoczsgbGV0IGkgPSBpbmRleFwiIFxuICAgICAgICAgICAgY2xhc3M9XCJtb250aFwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZE1vbnRoc1tpXSAmJiBzZWxlY3RNb250aChtb250aClcIiBcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2Rpc2FibGUtbW9udGgnOiBkaXNhYmxlZE1vbnRoc1tpXSxcbiAgICAgICAgICAgICAgJ3NlbGVjdC1tb250aCc6ICFkaXNhYmxlZE1vbnRoc1tjdXJyZW50TW9udGhOdW1iZXJdICYmIG1vbnRoID09PSBhdmFpbGFibGVNb250aHNbY3VycmVudE1vbnRoTnVtYmVyXVxuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgIHt7IG1vbnRoIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdGluZ1llYXIgJiYgIWlzU2VsZWN0aW5nTW9udGhcIiBjbGFzcz1cInllYXItc2VsZWN0b3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgeWVhciBvZiBhdmFpbGFibGVZZWFyczsgbGV0IGkgPSBpbmRleFwiIFxuICAgICAgICAgICAgY2xhc3M9XCJ5ZWFyXCIgXG4gICAgICAgICAgICAoY2xpY2spPVwiIWRpc2FibGVkWWVhcnNbaV0gJiYgc2VsZWN0WWVhcih5ZWFyKVwiIFxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnZGlzYWJsZS15ZWFyJzogZGlzYWJsZWRZZWFyc1tpXSxcbiAgICAgICAgICAgICAgJ3NlbGVjdC15ZWFyJzogeWVhciA9PT0gY3VycmVudFllYXJOdW1iZXJcbiAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICB7eyB5ZWFyIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzU2VsZWN0aW5nTW9udGggJiYgIWlzU2VsZWN0aW5nWWVhclwiIGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX3dlZWtkYXlzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX3dlZWtkYXlcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5c1wiPlxuICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICdjdXJyZW50LWRheSc6IHdlZWtEYXkuaXNDdXJyZW50RGF5IH1cIj57eyB3ZWVrRGF5LmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpc1NlbGVjdGluZ01vbnRoICYmICFpc1NlbGVjdGluZ1llYXJcIiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyX19kYXlzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX2RheVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2VsZWN0ZWQtZGF5JzogZGF5LmlzU2VsZWN0ZWREYXksXG4gICAgICAgICAgJ2Rpc2FibGVkLWRheSc6IGRheS5pc0Rpc2FibGVkRGF5LFxuICAgICAgICAgICdpcy12YWxpZC1kYXRlJzogZGF5LmRhdGUgPiAwICYmICFkYXkuaXNTZWxlY3RlZERheVxuICAgICAgICB9XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBjdXJyZW50TW9udGhEYXRlc1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3REYXkoZGF5KVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWxlY3REYXkoZGF5KVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJkYXkuZGF0ZSA+IDBcIlxuICAgICAgICAgIFt0YWJpbmRleF09XCJkYXkuaXNEaXNhYmxlZERheSA/IC0xIDogMFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2N1cnJlbnQtZGF5JzogZGF5LmlzQ3VycmVudERheSxcbiAgICAgICAgICAgICdzZWxlY3RlZC1kYXknOiBkYXkuaXNTZWxlY3RlZERheSxcbiAgICAgICAgICAgICdkaXNhYmxlZC1kYXknOiBkYXkuaXNEaXNhYmxlZERheVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmV0cmFjdERheU1vbnRoKGRheS5kYXRlLCBjdXJyZW50TW9udGgsIGN1cnJlbnRZZWFyTnVtYmVyKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBkYXkuZGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUaW1lIFBpY2tlciBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250YWluZXJfX3RpbWVcIiAqbmdJZj1cImRhdGEuZHBDb25maWcuZW5hYmxlVGltZSA9PT0gdHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1oZWFkZXJcIj5cbiAgICAgIDxzcGFuPlRpbWU8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWNvbnRyb2xzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiaG91cklucHV0XCI+SG91cjwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBcbiAgICAgICAgICBpZD1cImhvdXJJbnB1dFwiXG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgIFttaW5dPVwiaXMxMkhvdXJGb3JtYXQoKSA/IDEgOiAwXCJcbiAgICAgICAgICBbbWF4XT1cImlzMTJIb3VyRm9ybWF0KCkgPyAxMiA6IDIzXCJcbiAgICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSG91clwiXG4gICAgICAgICAgKGlucHV0KT1cIm9uSG91cklucHV0KCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlSG91cklucHV0KClcIlxuICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgW3RpdGxlXT1cImlzMTJIb3VyRm9ybWF0KCkgPyAnRW50ZXIgaG91ciAoMS0xMiknIDogJ0VudGVyIGhvdXIgKDAtMjMpJ1wiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGltZS1zZXBhcmF0b3JcIj46PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwibWludXRlSW5wdXRcIj5NaW51dGU8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgaWQ9XCJtaW51dGVJbnB1dFwiXG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgIG1pbj1cIjBcIiBcbiAgICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgICAgW3N0ZXBdPVwiMVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1pbnV0ZVwiXG4gICAgICAgICAgKGlucHV0KT1cIm9uTWludXRlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVNaW51dGVJbnB1dCgpXCJcbiAgICAgICAgICBjbGFzcz1cInRpbWUtaW5wdXRcIlxuICAgICAgICAgIHRpdGxlPVwiRW50ZXIgbWludXRlICgwLTU5KVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYW0tcG0tc2VsZWN0b3JcIiAqbmdJZj1cImlzMTJIb3VyRm9ybWF0KClcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cImFtUG1TZWxlY3RcIj5BTS9QTTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgXG4gICAgICAgICAgaWQ9XCJhbVBtU2VsZWN0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQW1QbVwiXG4gICAgICAgICAgY2xhc3M9XCJhbS1wbS1zZWxlY3RcIj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQU1cIj5BTTwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJQTVwiPlBNPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lcl9fZm9vdGVyXCIgKm5nSWY9XCJkYXRhLmRwQ29uZmlnLnNob3dBcHBseUJ1dHRvbiB8fCBkYXRhLmRwQ29uZmlnLmVuYWJsZVRpbWVcIj5cbiAgICA8YnV0dG9uIG1pcy1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cIidub25lJ1wiIChjbGljayk9XCJjYW5jZWxEYXRlUGlja2VyKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1pcy1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwiYXBwbHlEYXRlKClcIiBbZGlzYWJsZWRdPVwiIShkYXRhLmRhdGUgfHwgbG9jYWxTZWxlY3RlZERhdGUuZGF0ZSlcIj5BcHBseTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -42,4 +42,4 @@ export const getMonth = (index) => {
|
|
|
42
42
|
}
|
|
43
43
|
return month;
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyX3YyL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBaUIsRUFBRTtJQUN2RCxJQUFJLEtBQUssQ0FBQztJQUNWLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ25CLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ2hCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ2hCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2QsTUFBTTtRQUNSLEtBQUssQ0FBQztZQUNKLEtBQUssR0FBRyxNQUFNLENBQUM7WUFDZixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNmLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQ2pCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsV0FBVyxDQUFDO1lBQ3BCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLEVBQUU7WUFDTCxLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ25CLE1BQU07UUFDUixLQUFLLEVBQUU7WUFDTCxLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ25CLE1BQU07UUFDUjtZQUNFLE1BQU07SUFDVixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ3VycmVudE1vbnRoIH0gZnJvbSBcIi4uL21vZGVscy9kcC1jb25maWcubW9kZWxcIjtcblxuZXhwb3J0IGNvbnN0IGdldE1vbnRoID0gKGluZGV4OiBudW1iZXIpOiBJQ3VycmVudE1vbnRoID0+IHtcbiAgbGV0IG1vbnRoO1xuICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgY2FzZSAwOlxuICAgICAgbW9udGggPSBcIkphbnVhcnlcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIG1vbnRoID0gXCJGZWJydWFyeVwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgbW9udGggPSBcIk1hcmNoXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICBtb250aCA9IFwiQXByaWxcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIG1vbnRoID0gXCJNYXlcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIG1vbnRoID0gXCJKdW5lXCI7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDY6XG4gICAgICBtb250aCA9IFwiSnVseVwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA3OlxuICAgICAgbW9udGggPSBcIkF1Z3VzdFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA4OlxuICAgICAgbW9udGggPSBcIlNlcHRlbWJlclwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA5OlxuICAgICAgbW9udGggPSBcIk9jdG9iZXJcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTA6XG4gICAgICBtb250aCA9IFwiTm92ZW1iZXJcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTE6XG4gICAgICBtb250aCA9IFwiRGVjZW1iZXJcIjtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gbW9udGg7XG59O1xuIl19
|