@datarailsshared/datarailsshared 1.6.163 → 1.6.167

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.
@@ -32,13 +32,16 @@ function DrDatePickerCustomHeaderComponent_div_0_div_1_div_2_Template(rf, ctx) {
32
32
  i0.ɵɵadvance(1);
33
33
  i0.ɵɵtextInterpolate1(" ", tag_r5.label, " ");
34
34
  } }
35
+ const _c2 = function (a0) { return { "dr-datepicker-preset-date__tags--solo": a0 }; };
35
36
  function DrDatePickerCustomHeaderComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
36
37
  i0.ɵɵelementStart(0, "div", 11)(1, "div", 12);
37
38
  i0.ɵɵtemplate(2, DrDatePickerCustomHeaderComponent_div_0_div_1_div_2_Template, 2, 6, "div", 13);
38
39
  i0.ɵɵelementEnd()();
39
40
  } if (rf & 2) {
40
41
  const ctx_r2 = i0.ɵɵnextContext(2);
41
- i0.ɵɵadvance(2);
42
+ i0.ɵɵadvance(1);
43
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c2, !ctx_r2.datePickerService.isUsingTimeFrameSelect));
44
+ i0.ɵɵadvance(1);
42
45
  i0.ɵɵproperty("ngForOf", ctx_r2.datePickerService.availableDateTagPresets);
43
46
  } }
44
47
  function DrDatePickerCustomHeaderComponent_div_0_dr_select_2_Template(rf, ctx) { if (rf & 1) {
@@ -53,7 +56,7 @@ function DrDatePickerCustomHeaderComponent_div_0_dr_select_2_Template(rf, ctx) {
53
56
  } }
54
57
  function DrDatePickerCustomHeaderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
55
58
  i0.ɵɵelementStart(0, "div", 8);
56
- i0.ɵɵtemplate(1, DrDatePickerCustomHeaderComponent_div_0_div_1_Template, 3, 1, "div", 9);
59
+ i0.ɵɵtemplate(1, DrDatePickerCustomHeaderComponent_div_0_div_1_Template, 3, 4, "div", 9);
57
60
  i0.ɵɵtemplate(2, DrDatePickerCustomHeaderComponent_div_0_dr_select_2_Template, 2, 5, "dr-select", 10);
58
61
  i0.ɵɵelementEnd();
59
62
  } if (rf & 2) {
@@ -299,7 +302,7 @@ export class DrDatePickerCustomHeaderComponent {
299
302
  calendar.insertBefore(selector.location.nativeElement, calendar.firstChild);
300
303
  }
301
304
  /** @nocollapse */ static { this.ɵfac = function DrDatePickerCustomHeaderComponent_Factory(t) { return new (t || DrDatePickerCustomHeaderComponent)(i0.ɵɵdirectiveInject(i1.MatCalendar), i0.ɵɵdirectiveInject(i2.DateAdapter), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.DrDatePickerService)); }; }
302
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrDatePickerCustomHeaderComponent, selectors: [["dr-date-picker_custom-header", 8, "component"]], attrs: _c0, decls: 12, vars: 4, consts: [["class", "dr-datepicker__timeframe-select__wrapper", 4, "ngIf"], [1, "dr-date-paging"], [1, "dr-date-paging", "flip-page-button", 3, "click"], [1, "dr-icon-arrow-left", "presentation_buttons-navigate_input"], [1, "example-header-label"], [3, "click"], [1, "dr-icon-arrow-right", "presentation_buttons-navigate_input"], ["class", "dr-quarterly-datepicker", 4, "ngIf"], [1, "dr-datepicker__timeframe-select__wrapper"], ["class", "dr-datepicker-preset-date", 4, "ngIf"], ["class", "dr-datepicker__timeframe-select", "bindLabel", "title", "bindValue", "value", 3, "ngModel", "items", "ngModelChange", 4, "ngIf"], [1, "dr-datepicker-preset-date"], [1, "dr-datepicker-preset-date__tags"], ["id", "preset_tag", "class", "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click", 4, "ngFor", "ngForOf"], ["id", "preset_tag", 1, "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click"], ["bindLabel", "title", "bindValue", "value", 1, "dr-datepicker__timeframe-select", 3, "ngModel", "items", "ngModelChange"], [1, "dr-quarterly-datepicker"], ["quarterlyDatePicker", ""], ["class", "quarter-selector", 3, "class", "quarter-selector--disabled", "click", 4, "ngFor", "ngForOf"], [1, "quarter-selector", 3, "click"]], template: function DrDatePickerCustomHeaderComponent_Template(rf, ctx) { if (rf & 1) {
305
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrDatePickerCustomHeaderComponent, selectors: [["dr-date-picker_custom-header", 8, "component"]], attrs: _c0, decls: 12, vars: 4, consts: [["class", "dr-datepicker__timeframe-select__wrapper", 4, "ngIf"], [1, "dr-date-paging"], [1, "dr-date-paging", "flip-page-button", 3, "click"], [1, "dr-icon-arrow-left", "presentation_buttons-navigate_input"], [1, "example-header-label"], [3, "click"], [1, "dr-icon-arrow-right", "presentation_buttons-navigate_input"], ["class", "dr-quarterly-datepicker", 4, "ngIf"], [1, "dr-datepicker__timeframe-select__wrapper"], ["class", "dr-datepicker-preset-date", 4, "ngIf"], ["class", "dr-datepicker__timeframe-select", "bindLabel", "title", "bindValue", "value", 3, "ngModel", "items", "ngModelChange", 4, "ngIf"], [1, "dr-datepicker-preset-date"], [1, "dr-datepicker-preset-date__tags", 3, "ngClass"], ["id", "preset_tag", "class", "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click", 4, "ngFor", "ngForOf"], ["id", "preset_tag", 1, "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click"], ["bindLabel", "title", "bindValue", "value", 1, "dr-datepicker__timeframe-select", 3, "ngModel", "items", "ngModelChange"], [1, "dr-quarterly-datepicker"], ["quarterlyDatePicker", ""], ["class", "quarter-selector", 3, "class", "quarter-selector--disabled", "click", 4, "ngFor", "ngForOf"], [1, "quarter-selector", 3, "click"]], template: function DrDatePickerCustomHeaderComponent_Template(rf, ctx) { if (rf & 1) {
303
306
  i0.ɵɵtemplate(0, DrDatePickerCustomHeaderComponent_div_0_Template, 3, 2, "div", 0);
304
307
  i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
305
308
  i0.ɵɵlistener("click", function DrDatePickerCustomHeaderComponent_Template_div_click_2_listener() { return ctx.pagingClicked(false); });
@@ -326,13 +329,13 @@ export class DrDatePickerCustomHeaderComponent {
326
329
  i0.ɵɵtextInterpolate(ctx.periodYearLabel);
327
330
  i0.ɵɵadvance(3);
328
331
  i0.ɵɵproperty("ngIf", ctx.currentViewIsQuarter);
329
- } }, dependencies: [i4.NgControlStatus, i4.NgModel, i5.NgClass, i5.NgForOf, i5.NgIf, i6.DrTooltipDirective, i7.DrSelectComponent, i8.DrShowTimeframePipe], styles: ["[_nghost-%COMP%]{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper[_ngcontent-%COMP%]{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags[_ngcontent-%COMP%]{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected[_ngcontent-%COMP%]{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label[_ngcontent-%COMP%]{cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector.selected[_ngcontent-%COMP%]{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled[_ngcontent-%COMP%], .dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled.selected[_ngcontent-%COMP%]{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}"], changeDetection: 0 }); }
332
+ } }, dependencies: [i4.NgControlStatus, i4.NgModel, i5.NgClass, i5.NgForOf, i5.NgIf, i6.DrTooltipDirective, i7.DrSelectComponent, i8.DrShowTimeframePipe], styles: ["[_nghost-%COMP%]{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper[_ngcontent-%COMP%]{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags[_ngcontent-%COMP%]{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags--solo[_ngcontent-%COMP%]{padding:16px 32px;gap:16px;justify-content:center}.dr-datepicker-preset-date__tags--solo[_ngcontent-%COMP%] .dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{padding:4px 8px;justify-content:center;display:flex;flex:1 0 0}.dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected[_ngcontent-%COMP%]{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label[_ngcontent-%COMP%]{cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector.selected[_ngcontent-%COMP%]{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled[_ngcontent-%COMP%], .dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled.selected[_ngcontent-%COMP%]{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}"], changeDetection: 0 }); }
330
333
  }
331
334
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDatePickerCustomHeaderComponent, [{
332
335
  type: Component,
333
- args: [{ selector: 'dr-date-picker_custom-header.component', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div\n *ngFor=\"let tag of datePickerService.availableDateTagPresets\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n *ngIf=\"datePickerService.isUsingTimeFrameSelect\"\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n", styles: [":host{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker .quarter-selector--disabled,.dr-quarterly-datepicker .quarter-selector--disabled.selected{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}\n"] }]
336
+ args: [{ selector: 'dr-date-picker_custom-header.component', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags--solo': !datePickerService.isUsingTimeFrameSelect }\">\n <div\n *ngFor=\"let tag of datePickerService.availableDateTagPresets\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n *ngIf=\"datePickerService.isUsingTimeFrameSelect\"\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n", styles: [":host{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags--solo{padding:16px 32px;gap:16px;justify-content:center}.dr-datepicker-preset-date__tags--solo .dr-datepicker-preset-date__tags__tag{padding:4px 8px;justify-content:center;display:flex;flex:1 0 0}.dr-datepicker-preset-date__tags__tag{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker .quarter-selector--disabled,.dr-quarterly-datepicker .quarter-selector--disabled.selected{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}\n"] }]
334
337
  }], function () { return [{ type: i1.MatCalendar }, { type: i2.DateAdapter }, { type: i9.CustomDateFormat, decorators: [{
335
338
  type: Inject,
336
339
  args: [MAT_DATE_FORMATS]
337
340
  }] }, { type: i0.ChangeDetectorRef }, { type: i3.DrDatePickerService }]; }, null); })();
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUVOLE1BQU0sRUFDTix3QkFBd0IsRUFDeEIsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBbUMsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxN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QU87WUFDM0csK0JBQXVFO1lBQWpFLDRHQUFTLDhEQUFzRCxJQUFDO1lBQUMsWUFBcUI7WUFBQSxpQkFBTyxFQUFBO1lBRXZHLDhCQUEyRTtZQUE5QiwyR0FBUyxrQkFBYyxJQUFJLENBQUMsSUFBQztZQUN0RSx3QkFBdUU7WUFDM0UsaUJBQU0sRUFBQTtZQUVWLG9GQVNNOztZQS9DQSx3RUFBbUQ7WUErQnVCLGVBQTRCO1lBQTVCLGdEQUE0QjtZQUM3QixlQUFxQjtZQUFyQix5Q0FBcUI7WUFNekMsZUFBMEI7WUFBMUIsK0NBQTBCOzs7dUZEWnhFLGlDQUFpQztjQU43QyxTQUFTOzJCQUNJLHdDQUF3QyxtQkFHakMsdUJBQXVCLENBQUMsTUFBTTs7c0JBNEUxQyxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgT25Jbml0LFxuICAgIGluamVjdCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0Q2FsZW5kYXJWaWV3IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBDdXN0b21EYXRlRm9ybWF0LCBJVGltZWZyYW1lT3B0aW9uLCBUQ2FsZW5kYXJWaWV3LCBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBXZWVrU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi93ZWVrLXNlbGVjdG9yL3dlZWstc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDxNb21lbnQ+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBxdWFydGVycyA9IFsxLCAyLCAzLCA0XTtcbiAgICBzZWxlY3RlZFF1YXJ0ZXIgPSAxO1xuICAgIHRpbWVmcmFtZU9wdGlvbnM6IElUaW1lZnJhbWVPcHRpb25bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uREFZLFxuICAgICAgICAgICAgdGl0bGU6ICdEYXknLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcuZGF5LFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLldFRUssXG4gICAgICAgICAgICB0aXRsZTogJ1dlZWsnLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcud2VlayxcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLl9kYXRlRm9ybWF0cy5kaXNwbGF5Lm1vbnRoWWVhckxhYmVsKS50b0xvY2FsZVVwcGVyQ2FzZSgpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5NT05USCxcbiAgICAgICAgICAgIHRpdGxlOiAnTW9udGgnLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5tb250aCxcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiBTdHJpbmcobW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnV0YygpLnllYXIoKSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsXG4gICAgICAgICAgICB0aXRsZTogJ1F1YXJ0ZXInLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLnF1YXJ0ZXIsXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT5cbiAgICAgICAgICAgICAgICBTdHJpbmcobW9tZW50KHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkpLnV0YygpLnllYXIoKSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLllFQVIsXG4gICAgICAgICAgICB0aXRsZTogJ1llYXInLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfWUVBUlMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLnllYXIsXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gbW9tZW50KHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkpXG4gICAgICAgICAgICAgICAgICAgIC51dGMoKVxuICAgICAgICAgICAgICAgICAgICAueWVhcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0UGVyaW9kID0gTWF0aC5mbG9vcihjdXJyZW50WWVhciAvIDI0KSAqIDI0O1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydFBlcmlvZCArICctJyArIChzdGFydFBlcmlvZCArIDIzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgXTtcblxuICAgIHBhZ2luZ1NldHVwID0ge1xuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9NT05USFNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfWUVBUlNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMjQsIGZvcndhcmQpLFxuICAgIH07XG5cbiAgICBzZWxlY3RlZFRpbWVmcmFtZTogVENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5GT1JfREFZUztcbiAgICB0aW1lZnJhbWVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICBwZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgcGVyaW9kWWVhckxhYmVsID0gJyc7XG4gICAgZ2V0IHNlbGVjdGVkUHJlc2V0VGFnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRvbmx5IGNhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2ZyID0gaW5qZWN0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jYWxlbmRhcjogTWF0Q2FsZW5kYXI8YW55PixcbiAgICAgICAgcHJvdGVjdGVkIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICAgICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcm90ZWN0ZWQgX2RhdGVGb3JtYXRzOiBDdXN0b21EYXRlRm9ybWF0LFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGRhdGVQaWNrZXJTZXJ2aWNlOiBEckRhdGVQaWNrZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBfY2FsZW5kYXIuc3RhdGVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFBlcmlvZExhYmVscygpKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi50aW1lZnJhbWUgPT09IHRpbWVmcmFtZSlbMF0udmFsdWU7XG4gICAgICAgICAgICBfY2FsZW5kYXIuY3VycmVudFZpZXcgPSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxpc3RlblRvQ2FsZW5kYXJWaWV3Q2hhbmdlcygpO1xuXG4gICAgICAgIF9jYWxlbmRhci5fdXNlclNlbGVjdGlvbi5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLm9uU2FtZURheVNlbGVjdGVkSW5DYWxlbmRhciQubmV4dChkYXRlLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUkLCB0aGlzLl9jYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9jYWxlbmRhci5zdGFydFZpZXcpKV0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt0aW1lZnJhbWUsIHZpZXddKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkci13ZWVrLXNlbGVjdG9yJyk7XG4gICAgICAgICAgICAgICAgc2VsZWN0b3I/LnJlbW92ZT8uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uV0VFSyAmJiB2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0V2Vla1NlbGVjdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5jYWxlbmRhckluc3RhbmNlID0gX2NhbGVuZGFyO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nb1RvQ3VycmVudERhdGVJblZpZXdCeUZZKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZXRQZXJpb2RMYWJlbHMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcpWzBdO1xuICAgICAgICBjb25zdCBmdWxsUGVyaW9kTGFiZWwgPSBjdXJyZW50VGltZWZyYW1lT3B0aW9uLnBlcmlvZExhYmVsKCk7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1thLXpBLVpdKy9nKT8udG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsLm1hdGNoKC9bMC05XSsvZyk/LnRvU3RyaW5nKCkgPz8gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZFllYXJMYWJlbCA9IGZ1bGxQZXJpb2RMYWJlbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lZnJhbWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnJlc2V0UHJlc2V0VGFnKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgYXMgTWF0Q2FsZW5kYXJWaWV3O1xuICAgICAgICBjb25zdCBjaG9zZW5UaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuICFbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLCBDYWxlbmRhclZpZXcuRk9SX01PTlRIUywgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU10uaW5jbHVkZXMoXG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyBhcyBDYWxlbmRhclZpZXcsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoVmlld09uQ2xpY2tPblBlcmlvZExhYmVsKHZpZXc6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTIHwgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUykge1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHZpZXc7XG4gICAgfVxuXG4gICAgb25TZWxlY3RRdWFydGVyKHF1YXJ0ZXJOdW1iZXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHF1YXJ0ZXJOdW1iZXI7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0RW5kT2ZRdWFydGVyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZWRRdWFydGVyJC5uZXh0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHBhZ2luZ0NsaWNrZWQoZm9yd2FyZCkge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddKGZvcndhcmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFnaW5nRGF0ZUNoYW5nZShhY3Rpb25DYWxsOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBmb3J3YXJkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlclthY3Rpb25DYWxsXSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCBmb3J3YXJkID8gYW1vdW50IDogLWFtb3VudCk7XG4gICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKSB7XG4gICAgICAgIGNvbnN0IG11bHR1WWVhclZpZXcgPSB0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3IGFzIGFueTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUobXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX3NlbGVjdGVkWWVhciA9IG11bHR1WWVhclZpZXcuX2FjdGl2ZURhdGUueWVhcigpO1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9pbml0KCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZURlcGVuZGluZ09uRlkodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpICYmXG4gICAgICAgICAgICAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyQmFjayAmJlxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBtdWx0dVllYXJWaWV3Ll90b2RheVllYXIgPSBtb21lbnQudXRjKCkueWVhcigpICsgMTtcbiAgICAgICAgICAgIChtdWx0dVllYXJWaWV3IGFzIGFueSkuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RQcmVzZXRUYWcodGFnOiBhbnkpIHtcbiAgICAgICAgaWYgKHRhZy5rZXkgPT09IHRoaXMuc2VsZWN0ZWRQcmVzZXRUYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucHJlc2V0VGFnJC5uZXh0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGhpcy5zZWxlY3RlZFByZXNldFRhZywgdGhpcy5fY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIGdvVG9DdXJyZW50RGF0ZUluVmlld0J5RlkoKSB7XG4gICAgICAgIGNvbnN0IGlzTmVlZE1vdmVUb0RhdGUgPVxuICAgICAgICAgICAgIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaW5uZXJWYWx1ZSAmJlxuICAgICAgICAgICAgW1RpbWVmcmFtZU9wdGlvbi5RVUFSVEVSLCBUaW1lZnJhbWVPcHRpb24uWUVBUl0uaW5jbHVkZXModGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpO1xuXG4gICAgICAgIGlmIChpc05lZWRNb3ZlVG9EYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnRXaXRoU2hpZnQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50LnV0YygpKTtcbiAgICAgICAgICAgIGlmIChtb21lbnRXaXRoU2hpZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuX2dvVG9EYXRlSW5WaWV3KFxuICAgICAgICAgICAgICAgICAgICBtb21lbnRXaXRoU2hpZnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5jdXJyZW50VmlldyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlck51bWJlcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRPZlF1YXJ0ZXIgPSB0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLmNsb25lKCk7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcihlbmRPZlF1YXJ0ZXIsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJTaGlmdEZvclllYXIoZW5kT2ZRdWFydGVyKTtcblxuICAgICAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UubWF4RGF0ZTtcbiAgICAgICAgICAgIGlmIChtYXhEYXRlICYmIG1heERhdGUudXRjKCkudW5peCgpIDwgZW5kT2ZRdWFydGVyLnV0YygpLnN1YnRyYWN0KDMsICdtb250aCcpLnVuaXgoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVwaWNrZXJGaWx0ZXIoZW5kT2ZRdWFydGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RlblRvQ2FsZW5kYXJWaWV3Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIudmlld0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIubXVsdGlZZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnNlcnRXZWVrU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoV2Vla1NlbGVjdG9yQ29tcG9uZW50KS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAgICAgY29uc3QgY2FsZW5kYXI6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC1jYWxlbmRhci1jb250ZW50Jyk7XG4gICAgICAgIGNhbGVuZGFyLmluc2VydEJlZm9yZShzZWxlY3Rvci5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCBjYWxlbmRhci5maXJzdENoaWxkKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0X193cmFwcGVyXCI+XG4gICAgPGRpdiAqbmdJZj1cImRhdGVQaWNrZXJTZXJ2aWNlLmlzVXNpbmdEYXRlVGFnUHJlc2V0c1wiIGNsYXNzPVwiZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZV9fdGFnc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlRGF0ZVRhZ1ByZXNldHNcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nVGltZUZyYW1lU2VsZWN0XCJcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUVOLE1BQU0sRUFDTix3QkFBd0IsRUFDeEIsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBbUMsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxN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RCxJQUFDO1lBQUMsWUFBNEI7WUFBQSxpQkFBTztZQUMzRywrQkFBdUU7WUFBakUsNEdBQVMsOERBQXNELElBQUM7WUFBQyxZQUFxQjtZQUFBLGlCQUFPLEVBQUE7WUFFdkcsOEJBQTJFO1lBQTlCLDJHQUFTLGtCQUFjLElBQUksQ0FBQyxJQUFDO1lBQ3RFLHdCQUF1RTtZQUMzRSxpQkFBTSxFQUFBO1lBRVYsb0ZBU007O1lBaERBLHdFQUFtRDtZQWdDdUIsZUFBNEI7WUFBNUIsZ0RBQTRCO1lBQzdCLGVBQXFCO1lBQXJCLHlDQUFxQjtZQU16QyxlQUEwQjtZQUExQiwrQ0FBMEI7Ozt1RkRieEUsaUNBQWlDO2NBTjdDLFNBQVM7MkJBQ0ksd0NBQXdDLG1CQUdqQyx1QkFBdUIsQ0FBQyxNQUFNOztzQkE0RTFDLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBPbkluaXQsXG4gICAgaW5qZWN0LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBJbmplY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcsIEN1c3RvbURhdGVGb3JtYXQsIElUaW1lZnJhbWVPcHRpb24sIFRDYWxlbmRhclZpZXcsIFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IERyRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kci1kYXRlLXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFdlZWtTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL3dlZWstc2VsZWN0b3Ivd2Vlay1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50PE1vbWVudD4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJvdGVjdGVkIF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHF1YXJ0ZXJzID0gWzEsIDIsIDMsIDRdO1xuICAgIHNlbGVjdGVkUXVhcnRlciA9IDE7XG4gICAgdGltZWZyYW1lT3B0aW9uczogSVRpbWVmcmFtZU9wdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5EQVksXG4gICAgICAgICAgICB0aXRsZTogJ0RheScsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5kYXksXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5tb250aFllYXJMYWJlbCkudG9Mb2NhbGVVcHBlckNhc2UoKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uV0VFSyxcbiAgICAgICAgICAgIHRpdGxlOiAnV2VlaycsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy53ZWVrLFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLk1PTlRILFxuICAgICAgICAgICAgdGl0bGU6ICdNb250aCcsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9NT05USFMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLm1vbnRoLFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkudXRjKCkueWVhcigpKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUixcbiAgICAgICAgICAgIHRpdGxlOiAnUXVhcnRlcicsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcucXVhcnRlcixcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PlxuICAgICAgICAgICAgICAgIFN0cmluZyhtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSkudXRjKCkueWVhcigpKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uWUVBUixcbiAgICAgICAgICAgIHRpdGxlOiAnWWVhcicsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcueWVhcixcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSBtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSlcbiAgICAgICAgICAgICAgICAgICAgLnV0YygpXG4gICAgICAgICAgICAgICAgICAgIC55ZWFyKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRQZXJpb2QgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyIC8gMjQpICogMjQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0UGVyaW9kICsgJy0nICsgKHN0YXJ0UGVyaW9kICsgMjMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdO1xuXG4gICAgcGFnaW5nU2V0dXAgPSB7XG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX01PTlRIU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX0RBWVNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhck1vbnRocycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAyNCwgZm9yd2FyZCksXG4gICAgfTtcblxuICAgIHNlbGVjdGVkVGltZWZyYW1lOiBUQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTO1xuICAgIHRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIHBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICBwZXJpb2RZZWFyTGFiZWwgPSAnJztcbiAgICBnZXQgc2VsZWN0ZWRQcmVzZXRUYWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZnIgPSBpbmplY3QoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NhbGVuZGFyOiBNYXRDYWxlbmRhcjxhbnk+LFxuICAgICAgICBwcm90ZWN0ZWQgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxNb21lbnQ+LFxuICAgICAgICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByb3RlY3RlZCBfZGF0ZUZvcm1hdHM6IEN1c3RvbURhdGVGb3JtYXQsXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIF9jYWxlbmRhci5zdGF0ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGVyaW9kTGFiZWxzKCkpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGltZWZyYW1lID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRUaW1lZnJhbWUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKVswXS52YWx1ZTtcbiAgICAgICAgICAgIF9jYWxlbmRhci5jdXJyZW50VmlldyA9IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgYXMgTWF0Q2FsZW5kYXJWaWV3O1xuICAgICAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFF1YXJ0ZXJBY2NvcmRpbmdUb0Zpc2NhbFllYXIodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGlzdGVuVG9DYWxlbmRhclZpZXdDaGFuZ2VzKCk7XG5cbiAgICAgICAgX2NhbGVuZGFyLl91c2VyU2VsZWN0aW9uLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVmFsdWVVcGRhdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uub25TYW1lRGF5U2VsZWN0ZWRJbkNhbGVuZGFyJC5uZXh0KGRhdGUudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSQsIHRoaXMuX2NhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2NhbGVuZGFyLnN0YXJ0VmlldykpXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW3RpbWVmcmFtZSwgdmlld10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RyLXdlZWstc2VsZWN0b3InKTtcbiAgICAgICAgICAgICAgICBzZWxlY3Rvcj8ucmVtb3ZlPy4oKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5XRUVLICYmIHZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRXZWVrU2VsZWN0b3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UgPSBfY2FsZW5kYXI7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdvVG9DdXJyZW50RGF0ZUluVmlld0J5RlkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNldFBlcmlvZExhYmVscygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldylbMF07XG4gICAgICAgIGNvbnN0IGZ1bGxQZXJpb2RMYWJlbCA9IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24ucGVyaW9kTGFiZWwoKTtcbiAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID09PSBDYWxlbmRhclZpZXcuRk9SX0RBWVMpIHtcbiAgICAgICAgICAgIHRoaXMucGVyaW9kTW9udGhMYWJlbCA9IGZ1bGxQZXJpb2RMYWJlbC5tYXRjaCgvW2EtekEtWl0rL2cpPy50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1swLTldKy9nKT8udG9TdHJpbmcoKSA/PyBmdWxsUGVyaW9kTGFiZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICAgICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHNldFRpbWVmcmFtZSh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucmVzZXRQcmVzZXRUYWcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWZyYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMudGltZWZyYW1lU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSBhcyBNYXRDYWxlbmRhclZpZXc7XG4gICAgICAgIGNvbnN0IGNob3NlblRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lKVswXTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVUaW1lZnJhbWVBbmRGb3JtYXQoY2hvc2VuVGltZWZyYW1lT3B0aW9uLmZvcm1hdCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPT09IENhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRWaWV3SXNRdWFydGVyKCkge1xuICAgICAgICByZXR1cm4gIVtDYWxlbmRhclZpZXcuRk9SX0RBWVMsIENhbGVuZGFyVmlldy5GT1JfTU9OVEhTLCBDYWxlbmRhclZpZXcuRk9SX1lFQVJTXS5pbmNsdWRlcyhcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3IGFzIENhbGVuZGFyVmlldyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwodmlldzogQ2FsZW5kYXJWaWV3LkZPUl9NT05USFMgfCBDYWxlbmRhclZpZXcuRk9SX1lFQVJTKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBvblNlbGVjdFF1YXJ0ZXIocXVhcnRlck51bWJlcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gcXVhcnRlck51bWJlcjtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zZXRFbmRPZlF1YXJ0ZXIodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgcXVhcnRlck51bWJlcik7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkLm5leHQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZGF0ZVBpY2tlckluc3RhbmNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcGFnaW5nQ2xpY2tlZChmb3J3YXJkKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZ1NldHVwW3RoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3XSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10oZm9yd2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYWdpbmdEYXRlQ2hhbmdlKGFjdGlvbkNhbGw6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGZvcndhcmQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyW2FjdGlvbkNhbGxdKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIGZvcndhcmQgPyBhbW91bnQgOiAtYW1vdW50KTtcbiAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpIHtcbiAgICAgICAgY29uc3QgbXVsdHVZZWFyVmlldyA9IHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcgYXMgYW55O1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShtdWx0dVllYXJWaWV3Ll9hY3RpdmVEYXRlKTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fc2VsZWN0ZWRZZWFyID0gbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZS55ZWFyKCk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX2luaXQoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVGltZWZyYW1lRGVwZW5kaW5nT25GWSh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSkgJiZcbiAgICAgICAgICAgICF0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZpc2NhbFllYXJCYWNrICYmXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZpc2NhbFllYXJNb250aHNNb2RpZmllclxuICAgICAgICApIHtcbiAgICAgICAgICAgIG11bHR1WWVhclZpZXcuX3RvZGF5WWVhciA9IG1vbWVudC51dGMoKS55ZWFyKCkgKyAxO1xuICAgICAgICAgICAgKG11bHR1WWVhclZpZXcgYXMgYW55KS5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdFByZXNldFRhZyh0YWc6IGFueSkge1xuICAgICAgICBpZiAodGFnLmtleSA9PT0gdGhpcy5zZWxlY3RlZFByZXNldFRhZykge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQubmV4dCh0YWcua2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZURhdGVQaWNrZXJCeVByZXNldCh0aGlzLnNlbGVjdGVkUHJlc2V0VGFnLCB0aGlzLl9jYWxlbmRhcik7XG4gICAgfVxuXG4gICAgZ29Ub0N1cnJlbnREYXRlSW5WaWV3QnlGWSgpIHtcbiAgICAgICAgY29uc3QgaXNOZWVkTW92ZVRvRGF0ZSA9XG4gICAgICAgICAgICAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5pbm5lclZhbHVlICYmXG4gICAgICAgICAgICBbVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsIFRpbWVmcmFtZU9wdGlvbi5ZRUFSXS5pbmNsdWRlcyh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSk7XG5cbiAgICAgICAgaWYgKGlzTmVlZE1vdmVUb0RhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudFdpdGhTaGlmdCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnQudXRjKCkpO1xuICAgICAgICAgICAgaWYgKG1vbWVudFdpdGhTaGlmdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5fZ29Ub0RhdGVJblZpZXcoXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudFdpdGhTaGlmdCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5jYWxlbmRhckluc3RhbmNlLmN1cnJlbnRWaWV3LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1F1YXJ0ZXJEaXNhYmxlZChxdWFydGVyTnVtYmVyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZE9mUXVhcnRlciA9IHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0RW5kT2ZRdWFydGVyKGVuZE9mUXVhcnRlciwgcXVhcnRlck51bWJlcik7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihlbmRPZlF1YXJ0ZXIpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXhEYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5tYXhEYXRlO1xuICAgICAgICAgICAgaWYgKG1heERhdGUgJiYgbWF4RGF0ZS51dGMoKS51bml4KCkgPCBlbmRPZlF1YXJ0ZXIudXRjKCkuc3VidHJhY3QoMywgJ21vbnRoJykudW5peCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZGF0ZXBpY2tlckZpbHRlcihlbmRPZlF1YXJ0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdGVuVG9DYWxlbmRhclZpZXdDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydFdlZWtTZWxlY3RvcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShXZWVrU2VsZWN0b3JDb21wb25lbnQpLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcblxuICAgICAgICBjb25zdCBjYWxlbmRhcjogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LWNhbGVuZGFyLWNvbnRlbnQnKTtcbiAgICAgICAgY2FsZW5kYXIuaW5zZXJ0QmVmb3JlKHNlbGVjdG9yLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIGNhbGVuZGFyLmZpcnN0Q2hpbGQpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXJfX3RpbWVmcmFtZS1zZWxlY3RfX3dyYXBwZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0ZVBpY2tlclNlcnZpY2UuaXNVc2luZ0RhdGVUYWdQcmVzZXRzXCIgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzXCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzLS1zb2xvJzogIWRhdGVQaWNrZXJTZXJ2aWNlLmlzVXNpbmdUaW1lRnJhbWVTZWxlY3QgfVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlRGF0ZVRhZ1ByZXNldHNcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nVGltZUZyYW1lU2VsZWN0XCJcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -22,13 +22,16 @@ function DrFiscalMonthCalendarHeaderComponent_div_0_div_1_div_2_Template(rf, ctx
22
22
  i0.ɵɵadvance(1);
23
23
  i0.ɵɵtextInterpolate1(" ", tag_r5.label, " ");
24
24
  } }
25
+ const _c2 = function (a0) { return { "dr-datepicker-preset-date__tags--solo": a0 }; };
25
26
  function DrFiscalMonthCalendarHeaderComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
26
27
  i0.ɵɵelementStart(0, "div", 11)(1, "div", 12);
27
28
  i0.ɵɵtemplate(2, DrFiscalMonthCalendarHeaderComponent_div_0_div_1_div_2_Template, 2, 6, "div", 13);
28
29
  i0.ɵɵelementEnd()();
29
30
  } if (rf & 2) {
30
31
  const ctx_r2 = i0.ɵɵnextContext(2);
31
- i0.ɵɵadvance(2);
32
+ i0.ɵɵadvance(1);
33
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c2, !ctx_r2.datePickerService.isUsingTimeFrameSelect));
34
+ i0.ɵɵadvance(1);
32
35
  i0.ɵɵproperty("ngForOf", ctx_r2.datePickerService.availableDateTagPresets);
33
36
  } }
34
37
  function DrFiscalMonthCalendarHeaderComponent_div_0_dr_select_2_Template(rf, ctx) { if (rf & 1) {
@@ -43,7 +46,7 @@ function DrFiscalMonthCalendarHeaderComponent_div_0_dr_select_2_Template(rf, ctx
43
46
  } }
44
47
  function DrFiscalMonthCalendarHeaderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
45
48
  i0.ɵɵelementStart(0, "div", 8);
46
- i0.ɵɵtemplate(1, DrFiscalMonthCalendarHeaderComponent_div_0_div_1_Template, 3, 1, "div", 9);
49
+ i0.ɵɵtemplate(1, DrFiscalMonthCalendarHeaderComponent_div_0_div_1_Template, 3, 4, "div", 9);
47
50
  i0.ɵɵtemplate(2, DrFiscalMonthCalendarHeaderComponent_div_0_dr_select_2_Template, 2, 5, "dr-select", 10);
48
51
  i0.ɵɵelementEnd();
49
52
  } if (rf & 2) {
@@ -107,7 +110,7 @@ export class DrFiscalMonthCalendarHeaderComponent extends DrDatePickerCustomHead
107
110
  });
108
111
  }
109
112
  /** @nocollapse */ static { this.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory; return function DrFiscalMonthCalendarHeaderComponent_Factory(t) { return (ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory || (ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DrFiscalMonthCalendarHeaderComponent)))(t || DrFiscalMonthCalendarHeaderComponent); }; }(); }
110
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrFiscalMonthCalendarHeaderComponent, selectors: [["dr-fiscal-month-calendar-header", 8, "component"]], features: [i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 12, vars: 4, consts: [["class", "dr-datepicker__timeframe-select__wrapper", 4, "ngIf"], [1, "dr-date-paging"], [1, "dr-date-paging", "flip-page-button", 3, "click"], [1, "dr-icon-arrow-left", "presentation_buttons-navigate_input"], [1, "example-header-label"], [3, "click"], [1, "dr-icon-arrow-right", "presentation_buttons-navigate_input"], ["class", "dr-quarterly-datepicker", 4, "ngIf"], [1, "dr-datepicker__timeframe-select__wrapper"], ["class", "dr-datepicker-preset-date", 4, "ngIf"], ["class", "dr-datepicker__timeframe-select", "bindLabel", "title", "bindValue", "value", 3, "ngModel", "items", "ngModelChange", 4, "ngIf"], [1, "dr-datepicker-preset-date"], [1, "dr-datepicker-preset-date__tags"], ["id", "preset_tag", "class", "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click", 4, "ngFor", "ngForOf"], ["id", "preset_tag", 1, "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click"], ["bindLabel", "title", "bindValue", "value", 1, "dr-datepicker__timeframe-select", 3, "ngModel", "items", "ngModelChange"], [1, "dr-quarterly-datepicker"], ["quarterlyDatePicker", ""], ["class", "quarter-selector", 3, "class", "quarter-selector--disabled", "click", 4, "ngFor", "ngForOf"], [1, "quarter-selector", 3, "click"]], template: function DrFiscalMonthCalendarHeaderComponent_Template(rf, ctx) { if (rf & 1) {
113
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrFiscalMonthCalendarHeaderComponent, selectors: [["dr-fiscal-month-calendar-header", 8, "component"]], features: [i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 12, vars: 4, consts: [["class", "dr-datepicker__timeframe-select__wrapper", 4, "ngIf"], [1, "dr-date-paging"], [1, "dr-date-paging", "flip-page-button", 3, "click"], [1, "dr-icon-arrow-left", "presentation_buttons-navigate_input"], [1, "example-header-label"], [3, "click"], [1, "dr-icon-arrow-right", "presentation_buttons-navigate_input"], ["class", "dr-quarterly-datepicker", 4, "ngIf"], [1, "dr-datepicker__timeframe-select__wrapper"], ["class", "dr-datepicker-preset-date", 4, "ngIf"], ["class", "dr-datepicker__timeframe-select", "bindLabel", "title", "bindValue", "value", 3, "ngModel", "items", "ngModelChange", 4, "ngIf"], [1, "dr-datepicker-preset-date"], [1, "dr-datepicker-preset-date__tags", 3, "ngClass"], ["id", "preset_tag", "class", "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click", 4, "ngFor", "ngForOf"], ["id", "preset_tag", 1, "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click"], ["bindLabel", "title", "bindValue", "value", 1, "dr-datepicker__timeframe-select", 3, "ngModel", "items", "ngModelChange"], [1, "dr-quarterly-datepicker"], ["quarterlyDatePicker", ""], ["class", "quarter-selector", 3, "class", "quarter-selector--disabled", "click", 4, "ngFor", "ngForOf"], [1, "quarter-selector", 3, "click"]], template: function DrFiscalMonthCalendarHeaderComponent_Template(rf, ctx) { if (rf & 1) {
111
114
  i0.ɵɵtemplate(0, DrFiscalMonthCalendarHeaderComponent_div_0_Template, 3, 2, "div", 0);
112
115
  i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
113
116
  i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_Template_div_click_2_listener() { return ctx.pagingClicked(false); });
@@ -134,10 +137,10 @@ export class DrFiscalMonthCalendarHeaderComponent extends DrDatePickerCustomHead
134
137
  i0.ɵɵtextInterpolate(ctx.periodYearLabel);
135
138
  i0.ɵɵadvance(3);
136
139
  i0.ɵɵproperty("ngIf", ctx.currentViewIsQuarter);
137
- } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.NgClass, i2.NgForOf, i2.NgIf, i3.DrTooltipDirective, i4.DrSelectComponent, i5.DrShowTimeframePipe], styles: ["[_nghost-%COMP%]{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper[_ngcontent-%COMP%]{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags[_ngcontent-%COMP%]{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected[_ngcontent-%COMP%]{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label[_ngcontent-%COMP%]{cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector.selected[_ngcontent-%COMP%]{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled[_ngcontent-%COMP%], .dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled.selected[_ngcontent-%COMP%]{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}"], changeDetection: 0 }); }
140
+ } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.NgClass, i2.NgForOf, i2.NgIf, i3.DrTooltipDirective, i4.DrSelectComponent, i5.DrShowTimeframePipe], styles: ["[_nghost-%COMP%]{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper[_ngcontent-%COMP%]{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags[_ngcontent-%COMP%]{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags--solo[_ngcontent-%COMP%]{padding:16px 32px;gap:16px;justify-content:center}.dr-datepicker-preset-date__tags--solo[_ngcontent-%COMP%] .dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{padding:4px 8px;justify-content:center;display:flex;flex:1 0 0}.dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected[_ngcontent-%COMP%]{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label[_ngcontent-%COMP%]{cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector.selected[_ngcontent-%COMP%]{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled[_ngcontent-%COMP%], .dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled.selected[_ngcontent-%COMP%]{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}"], changeDetection: 0 }); }
138
141
  }
139
142
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrFiscalMonthCalendarHeaderComponent, [{
140
143
  type: Component,
141
- args: [{ selector: 'dr-fiscal-month-calendar-header.component', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div\n *ngFor=\"let tag of datePickerService.availableDateTagPresets\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n *ngIf=\"datePickerService.isUsingTimeFrameSelect\"\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n", styles: [":host{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker .quarter-selector--disabled,.dr-quarterly-datepicker .quarter-selector--disabled.selected{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}\n"] }]
144
+ args: [{ selector: 'dr-fiscal-month-calendar-header.component', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags--solo': !datePickerService.isUsingTimeFrameSelect }\">\n <div\n *ngFor=\"let tag of datePickerService.availableDateTagPresets\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n *ngIf=\"datePickerService.isUsingTimeFrameSelect\"\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n", styles: [":host{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags--solo{padding:16px 32px;gap:16px;justify-content:center}.dr-datepicker-preset-date__tags--solo .dr-datepicker-preset-date__tags__tag{padding:4px 8px;justify-content:center;display:flex;flex:1 0 0}.dr-datepicker-preset-date__tags__tag{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker .quarter-selector--disabled,.dr-quarterly-datepicker .quarter-selector--disabled.selected{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}\n"] }]
142
145
  }], null, null); })();
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNDL0IsK0JBT2dDO0lBSDVCLHFQQUFTLGVBQUEsZ0NBQXNCLENBQUEsSUFBQztJQUloQyxZQUNKO0lBQUEsaUJBQU07Ozs7SUFKRiw2RkFBK0YsK0VBQUEsNEJBQUE7SUFHL0YsZUFDSjtJQURJLDZDQUNKOzs7SUFYUiwrQkFBdUYsY0FBQTtJQUUvRSxrR0FTTTtJQUNWLGlCQUFNLEVBQUE7OztJQVRrQixlQUE0QztJQUE1QywwRUFBNEM7Ozs7SUFXeEUscUNBTzJDO0lBQXZDLHVOQUFpQixlQUFBLDJCQUFvQixDQUFBLElBQUM7O0lBQzFDLGlCQUFZOzs7SUFMUixrREFBNkIsc0dBQUE7OztJQWxCckMsOEJBQTRHO0lBQ3hHLDJGQWFNO0lBQ04sd0dBUVk7SUFDaEIsaUJBQU07OztJQXZCSSxlQUE2QztJQUE3QyxxRUFBNkM7SUFlOUMsZUFBOEM7SUFBOUMsc0VBQThDOzs7O0lBdUJuRCwrQkFLb0U7SUFGaEUsdVBBQVMsZUFBQSxvQ0FBd0IsQ0FBQSxJQUFDO0lBR2xDLFlBQ0o7SUFBQSxpQkFBTTs7OztJQUhGLHdFQUF1RDtJQUN2RCxvRkFBK0Q7SUFDL0QsZUFDSjtJQURJLDZDQUNKOzs7SUFSSixtQ0FBdUY7SUFDbkYsNkZBT007SUFDVixpQkFBTTs7O0lBUHNCLGVBQVc7SUFBWCx5Q0FBVzs7QUQ5QnZDLE1BQU0sT0FBTyxvQ0FBNkMsU0FBUSxpQ0FBeUM7SUFDOUYsUUFBUTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO2dCQUM5QixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQzthQUNwRDtZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQywyQ0FBMkMsRUFBRSxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMkNBQTJDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDbkQsSUFBSSxDQUFDLFNBQWlCLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRWtCLDJCQUEyQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxDQUFDO2FBQ3BEO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDekIsSUFBSSxDQUFDLDJDQUEyQyxFQUFFLENBQUM7YUFDdEQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d1ZBaENRLG9DQUFvQyxTQUFwQyxvQ0FBb0M7bUdBQXBDLG9DQUFvQztZQ1ZqRCxxRkF3Qk07WUFFTiw4QkFBNEIsYUFBQTtZQUNxQiw4R0FBUyxrQkFBYyxLQUFLLENBQUMsSUFBQztZQUN2RSx1QkFBc0U7WUFDMUUsaUJBQU07WUFDTiwrQkFBbUMsY0FBQTtZQUN6QiwrR0FBUywrREFBdUQsSUFBQztZQUFDLFlBQTRCO1lBQUEsaUJBQU87WUFDM0csK0JBQXVFO1lBQWpFLCtHQUFTLDhEQUFzRCxJQUFDO1lBQUMsWUFBcUI7WUFBQSxpQkFBTyxFQUFBO1lBRXZHLDhCQUEyRTtZQUE5Qiw4R0FBUyxrQkFBYyxJQUFJLENBQUMsSUFBQztZQUN0RSx3QkFBdUU7WUFDM0UsaUJBQU0sRUFBQTtZQUVWLHVGQVNNOztZQS9DQSx3RUFBbUQ7WUErQnVCLGVBQTRCO1lBQTVCLGdEQUE0QjtZQUM3QixlQUFxQjtZQUFyQix5Q0FBcUI7WUFNekMsZUFBMEI7WUFBMUIsK0NBQTBCOzs7dUZENUJ4RSxvQ0FBb0M7Y0FOaEQsU0FBUzsyQkFDSSwyQ0FBMkMsbUJBR3BDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1maXNjYWwtbW9udGgtY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJGaXNjYWxNb250aENhbGVuZGFySGVhZGVyQ29tcG9uZW50PE1vbWVudD4gZXh0ZW5kcyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ8TW9tZW50PiB7XG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIueWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbkZpc2NhbE1vbnRoVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ29Ub0N1cnJlbnREYXRlSW5WaWV3QnlGWSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1EYXRlSW5GaXNjYWxNb250aFZpZXdBY2NvcmRpbmdUb0ZZKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyLnNlbGVjdGVkID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLl9jYWxlbmRhci5zZWxlY3RlZDtcbiAgICAgICAgICAgICh0aGlzLl9jYWxlbmRhciBhcyBhbnkpLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBsaXN0ZW5Ub0NhbGVuZGFyVmlld0NoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFBlcmlvZExhYmVscygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci55ZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluRmlzY2FsTW9udGhWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0X193cmFwcGVyXCI+XG4gICAgPGRpdiAqbmdJZj1cImRhdGVQaWNrZXJTZXJ2aWNlLmlzVXNpbmdEYXRlVGFnUHJlc2V0c1wiIGNsYXNzPVwiZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZXBpY2tlci1wcmVzZXQtZGF0ZV9fdGFnc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlRGF0ZVRhZ1ByZXNldHNcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nVGltZUZyYW1lU2VsZWN0XCJcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNFL0IsK0JBT2dDO0lBSDVCLHFQQUFTLGVBQUEsZ0NBQXNCLENBQUEsSUFBQztJQUloQyxZQUNKO0lBQUEsaUJBQU07Ozs7SUFKRiw2RkFBK0YsK0VBQUEsNEJBQUE7SUFHL0YsZUFDSjtJQURJLDZDQUNKOzs7O0lBWlIsK0JBQXVGLGNBQUE7SUFHL0Usa0dBU007SUFDVixpQkFBTSxFQUFBOzs7SUFYRCxlQUFrRztJQUFsRyxzR0FBa0c7SUFFL0UsZUFBNEM7SUFBNUMsMEVBQTRDOzs7O0lBV3hFLHFDQU8yQztJQUF2Qyx1TkFBaUIsZUFBQSwyQkFBb0IsQ0FBQSxJQUFDOztJQUMxQyxpQkFBWTs7O0lBTFIsa0RBQTZCLHNHQUFBOzs7SUFuQnJDLDhCQUE0RztJQUN4RywyRkFjTTtJQUNOLHdHQVFZO0lBQ2hCLGlCQUFNOzs7SUF4QkksZUFBNkM7SUFBN0MscUVBQTZDO0lBZ0I5QyxlQUE4QztJQUE5QyxzRUFBOEM7Ozs7SUF1Qm5ELCtCQUtvRTtJQUZoRSx1UEFBUyxlQUFBLG9DQUF3QixDQUFBLElBQUM7SUFHbEMsWUFDSjtJQUFBLGlCQUFNOzs7O0lBSEYsd0VBQXVEO0lBQ3ZELG9GQUErRDtJQUMvRCxlQUNKO0lBREksNkNBQ0o7OztJQVJKLG1DQUF1RjtJQUNuRiw2RkFPTTtJQUNWLGlCQUFNOzs7SUFQc0IsZUFBVztJQUFYLHlDQUFXOztBRC9CdkMsTUFBTSxPQUFPLG9DQUE2QyxTQUFRLGlDQUF5QztJQUM5RixRQUFRO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDekIsSUFBSSxDQUFDLDJDQUEyQyxFQUFFLENBQUM7YUFDdEQ7WUFDRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCwyQ0FBMkM7UUFDdkMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNuRCxJQUFJLENBQUMsU0FBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM3RDtJQUNMLENBQUM7SUFFa0IsMkJBQTJCO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLENBQUM7YUFDcEQ7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJLENBQUMsMkNBQTJDLEVBQUUsQ0FBQzthQUN0RDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3VkFoQ1Esb0NBQW9DLFNBQXBDLG9DQUFvQzttR0FBcEMsb0NBQW9DO1lDVmpELHFGQXlCTTtZQUVOLDhCQUE0QixhQUFBO1lBQ3FCLDhHQUFTLGtCQUFjLEtBQUssQ0FBQyxJQUFDO1lBQ3ZFLHVCQUFzRTtZQUMxRSxpQkFBTTtZQUNOLCtCQUFtQyxjQUFBO1lBQ3pCLCtHQUFTLCtEQUF1RCxJQUFDO1lBQUMsWUFBNEI7WUFBQSxpQkFBTztZQUMzRywrQkFBdUU7WUFBakUsK0dBQVMsOERBQXNELElBQUM7WUFBQyxZQUFxQjtZQUFBLGlCQUFPLEVBQUE7WUFFdkcsOEJBQTJFO1lBQTlCLDhHQUFTLGtCQUFjLElBQUksQ0FBQyxJQUFDO1lBQ3RFLHdCQUF1RTtZQUMzRSxpQkFBTSxFQUFBO1lBRVYsdUZBU007O1lBaERBLHdFQUFtRDtZQWdDdUIsZUFBNEI7WUFBNUIsZ0RBQTRCO1lBQzdCLGVBQXFCO1lBQXJCLHlDQUFxQjtZQU16QyxlQUEwQjtZQUExQiwrQ0FBMEI7Ozt1RkQ3QnhFLG9DQUFvQztjQU5oRCxTQUFTOzJCQUNJLDJDQUEyQyxtQkFHcEMsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckZpc2NhbE1vbnRoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQ8TW9tZW50PiBleHRlbmRzIERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDxNb21lbnQ+IHtcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIubXVsdGlZZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci55ZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluRmlzY2FsTW9udGhWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nb1RvQ3VycmVudERhdGVJblZpZXdCeUZZKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGVJbkZpc2NhbE1vbnRoVmlld0FjY29yZGluZ1RvRlkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXIuc2VsZWN0ZWQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2NhbGVuZGFyLnNlbGVjdGVkO1xuICAgICAgICAgICAgKHRoaXMuX2NhbGVuZGFyIGFzIGFueSkuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGxpc3RlblRvQ2FsZW5kYXJWaWV3Q2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIudmlld0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIubXVsdGlZZWFyVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLnllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5GaXNjYWxNb250aFZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXJfX3RpbWVmcmFtZS1zZWxlY3RfX3dyYXBwZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0ZVBpY2tlclNlcnZpY2UuaXNVc2luZ0RhdGVUYWdQcmVzZXRzXCIgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzXCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzLS1zb2xvJzogIWRhdGVQaWNrZXJTZXJ2aWNlLmlzVXNpbmdUaW1lRnJhbWVTZWxlY3QgfVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgZGF0ZVBpY2tlclNlcnZpY2UuYXZhaWxhYmxlRGF0ZVRhZ1ByZXNldHNcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nVGltZUZyYW1lU2VsZWN0XCJcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -17,6 +17,7 @@ export class DrDatePickerService {
17
17
  this.updatedQuarter$ = new Subject();
18
18
  this.weekSelectionChange$ = new Subject();
19
19
  this.updatedDateAndClose$ = new Subject();
20
+ this.isUsingTimeFrameSelect = true;
20
21
  this.presetTag$ = new BehaviorSubject('');
21
22
  this.onSameDaySelectedInCalendar$ = new Subject();
22
23
  this.keepPresetTag = false;
@@ -223,4 +224,4 @@ export class DrDatePickerService {
223
224
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrDatePickerService, [{
224
225
  type: Injectable
225
226
  }], null, null); })();
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kYXRlLXBpY2tlcnMvc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUEyQixlQUFlLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUc3RCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRUksZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQXNDLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRixlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBVTFGLG9FQUFvRTtRQUNwRSwrRUFBK0U7UUFDL0UsaUVBQWlFO1FBQ2pFLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzRSxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDL0IseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUN4RCx5QkFBb0IsR0FBRyxJQUFJLE9B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QUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sNkJBQTZCLENBQUMsSUFBWSxFQUFFLFFBQWE7UUFDNUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFnQixDQUFDO1lBQzVDLElBQUksU0FBUyxFQUFFO2dCQUNYLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDM0IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDO3VHQWhQUSxtQkFBbUI7c0dBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7O3VGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZUZyb21hdHMsIERhdGVUYWdzLCBJRGF0ZVBpY2tlckZvcm1hdENvbmZpZywgVGltZWZyYW1lT3B0aW9uLCBUVGltZWZyYW1lT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGVQaWNrZXInO1xuaW1wb3J0IHsgRHJTaGFyZWRVdGlscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2RyLXNoYXJlZC11dGlscyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBXZWVrSW5mbyB9IGZyb20gJy4uL3dlZWstc2VsZWN0b3Ivd2Vlay1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUFJFU0VUX1RBR1NfTElTVCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyU2VydmljZSB7XG4gICAgaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGltZWZyYW1lJDogQmVoYXZpb3JTdWJqZWN0PFRUaW1lZnJhbWVPcHRpb24+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChUaW1lZnJhbWVPcHRpb24uREFZKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGltZWZyYW1lJCA9IHRoaXMuX3RpbWVmcmFtZSQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgIHB1YmxpYyBnZXQgdGltZWZyYW1lKCk6IFRUaW1lZnJhbWVPcHRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGltZWZyYW1lJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdGltZWZyYW1lKHZhbHVlOiBUVGltZWZyYW1lT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuX3RpbWVmcmFtZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogaGVyZSB3ZSBjYW4gaGF2ZSBpbmNvbnNpc3RlbmN5IGJldHdlZW4gZm9ybWF0IGFuZCB0aW1lZnJhbWVcbiAgICAvLyB3ZSBuZWVkIHRvIGdldCByaWQgb2YgYSBzZXBhcmF0ZSBzdWJqZWN0IGFuZCB1c2UgcGlwZSBmcm9tIHRpbWVmcmFtZSQgZm9yIGl0XG4gICAgLy8gbWFraW5nIEBJbnB1dCgpIGZvcm1hdCBpbiBjb21wb25lbnQganVzdCBzZXR0aW5nIHRoZSB0aW1lZnJhbWVcbiAgICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFUKTtcblxuICAgIHVwZGF0ZWRRdWFydGVyJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICByZWFkb25seSB3ZWVrU2VsZWN0aW9uQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PFdlZWtJbmZvPigpO1xuICAgIHVwZGF0ZWREYXRlQW5kQ2xvc2UkID0gbmV3IFN1YmplY3Q8TW9tZW50PigpO1xuICAgIGRhdGVQaWNrZXJJbnN0YW5jZTogTWF0RGF0ZXBpY2tlcjxhbnk+O1xuICAgIGlzVXNpbmdEYXRlVGFnUHJlc2V0czogYm9vbGVhbjtcbiAgICBpc1VzaW5nVGltZUZyYW1lU2VsZWN0OiBib29sZWFuO1xuICAgIHByZXNldFRhZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGVUYWdzPignJyBhcyBEYXRlVGFncyk7XG4gICAgb25TYW1lRGF5U2VsZWN0ZWRJbkNhbGVuZGFyJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICBrZWVwUHJlc2V0VGFnID0gZmFsc2U7XG4gICAgaXNWYWx1ZVVwZGF0aW5nID0gZmFsc2U7XG4gICAgYXZhaWxhYmxlRGF0ZVRhZ1ByZXNldHMgPSBQUkVTRVRfVEFHU19MSVNUO1xuICAgIGF2YWlsYWJsZVRpbWVmcmFtZXMgPSBbXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5EQVksXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5XRUVLLFxuICAgICAgICBUaW1lZnJhbWVPcHRpb24uTU9OVEgsXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5RVUFSVEVSLFxuICAgICAgICBUaW1lZnJhbWVPcHRpb24uWUVBUixcbiAgICBdO1xuXG4gICAgcHVibGljIGZvcm1hdENvbmZpZzogSURhdGVQaWNrZXJGb3JtYXRDb25maWcgPSB7XG4gICAgICAgIGRheTogRGF0ZUZyb21hdHMuTUFUX0RFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgICAgIG1vbnRoOiBEYXRlRnJvbWF0cy5NT05USF9ZRUFSX0ZPUk1BVCxcbiAgICAgICAgeWVhcjogRGF0ZUZyb21hdHMuWUVBUl9GT1JNQVQsXG4gICAgICAgIHF1YXJ0ZXI6IERhdGVGcm9tYXRzLlFVQVJURVJfRk9STUFULFxuICAgICAgICB3ZWVrOiBEYXRlRnJvbWF0cy5XRUVLX0ZPUk1BVCxcbiAgICB9O1xuICAgIHB1YmxpYyBjYWxlbmRhckluc3RhbmNlOiBNYXRDYWxlbmRhcjxhbnk+O1xuICAgIHB1YmxpYyBtYXhEYXRlOiBNb21lbnQ7XG4gICAgcHVibGljIGZpc2NhbFllYXJNb250aHNNb2RpZmllciA9IDA7XG4gICAgcHVibGljIGZpc2NhbFllYXJCYWNrID0gZmFsc2U7XG4gICAgcHVibGljIGRhdGVwaWNrZXJGaWx0ZXI6IChtb21lbnQ6IE1vbWVudCkgPT4gYm9vbGVhbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2lubmVyVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb21lbnQ+KG51bGwpO1xuICAgIHB1YmxpYyByZWFkb25seSBpbm5lclZhbHVlJCA9IHRoaXMuX2lubmVyVmFsdWUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIHNldCBpbm5lclZhbHVlKHZhbHVlOiBNb21lbnQpIHtcbiAgICAgICAgdGhpcy5faW5uZXJWYWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgaW5uZXJWYWx1ZSgpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJWYWx1ZSQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBnZXREaXNwbGF5UHJlZml4KCkge1xuICAgICAgICBjb25zdCBmb3JtYXRDYWNoZWQgPSB0aGlzLmdldENvbmZpZ3VyZWRGb3JtYXQodGhpcy50aW1lZnJhbWUpO1xuICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIGNhc2UgZm9ybWF0Q2FjaGVkPy5pbmNsdWRlcygnUScpOlxuICAgICAgICAgICAgICAgIHJldHVybiAnUSc7XG4gICAgICAgICAgICBjYXNlIGZvcm1hdENhY2hlZD8uaW5jbHVkZXMoJ1cnKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1cnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUaW1lZnJhbWUoZm9ybWF0OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIERyU2hhcmVkVXRpbHMuZ2V0VGltZWZyYW1lQnlEYXRlRm9ybWF0KGZvcm1hdCk7XG4gICAgfVxuXG4gICAgZ2V0Q29uZmlndXJlZEZvcm1hdCh0aW1lZnJhbWU6IFRUaW1lZnJhbWVPcHRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRDb25maWdbdGltZWZyYW1lXTtcbiAgICB9XG5cbiAgICB1cGRhdGVUaW1lZnJhbWVBbmRGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEZvcm1hdCA9IHRoaXMubm9ybWFsaXplVmFsdWUoZm9ybWF0IHx8IHRoaXMuZm9ybWF0JC5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy50aW1lZnJhbWUgPSB0aGlzLmdldFRpbWVmcmFtZShub3JtYWxpemVkRm9ybWF0KTtcbiAgICAgICAgdGhpcy5mb3JtYXQkLm5leHQodGhpcy5nZXRDb25maWd1cmVkRm9ybWF0KHRoaXMudGltZWZyYW1lKSk7XG4gICAgfVxuXG4gICAgbm9ybWFsaXplVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9kL2csICdEJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHF1YXJ0ZXIgbnVtYmVyIGZvciBkYXRlIGFjY29yZGluZyB0byBmaXNjYWwgeWVhclxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcihkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICBsZXQgZmlzY2FsTW9udGggPSB0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllcjtcbiAgICAgICAgY29uc3QgZGF0ZU1vbnRoID0gZGF0ZS5tb250aCgpO1xuICAgICAgICBpZiAoZGF0ZU1vbnRoIDwgZmlzY2FsTW9udGgpIHtcbiAgICAgICAgICAgIGZpc2NhbE1vbnRoIC09IDEyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBNYXRoLnRydW5jKChkYXRlLm1vbnRoKCkgLSBmaXNjYWxNb250aCkgLyAzKSArIDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkYXRlIHRvIGVuZCBvZiBxdWFydGVyIGluIEZZIGJ5IHBhc3NlZCBxdWFydGVyIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKiBAcGFyYW0gcXVhcnRlck51bWJlclxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRFbmRPZlF1YXJ0ZXIoZGF0ZTogTW9tZW50LCBxdWFydGVyTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgZGF0ZS5zdWJ0cmFjdCh0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllciwgJ00nKVxuICAgICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKVxuICAgICAgICAgICAgLmFkZCh0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllciArIHF1YXJ0ZXJOdW1iZXIgKiAzIC0gMSwgJ00nKVxuICAgICAgICAgICAgLmVuZE9mKCdtb250aCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGF0ZSB0byBzdGFydCBvZiBxdWFydGVyIGluIEZZIGJ5IHBhc3NlZCBxdWFydGVyIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKiBAcGFyYW0gcXVhcnRlck51bWJlclxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTdGFydE9mUXVhcnRlcihkYXRlOiBNb21lbnQsIHF1YXJ0ZXJOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBkYXRlLnN1YnRyYWN0KHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyLCAnTScpXG4gICAgICAgICAgICAuc3RhcnRPZigneWVhcicpXG4gICAgICAgICAgICAuYWRkKHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyICsgKHF1YXJ0ZXJOdW1iZXIgLSAxKSAqIDMsICdNJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkYXRlIHRvIGVuZCBvZiBjdXJyZW50IHF1YXJ0ZXIgKGluIHdoaWNoIGRhdGUgaXMgbG9jYXRlZCkgYWNjb3JkaW5nIHRvIEZZXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRFbmRPZkN1cnJlbnRRdWFydGVyKGRhdGU6IE1vbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEVuZE9mUXVhcnRlcihkYXRlLCB0aGlzLmdldFF1YXJ0ZXJBY2NvcmRpbmdUb0Zpc2NhbFllYXIoZGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGF0ZSB0byBzdGFydCBvZiBjdXJyZW50IHF1YXJ0ZXIgKGluIHdoaWNoIGRhdGUgaXMgbG9jYXRlZCkgYWNjb3JkaW5nIHRvIEZZXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTdGFydE9mQ3VycmVudFF1YXJ0ZXIoZGF0ZTogTW9tZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U3RhcnRPZlF1YXJ0ZXIoZGF0ZSwgdGhpcy5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKGRhdGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiBkYXRlIHNlbGVjdGlvbiBvbiB0aGlzIHRpbWVmcmFtZSBkZXBlbmRzIG9uIEZpc2NhbCBZZWFyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGltZWZyYW1lXG4gICAgICovXG4gICAgcHVibGljIGlzVGltZWZyYW1lRGVwZW5kaW5nT25GWSh0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbikge1xuICAgICAgICByZXR1cm4gXy5pbmNsdWRlcyhbVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsIFRpbWVmcmFtZU9wdGlvbi5ZRUFSXSwgdGltZWZyYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJ0cmFjdCBmcm9tIGRhdGUgZmlzY2FsIHllYXIgc2hpZnQgbW9udGhzIGNvdW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShkYXRlOiBNb21lbnQpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlTW9kaWZpZWRCeUZpc2NhbE1vbnRocyhkYXRlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdG8gZGF0ZSBmaXNjYWwgeWVhciBzaGlmdCBtb250aHMgY291bnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIGFkZEZpc2NhbFllYXJNb250aHNUb0RhdGUoZGF0ZTogTW9tZW50KTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZU1vZGlmaWVkQnlGaXNjYWxNb250aHMoZGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseUZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50RGF0ZTogTW9tZW50LCBpc1N1YnRyYWN0OiBib29sZWFuID0gZmFsc2UpOiBNb21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5maXNjYWxZZWFyQmFjayB8fCAhdGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIpIHJldHVybjtcbiAgICAgICAgcmV0dXJuIG1vbWVudERhdGVbaXNTdWJ0cmFjdCA/ICdzdWJ0cmFjdCcgOiAnYWRkJ10oMSwgJ3llYXInKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnREYXRlOiBNb21lbnQpOiBNb21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50RGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnRyYWN0RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnREYXRlOiBNb21lbnQpOiBNb21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50RGF0ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIG9yIHN1YnRyYWN0IGRlcGVuZGluZyBvbiBpc1JldmVydCBwYXJlbWV0ZXIgRmlzY2FsIHllYXIgbW9udGggc2hpZnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICogQHBhcmFtIGlzU3VidHJhY3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldERhdGVNb2RpZmllZEJ5RmlzY2FsTW9udGhzKGRhdGU6IE1vbWVudCwgaXNTdWJ0cmFjdCA9IGZhbHNlKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIGRhdGUgPyBfLmNsb25lRGVlcChkYXRlKVtpc1N1YnRyYWN0ID8gJ3N1YnRyYWN0JyA6ICdhZGQnXSh0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllciwgJ21vbnRoJykgOiBkYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGFnOiBEYXRlVGFncywgY2FsZW5kZXI6IGFueSkge1xuICAgICAgICB0aGlzLmtlZXBQcmVzZXRUYWcgPSB0cnVlO1xuICAgICAgICBsZXQgZGF0ZSA9IG51bGw7XG4gICAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgICAgIGRhdGUgPSBEclNoYXJlZFV0aWxzLmdldERhdGVCeVRhZyh0YWcpO1xuICAgICAgICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgICAgICAgICBjYXNlIERhdGVUYWdzLlRPREFZOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChEYXRlRnJvbWF0cy5NQVRfREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0ZVRhZ3MuWUVTVEVSREFZOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChEYXRlRnJvbWF0cy5NQVRfREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0ZVRhZ3MuVEhJU19NT05USDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lZnJhbWVBbmRGb3JtYXQoRGF0ZUZyb21hdHMuTU9OVEhfWUVBUl9GT1JNQVQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERhdGVJbkNhbGVuZGFyTW9udGhWaWV3KGRhdGUsIGNhbGVuZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBEYXRlVGFncy5QUkVWX01PTlRIOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChEYXRlRnJvbWF0cy5NT05USF9ZRUFSX0ZPUk1BVCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZUluQ2FsZW5kYXJNb250aFZpZXcoZGF0ZSwgY2FsZW5kZXIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXNldFRhZyQubmV4dCh0YWcpO1xuICAgICAgICB0aGlzLnVwZGF0ZWREYXRlQW5kQ2xvc2UkLm5leHQoZGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdERhdGVJbkNhbGVuZGFyTW9udGhWaWV3KGRhdGU6IE1vbWVudCwgY2FsZW5kZXI6IGFueSk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vbnRoVmlldyA9IGNhbGVuZGVyLm1vbnRoVmlldyBhcyBhbnk7XG4gICAgICAgICAgICBpZiAobW9udGhWaWV3KSB7XG4gICAgICAgICAgICAgICAgbW9udGhWaWV3Ll9hY3RpdmVEYXRlID0gZGF0ZTtcbiAgICAgICAgICAgICAgICBtb250aFZpZXcuX3NlbGVjdGVkID0gZGF0ZTtcbiAgICAgICAgICAgICAgICBtb250aFZpZXcuX2luaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0UHJlc2V0VGFnKCkge1xuICAgICAgICBpZiAoIXRoaXMua2VlcFByZXNldFRhZykge1xuICAgICAgICAgICAgdGhpcy5wcmVzZXRUYWckLm5leHQobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtlZXBQcmVzZXRUYWcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kYXRlLXBpY2tlcnMvc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUEyQixlQUFlLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUc3RCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRUksZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQXNDLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRixlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBVTFGLG9FQUFvRTtRQUNwRSwrRUFBK0U7UUFDL0UsaUVBQWlFO1FBQ2pFLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzRSxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDL0IseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUN4RCx5QkFBb0IsR0FBRyxJQUFJLE9B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QyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLDZCQUE2QixDQUFDLElBQVksRUFBRSxRQUFhO1FBQzVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBZ0IsQ0FBQztZQUM1QyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDN0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQzt1R0FoUFEsbUJBQW1CO3NHQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1COzt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVGcm9tYXRzLCBEYXRlVGFncywgSURhdGVQaWNrZXJGb3JtYXRDb25maWcsIFRpbWVmcmFtZU9wdGlvbiwgVFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IERyU2hhcmVkVXRpbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9kci1zaGFyZWQtdXRpbHMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgV2Vla0luZm8gfSBmcm9tICcuLi93ZWVrLXNlbGVjdG9yL3dlZWstc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBSRVNFVF9UQUdTX0xJU1QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlclNlcnZpY2Uge1xuICAgIGlzVGltZWZyYW1lU2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpbWVmcmFtZSQ6IEJlaGF2aW9yU3ViamVjdDxUVGltZWZyYW1lT3B0aW9uPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoVGltZWZyYW1lT3B0aW9uLkRBWSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHRpbWVmcmFtZSQgPSB0aGlzLl90aW1lZnJhbWUkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgICBwdWJsaWMgZ2V0IHRpbWVmcmFtZSgpOiBUVGltZWZyYW1lT3B0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWVmcmFtZSQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHRpbWVmcmFtZSh2YWx1ZTogVFRpbWVmcmFtZU9wdGlvbikge1xuICAgICAgICB0aGlzLl90aW1lZnJhbWUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGhlcmUgd2UgY2FuIGhhdmUgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIGZvcm1hdCBhbmQgdGltZWZyYW1lXG4gICAgLy8gd2UgbmVlZCB0byBnZXQgcmlkIG9mIGEgc2VwYXJhdGUgc3ViamVjdCBhbmQgdXNlIHBpcGUgZnJvbSB0aW1lZnJhbWUkIGZvciBpdFxuICAgIC8vIG1ha2luZyBASW5wdXQoKSBmb3JtYXQgaW4gY29tcG9uZW50IGp1c3Qgc2V0dGluZyB0aGUgdGltZWZyYW1lXG4gICAgZm9ybWF0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihEYXRlRnJvbWF0cy5NQVRfREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG5cbiAgICB1cGRhdGVkUXVhcnRlciQgPSBuZXcgU3ViamVjdDxNb21lbnQ+KCk7XG4gICAgcmVhZG9ubHkgd2Vla1NlbGVjdGlvbkNoYW5nZSQgPSBuZXcgU3ViamVjdDxXZWVrSW5mbz4oKTtcbiAgICB1cGRhdGVkRGF0ZUFuZENsb3NlJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICBkYXRlUGlja2VySW5zdGFuY2U6IE1hdERhdGVwaWNrZXI8YW55PjtcbiAgICBpc1VzaW5nRGF0ZVRhZ1ByZXNldHM6IGJvb2xlYW47XG4gICAgaXNVc2luZ1RpbWVGcmFtZVNlbGVjdDogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJlc2V0VGFnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZVRhZ3M+KCcnIGFzIERhdGVUYWdzKTtcbiAgICBvblNhbWVEYXlTZWxlY3RlZEluQ2FsZW5kYXIkID0gbmV3IFN1YmplY3Q8TW9tZW50PigpO1xuICAgIGtlZXBQcmVzZXRUYWcgPSBmYWxzZTtcbiAgICBpc1ZhbHVlVXBkYXRpbmcgPSBmYWxzZTtcbiAgICBhdmFpbGFibGVEYXRlVGFnUHJlc2V0cyA9IFBSRVNFVF9UQUdTX0xJU1Q7XG4gICAgYXZhaWxhYmxlVGltZWZyYW1lcyA9IFtcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLkRBWSxcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLldFRUssXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5NT05USCxcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5ZRUFSLFxuICAgIF07XG5cbiAgICBwdWJsaWMgZm9ybWF0Q29uZmlnOiBJRGF0ZVBpY2tlckZvcm1hdENvbmZpZyA9IHtcbiAgICAgICAgZGF5OiBEYXRlRnJvbWF0cy5NQVRfREVGQVVMVF9EQVRFX0ZPUk1BVCxcbiAgICAgICAgbW9udGg6IERhdGVGcm9tYXRzLk1PTlRIX1lFQVJfRk9STUFULFxuICAgICAgICB5ZWFyOiBEYXRlRnJvbWF0cy5ZRUFSX0ZPUk1BVCxcbiAgICAgICAgcXVhcnRlcjogRGF0ZUZyb21hdHMuUVVBUlRFUl9GT1JNQVQsXG4gICAgICAgIHdlZWs6IERhdGVGcm9tYXRzLldFRUtfRk9STUFULFxuICAgIH07XG4gICAgcHVibGljIGNhbGVuZGFySW5zdGFuY2U6IE1hdENhbGVuZGFyPGFueT47XG4gICAgcHVibGljIG1heERhdGU6IE1vbWVudDtcbiAgICBwdWJsaWMgZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyID0gMDtcbiAgICBwdWJsaWMgZmlzY2FsWWVhckJhY2sgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGF0ZXBpY2tlckZpbHRlcjogKG1vbWVudDogTW9tZW50KSA9PiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5uZXJWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1vbWVudD4obnVsbCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGlubmVyVmFsdWUkID0gdGhpcy5faW5uZXJWYWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgc2V0IGlubmVyVmFsdWUodmFsdWU6IE1vbWVudCkge1xuICAgICAgICB0aGlzLl9pbm5lclZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBpbm5lclZhbHVlKCk6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbm5lclZhbHVlJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGdldERpc3BsYXlQcmVmaXgoKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdENhY2hlZCA9IHRoaXMuZ2V0Q29uZmlndXJlZEZvcm1hdCh0aGlzLnRpbWVmcmFtZSk7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSBmb3JtYXRDYWNoZWQ/LmluY2x1ZGVzKCdRJyk6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdRJztcbiAgICAgICAgICAgIGNhc2UgZm9ybWF0Q2FjaGVkPy5pbmNsdWRlcygnVycpOlxuICAgICAgICAgICAgICAgIHJldHVybiAnVyc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRpbWVmcmFtZShmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gRHJTaGFyZWRVdGlscy5nZXRUaW1lZnJhbWVCeURhdGVGb3JtYXQoZm9ybWF0KTtcbiAgICB9XG5cbiAgICBnZXRDb25maWd1cmVkRm9ybWF0KHRpbWVmcmFtZTogVFRpbWVmcmFtZU9wdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdENvbmZpZ1t0aW1lZnJhbWVdO1xuICAgIH1cblxuICAgIHVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRm9ybWF0ID0gdGhpcy5ub3JtYWxpemVWYWx1ZShmb3JtYXQgfHwgdGhpcy5mb3JtYXQkLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLnRpbWVmcmFtZSA9IHRoaXMuZ2V0VGltZWZyYW1lKG5vcm1hbGl6ZWRGb3JtYXQpO1xuICAgICAgICB0aGlzLmZvcm1hdCQubmV4dCh0aGlzLmdldENvbmZpZ3VyZWRGb3JtYXQodGhpcy50aW1lZnJhbWUpKTtcbiAgICB9XG5cbiAgICBub3JtYWxpemVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL2QvZywgJ0QnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgcXVhcnRlciBudW1iZXIgZm9yIGRhdGUgYWNjb3JkaW5nIHRvIGZpc2NhbCB5ZWFyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIGxldCBmaXNjYWxNb250aCA9IHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyO1xuICAgICAgICBjb25zdCBkYXRlTW9udGggPSBkYXRlLm1vbnRoKCk7XG4gICAgICAgIGlmIChkYXRlTW9udGggPCBmaXNjYWxNb250aCkge1xuICAgICAgICAgICAgZmlzY2FsTW9udGggLT0gMTI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgudHJ1bmMoKGRhdGUubW9udGgoKSAtIGZpc2NhbE1vbnRoKSAvIDMpICsgMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGRhdGUgdG8gZW5kIG9mIHF1YXJ0ZXIgaW4gRlkgYnkgcGFzc2VkIHF1YXJ0ZXIgbnVtYmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqIEBwYXJhbSBxdWFydGVyTnVtYmVyXG4gICAgICovXG4gICAgcHVibGljIHNldEVuZE9mUXVhcnRlcihkYXRlOiBNb21lbnQsIHF1YXJ0ZXJOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBkYXRlLnN1YnRyYWN0KHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyLCAnTScpXG4gICAgICAgICAgICAuc3RhcnRPZigneWVhcicpXG4gICAgICAgICAgICAuYWRkKHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyICsgcXVhcnRlck51bWJlciAqIDMgLSAxLCAnTScpXG4gICAgICAgICAgICAuZW5kT2YoJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkYXRlIHRvIHN0YXJ0IG9mIHF1YXJ0ZXIgaW4gRlkgYnkgcGFzc2VkIHF1YXJ0ZXIgbnVtYmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqIEBwYXJhbSBxdWFydGVyTnVtYmVyXG4gICAgICovXG4gICAgcHVibGljIHNldFN0YXJ0T2ZRdWFydGVyKGRhdGU6IE1vbWVudCwgcXVhcnRlck51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGRhdGUuc3VidHJhY3QodGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIsICdNJylcbiAgICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJylcbiAgICAgICAgICAgIC5hZGQodGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgKyAocXVhcnRlck51bWJlciAtIDEpICogMywgJ00nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGRhdGUgdG8gZW5kIG9mIGN1cnJlbnQgcXVhcnRlciAoaW4gd2hpY2ggZGF0ZSBpcyBsb2NhdGVkKSBhY2NvcmRpbmcgdG8gRllcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHNldEVuZE9mQ3VycmVudFF1YXJ0ZXIoZGF0ZTogTW9tZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RW5kT2ZRdWFydGVyKGRhdGUsIHRoaXMuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcihkYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkYXRlIHRvIHN0YXJ0IG9mIGN1cnJlbnQgcXVhcnRlciAoaW4gd2hpY2ggZGF0ZSBpcyBsb2NhdGVkKSBhY2NvcmRpbmcgdG8gRllcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcihkYXRlOiBNb21lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTdGFydE9mUXVhcnRlcihkYXRlLCB0aGlzLmdldFF1YXJ0ZXJBY2NvcmRpbmdUb0Zpc2NhbFllYXIoZGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRhdGUgc2VsZWN0aW9uIG9uIHRoaXMgdGltZWZyYW1lIGRlcGVuZHMgb24gRmlzY2FsIFllYXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lZnJhbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNUaW1lZnJhbWVEZXBlbmRpbmdPbkZZKHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBfLmluY2x1ZGVzKFtUaW1lZnJhbWVPcHRpb24uUVVBUlRFUiwgVGltZWZyYW1lT3B0aW9uLllFQVJdLCB0aW1lZnJhbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1YnRyYWN0IGZyb20gZGF0ZSBmaXNjYWwgeWVhciBzaGlmdCBtb250aHMgY291bnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKGRhdGU6IE1vbWVudCk6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVNb2RpZmllZEJ5RmlzY2FsTW9udGhzKGRhdGUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0byBkYXRlIGZpc2NhbCB5ZWFyIHNoaWZ0IG1vbnRocyBjb3VudFxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRmlzY2FsWWVhck1vbnRoc1RvRGF0ZShkYXRlOiBNb21lbnQpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlTW9kaWZpZWRCeUZpc2NhbE1vbnRocyhkYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnREYXRlOiBNb21lbnQsIGlzU3VidHJhY3Q6IGJvb2xlYW4gPSBmYWxzZSk6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmZpc2NhbFllYXJCYWNrIHx8ICF0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllcikgcmV0dXJuO1xuICAgICAgICByZXR1cm4gbW9tZW50RGF0ZVtpc1N1YnRyYWN0ID8gJ3N1YnRyYWN0JyA6ICdhZGQnXSgxLCAneWVhcicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaXNjYWxZZWFyU2hpZnRGb3JZZWFyKG1vbWVudERhdGU6IE1vbWVudCk6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnREYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VidHJhY3RGaXNjYWxZZWFyU2hpZnRGb3JZZWFyKG1vbWVudERhdGU6IE1vbWVudCk6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnREYXRlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgb3Igc3VidHJhY3QgZGVwZW5kaW5nIG9uIGlzUmV2ZXJ0IHBhcmVtZXRlciBGaXNjYWwgeWVhciBtb250aCBzaGlmdFxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKiBAcGFyYW0gaXNTdWJ0cmFjdFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RGF0ZU1vZGlmaWVkQnlGaXNjYWxNb250aHMoZGF0ZTogTW9tZW50LCBpc1N1YnRyYWN0ID0gZmFsc2UpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gZGF0ZSA/IF8uY2xvbmVEZWVwKGRhdGUpW2lzU3VidHJhY3QgPyAnc3VidHJhY3QnIDogJ2FkZCddKHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyLCAnbW9udGgnKSA6IGRhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZURhdGVQaWNrZXJCeVByZXNldCh0YWc6IERhdGVUYWdzLCBjYWxlbmRlcjogYW55KSB7XG4gICAgICAgIHRoaXMua2VlcFByZXNldFRhZyA9IHRydWU7XG4gICAgICAgIGxldCBkYXRlID0gbnVsbDtcbiAgICAgICAgaWYgKHRhZykge1xuICAgICAgICAgICAgZGF0ZSA9IERyU2hhcmVkVXRpbHMuZ2V0RGF0ZUJ5VGFnKHRhZyk7XG4gICAgICAgICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0ZVRhZ3MuVE9EQVk6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBEYXRlVGFncy5ZRVNURVJEQVk6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBEYXRlVGFncy5USElTX01PTlRIOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChEYXRlRnJvbWF0cy5NT05USF9ZRUFSX0ZPUk1BVCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZUluQ2FsZW5kYXJNb250aFZpZXcoZGF0ZSwgY2FsZW5kZXIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIERhdGVUYWdzLlBSRVZfTU9OVEg6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KERhdGVGcm9tYXRzLk1PTlRIX1lFQVJfRk9STUFUKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRlSW5DYWxlbmRhck1vbnRoVmlldyhkYXRlLCBjYWxlbmRlcik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlc2V0VGFnJC5uZXh0KHRhZyk7XG4gICAgICAgIHRoaXMudXBkYXRlZERhdGVBbmRDbG9zZSQubmV4dChkYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZUluQ2FsZW5kYXJNb250aFZpZXcoZGF0ZTogTW9tZW50LCBjYWxlbmRlcjogYW55KTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbW9udGhWaWV3ID0gY2FsZW5kZXIubW9udGhWaWV3IGFzIGFueTtcbiAgICAgICAgICAgIGlmIChtb250aFZpZXcpIHtcbiAgICAgICAgICAgICAgICBtb250aFZpZXcuX2FjdGl2ZURhdGUgPSBkYXRlO1xuICAgICAgICAgICAgICAgIG1vbnRoVmlldy5fc2VsZWN0ZWQgPSBkYXRlO1xuICAgICAgICAgICAgICAgIG1vbnRoVmlldy5faW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQcmVzZXRUYWcoKSB7XG4gICAgICAgIGlmICghdGhpcy5rZWVwUHJlc2V0VGFnKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNldFRhZyQubmV4dChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMua2VlcFByZXNldFRhZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19