@netwin/angular-datetime-picker 19.0.0-rc.1 → 19.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/date-time/adapter/native-date-time-adapter.class.mjs +4 -4
- package/esm2022/lib/date-time/adapter/native-date-time.module.mjs +9 -9
- package/esm2022/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-adapter.class.mjs +4 -4
- package/esm2022/lib/date-time/calendar-body.component.mjs +4 -4
- package/esm2022/lib/date-time/calendar-month-view.component.mjs +4 -4
- package/esm2022/lib/date-time/calendar-multi-year-view.component.mjs +4 -4
- package/esm2022/lib/date-time/calendar-year-view.component.mjs +4 -4
- package/esm2022/lib/date-time/calendar.component.mjs +4 -4
- package/esm2022/lib/date-time/date-time-inline.component.mjs +23 -7
- package/esm2022/lib/date-time/date-time-picker-intl.service.mjs +4 -4
- package/esm2022/lib/date-time/date-time.module.mjs +5 -5
- package/esm2022/lib/date-time/timer-box.component.mjs +4 -4
- package/esm2022/lib/date-time/timer.component.mjs +4 -4
- package/esm2022/public_api.mjs +10 -5
- package/fesm2022/netwin-angular-datetime-picker.mjs +145 -127
- package/fesm2022/netwin-angular-datetime-picker.mjs.map +1 -1
- package/lib/date-time/calendar-multi-year-view.component.d.ts +7 -6
- package/lib/date-time/date-time-inline.component.d.ts +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +4 -4
|
@@ -290,11 +290,27 @@ export class OwlDateTimeInlineComponent {
|
|
|
290
290
|
}
|
|
291
291
|
writeValue(value) {
|
|
292
292
|
if (this.isInSingleMode) {
|
|
293
|
-
this.
|
|
293
|
+
this.selected = value;
|
|
294
|
+
this.value = this.selected;
|
|
294
295
|
}
|
|
295
296
|
else {
|
|
296
|
-
|
|
297
|
-
this
|
|
297
|
+
// Handle the case where the second selected date is before the first selected date
|
|
298
|
+
// In this case "go back" and treat the value as the first selected date
|
|
299
|
+
if (this.activeSelectedIndex === 1) {
|
|
300
|
+
if (value.getTime() < this.selecteds[0].getTime()) {
|
|
301
|
+
this.activeSelectedIndex = 0;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Set the correct value according to the active selected index
|
|
305
|
+
if (this.activeSelectedIndex === 0) {
|
|
306
|
+
this.selecteds = [value, null];
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
this.selecteds[1] = value;
|
|
310
|
+
}
|
|
311
|
+
// Set the values to the selecteds
|
|
312
|
+
this.values = [...this.selecteds];
|
|
313
|
+
this.activeSelectedIndex = (this.activeSelectedIndex + 1) % 2;
|
|
298
314
|
}
|
|
299
315
|
}
|
|
300
316
|
registerOnChange(fn) {
|
|
@@ -380,10 +396,10 @@ export class OwlDateTimeInlineComponent {
|
|
|
380
396
|
event.stopPropagation();
|
|
381
397
|
}
|
|
382
398
|
}
|
|
383
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
384
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
399
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeInlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: OwlDateTimeInlineComponent, selector: "owl-date-time-inline", inputs: { hour12Timer: ["hour12Timer", "hour12Timer", booleanAttribute], startView: "startView", yearOnly: ["yearOnly", "yearOnly", booleanAttribute], multiyearOnly: ["multiyearOnly", "multiyearOnly", booleanAttribute], stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond", firstDayOfWeek: "firstDayOfWeek", hideOtherMonths: ["hideOtherMonths", "hideOtherMonths", booleanAttribute], pickerType: "pickerType", disabled: ["disabled", "disabled", booleanAttribute], showSecondsTimer: ["showSecondsTimer", "showSecondsTimer", booleanAttribute], selectMode: "selectMode", startAt: "startAt", endAt: "endAt", owlDateTimeFilter: "owlDateTimeFilter", dateTimeFilter: "dateTimeFilter", min: "min", max: "max", value: "value", values: "values" }, outputs: { yearSelected: "yearSelected", monthSelected: "monthSelected", dateSelected: "dateSelected" }, host: { properties: { "class.owl-dt-container-disabled": "disabled" }, classAttribute: "owl-dt-inline owl-dt-container owl-dt-inline-container" }, providers: [OWL_DATETIME_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"owl-dt-container-inner\">\n @if (pickerType === 'both' || pickerType === 'calendar') {\n <owl-date-time-calendar\n [dateFilter]=\"dateTimeFilterGetter\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [hideOtherMonths]=\"hideOtherMonths\"\n [maxDate]=\"max\"\n [minDate]=\"min\"\n [multiyearOnly]=\"multiyearOnly\"\n [selectMode]=\"selectMode\"\n [selected]=\"selected\"\n [selecteds]=\"selecteds\"\n [startView]=\"startView\"\n [yearOnly]=\"yearOnly\"\n [(pickerMoment)]=\"value\"\n (dateClicked)=\"selectDate($event)\"\n (monthSelected)=\"selectMonth($event)\"\n (selectedChange)=\"select($event)\"\n (yearSelected)=\"selectYear($event)\"\n class=\"owl-dt-container-row\">\n </owl-date-time-calendar>\n }\n\n @if (pickerType === 'both' || pickerType === 'timer') {\n <owl-date-time-timer\n [hour12Timer]=\"hour12Timer\"\n [maxDateTime]=\"max\"\n [minDateTime]=\"min\"\n [pickerMoment]=\"value\"\n [showSecondsTimer]=\"showSecondsTimer\"\n [stepHour]=\"stepHour\"\n [stepMinute]=\"stepMinute\"\n [stepSecond]=\"stepSecond\"\n (selectedChange)=\"select($event)\"\n class=\"owl-dt-container-row\">\n </owl-date-time-timer>\n }\n\n @if (isInRangeMode) {\n <div\n class=\"owl-dt-container-info owl-dt-container-row\"\n role=\"radiogroup\">\n <div\n #from\n [attr.aria-checked]=\"activeSelectedIndex === 0\"\n [class.owl-dt-container-info-active]=\"activeSelectedIndex === 0\"\n [tabindex]=\"activeSelectedIndex === 0 ? 0 : -1\"\n (click)=\"setActiveSelectedIndex(0)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, to, 0)\"\n class=\"owl-dt-control owl-dt-container-range owl-dt-container-from\"\n role=\"radio\">\n <span\n class=\"owl-dt-control-content owl-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"owl-dt-container-info-label\">{{ fromLabel }}:</span>\n <span class=\"owl-dt-container-info-value\">{{ fromFormattedValue }}</span>\n </span>\n </div>\n <div\n #to\n [attr.aria-checked]=\"activeSelectedIndex === 1\"\n [class.owl-dt-container-info-active]=\"activeSelectedIndex === 1\"\n [tabindex]=\"activeSelectedIndex === 1 ? 0 : -1\"\n (click)=\"setActiveSelectedIndex(1)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, from, 1)\"\n class=\"owl-dt-control owl-dt-container-range owl-dt-container-to\"\n role=\"radio\">\n <span\n class=\"owl-dt-control-content owl-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"owl-dt-container-info-label\">{{ toLabel }}:</span>\n <span class=\"owl-dt-container-info-value\">{{ toFormattedValue }}</span>\n </span>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.OwlTimerComponent, selector: "owl-date-time-timer", inputs: ["pickerMoment", "minDateTime", "maxDateTime", "showSecondsTimer", "hour12Timer", "stepHour", "stepMinute", "stepSecond"], outputs: ["selectedChange"], exportAs: ["owlDateTimeTimer"] }, { kind: "component", type: i2.OwlCalendarComponent, selector: "owl-date-time-calendar", inputs: ["minDate", "maxDate", "pickerMoment", "selected", "selecteds", "dateFilter", "firstDayOfWeek", "selectMode", "startView", "yearOnly", "multiyearOnly", "hideOtherMonths"], outputs: ["pickerMomentChange", "dateClicked", "selectedChange", "yearSelected", "monthSelected"], exportAs: ["owlDateTimeCalendar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
385
401
|
}
|
|
386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeInlineComponent, decorators: [{
|
|
387
403
|
type: Component,
|
|
388
404
|
args: [{ selector: 'owl-date-time-inline', host: {
|
|
389
405
|
'[class.owl-dt-container-disabled]': 'disabled',
|
|
@@ -444,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
444
460
|
}], dateSelected: [{
|
|
445
461
|
type: Output
|
|
446
462
|
}] } });
|
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBRWxFLE1BQU0sMkJBQTJCLEdBQWE7SUFDNUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO0lBQ3pELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLElBQUkscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBYzlCLE1BQU0sT0FBTywwQkFBMEI7SUFHNUIsZUFBZSxDQUE2QjtJQUU1QyxXQUFXLENBQTJCO0lBRXRDLGdCQUFnQixDQUFxRDtJQUVyRSxnQkFBZ0IsQ0FBc0U7SUFpRC9GLElBQ1csY0FB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RTtnQkFPL0IsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFTSyxjQUFjO3NCQUR4QixLQUFLO2dCQWtCQyxlQUFlO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQW1DL0IsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTy9CLGdCQUFnQjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFXL0IsVUFBVTtzQkFEaEIsS0FBSztnQkFRSyxPQUFPO3NCQURqQixLQUFLO2dCQXlCSyxLQUFLO3NCQURmLEtBQUs7Z0JBc0JDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQWFLLEdBQUc7c0JBRGIsS0FBSztnQkFjSyxHQUFHO3NCQURiLEtBQUs7Z0JBV0ssS0FBSztzQkFEZixLQUFLO2dCQWNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBd0JVLFlBQVk7c0JBRDNCLE1BQU07Z0JBUVMsYUFBYTtzQkFENUIsTUFBTTtnQkFPUyxZQUFZO3NCQUQzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZVZpZXcsIFBpY2tlclR5cGUsIFNlbGVjdE1vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXIvZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgT1dMX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSAnLi9hZGFwdGVyL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVJbnRsIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZSc7XG5cbmNvbnN0IE9XTF9EQVRFVElNRV9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5sZXQgbmV4dFVuaXF1ZUNvbXBvbmVudElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS1pbmxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS1pbmxpbmUuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mub3dsLWR0LWNvbnRhaW5lci1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdjbGFzcyc6ICdvd2wtZHQtaW5saW5lIG93bC1kdC1jb250YWluZXIgb3dsLWR0LWlubGluZS1jb250YWluZXInXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbT1dMX0RBVEVUSU1FX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSAjcGlja2VySW50bCA9IGluamVjdChPd2xEYXRlVGltZUludGwpO1xuXG4gIHJlYWRvbmx5ICNkYXRlVGltZUZvcm1hdHMgPSBpbmplY3QoT1dMX0RBVEVfVElNRV9GT1JNQVRTLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5ICNkYXRlVGltZUFkYXB0ZXIgPSBpbmplY3Q8RGF0ZVRpbWVBZGFwdGVyPERhdGU+PihEYXRlVGltZUFkYXB0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRpbWVyIGlzIGluIGhvdXIxMiBmb3JtYXRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaG91cjEyVGltZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHZpZXcgdGhhdCB0aGUgY2FsZW5kYXIgc2hvdWxkIHN0YXJ0IGluLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0YXJ0VmlldzogRGF0ZVZpZXcgPSBEYXRlVmlldy5NT05USDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG91bGQgb25seSB0aGUgeWVhciBhbmQgbXVsdGkteWVhciB2aWV3cy5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgeWVhck9ubHkgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG91bGQgb25seSB0aGUgbXVsdGkteWVhciB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtdWx0aXllYXJPbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEhvdXJzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXBIb3VyOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBNaW51dGVzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXBNaW51dGU6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3RlcFNlY29uZDogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0IHRoZSBmaXJzdCBkYXkgb2Ygd2Vlay5cbiAgICogSGFzIHRvIGJlIGEgbnVtYmVyIGJldHdlZW4gMCAoU3VuZGF5KSBhbmQgNiAoU2F0dXJkYXkpXG4gICAqL1xuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrO1xuICB9XG4gIHB1YmxpYyBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xuICAgIHZhbHVlID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlLCB1bmRlZmluZWQpO1xuICAgIGlmICh2YWx1ZSA+IDYgfHwgdmFsdWUgPCAwKSB7XG4gICAgICB0aGlzLl9maXJzdERheU9mV2VlayA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZmlyc3REYXlPZldlZWsgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBoaWRlIGRhdGVzIGluIG90aGVyIG1vbnRocyBhdCB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKi9cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGhpZGVPdGhlck1vbnRoczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgZm9ybWF0T3B0aW9ucygpOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyB7XG4gICAgaWYgKHRoaXMucGlja2VyVHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLmZ1bGxQaWNrZXJJbnB1dDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waWNrZXJUeXBlID09PSAnY2FsZW5kYXInKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLmRhdGVQaWNrZXJJbnB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLnRpbWVQaWNrZXJJbnB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEYXRlIFRpbWUgQ2hlY2tlciB0byBjaGVjayBpZiB0aGUgZ2l2ZSBkYXRlVGltZSBpcyBzZWxlY3RhYmxlXG4gICAqL1xuICBwdWJsaWMgZGF0ZVRpbWVDaGVja2VyID0gKGRhdGVUaW1lOiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhZGF0ZVRpbWUgJiZcbiAgICAgICghdGhpcy5kYXRlVGltZUZpbHRlciB8fCB0aGlzLmRhdGVUaW1lRmlsdGVyKGRhdGVUaW1lKSkgJiZcbiAgICAgICghdGhpcy5taW4gfHwgdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZVRpbWUsIHRoaXMubWluKSA+PSAwKSAmJlxuICAgICAgKCF0aGlzLm1heCB8fCB0aGlzLiNkYXRlVGltZUFkYXB0ZXIuY29tcGFyZShkYXRlVGltZSwgdGhpcy5tYXgpIDw9IDApXG4gICAgKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0VmFsaWREYXRlKG9iajogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiYgdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQob2JqKSA/IG9iaiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB7QGxpbmsgUGlja2VyVHlwZX0gb2YgdGhlIGRhdGVUaW1lIHBpY2tlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBpY2tlclR5cGU6IFBpY2tlclR5cGUgPSAnYm90aCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBpY2tlciBpcyBkaXNhYmxlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBzZWNvbmQncyB0aW1lclxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzaG93U2Vjb25kc1RpbWVyID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHNlbGVjdCBtb2RlIHRvIHVzZTpcbiAgICogLSAnc2luZ2xlJ1xuICAgKiAtICdyYW5nZSdcbiAgICogLSAncmFuZ2VGcm9tJ1xuICAgKiAtICdyYW5nZVRvJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdE1vZGU6IFNlbGVjdE1vZGUgPSAnc2luZ2xlJztcblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gb3BlbiB0aGUgY2FsZW5kYXIgdG8gaW5pdGlhbGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfc3RhcnRBdDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc3RhcnRBdCgpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0QXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zdGFydEF0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1swXSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VUbycpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1sxXSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldCBzdGFydEF0KGRhdGU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fc3RhcnRBdCA9IHRoaXMuZ2V0VmFsaWREYXRlKHRoaXMuI2RhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZShkYXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gb3BlbiBmb3IgcmFuZ2UgY2FsZW5kYXIuXG4gICAqL1xuICBwcml2YXRlIF9lbmRBdDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZW5kQXQoKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICh0aGlzLl9lbmRBdCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZEF0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1sxXSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldCBlbmRBdChkYXRlOiBEYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX2VuZEF0ID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGRhdGVUaW1lRmlsdGVyYCBpbnN0ZWFkIVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG93bERhdGVUaW1lRmlsdGVyOiAoKGRhdGU6IERhdGUgfCBudWxsKSA9PiBib29sZWFuKSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRlVGltZUZpbHRlcjogKChkYXRlOiBEYXRlIHwgbnVsbCkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbDtcblxuICAvLyBUT0RPOiByZW1vdmUgdGhpcyBnZXR0ZXIgd2hlbiBgb3dsRGF0ZVRpbWVGaWx0ZXJgIGlzIHJlbW92ZWRcbiAgcHJvdGVjdGVkIGdldCBkYXRlVGltZUZpbHRlckdldHRlcigpOiAoKGRhdGU6IERhdGUgfCBudWxsKSA9PiBib29sZWFuKSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRhdGVUaW1lRmlsdGVyIHx8IHRoaXMub3dsRGF0ZVRpbWVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF9taW46IERhdGUgfCBudWxsO1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gdmFsaWQgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWluIHx8IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCBtaW4odmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbWluID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9tYXg6IERhdGUgfCBudWxsO1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdmFsaWQgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWF4KCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4IHx8IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCBtYXgodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbWF4ID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLiNkYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuICAgIHZhbHVlID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpO1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBBcnJheTxEYXRlPiA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlcygpOiBBcnJheTxEYXRlPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZXModmFsdWVzOiBBcnJheTxEYXRlPikge1xuICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbHVlcyA9IHZhbHVlcy5tYXAoKHYpID0+IHtcbiAgICAgICAgdiA9IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2KTtcbiAgICAgICAgdiA9IHRoaXMuZ2V0VmFsaWREYXRlKHYpO1xuICAgICAgICByZXR1cm4gdiA/IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5jbG9uZSh2KSA6IG51bGw7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3ZhbHVlcyA9IFsuLi52YWx1ZXNdO1xuICAgICAgdGhpcy5zZWxlY3RlZHMgPSBbLi4udmFsdWVzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBzZWxlY3RlZCB5ZWFyIGluIG11bHRpLXllYXIgdmlld1xuICAgKiBUaGlzIGRvZXNuJ3QgaW1wbHkgYSBjaGFuZ2Ugb24gdGhlIHNlbGVjdGVkIGRhdGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgc2VsZWN0ZWQgbW9udGggaW4geWVhciB2aWV3XG4gICAqIFRoaXMgZG9lc24ndCBpbXBseSBhIGNoYW5nZSBvbiB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgbW9udGhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgc2VsZWN0ZWQgZGF0ZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZVNlbGVjdGVkSW5kZXggPSAwOyAvLyBUaGUgY3VycmVudCBhY3RpdmUgU2VsZWN0ZWRJbmRleCBpbiByYW5nZSBzZWxlY3QgbW9kZSAoMDogJ2Zyb20nLCAxOiAndG8nKVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBEYXRlIHwgbnVsbDtcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3RlZCgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG4gIHByb3RlY3RlZCBzZXQgc2VsZWN0ZWQodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkczogQXJyYXk8RGF0ZT4gPSBbXTtcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3RlZHMoKTogQXJyYXk8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0IHNlbGVjdGVkcyh2YWx1ZXM6IEFycmF5PERhdGU+KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRzID0gdmFsdWVzO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcGlja2VyIGlzIGluIHNpbmdsZSBtb2RlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGlzSW5TaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcGlja2VyIGlzIGluIHJhbmdlIG1vZGUgKHJhbmdlLCByYW5nZUZyb20sIHJhbmdlVG8pXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGlzSW5SYW5nZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlJyB8fCB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZUZyb20nIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlVG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByYW5nZSAnZnJvbScgbGFiZWxcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZnJvbUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI3BpY2tlckludGwucmFuZ2VGcm9tTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJhbmdlICd0bycgbGFiZWxcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdG9MYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNwaWNrZXJJbnRsLnJhbmdlVG9MYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgJ2Zyb20nIGZvcm1hdHRlZCB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmcm9tRm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VsZWN0ZWRzWzBdO1xuICAgIHJldHVybiB2YWx1ZSA/IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5mb3JtYXQodmFsdWUsIHRoaXMuZm9ybWF0T3B0aW9ucykgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgJ3RvJyBmb3JtYXR0ZWQgdmFsdWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdG9Gb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZWxlY3RlZHNbMV07XG4gICAgcmV0dXJuIHZhbHVlID8gdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5mb3JtYXRPcHRpb25zKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlOiAodjogRGF0ZSB8IEFycmF5PERhdGU+KSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIC8qIG5vb3AgKi9cbiAgfTtcblxuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIC8qIG5vb3AgKi9cbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuI2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBPd2xEYXRlVGltZVBpY2tlcjogTm8gcHJvdmlkZXIgZm91bmQgZm9yIERhdGVUaW1lQWRhcHRlci4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgIGBtb2R1bGVzIGF0IHlvdXIgYXBwbGljYXRpb24gcm9vdDogT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsIE93bE1vbWVudERhdGVUaW1lTW9kdWxlLCBvciBwcm92aWRlIGEgYCArXG4gICAgICAgICAgYGN1c3RvbSBpbXBsZW1lbnRhdGlvbi5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy4jZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYE93bERhdGVUaW1lUGlja2VyOiBObyBwcm92aWRlciBmb3VuZCBmb3IgT1dMX0RBVEVfVElNRV9GT1JNQVRTLiBZb3UgbXVzdCBpbXBvcnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgYCArXG4gICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSwgT3dsTW9tZW50RGF0ZVRpbWVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICBgY3VzdG9tIGltcGxlbWVudGF0aW9uLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IGBvd2wtZHQtcGlja2VyLSR7bmV4dFVuaXF1ZUNvbXBvbmVudElkKyt9YDtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgQXJyYXk8RGF0ZT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luU2luZ2xlTW9kZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVzID0gdmFsdWUgYXMgQXJyYXk8RGF0ZT47XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZXNbdGhpcy5hY3RpdmVTZWxlY3RlZEluZGV4XTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IERhdGUgfCBBcnJheTxEYXRlPikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdChkYXRlOiBBcnJheTxEYXRlPiB8IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGUpKSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IFsuLi5kYXRlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGU7XG4gICAgfVxuICAgIHRoaXMub25Nb2RlbENoYW5nZShkYXRlKTtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIHllYXIgaW4gbXVsdGkteWVhciB2aWV3XG4gICAqL1xuICBwdWJsaWMgc2VsZWN0WWVhcihub3JtYWxpemVkWWVhcjogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQobm9ybWFsaXplZFllYXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHNlbGVjdGVkIG1vbnRoIGluIHllYXIgdmlld1xuICAgKi9cbiAgcHVibGljIHNlbGVjdE1vbnRoKG5vcm1hbGl6ZWRNb250aDogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZShub3JtYWxpemVkTW9udGgpO1xuICAgIHRoaXMubW9udGhTZWxlY3RlZC5lbWl0KG5vcm1hbGl6ZWRNb250aCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGRhdGVcbiAgICovXG4gIHB1YmxpYyBzZWxlY3REYXRlKG5vcm1hbGl6ZWREYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKG5vcm1hbGl6ZWREYXRlKTtcbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KG5vcm1hbGl6ZWREYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgXCJzZWxlY3RlZFwiIGluZGV4IGluIHJhbmdlIG1vZGUuXG4gICAqIC0gMCBmb3IgJ2Zyb20nXG4gICAqIC0gMSBmb3IgJ3RvJ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldEFjdGl2ZVNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZScgJiYgdGhpcy5hY3RpdmVTZWxlY3RlZEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgdGhpcy5hY3RpdmVTZWxlY3RlZEluZGV4ID0gaW5kZXg7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZHNbdGhpcy5hY3RpdmVTZWxlY3RlZEluZGV4XTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkcyAmJiBzZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmNsb25lKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBjbGljayBvbiBpbmZvcm0gcmFkaW8gZ3JvdXBcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlkb3duT25JbmZvR3JvdXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIG5leHQ6IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IGhhbmRsZWQgPSBmYWxzZTtcblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAvLyBOYXZpZ2F0ZSBiZXR3ZWVuIHRoZSByYWRpbyBncm91cCBvcHRpb25zIHdpdGggYXJyb3cga2V5c1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlU2VsZWN0ZWRJbmRleChpbmRleCA9PT0gMCA/IDEgOiAwKTtcbiAgICAgICAgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBTZWxlY3QgdGhlIGFjdGl2ZSBzZWxlY3RlZCBpbmRleCB3aGVuIHNwYWNlIGlzIHByZXNzZWRcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICB0aGlzLnNldEFjdGl2ZVNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvd2wtZHQtY29udGFpbmVyLWlubmVyXCI+XG4gIEBpZiAocGlja2VyVHlwZSA9PT0gJ2JvdGgnIHx8IHBpY2tlclR5cGUgPT09ICdjYWxlbmRhcicpIHtcbiAgICA8b3dsLWRhdGUtdGltZS1jYWxlbmRhclxuICAgICAgW2RhdGVGaWx0ZXJdPVwiZGF0ZVRpbWVGaWx0ZXJHZXR0ZXJcIlxuICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCJcbiAgICAgIFtoaWRlT3RoZXJNb250aHNdPVwiaGlkZU90aGVyTW9udGhzXCJcbiAgICAgIFttYXhEYXRlXT1cIm1heFwiXG4gICAgICBbbWluRGF0ZV09XCJtaW5cIlxuICAgICAgW211bHRpeWVhck9ubHldPVwibXVsdGl5ZWFyT25seVwiXG4gICAgICBbc2VsZWN0TW9kZV09XCJzZWxlY3RNb2RlXCJcbiAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICBbc2VsZWN0ZWRzXT1cInNlbGVjdGVkc1wiXG4gICAgICBbc3RhcnRWaWV3XT1cInN0YXJ0Vmlld1wiXG4gICAgICBbeWVhck9ubHldPVwieWVhck9ubHlcIlxuICAgICAgWyhwaWNrZXJNb21lbnQpXT1cInZhbHVlXCJcbiAgICAgIChkYXRlQ2xpY2tlZCk9XCJzZWxlY3REYXRlKCRldmVudClcIlxuICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwic2VsZWN0TW9udGgoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIlxuICAgICAgKHllYXJTZWxlY3RlZCk9XCJzZWxlY3RZZWFyKCRldmVudClcIlxuICAgICAgY2xhc3M9XCJvd2wtZHQtY29udGFpbmVyLXJvd1wiPlxuICAgIDwvb3dsLWRhdGUtdGltZS1jYWxlbmRhcj5cbiAgfVxuXG4gIEBpZiAocGlja2VyVHlwZSA9PT0gJ2JvdGgnIHx8IHBpY2tlclR5cGUgPT09ICd0aW1lcicpIHtcbiAgICA8b3dsLWRhdGUtdGltZS10aW1lclxuICAgICAgW2hvdXIxMlRpbWVyXT1cImhvdXIxMlRpbWVyXCJcbiAgICAgIFttYXhEYXRlVGltZV09XCJtYXhcIlxuICAgICAgW21pbkRhdGVUaW1lXT1cIm1pblwiXG4gICAgICBbcGlja2VyTW9tZW50XT1cInZhbHVlXCJcbiAgICAgIFtzaG93U2Vjb25kc1RpbWVyXT1cInNob3dTZWNvbmRzVGltZXJcIlxuICAgICAgW3N0ZXBIb3VyXT1cInN0ZXBIb3VyXCJcbiAgICAgIFtzdGVwTWludXRlXT1cInN0ZXBNaW51dGVcIlxuICAgICAgW3N0ZXBTZWNvbmRdPVwic3RlcFNlY29uZFwiXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIlxuICAgICAgY2xhc3M9XCJvd2wtZHQtY29udGFpbmVyLXJvd1wiPlxuICAgIDwvb3dsLWRhdGUtdGltZS10aW1lcj5cbiAgfVxuXG4gIEBpZiAoaXNJblJhbmdlTW9kZSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1pbmZvIG93bC1kdC1jb250YWluZXItcm93XCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICNmcm9tXG4gICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJhY3RpdmVTZWxlY3RlZEluZGV4ID09PSAwXCJcbiAgICAgICAgW2NsYXNzLm93bC1kdC1jb250YWluZXItaW5mby1hY3RpdmVdPVwiYWN0aXZlU2VsZWN0ZWRJbmRleCA9PT0gMFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJhY3RpdmVTZWxlY3RlZEluZGV4ID09PSAwID8gMCA6IC0xXCJcbiAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVNlbGVjdGVkSW5kZXgoMClcIlxuICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlkb3duT25JbmZvR3JvdXAoJGV2ZW50LCB0bywgMClcIlxuICAgICAgICBjbGFzcz1cIm93bC1kdC1jb250cm9sIG93bC1kdC1jb250YWluZXItcmFuZ2Ugb3dsLWR0LWNvbnRhaW5lci1mcm9tXCJcbiAgICAgICAgcm9sZT1cInJhZGlvXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbC1jb250ZW50IG93bC1kdC1jb250YWluZXItcmFuZ2UtY29udGVudFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1pbmZvLWxhYmVsXCI+e3sgZnJvbUxhYmVsIH19Ojwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm93bC1kdC1jb250YWluZXItaW5mby12YWx1ZVwiPnt7IGZyb21Gb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICN0b1xuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiYWN0aXZlU2VsZWN0ZWRJbmRleCA9PT0gMVwiXG4gICAgICAgIFtjbGFzcy5vd2wtZHQtY29udGFpbmVyLWluZm8tYWN0aXZlXT1cImFjdGl2ZVNlbGVjdGVkSW5kZXggPT09IDFcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiYWN0aXZlU2VsZWN0ZWRJbmRleCA9PT0gMSA/IDAgOiAtMVwiXG4gICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVTZWxlY3RlZEluZGV4KDEpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5ZG93bk9uSW5mb0dyb3VwKCRldmVudCwgZnJvbSwgMSlcIlxuICAgICAgICBjbGFzcz1cIm93bC1kdC1jb250cm9sIG93bC1kdC1jb250YWluZXItcmFuZ2Ugb3dsLWR0LWNvbnRhaW5lci10b1wiXG4gICAgICAgIHJvbGU9XCJyYWRpb1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtY29udGVudCBvd2wtZHQtY29udGFpbmVyLXJhbmdlLWNvbnRlbnRcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm93bC1kdC1jb250YWluZXItaW5mby1sYWJlbFwiPnt7IHRvTGFiZWwgfX06PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1pbmZvLXZhbHVlXCI+e3sgdG9Gb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBRWxFLE1BQU0sMkJBQTJCLEdBQWE7SUFDNUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO0lBQ3pELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLElBQUkscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBYzlCLE1BQU0sT0FBTywwQkFBMEI7SUFHNUIsZUFBZSxDQUE2QjtJQUU1QyxXQUFXLENBQTJCO0lBRXRDLGdCQUFnQixDQUFxRDtJQUVyRSxnQkFBZ0IsQ0FBc0U7SUFpRC9GLElBQ1csY0FB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SztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQWFLLEdBQUc7c0JBRGIsS0FBSztnQkFjSyxHQUFHO3NCQURiLEtBQUs7Z0JBV0ssS0FBSztzQkFEZixLQUFLO2dCQWNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBd0JVLFlBQVk7c0JBRDNCLE1BQU07Z0JBUVMsYUFBYTtzQkFENUIsTUFBTTtnQkFPUyxZQUFZO3NCQUQzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZVZpZXcsIFBpY2tlclR5cGUsIFNlbGVjdE1vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXIvZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgT1dMX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSAnLi9hZGFwdGVyL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVJbnRsIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZSc7XG5cbmNvbnN0IE9XTF9EQVRFVElNRV9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5sZXQgbmV4dFVuaXF1ZUNvbXBvbmVudElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS1pbmxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS1pbmxpbmUuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mub3dsLWR0LWNvbnRhaW5lci1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdjbGFzcyc6ICdvd2wtZHQtaW5saW5lIG93bC1kdC1jb250YWluZXIgb3dsLWR0LWlubGluZS1jb250YWluZXInXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbT1dMX0RBVEVUSU1FX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSAjcGlja2VySW50bCA9IGluamVjdChPd2xEYXRlVGltZUludGwpO1xuXG4gIHJlYWRvbmx5ICNkYXRlVGltZUZvcm1hdHMgPSBpbmplY3QoT1dMX0RBVEVfVElNRV9GT1JNQVRTLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5ICNkYXRlVGltZUFkYXB0ZXIgPSBpbmplY3Q8RGF0ZVRpbWVBZGFwdGVyPERhdGU+PihEYXRlVGltZUFkYXB0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRpbWVyIGlzIGluIGhvdXIxMiBmb3JtYXRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaG91cjEyVGltZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHZpZXcgdGhhdCB0aGUgY2FsZW5kYXIgc2hvdWxkIHN0YXJ0IGluLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0YXJ0VmlldzogRGF0ZVZpZXcgPSBEYXRlVmlldy5NT05USDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG91bGQgb25seSB0aGUgeWVhciBhbmQgbXVsdGkteWVhciB2aWV3cy5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgeWVhck9ubHkgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG91bGQgb25seSB0aGUgbXVsdGkteWVhciB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtdWx0aXllYXJPbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEhvdXJzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXBIb3VyOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBNaW51dGVzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXBNaW51dGU6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3RlcFNlY29uZDogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0IHRoZSBmaXJzdCBkYXkgb2Ygd2Vlay5cbiAgICogSGFzIHRvIGJlIGEgbnVtYmVyIGJldHdlZW4gMCAoU3VuZGF5KSBhbmQgNiAoU2F0dXJkYXkpXG4gICAqL1xuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrO1xuICB9XG4gIHB1YmxpYyBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xuICAgIHZhbHVlID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlLCB1bmRlZmluZWQpO1xuICAgIGlmICh2YWx1ZSA+IDYgfHwgdmFsdWUgPCAwKSB7XG4gICAgICB0aGlzLl9maXJzdERheU9mV2VlayA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZmlyc3REYXlPZldlZWsgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBoaWRlIGRhdGVzIGluIG90aGVyIG1vbnRocyBhdCB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKi9cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGhpZGVPdGhlck1vbnRoczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgZm9ybWF0T3B0aW9ucygpOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyB7XG4gICAgaWYgKHRoaXMucGlja2VyVHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLmZ1bGxQaWNrZXJJbnB1dDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waWNrZXJUeXBlID09PSAnY2FsZW5kYXInKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLmRhdGVQaWNrZXJJbnB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVGb3JtYXRzLnRpbWVQaWNrZXJJbnB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEYXRlIFRpbWUgQ2hlY2tlciB0byBjaGVjayBpZiB0aGUgZ2l2ZSBkYXRlVGltZSBpcyBzZWxlY3RhYmxlXG4gICAqL1xuICBwdWJsaWMgZGF0ZVRpbWVDaGVja2VyID0gKGRhdGVUaW1lOiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhZGF0ZVRpbWUgJiZcbiAgICAgICghdGhpcy5kYXRlVGltZUZpbHRlciB8fCB0aGlzLmRhdGVUaW1lRmlsdGVyKGRhdGVUaW1lKSkgJiZcbiAgICAgICghdGhpcy5taW4gfHwgdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZVRpbWUsIHRoaXMubWluKSA+PSAwKSAmJlxuICAgICAgKCF0aGlzLm1heCB8fCB0aGlzLiNkYXRlVGltZUFkYXB0ZXIuY29tcGFyZShkYXRlVGltZSwgdGhpcy5tYXgpIDw9IDApXG4gICAgKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0VmFsaWREYXRlKG9iajogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiYgdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQob2JqKSA/IG9iaiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB7QGxpbmsgUGlja2VyVHlwZX0gb2YgdGhlIGRhdGVUaW1lIHBpY2tlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBpY2tlclR5cGU6IFBpY2tlclR5cGUgPSAnYm90aCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBpY2tlciBpcyBkaXNhYmxlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBzZWNvbmQncyB0aW1lclxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzaG93U2Vjb25kc1RpbWVyID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHNlbGVjdCBtb2RlIHRvIHVzZTpcbiAgICogLSAnc2luZ2xlJ1xuICAgKiAtICdyYW5nZSdcbiAgICogLSAncmFuZ2VGcm9tJ1xuICAgKiAtICdyYW5nZVRvJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdE1vZGU6IFNlbGVjdE1vZGUgPSAnc2luZ2xlJztcblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gb3BlbiB0aGUgY2FsZW5kYXIgdG8gaW5pdGlhbGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfc3RhcnRBdDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc3RhcnRBdCgpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0QXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zdGFydEF0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1swXSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VUbycpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1sxXSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldCBzdGFydEF0KGRhdGU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fc3RhcnRBdCA9IHRoaXMuZ2V0VmFsaWREYXRlKHRoaXMuI2RhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZShkYXRlKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gb3BlbiBmb3IgcmFuZ2UgY2FsZW5kYXIuXG4gICAqL1xuICBwcml2YXRlIF9lbmRBdDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZW5kQXQoKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICh0aGlzLl9lbmRBdCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZEF0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlc1sxXSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldCBlbmRBdChkYXRlOiBEYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX2VuZEF0ID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGRhdGVUaW1lRmlsdGVyYCBpbnN0ZWFkIVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG93bERhdGVUaW1lRmlsdGVyOiAoKGRhdGU6IERhdGUgfCBudWxsKSA9PiBib29sZWFuKSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRlVGltZUZpbHRlcjogKChkYXRlOiBEYXRlIHwgbnVsbCkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbDtcblxuICAvLyBUT0RPOiByZW1vdmUgdGhpcyBnZXR0ZXIgd2hlbiBgb3dsRGF0ZVRpbWVGaWx0ZXJgIGlzIHJlbW92ZWRcbiAgcHJvdGVjdGVkIGdldCBkYXRlVGltZUZpbHRlckdldHRlcigpOiAoKGRhdGU6IERhdGUgfCBudWxsKSA9PiBib29sZWFuKSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRhdGVUaW1lRmlsdGVyIHx8IHRoaXMub3dsRGF0ZVRpbWVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF9taW46IERhdGUgfCBudWxsO1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gdmFsaWQgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWluIHx8IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCBtaW4odmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbWluID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9tYXg6IERhdGUgfCBudWxsO1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdmFsaWQgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWF4KCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4IHx8IG51bGw7XG4gIH1cbiAgcHVibGljIHNldCBtYXgodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbWF4ID0gdGhpcy5nZXRWYWxpZERhdGUodGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLiNkYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuICAgIHZhbHVlID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpO1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBBcnJheTxEYXRlPiA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlcygpOiBBcnJheTxEYXRlPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZXModmFsdWVzOiBBcnJheTxEYXRlPikge1xuICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbHVlcyA9IHZhbHVlcy5tYXAoKHYpID0+IHtcbiAgICAgICAgdiA9IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2KTtcbiAgICAgICAgdiA9IHRoaXMuZ2V0VmFsaWREYXRlKHYpO1xuICAgICAgICByZXR1cm4gdiA/IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5jbG9uZSh2KSA6IG51bGw7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3ZhbHVlcyA9IFsuLi52YWx1ZXNdO1xuICAgICAgdGhpcy5zZWxlY3RlZHMgPSBbLi4udmFsdWVzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBzZWxlY3RlZCB5ZWFyIGluIG11bHRpLXllYXIgdmlld1xuICAgKiBUaGlzIGRvZXNuJ3QgaW1wbHkgYSBjaGFuZ2Ugb24gdGhlIHNlbGVjdGVkIGRhdGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgc2VsZWN0ZWQgbW9udGggaW4geWVhciB2aWV3XG4gICAqIFRoaXMgZG9lc24ndCBpbXBseSBhIGNoYW5nZSBvbiB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgbW9udGhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgc2VsZWN0ZWQgZGF0ZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZVNlbGVjdGVkSW5kZXggPSAwOyAvLyBUaGUgY3VycmVudCBhY3RpdmUgU2VsZWN0ZWRJbmRleCBpbiByYW5nZSBzZWxlY3QgbW9kZSAoMDogJ2Zyb20nLCAxOiAndG8nKVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBEYXRlIHwgbnVsbDtcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3RlZCgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG4gIHByb3RlY3RlZCBzZXQgc2VsZWN0ZWQodmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkczogQXJyYXk8RGF0ZT4gPSBbXTtcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3RlZHMoKTogQXJyYXk8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0IHNlbGVjdGVkcyh2YWx1ZXM6IEFycmF5PERhdGU+KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRzID0gdmFsdWVzO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcGlja2VyIGlzIGluIHNpbmdsZSBtb2RlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGlzSW5TaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcGlja2VyIGlzIGluIHJhbmdlIG1vZGUgKHJhbmdlLCByYW5nZUZyb20sIHJhbmdlVG8pXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGlzSW5SYW5nZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlJyB8fCB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZUZyb20nIHx8IHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlVG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByYW5nZSAnZnJvbScgbGFiZWxcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZnJvbUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI3BpY2tlckludGwucmFuZ2VGcm9tTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJhbmdlICd0bycgbGFiZWxcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdG9MYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNwaWNrZXJJbnRsLnJhbmdlVG9MYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgJ2Zyb20nIGZvcm1hdHRlZCB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmcm9tRm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VsZWN0ZWRzWzBdO1xuICAgIHJldHVybiB2YWx1ZSA/IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5mb3JtYXQodmFsdWUsIHRoaXMuZm9ybWF0T3B0aW9ucykgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgJ3RvJyBmb3JtYXR0ZWQgdmFsdWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgdG9Gb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZWxlY3RlZHNbMV07XG4gICAgcmV0dXJuIHZhbHVlID8gdGhpcy4jZGF0ZVRpbWVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5mb3JtYXRPcHRpb25zKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlOiAodjogRGF0ZSB8IEFycmF5PERhdGU+KSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIC8qIG5vb3AgKi9cbiAgfTtcblxuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIC8qIG5vb3AgKi9cbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuI2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBPd2xEYXRlVGltZVBpY2tlcjogTm8gcHJvdmlkZXIgZm91bmQgZm9yIERhdGVUaW1lQWRhcHRlci4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgIGBtb2R1bGVzIGF0IHlvdXIgYXBwbGljYXRpb24gcm9vdDogT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsIE93bE1vbWVudERhdGVUaW1lTW9kdWxlLCBvciBwcm92aWRlIGEgYCArXG4gICAgICAgICAgYGN1c3RvbSBpbXBsZW1lbnRhdGlvbi5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy4jZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYE93bERhdGVUaW1lUGlja2VyOiBObyBwcm92aWRlciBmb3VuZCBmb3IgT1dMX0RBVEVfVElNRV9GT1JNQVRTLiBZb3UgbXVzdCBpbXBvcnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgYCArXG4gICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSwgT3dsTW9tZW50RGF0ZVRpbWVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICBgY3VzdG9tIGltcGxlbWVudGF0aW9uLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IGBvd2wtZHQtcGlja2VyLSR7bmV4dFVuaXF1ZUNvbXBvbmVudElkKyt9YDtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJblNpbmdsZU1vZGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHNlY29uZCBzZWxlY3RlZCBkYXRlIGlzIGJlZm9yZSB0aGUgZmlyc3Qgc2VsZWN0ZWQgZGF0ZVxuICAgICAgLy8gSW4gdGhpcyBjYXNlIFwiZ28gYmFja1wiIGFuZCB0cmVhdCB0aGUgdmFsdWUgYXMgdGhlIGZpcnN0IHNlbGVjdGVkIGRhdGVcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVNlbGVjdGVkSW5kZXggPT09IDEpIHtcbiAgICAgICAgaWYgKHZhbHVlLmdldFRpbWUoKSA8IHRoaXMuc2VsZWN0ZWRzWzBdLmdldFRpbWUoKSkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlU2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHRoZSBjb3JyZWN0IHZhbHVlIGFjY29yZGluZyB0byB0aGUgYWN0aXZlIHNlbGVjdGVkIGluZGV4XG4gICAgICBpZiAodGhpcy5hY3RpdmVTZWxlY3RlZEluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRzID0gW3ZhbHVlLCBudWxsXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRzWzFdID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0aGUgdmFsdWVzIHRvIHRoZSBzZWxlY3RlZHNcbiAgICAgIHRoaXMudmFsdWVzID0gWy4uLnRoaXMuc2VsZWN0ZWRzXTtcbiAgICAgIHRoaXMuYWN0aXZlU2VsZWN0ZWRJbmRleCA9ICh0aGlzLmFjdGl2ZVNlbGVjdGVkSW5kZXggKyAxKSAlIDI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2OiBEYXRlIHwgQXJyYXk8RGF0ZT4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoZGF0ZTogQXJyYXk8RGF0ZT4gfCBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRlKSkge1xuICAgICAgdGhpcy52YWx1ZXMgPSBbLi4uZGF0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlO1xuICAgIH1cbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UoZGF0ZSk7XG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCB5ZWFyIGluIG11bHRpLXllYXIgdmlld1xuICAgKi9cbiAgcHVibGljIHNlbGVjdFllYXIobm9ybWFsaXplZFllYXI6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnllYXJTZWxlY3RlZC5lbWl0KG5vcm1hbGl6ZWRZZWFyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBzZWxlY3RlZCBtb250aCBpbiB5ZWFyIHZpZXdcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RNb250aChub3JtYWxpemVkTW9udGg6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUobm9ybWFsaXplZE1vbnRoKTtcbiAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkTW9udGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCBkYXRlXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0RGF0ZShub3JtYWxpemVkRGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZShub3JtYWxpemVkRGF0ZSk7XG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkRGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIFwic2VsZWN0ZWRcIiBpbmRleCBpbiByYW5nZSBtb2RlLlxuICAgKiAtIDAgZm9yICdmcm9tJ1xuICAgKiAtIDEgZm9yICd0bydcbiAgICovXG4gIHByb3RlY3RlZCBzZXRBY3RpdmVTZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnICYmIHRoaXMuYWN0aXZlU2VsZWN0ZWRJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRzW3RoaXMuYWN0aXZlU2VsZWN0ZWRJbmRleF07XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZHMgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuI2RhdGVUaW1lQWRhcHRlci5jbG9uZShzZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgY2xpY2sgb24gaW5mb3JtIHJhZGlvIGdyb3VwXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlS2V5ZG93bk9uSW5mb0dyb3VwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBuZXh0OiBIVE1MRWxlbWVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBoYW5kbGVkID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgLy8gTmF2aWdhdGUgYmV0d2VlbiB0aGUgcmFkaW8gZ3JvdXAgb3B0aW9ucyB3aXRoIGFycm93IGtleXNcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICB0aGlzLnNldEFjdGl2ZVNlbGVjdGVkSW5kZXgoaW5kZXggPT09IDAgPyAxIDogMCk7XG4gICAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcblxuICAgICAgLy8gU2VsZWN0IHRoZSBhY3RpdmUgc2VsZWN0ZWQgaW5kZXggd2hlbiBzcGFjZSBpcyBwcmVzc2VkXG4gICAgICBjYXNlICcgJzpcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgICAgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1pbm5lclwiPlxuICBAaWYgKHBpY2tlclR5cGUgPT09ICdib3RoJyB8fCBwaWNrZXJUeXBlID09PSAnY2FsZW5kYXInKSB7XG4gICAgPG93bC1kYXRlLXRpbWUtY2FsZW5kYXJcbiAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVUaW1lRmlsdGVyR2V0dGVyXCJcbiAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICBbaGlkZU90aGVyTW9udGhzXT1cImhpZGVPdGhlck1vbnRoc1wiXG4gICAgICBbbWF4RGF0ZV09XCJtYXhcIlxuICAgICAgW21pbkRhdGVdPVwibWluXCJcbiAgICAgIFttdWx0aXllYXJPbmx5XT1cIm11bHRpeWVhck9ubHlcIlxuICAgICAgW3NlbGVjdE1vZGVdPVwic2VsZWN0TW9kZVwiXG4gICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgW3NlbGVjdGVkc109XCJzZWxlY3RlZHNcIlxuICAgICAgW3N0YXJ0Vmlld109XCJzdGFydFZpZXdcIlxuICAgICAgW3llYXJPbmx5XT1cInllYXJPbmx5XCJcbiAgICAgIFsocGlja2VyTW9tZW50KV09XCJ2YWx1ZVwiXG4gICAgICAoZGF0ZUNsaWNrZWQpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCJcbiAgICAgIChtb250aFNlbGVjdGVkKT1cInNlbGVjdE1vbnRoKCRldmVudClcIlxuICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2VsZWN0WWVhcigkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1yb3dcIj5cbiAgICA8L293bC1kYXRlLXRpbWUtY2FsZW5kYXI+XG4gIH1cblxuICBAaWYgKHBpY2tlclR5cGUgPT09ICdib3RoJyB8fCBwaWNrZXJUeXBlID09PSAndGltZXInKSB7XG4gICAgPG93bC1kYXRlLXRpbWUtdGltZXJcbiAgICAgIFtob3VyMTJUaW1lcl09XCJob3VyMTJUaW1lclwiXG4gICAgICBbbWF4RGF0ZVRpbWVdPVwibWF4XCJcbiAgICAgIFttaW5EYXRlVGltZV09XCJtaW5cIlxuICAgICAgW3BpY2tlck1vbWVudF09XCJ2YWx1ZVwiXG4gICAgICBbc2hvd1NlY29uZHNUaW1lcl09XCJzaG93U2Vjb25kc1RpbWVyXCJcbiAgICAgIFtzdGVwSG91cl09XCJzdGVwSG91clwiXG4gICAgICBbc3RlcE1pbnV0ZV09XCJzdGVwTWludXRlXCJcbiAgICAgIFtzdGVwU2Vjb25kXT1cInN0ZXBTZWNvbmRcIlxuICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwib3dsLWR0LWNvbnRhaW5lci1yb3dcIj5cbiAgICA8L293bC1kYXRlLXRpbWUtdGltZXI+XG4gIH1cblxuICBAaWYgKGlzSW5SYW5nZU1vZGUpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm93bC1kdC1jb250YWluZXItaW5mbyBvd2wtZHQtY29udGFpbmVyLXJvd1wiXG4gICAgICByb2xlPVwicmFkaW9ncm91cFwiPlxuICAgICAgPGRpdlxuICAgICAgICAjZnJvbVxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiYWN0aXZlU2VsZWN0ZWRJbmRleCA9PT0gMFwiXG4gICAgICAgIFtjbGFzcy5vd2wtZHQtY29udGFpbmVyLWluZm8tYWN0aXZlXT1cImFjdGl2ZVNlbGVjdGVkSW5kZXggPT09IDBcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiYWN0aXZlU2VsZWN0ZWRJbmRleCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVTZWxlY3RlZEluZGV4KDApXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5ZG93bk9uSW5mb0dyb3VwKCRldmVudCwgdG8sIDApXCJcbiAgICAgICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbCBvd2wtZHQtY29udGFpbmVyLXJhbmdlIG93bC1kdC1jb250YWluZXItZnJvbVwiXG4gICAgICAgIHJvbGU9XCJyYWRpb1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtY29udGVudCBvd2wtZHQtY29udGFpbmVyLXJhbmdlLWNvbnRlbnRcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm93bC1kdC1jb250YWluZXItaW5mby1sYWJlbFwiPnt7IGZyb21MYWJlbCB9fTo8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvd2wtZHQtY29udGFpbmVyLWluZm8tdmFsdWVcIj57eyBmcm9tRm9ybWF0dGVkVmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAjdG9cbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImFjdGl2ZVNlbGVjdGVkSW5kZXggPT09IDFcIlxuICAgICAgICBbY2xhc3Mub3dsLWR0LWNvbnRhaW5lci1pbmZvLWFjdGl2ZV09XCJhY3RpdmVTZWxlY3RlZEluZGV4ID09PSAxXCJcbiAgICAgICAgW3RhYmluZGV4XT1cImFjdGl2ZVNlbGVjdGVkSW5kZXggPT09IDEgPyAwIDogLTFcIlxuICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlU2VsZWN0ZWRJbmRleCgxKVwiXG4gICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleWRvd25PbkluZm9Hcm91cCgkZXZlbnQsIGZyb20sIDEpXCJcbiAgICAgICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbCBvd2wtZHQtY29udGFpbmVyLXJhbmdlIG93bC1kdC1jb250YWluZXItdG9cIlxuICAgICAgICByb2xlPVwicmFkaW9cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cIm93bC1kdC1jb250cm9sLWNvbnRlbnQgb3dsLWR0LWNvbnRhaW5lci1yYW5nZS1jb250ZW50XCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvd2wtZHQtY29udGFpbmVyLWluZm8tbGFiZWxcIj57eyB0b0xhYmVsIH19Ojwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm93bC1kdC1jb250YWluZXItaW5mby12YWx1ZVwiPnt7IHRvRm9ybWF0dGVkVmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -45,11 +45,11 @@ export class OwlDateTimeIntl {
|
|
|
45
45
|
/** A label for the hour12 button (PM) */
|
|
46
46
|
this.hour12PMLabel = 'PM';
|
|
47
47
|
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
49
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeIntl, providedIn: 'root' }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeIntl, decorators: [{
|
|
52
52
|
type: Injectable,
|
|
53
53
|
args: [{ providedIn: 'root' }]
|
|
54
54
|
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci1pbnRsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWNrZXIvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLXBpY2tlci1pbnRsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQixNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQUVFOzs7V0FHRztRQUNNLFlBQU8sR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0RCxrRUFBa0U7UUFDbEUsa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFFL0Isb0VBQW9FO1FBQ3BFLG9CQUFlLEdBQUcsZ0JBQWdCLENBQUM7UUFFbkMsa0VBQWtFO1FBQ2xFLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBRS9CLG9FQUFvRTtRQUNwRSxvQkFBZSxHQUFHLGdCQUFnQixDQUFDO1FBRW5DLGdFQUFnRTtRQUNoRSxnQkFBVyxHQUFHLFlBQVksQ0FBQztRQUUzQixrRUFBa0U7UUFDbEUsa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFFL0Isc0VBQXNFO1FBQ3RFLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUM7UUFFbEMsa0VBQWtFO1FBQ2xFLG1CQUFjLEdBQUcsWUFBWSxDQUFDO1FBRTlCLHFFQUFxRTtRQUNyRSxrQkFBYSxHQUFHLGVBQWUsQ0FBQztRQUVoQyxpRUFBaUU7UUFDakUsa0JBQWEsR0FBRyxXQUFXLENBQUM7UUFFNUIsMkVBQTJFO1FBQzNFLHVCQUFrQixHQUFHLG1CQUFtQixDQUFDO1FBRXpDLHVFQUF1RTtRQUN2RSx1QkFBa0IsR0FBRyxlQUFlLENBQUM7UUFFckMsOEVBQThFO1FBQzlFLDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBRWhELDZFQUE2RTtRQUM3RSwrQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztRQUVyRCxrREFBa0Q7UUFDbEQsbUJBQWMsR0FBRyxNQUFNLENBQUM7UUFFeEIsZ0RBQWdEO1FBQ2hELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCLHlDQUF5QztRQUN6QyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQix5Q0FBeUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLENBQUM7S0FDdEI7K0dBNURZLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPd2xEYXRlVGltZUludGwge1xuICAvKipcbiAgICogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIGxhYmVscyBoZXJlIGFyZSBjaGFuZ2VkLiBVc2UgdGhpcyB0byBub3RpZnlcbiAgICogY29tcG9uZW50cyBpZiB0aGUgbGFiZWxzIGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgdXAgc2Vjb25kIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICB1cFNlY29uZExhYmVsID0gJ0FkZCBhIHNlY29uZCc7XG5cbiAgLyoqIEEgbGFiZWwgZm9yIHRoZSBkb3duIHNlY29uZCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAgKi9cbiAgZG93blNlY29uZExhYmVsID0gJ01pbnVzIGEgc2Vjb25kJztcblxuICAvKiogQSBsYWJlbCBmb3IgdGhlIHVwIG1pbnV0ZSBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAgKi9cbiAgdXBNaW51dGVMYWJlbCA9ICdBZGQgYSBtaW51dGUnO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgZG93biBtaW51dGUgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gIGRvd25NaW51dGVMYWJlbCA9ICdNaW51cyBhIG1pbnV0ZSc7XG5cbiAgLyoqIEEgbGFiZWwgZm9yIHRoZSB1cCBob3VyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICB1cEhvdXJMYWJlbCA9ICdBZGQgYSBob3VyJztcblxuICAvKiogQSBsYWJlbCBmb3IgdGhlIGRvd24gaG91ciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAgKi9cbiAgZG93bkhvdXJMYWJlbCA9ICdNaW51cyBhIGhvdXInO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgbW9udGggYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgcHJldk1vbnRoTGFiZWwgPSAnUHJldmlvdXMgbW9udGgnO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCBtb250aCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICBuZXh0TW9udGhMYWJlbCA9ICdOZXh0IG1vbnRoJztcblxuICAvKiogQSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIHllYXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgcHJldlllYXJMYWJlbCA9ICdQcmV2aW91cyB5ZWFyJztcblxuICAvKiogQSBsYWJlbCBmb3IgdGhlIG5leHQgeWVhciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICBuZXh0WWVhckxhYmVsID0gJ05leHQgeWVhcic7XG5cbiAgLyoqIEEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtdWx0aS15ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gIHByZXZNdWx0aVllYXJMYWJlbCA9ICdQcmV2aW91cyAyMSB5ZWFycyc7XG5cbiAgLyoqIEEgbGFiZWwgZm9yIHRoZSBuZXh0IG11bHRpLXllYXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgbmV4dE11bHRpWWVhckxhYmVsID0gJ05leHQgMjEgeWVhcnMnO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgJ3N3aXRjaCB0byBtb250aCB2aWV3JyBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICBzd2l0Y2hUb01vbnRoVmlld0xhYmVsID0gJ0NoYW5nZSB0byBtb250aCB2aWV3JztcblxuICAvKiogQSBsYWJlbCBmb3IgdGhlICdzd2l0Y2ggdG8geWVhciB2aWV3JyBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICBzd2l0Y2hUb011bHRpWWVhclZpZXdMYWJlbCA9ICdDaG9vc2UgbW9udGggYW5kIHllYXInO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgcmFuZ2UgJ2Zyb20nIGluIHBpY2tlciBpbmZvICovXG4gIHJhbmdlRnJvbUxhYmVsID0gJ0Zyb20nO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgcmFuZ2UgJ3RvJyBpbiBwaWNrZXIgaW5mbyAqL1xuICByYW5nZVRvTGFiZWwgPSAnVG8nO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgaG91cjEyIGJ1dHRvbiAoQU0pICovXG4gIGhvdXIxMkFNTGFiZWwgPSAnQU0nO1xuXG4gIC8qKiBBIGxhYmVsIGZvciB0aGUgaG91cjEyIGJ1dHRvbiAoUE0pICovXG4gIGhvdXIxMlBNTGFiZWwgPSAnUE0nO1xufVxuIl19
|
|
@@ -13,8 +13,8 @@ import { OwlTimerBoxComponent } from './timer-box.component';
|
|
|
13
13
|
import { OwlTimerComponent } from './timer.component';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class OwlDateTimeModule {
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeModule, declarations: [OwlMultiYearViewComponent,
|
|
18
18
|
OwlYearViewComponent,
|
|
19
19
|
OwlMonthViewComponent,
|
|
20
20
|
OwlTimerComponent,
|
|
@@ -28,9 +28,9 @@ export class OwlDateTimeModule {
|
|
|
28
28
|
OwlMultiYearViewComponent,
|
|
29
29
|
OwlYearViewComponent,
|
|
30
30
|
OwlMonthViewComponent] }); }
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeModule, providers: [OwlDateTimeIntl, ...optionsProviders], imports: [CommonModule, A11yModule] }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlDateTimeModule, decorators: [{
|
|
34
34
|
type: NgModule,
|
|
35
35
|
args: [{
|
|
36
36
|
imports: [CommonModule, A11yModule],
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
56
56
|
providers: [OwlDateTimeIntl, ...optionsProviders]
|
|
57
57
|
}]
|
|
58
58
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS9kYXRlLXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBeUJ0RCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFYMUIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsd0JBQXdCO1lBQ3hCLDBCQUEwQixhQWxCbEIsWUFBWSxFQUFFLFVBQVUsYUFFaEMsMEJBQTBCO1lBQzFCLHVFQUF1RTtZQUN2RSxvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLHlCQUF5QjtZQUN6QixvQkFBb0I7WUFDcEIscUJBQXFCO2dIQWNaLGlCQUFpQixhQUZqQixDQUFDLGVBQWUsRUFBRSxHQUFHLGdCQUFnQixDQUFDLFlBcEJ2QyxZQUFZLEVBQUUsVUFBVTs7NEZBc0J2QixpQkFBaUI7a0JBdkI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLHVFQUF1RTt3QkFDdkUsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQixxQkFBcUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLDBCQUEwQjtxQkFDM0I7b0JBQ0QsU0FBUyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3dsQ2FsZW5kYXJCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1ib2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPd2xNb250aFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLW1vbnRoLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IE93bE11bHRpWWVhclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLW11bHRpLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsWWVhclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVJbnRsIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZSc7XG5pbXBvcnQgeyBvcHRpb25zUHJvdmlkZXJzIH0gZnJvbSAnLi9vcHRpb25zLXByb3ZpZGVyJztcbmltcG9ydCB7IE93bFRpbWVyQm94Q29tcG9uZW50IH0gZnJvbSAnLi90aW1lci1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IE93bFRpbWVyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIE93bERhdGVUaW1lSW5saW5lQ29tcG9uZW50LFxuICAgIC8vIFRPRE86IHJlbW92ZSBhbGwgZm9sbG93aW5nIGV4cG9ydHMgaW4gb25lIG9mIHRoZSBuZXh0IG1ham9yIHZlcnNpb25zXG4gICAgT3dsQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgT3dsVGltZXJDb21wb25lbnQsXG4gICAgT3dsTXVsdGlZZWFyVmlld0NvbXBvbmVudCxcbiAgICBPd2xZZWFyVmlld0NvbXBvbmVudCxcbiAgICBPd2xNb250aFZpZXdDb21wb25lbnRcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgT3dsTXVsdGlZZWFyVmlld0NvbXBvbmVudCxcbiAgICBPd2xZZWFyVmlld0NvbXBvbmVudCxcbiAgICBPd2xNb250aFZpZXdDb21wb25lbnQsXG4gICAgT3dsVGltZXJDb21wb25lbnQsXG4gICAgT3dsVGltZXJCb3hDb21wb25lbnQsXG4gICAgT3dsQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgT3dsQ2FsZW5kYXJCb2R5Q29tcG9uZW50LFxuICAgIE93bERhdGVUaW1lSW5saW5lQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW093bERhdGVUaW1lSW50bCwgLi4ub3B0aW9uc1Byb3ZpZGVyc11cbn0pXG5leHBvcnQgY2xhc3MgT3dsRGF0ZVRpbWVNb2R1bGUge31cbiJdfQ==
|
|
@@ -91,10 +91,10 @@ export class OwlTimerBoxComponent {
|
|
|
91
91
|
unbindValueInputMouseWheel() {
|
|
92
92
|
this.valueInput.nativeElement.removeEventListener('onwheel' in document ? 'wheel' : 'mousewheel', this.onValueInputMouseWheelBind);
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlTimerBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: OwlTimerBoxComponent, selector: "owl-date-time-timer-box", inputs: { showDivider: "showDivider", upBtnAriaLabel: "upBtnAriaLabel", upBtnDisabled: "upBtnDisabled", downBtnAriaLabel: "downBtnAriaLabel", downBtnDisabled: "downBtnDisabled", boxValue: "boxValue", value: "value", min: "min", max: "max", step: "step", inputLabel: "inputLabel" }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, host: { classAttribute: "owl-dt-timer-box" }, viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, static: true }], exportAs: ["owlDateTimeTimerBox"], ngImport: i0, template: "@if (showDivider) {\n <div\n aria-hidden=\"true\"\n class=\"owl-dt-timer-divider\"></div>\n}\n\n<button\n [attr.aria-label]=\"upBtnAriaLabel\"\n [disabled]=\"upBtnDisabled\"\n (click)=\"upBtnClicked()\"\n class=\"owl-dt-control-button owl-dt-control-arrow-button\"\n tabindex=\"-1\"\n type=\"button\">\n <span\n class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n <!-- <editor-fold desc=\"SVG Arrow Up\"> -->\n <svg\n xml:space=\"preserve\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n height=\"100%\"\n style=\"enable-background: new 0 0 451.847 451.846\"\n version=\"1.1\"\n viewBox=\"0 0 451.847 451.846\"\n width=\"100%\"\n x=\"0px\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\">\n <path\n d=\"M248.292,106.406l194.281,194.29c12.365,12.359,12.365,32.391,0,44.744c-12.354,12.354-32.391,12.354-44.744,0\n L225.923,173.529L54.018,345.44c-12.36,12.354-32.395,12.354-44.748,0c-12.359-12.354-12.359-32.391,0-44.75L203.554,106.4\n c6.18-6.174,14.271-9.259,22.369-9.259C234.018,97.141,242.115,100.232,248.292,106.406z\" />\n </svg>\n <!-- </editor-fold> -->\n </span>\n</button>\n<label class=\"owl-dt-timer-content\">\n <input\n #valueInput\n [value]=\"displayValue\"\n (focusin)=\"focusIn()\"\n (focusout)=\"focusOut(valueInput.value)\"\n (input)=\"handleInputChange(valueInput.value)\"\n (keydown.arrowdown)=\"!downBtnDisabled && downBtnClicked()\"\n (keydown.arrowup)=\"!upBtnDisabled && upBtnClicked()\"\n class=\"owl-dt-timer-input\"\n maxlength=\"2\" />\n <span class=\"owl-hidden-accessible\">{{ inputLabel }}</span>\n</label>\n<button\n [attr.aria-label]=\"downBtnAriaLabel\"\n [disabled]=\"downBtnDisabled\"\n (click)=\"downBtnClicked()\"\n class=\"owl-dt-control-button owl-dt-control-arrow-button\"\n tabindex=\"-1\"\n type=\"button\">\n <span\n class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n <!-- <editor-fold desc=\"SVG Arrow Down\"> -->\n <svg\n xml:space=\"preserve\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n height=\"100%\"\n style=\"enable-background: new 0 0 451.847 451.846\"\n version=\"1.1\"\n viewBox=\"0 0 451.847 451.846\"\n width=\"100%\"\n x=\"0px\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\">\n <path\n d=\"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751\n c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0\n c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z\" />\n </svg>\n <!-- </editor-fold> -->\n </span>\n</button>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlTimerBoxComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{ exportAs: 'owlDateTimeTimerBox', selector: 'owl-date-time-timer-box', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'owl-dt-timer-box' }, template: "@if (showDivider) {\n <div\n aria-hidden=\"true\"\n class=\"owl-dt-timer-divider\"></div>\n}\n\n<button\n [attr.aria-label]=\"upBtnAriaLabel\"\n [disabled]=\"upBtnDisabled\"\n (click)=\"upBtnClicked()\"\n class=\"owl-dt-control-button owl-dt-control-arrow-button\"\n tabindex=\"-1\"\n type=\"button\">\n <span\n class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n <!-- <editor-fold desc=\"SVG Arrow Up\"> -->\n <svg\n xml:space=\"preserve\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n height=\"100%\"\n style=\"enable-background: new 0 0 451.847 451.846\"\n version=\"1.1\"\n viewBox=\"0 0 451.847 451.846\"\n width=\"100%\"\n x=\"0px\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\">\n <path\n d=\"M248.292,106.406l194.281,194.29c12.365,12.359,12.365,32.391,0,44.744c-12.354,12.354-32.391,12.354-44.744,0\n L225.923,173.529L54.018,345.44c-12.36,12.354-32.395,12.354-44.748,0c-12.359-12.354-12.359-32.391,0-44.75L203.554,106.4\n c6.18-6.174,14.271-9.259,22.369-9.259C234.018,97.141,242.115,100.232,248.292,106.406z\" />\n </svg>\n <!-- </editor-fold> -->\n </span>\n</button>\n<label class=\"owl-dt-timer-content\">\n <input\n #valueInput\n [value]=\"displayValue\"\n (focusin)=\"focusIn()\"\n (focusout)=\"focusOut(valueInput.value)\"\n (input)=\"handleInputChange(valueInput.value)\"\n (keydown.arrowdown)=\"!downBtnDisabled && downBtnClicked()\"\n (keydown.arrowup)=\"!upBtnDisabled && upBtnClicked()\"\n class=\"owl-dt-timer-input\"\n maxlength=\"2\" />\n <span class=\"owl-hidden-accessible\">{{ inputLabel }}</span>\n</label>\n<button\n [attr.aria-label]=\"downBtnAriaLabel\"\n [disabled]=\"downBtnDisabled\"\n (click)=\"downBtnClicked()\"\n class=\"owl-dt-control-button owl-dt-control-arrow-button\"\n tabindex=\"-1\"\n type=\"button\">\n <span\n class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n <!-- <editor-fold desc=\"SVG Arrow Down\"> -->\n <svg\n xml:space=\"preserve\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n height=\"100%\"\n style=\"enable-background: new 0 0 451.847 451.846\"\n version=\"1.1\"\n viewBox=\"0 0 451.847 451.846\"\n width=\"100%\"\n x=\"0px\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\">\n <path\n d=\"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751\n c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0\n c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z\" />\n </svg>\n <!-- </editor-fold> -->\n </span>\n</button>\n" }]
|
|
100
100
|
}], propDecorators: { showDivider: [{
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
127
127
|
type: ViewChild,
|
|
128
128
|
args: ['valueInput', { static: true }]
|
|
129
129
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS90aW1lci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGlja2VyL3NyYy9saWIvZGF0ZS10aW1lL3RpbWVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVc5QyxNQUFNLE9BQU8sb0JBQW9CO0lBVGpDO1FBVWtCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBc0JwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBSUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUzRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFcEMsbUJBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFtQmpCLCtCQUEwQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FxRjdFO0lBdEdDLElBQWMsWUFBWTtRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixpRUFBaUU7WUFDakUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQU1NLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ3ZGLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEdBQVc7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYTtRQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBaUI7UUFDOUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUU3QyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUM1QyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFDOUMsSUFBSSxDQUFDLDBCQUEwQixDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FDL0MsU0FBUyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQzlDLElBQUksQ0FBQywwQkFBMEIsQ0FDaEMsQ0FBQztJQUNKLENBQUM7OEdBMUlVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVtQkN4QmpDLGl6RkErRUE7OzJGRHZEYSxvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCLHlCQUF5Qix1QkFHZCxLQUFLLG1CQUNULHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUU7OEJBR3JCLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsY0FBYztzQkFBN0IsS0FBSztnQkFFVSxhQUFhO3NCQUE1QixLQUFLO2dCQUVVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQU1VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxHQUFHO3NCQUFsQixLQUFLO2dCQUVVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxVQUFVO3NCQUF6QixLQUFLO2dCQUVvQixXQUFXO3NCQUFwQyxNQUFNO2dCQUVtQixXQUFXO3NCQUFwQyxNQUFNO2dCQXdCQyxVQUFVO3NCQURqQixTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnb3dsRGF0ZVRpbWVUaW1lckJveCcsXG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS10aW1lci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyAnY2xhc3MnOiAnb3dsLWR0LXRpbWVyLWJveCcgfVxufSlcbmV4cG9ydCBjbGFzcyBPd2xUaW1lckJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIHNob3dEaXZpZGVyID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIHVwQnRuQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcHVibGljIHVwQnRuRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcHVibGljIGRvd25CdG5BcmlhTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBwdWJsaWMgZG93bkJ0bkRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSB3b3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGJveFxuICAgKiBJZiBpdCBpcyBudWxsLCB0aGUgYm94IHdvdWxkIGRpc3BsYXkgW3ZhbHVlXVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGJveFZhbHVlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcHVibGljIG1pbjogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXg6IG51bWJlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgQElucHV0KCkgcHVibGljIGlucHV0TGFiZWw6IHN0cmluZztcblxuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgaW5wdXRTdHJlYW0gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBpbnB1dFN0cmVhbVN1YiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBwcml2YXRlIGhhc0ZvY3VzID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNwbGF5VmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNGb2N1cykge1xuICAgICAgLy8gRG9uJ3QgdHJ5IHRvIHJlZm9ybWF0IHRoZSB2YWx1ZSB0aGF0IHVzZXIgaXMgY3VycmVudGx5IGVkaXRpbmdcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYm94VmFsdWUgfHwgdGhpcy52YWx1ZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCBpc05hTih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPCAxMCA/IGAwJHt2YWx1ZS50b1N0cmluZygpfWAgOiB2YWx1ZS50b1N0cmluZygpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndmFsdWVJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgdmFsdWVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgcHJpdmF0ZSBvblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZCA9IHRoaXMub25WYWx1ZUlucHV0TW91c2VXaGVlbC5iaW5kKHRoaXMpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RyZWFtU3ViID0gdGhpcy5pbnB1dFN0cmVhbS5waXBlKGRlYm91bmNlVGltZSg3NTApKS5zdWJzY3JpYmUoKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWwsIDApO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlVmlhSW5wdXQoaW5wdXRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5iaW5kVmFsdWVJbnB1dE1vdXNlV2hlZWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk7XG4gICAgdGhpcy5pbnB1dFN0cmVhbVN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwQnRuQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUgKyB0aGlzLnN0ZXApO1xuICB9XG5cbiAgcHVibGljIGRvd25CdG5DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZSAtIHRoaXMuc3RlcCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlSW5wdXRDaGFuZ2UodmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RyZWFtLm5leHQodmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0luKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT3V0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIDApO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZVZpYUlucHV0KGlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlVmlhSW5wdXQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA+IHRoaXMubWF4IHx8IHZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25WYWx1ZUlucHV0TW91c2VXaGVlbChldmVudDogV2hlZWxFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbHRhID0gLWV2ZW50LmRlbHRhWSB8fCAtZXZlbnQuZGV0YWlsO1xuXG4gICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgaWYgKCF0aGlzLnVwQnRuRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy51cEJ0bkNsaWNrZWQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlbHRhIDwgMCkge1xuICAgICAgaWYgKCF0aGlzLmRvd25CdG5EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRvd25CdG5DbGlja2VkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVJbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnb253aGVlbCcgaW4gZG9jdW1lbnQgPyAnd2hlZWwnIDogJ21vdXNld2hlZWwnLFxuICAgICAgdGhpcy5vblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVuYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVJbnB1dC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAnb253aGVlbCcgaW4gZG9jdW1lbnQgPyAnd2hlZWwnIDogJ21vdXNld2hlZWwnLFxuICAgICAgdGhpcy5vblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZFxuICAgICk7XG4gIH1cbn1cbiIsIkBpZiAoc2hvd0RpdmlkZXIpIHtcbiAgPGRpdlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJvd2wtZHQtdGltZXItZGl2aWRlclwiPjwvZGl2PlxufVxuXG48YnV0dG9uXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwidXBCdG5BcmlhTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwidXBCdG5EaXNhYmxlZFwiXG4gIChjbGljayk9XCJ1cEJ0bkNsaWNrZWQoKVwiXG4gIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtYnV0dG9uIG93bC1kdC1jb250cm9sLWFycm93LWJ1dHRvblwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICB0eXBlPVwiYnV0dG9uXCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXG4gICAgdGFiaW5kZXg9XCItMVwiPlxuICAgIDwhLS0gPGVkaXRvci1mb2xkIGRlc2M9XCJTVkcgQXJyb3cgVXBcIj4gLS0+XG4gICAgPHN2Z1xuICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDogbmV3IDAgMCA0NTEuODQ3IDQ1MS44NDZcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDQ1MS44NDcgNDUxLjg0NlwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgeD1cIjBweFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHk9XCIwcHhcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjQ4LjI5MiwxMDYuNDA2bDE5NC4yODEsMTk0LjI5YzEyLjM2NSwxMi4zNTksMTIuMzY1LDMyLjM5MSwwLDQ0Ljc0NGMtMTIuMzU0LDEyLjM1NC0zMi4zOTEsMTIuMzU0LTQ0Ljc0NCwwXG4gICAgICAgICAgICAgICAgICAgICAgICBMMjI1LjkyMywxNzMuNTI5TDU0LjAxOCwzNDUuNDRjLTEyLjM2LDEyLjM1NC0zMi4zOTUsMTIuMzU0LTQ0Ljc0OCwwYy0xMi4zNTktMTIuMzU0LTEyLjM1OS0zMi4zOTEsMC00NC43NUwyMDMuNTU0LDEwNi40XG4gICAgICAgICAgICAgICAgICAgICAgICBjNi4xOC02LjE3NCwxNC4yNzEtOS4yNTksMjIuMzY5LTkuMjU5QzIzNC4wMTgsOTcuMTQxLDI0Mi4xMTUsMTAwLjIzMiwyNDguMjkyLDEwNi40MDZ6XCIgLz5cbiAgICA8L3N2Zz5cbiAgICA8IS0tIDwvZWRpdG9yLWZvbGQ+IC0tPlxuICA8L3NwYW4+XG48L2J1dHRvbj5cbjxsYWJlbCBjbGFzcz1cIm93bC1kdC10aW1lci1jb250ZW50XCI+XG4gIDxpbnB1dFxuICAgICN2YWx1ZUlucHV0XG4gICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgKGZvY3VzaW4pPVwiZm9jdXNJbigpXCJcbiAgICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQodmFsdWVJbnB1dC52YWx1ZSlcIlxuICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dENoYW5nZSh2YWx1ZUlucHV0LnZhbHVlKVwiXG4gICAgKGtleWRvd24uYXJyb3dkb3duKT1cIiFkb3duQnRuRGlzYWJsZWQgJiYgZG93bkJ0bkNsaWNrZWQoKVwiXG4gICAgKGtleWRvd24uYXJyb3d1cCk9XCIhdXBCdG5EaXNhYmxlZCAmJiB1cEJ0bkNsaWNrZWQoKVwiXG4gICAgY2xhc3M9XCJvd2wtZHQtdGltZXItaW5wdXRcIlxuICAgIG1heGxlbmd0aD1cIjJcIiAvPlxuICA8c3BhbiBjbGFzcz1cIm93bC1oaWRkZW4tYWNjZXNzaWJsZVwiPnt7IGlucHV0TGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuPGJ1dHRvblxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImRvd25CdG5BcmlhTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwiZG93bkJ0bkRpc2FibGVkXCJcbiAgKGNsaWNrKT1cImRvd25CdG5DbGlja2VkKClcIlxuICBjbGFzcz1cIm93bC1kdC1jb250cm9sLWJ1dHRvbiBvd2wtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgdHlwZT1cImJ1dHRvblwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtYnV0dG9uLWNvbnRlbnRcIlxuICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93IERvd25cIj4gLS0+XG4gICAgPHN2Z1xuICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDogbmV3IDAgMCA0NTEuODQ3IDQ1MS44NDZcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDQ1MS44NDcgNDUxLjg0NlwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgeD1cIjBweFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHk9XCIwcHhcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjI1LjkyMywzNTQuNzA2Yy04LjA5OCwwLTE2LjE5NS0zLjA5Mi0yMi4zNjktOS4yNjNMOS4yNywxNTEuMTU3Yy0xMi4zNTktMTIuMzU5LTEyLjM1OS0zMi4zOTcsMC00NC43NTFcbiAgICAgICAgICAgICAgICAgICAgICAgIGMxMi4zNTQtMTIuMzU0LDMyLjM4OC0xMi4zNTQsNDQuNzQ4LDBsMTcxLjkwNSwxNzEuOTE1bDE3MS45MDYtMTcxLjkwOWMxMi4zNTktMTIuMzU0LDMyLjM5MS0xMi4zNTQsNDQuNzQ0LDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGMxMi4zNjUsMTIuMzU0LDEyLjM2NSwzMi4zOTIsMCw0NC43NTFMMjQ4LjI5MiwzNDUuNDQ5QzI0Mi4xMTUsMzUxLjYyMSwyMzQuMDE4LDM1NC43MDYsMjI1LjkyMywzNTQuNzA2elwiIC8+XG4gICAgPC9zdmc+XG4gICAgPCEtLSA8L2VkaXRvci1mb2xkPiAtLT5cbiAgPC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS90aW1lci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGlja2VyL3NyYy9saWIvZGF0ZS10aW1lL3RpbWVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVc5QyxNQUFNLE9BQU8sb0JBQW9CO0lBVGpDO1FBVWtCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBc0JwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBSUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUzRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFcEMsbUJBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFtQmpCLCtCQUEwQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FxRjdFO0lBdEdDLElBQWMsWUFBWTtRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixpRUFBaUU7WUFDakUsT0FBTyxJQUFJLENBQUMsVUFBVSxD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QWxCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxVQUFVO3NCQUF6QixLQUFLO2dCQUVvQixXQUFXO3NCQUFwQyxNQUFNO2dCQUVtQixXQUFXO3NCQUFwQyxNQUFNO2dCQXdCQyxVQUFVO3NCQURqQixTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnb3dsRGF0ZVRpbWVUaW1lckJveCcsXG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS10aW1lci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyAnY2xhc3MnOiAnb3dsLWR0LXRpbWVyLWJveCcgfVxufSlcbmV4cG9ydCBjbGFzcyBPd2xUaW1lckJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIHNob3dEaXZpZGVyID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIHVwQnRuQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcHVibGljIHVwQnRuRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcHVibGljIGRvd25CdG5BcmlhTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBwdWJsaWMgZG93bkJ0bkRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSB3b3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGJveFxuICAgKiBJZiBpdCBpcyBudWxsLCB0aGUgYm94IHdvdWxkIGRpc3BsYXkgW3ZhbHVlXVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGJveFZhbHVlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcHVibGljIG1pbjogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXg6IG51bWJlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgQElucHV0KCkgcHVibGljIGlucHV0TGFiZWw6IHN0cmluZztcblxuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgaW5wdXRTdHJlYW0gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBpbnB1dFN0cmVhbVN1YiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBwcml2YXRlIGhhc0ZvY3VzID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNwbGF5VmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNGb2N1cykge1xuICAgICAgLy8gRG9uJ3QgdHJ5IHRvIHJlZm9ybWF0IHRoZSB2YWx1ZSB0aGF0IHVzZXIgaXMgY3VycmVudGx5IGVkaXRpbmdcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYm94VmFsdWUgfHwgdGhpcy52YWx1ZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCBpc05hTih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPCAxMCA/IGAwJHt2YWx1ZS50b1N0cmluZygpfWAgOiB2YWx1ZS50b1N0cmluZygpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndmFsdWVJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgdmFsdWVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgcHJpdmF0ZSBvblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZCA9IHRoaXMub25WYWx1ZUlucHV0TW91c2VXaGVlbC5iaW5kKHRoaXMpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RyZWFtU3ViID0gdGhpcy5pbnB1dFN0cmVhbS5waXBlKGRlYm91bmNlVGltZSg3NTApKS5zdWJzY3JpYmUoKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWwsIDApO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlVmlhSW5wdXQoaW5wdXRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5iaW5kVmFsdWVJbnB1dE1vdXNlV2hlZWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk7XG4gICAgdGhpcy5pbnB1dFN0cmVhbVN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwQnRuQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUgKyB0aGlzLnN0ZXApO1xuICB9XG5cbiAgcHVibGljIGRvd25CdG5DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZSAtIHRoaXMuc3RlcCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlSW5wdXRDaGFuZ2UodmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RyZWFtLm5leHQodmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0luKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGZvY3VzT3V0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIDApO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZVZpYUlucHV0KGlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlVmlhSW5wdXQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA+IHRoaXMubWF4IHx8IHZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25WYWx1ZUlucHV0TW91c2VXaGVlbChldmVudDogV2hlZWxFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbHRhID0gLWV2ZW50LmRlbHRhWSB8fCAtZXZlbnQuZGV0YWlsO1xuXG4gICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgaWYgKCF0aGlzLnVwQnRuRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy51cEJ0bkNsaWNrZWQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlbHRhIDwgMCkge1xuICAgICAgaWYgKCF0aGlzLmRvd25CdG5EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRvd25CdG5DbGlja2VkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVJbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnb253aGVlbCcgaW4gZG9jdW1lbnQgPyAnd2hlZWwnIDogJ21vdXNld2hlZWwnLFxuICAgICAgdGhpcy5vblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVuYmluZFZhbHVlSW5wdXRNb3VzZVdoZWVsKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVJbnB1dC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAnb253aGVlbCcgaW4gZG9jdW1lbnQgPyAnd2hlZWwnIDogJ21vdXNld2hlZWwnLFxuICAgICAgdGhpcy5vblZhbHVlSW5wdXRNb3VzZVdoZWVsQmluZFxuICAgICk7XG4gIH1cbn1cbiIsIkBpZiAoc2hvd0RpdmlkZXIpIHtcbiAgPGRpdlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJvd2wtZHQtdGltZXItZGl2aWRlclwiPjwvZGl2PlxufVxuXG48YnV0dG9uXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwidXBCdG5BcmlhTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwidXBCdG5EaXNhYmxlZFwiXG4gIChjbGljayk9XCJ1cEJ0bkNsaWNrZWQoKVwiXG4gIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtYnV0dG9uIG93bC1kdC1jb250cm9sLWFycm93LWJ1dHRvblwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICB0eXBlPVwiYnV0dG9uXCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXG4gICAgdGFiaW5kZXg9XCItMVwiPlxuICAgIDwhLS0gPGVkaXRvci1mb2xkIGRlc2M9XCJTVkcgQXJyb3cgVXBcIj4gLS0+XG4gICAgPHN2Z1xuICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDogbmV3IDAgMCA0NTEuODQ3IDQ1MS44NDZcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDQ1MS44NDcgNDUxLjg0NlwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgeD1cIjBweFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHk9XCIwcHhcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjQ4LjI5MiwxMDYuNDA2bDE5NC4yODEsMTk0LjI5YzEyLjM2NSwxMi4zNTksMTIuMzY1LDMyLjM5MSwwLDQ0Ljc0NGMtMTIuMzU0LDEyLjM1NC0zMi4zOTEsMTIuMzU0LTQ0Ljc0NCwwXG4gICAgICAgICAgICAgICAgICAgICAgICBMMjI1LjkyMywxNzMuNTI5TDU0LjAxOCwzNDUuNDRjLTEyLjM2LDEyLjM1NC0zMi4zOTUsMTIuMzU0LTQ0Ljc0OCwwYy0xMi4zNTktMTIuMzU0LTEyLjM1OS0zMi4zOTEsMC00NC43NUwyMDMuNTU0LDEwNi40XG4gICAgICAgICAgICAgICAgICAgICAgICBjNi4xOC02LjE3NCwxNC4yNzEtOS4yNTksMjIuMzY5LTkuMjU5QzIzNC4wMTgsOTcuMTQxLDI0Mi4xMTUsMTAwLjIzMiwyNDguMjkyLDEwNi40MDZ6XCIgLz5cbiAgICA8L3N2Zz5cbiAgICA8IS0tIDwvZWRpdG9yLWZvbGQ+IC0tPlxuICA8L3NwYW4+XG48L2J1dHRvbj5cbjxsYWJlbCBjbGFzcz1cIm93bC1kdC10aW1lci1jb250ZW50XCI+XG4gIDxpbnB1dFxuICAgICN2YWx1ZUlucHV0XG4gICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgKGZvY3VzaW4pPVwiZm9jdXNJbigpXCJcbiAgICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQodmFsdWVJbnB1dC52YWx1ZSlcIlxuICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dENoYW5nZSh2YWx1ZUlucHV0LnZhbHVlKVwiXG4gICAgKGtleWRvd24uYXJyb3dkb3duKT1cIiFkb3duQnRuRGlzYWJsZWQgJiYgZG93bkJ0bkNsaWNrZWQoKVwiXG4gICAgKGtleWRvd24uYXJyb3d1cCk9XCIhdXBCdG5EaXNhYmxlZCAmJiB1cEJ0bkNsaWNrZWQoKVwiXG4gICAgY2xhc3M9XCJvd2wtZHQtdGltZXItaW5wdXRcIlxuICAgIG1heGxlbmd0aD1cIjJcIiAvPlxuICA8c3BhbiBjbGFzcz1cIm93bC1oaWRkZW4tYWNjZXNzaWJsZVwiPnt7IGlucHV0TGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuPGJ1dHRvblxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImRvd25CdG5BcmlhTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwiZG93bkJ0bkRpc2FibGVkXCJcbiAgKGNsaWNrKT1cImRvd25CdG5DbGlja2VkKClcIlxuICBjbGFzcz1cIm93bC1kdC1jb250cm9sLWJ1dHRvbiBvd2wtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgdHlwZT1cImJ1dHRvblwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwib3dsLWR0LWNvbnRyb2wtYnV0dG9uLWNvbnRlbnRcIlxuICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93IERvd25cIj4gLS0+XG4gICAgPHN2Z1xuICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDogbmV3IDAgMCA0NTEuODQ3IDQ1MS44NDZcIlxuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDQ1MS44NDcgNDUxLjg0NlwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgeD1cIjBweFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHk9XCIwcHhcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMjI1LjkyMywzNTQuNzA2Yy04LjA5OCwwLTE2LjE5NS0zLjA5Mi0yMi4zNjktOS4yNjNMOS4yNywxNTEuMTU3Yy0xMi4zNTktMTIuMzU5LTEyLjM1OS0zMi4zOTcsMC00NC43NTFcbiAgICAgICAgICAgICAgICAgICAgICAgIGMxMi4zNTQtMTIuMzU0LDMyLjM4OC0xMi4zNTQsNDQuNzQ4LDBsMTcxLjkwNSwxNzEuOTE1bDE3MS45MDYtMTcxLjkwOWMxMi4zNTktMTIuMzU0LDMyLjM5MS0xMi4zNTQsNDQuNzQ0LDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGMxMi4zNjUsMTIuMzU0LDEyLjM2NSwzMi4zOTIsMCw0NC43NTFMMjQ4LjI5MiwzNDUuNDQ5QzI0Mi4xMTUsMzUxLjYyMSwyMzQuMDE4LDM1NC43MDYsMjI1LjkyMywzNTQuNzA2elwiIC8+XG4gICAgPC9zdmc+XG4gICAgPCEtLSA8L2VkaXRvci1mb2xkPiAtLT5cbiAgPC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -247,10 +247,10 @@ export class OwlTimerComponent {
|
|
|
247
247
|
getValidDate(obj) {
|
|
248
248
|
return this.dateTimeAdapter.isDateInstance(obj) && this.dateTimeAdapter.isValid(obj) ? obj : null;
|
|
249
249
|
}
|
|
250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
251
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlTimerComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.OwlDateTimeIntl }, { token: i0.ChangeDetectorRef }, { token: i2.DateTimeAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
251
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: OwlTimerComponent, selector: "owl-date-time-timer", inputs: { pickerMoment: "pickerMoment", minDateTime: "minDateTime", maxDateTime: "maxDateTime", showSecondsTimer: "showSecondsTimer", hour12Timer: "hour12Timer", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond" }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class.owl-dt-timer": "owlDTTimerClass", "attr.tabindex": "owlDTTimeTabIndex" } }, exportAs: ["owlDateTimeTimer"], ngImport: i0, template: "<owl-date-time-timer-box\n [boxValue]=\"hourBoxValue\"\n [downBtnAriaLabel]=\"downHourButtonLabel\"\n [downBtnDisabled]=\"!downHourEnabled()\"\n [inputLabel]=\"'Hour'\"\n [max]=\"23\"\n [min]=\"0\"\n [step]=\"stepHour\"\n [upBtnAriaLabel]=\"upHourButtonLabel\"\n [upBtnDisabled]=\"!upHourEnabled()\"\n [value]=\"hourValue\"\n (inputChange)=\"setHourValueViaInput($event)\"\n (valueChange)=\"setHourValue($event)\">\n</owl-date-time-timer-box>\n\n<owl-date-time-timer-box\n [downBtnAriaLabel]=\"downMinuteButtonLabel\"\n [downBtnDisabled]=\"!downMinuteEnabled()\"\n [inputLabel]=\"'Minute'\"\n [max]=\"59\"\n [min]=\"0\"\n [showDivider]=\"true\"\n [step]=\"stepMinute\"\n [upBtnAriaLabel]=\"upMinuteButtonLabel\"\n [upBtnDisabled]=\"!upMinuteEnabled()\"\n [value]=\"minuteValue\"\n (inputChange)=\"setMinuteValue($event)\"\n (valueChange)=\"setMinuteValue($event)\">\n</owl-date-time-timer-box>\n\n@if (showSecondsTimer) {\n <owl-date-time-timer-box\n [downBtnAriaLabel]=\"downSecondButtonLabel\"\n [downBtnDisabled]=\"!downSecondEnabled()\"\n [inputLabel]=\"'Second'\"\n [max]=\"59\"\n [min]=\"0\"\n [showDivider]=\"true\"\n [step]=\"stepSecond\"\n [upBtnAriaLabel]=\"upSecondButtonLabel\"\n [upBtnDisabled]=\"!upSecondEnabled()\"\n [value]=\"secondValue\"\n (inputChange)=\"setSecondValue($event)\"\n (valueChange)=\"setSecondValue($event)\">\n </owl-date-time-timer-box>\n}\n\n@if (hour12Timer) {\n <div class=\"owl-dt-timer-hour12\">\n <button\n (click)=\"setMeridiem($event)\"\n class=\"owl-dt-control-button owl-dt-timer-hour12-box\"\n tabindex=\"0\"\n type=\"button\">\n <span\n class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n {{ hour12ButtonLabel }}\n </span>\n </button>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: i3.OwlTimerBoxComponent, selector: "owl-date-time-timer-box", inputs: ["showDivider", "upBtnAriaLabel", "upBtnDisabled", "downBtnAriaLabel", "downBtnDisabled", "boxValue", "value", "min", "max", "step", "inputLabel"], outputs: ["valueChange", "inputChange"], exportAs: ["owlDateTimeTimerBox"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
252
252
|
}
|
|
253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: OwlTimerComponent, decorators: [{
|
|
254
254
|
type: Component,
|
|
255
255
|
args: [{ exportAs: 'owlDateTimeTimer', selector: 'owl-date-time-timer', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
256
256
|
'[class.owl-dt-timer]': 'owlDTTimerClass',
|
|
@@ -277,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
277
277
|
}], selectedChange: [{
|
|
278
278
|
type: Output
|
|
279
279
|
}] } });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGlja2VyL3NyYy9saWIvZGF0ZS10aW1lL3RpbWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS90aW1lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWdCdEMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEtBQVE7UUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFJRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWU7UUFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFB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QUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM1RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVksQ0FBQyxHQUFRO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BHLENBQUM7OEdBbFRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGllQzNCOUIsb3lEQThEQTs7MkZEbkNhLGlCQUFpQjtrQkFaN0IsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIscUJBQXFCLHVCQUdWLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixzQkFBc0IsRUFBRSxpQkFBaUI7d0JBQ3pDLGlCQUFpQixFQUFFLG1CQUFtQjtxQkFDdkM7OzBCQThKRSxRQUFRO3lDQXhKUCxZQUFZO3NCQURmLEtBQUs7Z0JBYUYsV0FBVztzQkFEZCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFnQk4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQTJFTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlci9kYXRlLXRpbWUtYWRhcHRlci5jbGFzcyc7XG5pbXBvcnQgeyBPd2xEYXRlVGltZUludGwgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnb3dsRGF0ZVRpbWVUaW1lcicsXG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS10aW1lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mub3dsLWR0LXRpbWVyXSc6ICdvd2xEVFRpbWVyQ2xhc3MnLFxuICAgICdbYXR0ci50YWJpbmRleF0nOiAnb3dsRFRUaW1lVGFiSW5kZXgnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT3dsVGltZXJDb21wb25lbnQ8VD4ge1xuICAvKiogVGhlIGN1cnJlbnQgcGlja2VyIG1vbWVudCAqL1xuICBwcml2YXRlIF9waWNrZXJNb21lbnQ6IFQ7XG4gIEBJbnB1dCgpXG4gIGdldCBwaWNrZXJNb21lbnQoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX3BpY2tlck1vbWVudDtcbiAgfVxuXG4gIHNldCBwaWNrZXJNb21lbnQodmFsdWU6IFQpIHtcbiAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgICB0aGlzLl9waWNrZXJNb21lbnQgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSkgfHwgdGhpcy5kYXRlVGltZUFkYXB0ZXIubm93KCk7XG4gIH1cblxuICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlIHRpbWUuICovXG4gIHByaXZhdGUgX21pbkRhdGVUaW1lOiBUIHwgbnVsbDtcbiAgQElucHV0KClcbiAgZ2V0IG1pbkRhdGVUaW1lKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVRpbWU7XG4gIH1cblxuICBzZXQgbWluRGF0ZVRpbWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbWluRGF0ZVRpbWUgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlIHRpbWUuICovXG4gIHByaXZhdGUgX21heERhdGVUaW1lOiBUIHwgbnVsbDtcbiAgQElucHV0KClcbiAgZ2V0IG1heERhdGVUaW1lKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZVRpbWU7XG4gIH1cblxuICBzZXQgbWF4RGF0ZVRpbWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbWF4RGF0ZVRpbWUgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzUE0gPSBmYWxzZTsgLy8gYSBmbGFnIGluZGljYXRlcyB0aGUgY3VycmVudCB0aW1lciBtb21lbnQgaXMgaW4gUE0gb3IgQU1cblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBzZWNvbmQncyB0aW1lclxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd1NlY29uZHNUaW1lcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGltZXIgaXMgaW4gaG91cjEyIGZvcm1hdFxuICAgKi9cbiAgQElucHV0KClcbiAgaG91cjEyVGltZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdXJzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgc3RlcEhvdXIgPSAxO1xuXG4gIC8qKlxuICAgKiBNaW51dGVzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgc3RlcE1pbnV0ZSA9IDE7XG5cbiAgLyoqXG4gICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAqL1xuICBASW5wdXQoKVxuICBzdGVwU2Vjb25kID0gMTtcblxuICBnZXQgaG91clZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldEhvdXJzKHRoaXMucGlja2VyTW9tZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgd291bGQgYmUgZGlzcGxheWVkIGluIGhvdXJCb3guXG4gICAqIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHRoZSB2YWx1ZSBkaXNwbGF5ZWQgaW4gaG91ckJveCBpdCBub3RcbiAgICogdGhlIHNhbWUgYXMgdGhlIGhvdXJWYWx1ZSB3aGVuIHRoZSB0aW1lciBpcyBpbiBob3VyMTJUaW1lciBtb2RlLlxuICAgKi9cbiAgZ2V0IGhvdXJCb3hWYWx1ZSgpOiBudW1iZXIge1xuICAgIGxldCBob3VycyA9IHRoaXMuaG91clZhbHVlO1xuXG4gICAgaWYgKCF0aGlzLmhvdXIxMlRpbWVyKSB7XG4gICAgICByZXR1cm4gaG91cnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgICBob3VycyA9IDEyO1xuICAgICAgICB0aGlzLmlzUE0gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwICYmIGhvdXJzIDwgMTIpIHtcbiAgICAgICAgdGhpcy5pc1BNID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGhvdXJzID09PSAxMikge1xuICAgICAgICB0aGlzLmlzUE0gPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChob3VycyA+IDEyICYmIGhvdXJzIDwgMjQpIHtcbiAgICAgICAgaG91cnMgPSBob3VycyAtIDEyO1xuICAgICAgICB0aGlzLmlzUE0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaG91cnM7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbnV0ZVZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldE1pbnV0ZXModGhpcy5waWNrZXJNb21lbnQpO1xuICB9XG5cbiAgZ2V0IHNlY29uZFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpO1xuICB9XG5cbiAgZ2V0IHVwSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC51cEhvdXJMYWJlbDtcbiAgfVxuXG4gIGdldCBkb3duSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5kb3duSG91ckxhYmVsO1xuICB9XG5cbiAgZ2V0IHVwTWludXRlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLnVwTWludXRlTGFiZWw7XG4gIH1cblxuICBnZXQgZG93bk1pbnV0ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5kb3duTWludXRlTGFiZWw7XG4gIH1cblxuICBnZXQgdXBTZWNvbmRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBpY2tlckludGwudXBTZWNvbmRMYWJlbDtcbiAgfVxuXG4gIGdldCBkb3duU2Vjb25kQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLmRvd25TZWNvbmRMYWJlbDtcbiAgfVxuXG4gIGdldCBob3VyMTJCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzUE0pIHtcbiAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwuaG91cjEyUE1MYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5ob3VyMTJBTUxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBnZXQgb3dsRFRUaW1lckNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IG93bERUVGltZVRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGVsbVJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBpY2tlckludGw6IE93bERhdGVUaW1lSW50bCxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZVRpbWVBZGFwdGVyPFQ+XG4gICkge31cblxuICAvKipcbiAgICogRm9jdXMgdG8gdGhlIGhvc3QgZWxlbWVudFxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVsbVJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaG91ciB2YWx1ZSB2aWEgdHlwaW5nIGludG8gdGltZXIgYm94IGlucHV0XG4gICAqIFdlIG5lZWQgdGhpcyB0byBoYW5kbGUgdGhlIGhvdXIgdmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgaW4gaG91cjEyIG1vZGVcbiAgICovXG4gIHB1YmxpYyBzZXRIb3VyVmFsdWVWaWFJbnB1dChob3VyczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgdGhpcy5pc1BNICYmIGhvdXJzID49IDEgJiYgaG91cnMgPD0gMTEpIHtcbiAgICAgIGhvdXJzID0gaG91cnMgKyAxMjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgIXRoaXMuaXNQTSAmJiBob3VycyA9PT0gMTIpIHtcbiAgICAgIGhvdXJzID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLnNldEhvdXJWYWx1ZShob3Vycyk7XG4gIH1cblxuICBwdWJsaWMgc2V0SG91clZhbHVlKGhvdXJzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0SG91cnModGhpcy5waWNrZXJNb21lbnQsIGhvdXJzKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobSk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNaW51dGVWYWx1ZShtaW51dGVzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0TWludXRlcyh0aGlzLnBpY2tlck1vbWVudCwgbWludXRlcyk7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG0pO1xuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2Vjb25kVmFsdWUoc2Vjb25kczogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQsIHNlY29uZHMpO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChtKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldE1lcmlkaWVtKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmlzUE0gPSAhdGhpcy5pc1BNO1xuXG4gICAgbGV0IGhvdXJzID0gdGhpcy5ob3VyVmFsdWU7XG4gICAgaWYgKHRoaXMuaXNQTSkge1xuICAgICAgaG91cnMgPSBob3VycyArIDEyO1xuICAgIH0gZWxzZSB7XG4gICAgICBob3VycyA9IGhvdXJzIC0gMTI7XG4gICAgfVxuXG4gICAgaWYgKGhvdXJzID49IDAgJiYgaG91cnMgPD0gMjMpIHtcbiAgICAgIHRoaXMuc2V0SG91clZhbHVlKGhvdXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHVwIGhvdXIgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyB1cEhvdXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5tYXhEYXRlVGltZSB8fCB0aGlzLmNvbXBhcmVIb3Vycyh0aGlzLnN0ZXBIb3VyLCB0aGlzLm1heERhdGVUaW1lKSA8IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGRvd24gaG91ciBidXR0b24gaXMgZW5hYmxlZFxuICAgKi9cbiAgcHVibGljIGRvd25Ib3VyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWluRGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlSG91cnMoLXRoaXMuc3RlcEhvdXIsIHRoaXMubWluRGF0ZVRpbWUpID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHVwIG1pbnV0ZSBidXR0b24gaXMgZW5hYmxlZFxuICAgKi9cbiAgcHVibGljIHVwTWludXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWF4RGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlTWludXRlcyh0aGlzLnN0ZXBNaW51dGUsIHRoaXMubWF4RGF0ZVRpbWUpIDwgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZG93biBtaW51dGUgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBkb3duTWludXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWluRGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlTWludXRlcygtdGhpcy5zdGVwTWludXRlLCB0aGlzLm1pbkRhdGVUaW1lKSA+IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSB1cCBzZWNvbmQgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyB1cFNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm1heERhdGVUaW1lIHx8IHRoaXMuY29tcGFyZVNlY29uZHModGhpcy5zdGVwU2Vjb25kLCB0aGlzLm1heERhdGVUaW1lKSA8IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGRvd24gc2Vjb25kIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAqL1xuICBwdWJsaWMgZG93blNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm1pbkRhdGVUaW1lIHx8IHRoaXMuY29tcGFyZVNlY29uZHMoLXRoaXMuc3RlcFNlY29uZCwgdGhpcy5taW5EYXRlVGltZSkgPiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQaWNrZXJNb21lbnQncyBob3VyIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICovXG4gIHByaXZhdGUgY29tcGFyZUhvdXJzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0SG91cnModGhpcy5waWNrZXJNb21lbnQpICsgYW1vdW50O1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldEhvdXJzKHRoaXMucGlja2VyTW9tZW50LCBob3Vycyk7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUocmVzdWx0LCBjb21wYXJlZERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBpY2tlck1vbWVudCdzIG1pbnV0ZSB2YWx1ZSArLy0gY2VydGFpbiBhbW91bnQgYW5kIGNvbXBhcmUgaXQgdG8gdGhlIGdpdmUgZGF0ZVxuICAgKiAxIGlzIGFmdGVyIHRoZSBjb21wYXJlZERhdGVcbiAgICogLTEgaXMgYmVmb3JlIHRoZSBjb21wYXJlZERhdGVcbiAgICogMCBpcyBlcXVhbCB0aGUgY29tcGFyZWREYXRlXG4gICAqL1xuICBwcml2YXRlIGNvbXBhcmVNaW51dGVzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50KSArIGFtb3VudDtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50LCBtaW51dGVzKTtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuY29tcGFyZShyZXN1bHQsIGNvbXBhcmVkRGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogUGlja2VyTW9tZW50J3Mgc2Vjb25kIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICovXG4gIHByaXZhdGUgY29tcGFyZVNlY29uZHMoYW1vdW50OiBudW1iZXIsIGNvbXBhcmVkRGF0ZTogVCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpICsgYW1vdW50O1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQsIHNlY29uZHMpO1xuICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKHJlc3VsdCwgY29tcGFyZWREYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSB2YWxpZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWxpZERhdGUob2JqOiBhbnkpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiYgdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChvYmopID8gb2JqIDogbnVsbDtcbiAgfVxufVxuIiwiPG93bC1kYXRlLXRpbWUtdGltZXItYm94XG4gIFtib3hWYWx1ZV09XCJob3VyQm94VmFsdWVcIlxuICBbZG93bkJ0bkFyaWFMYWJlbF09XCJkb3duSG91ckJ1dHRvbkxhYmVsXCJcbiAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93bkhvdXJFbmFibGVkKClcIlxuICBbaW5wdXRMYWJlbF09XCInSG91cidcIlxuICBbbWF4XT1cIjIzXCJcbiAgW21pbl09XCIwXCJcbiAgW3N0ZXBdPVwic3RlcEhvdXJcIlxuICBbdXBCdG5BcmlhTGFiZWxdPVwidXBIb3VyQnV0dG9uTGFiZWxcIlxuICBbdXBCdG5EaXNhYmxlZF09XCIhdXBIb3VyRW5hYmxlZCgpXCJcbiAgW3ZhbHVlXT1cImhvdXJWYWx1ZVwiXG4gIChpbnB1dENoYW5nZSk9XCJzZXRIb3VyVmFsdWVWaWFJbnB1dCgkZXZlbnQpXCJcbiAgKHZhbHVlQ2hhbmdlKT1cInNldEhvdXJWYWx1ZSgkZXZlbnQpXCI+XG48L293bC1kYXRlLXRpbWUtdGltZXItYm94PlxuXG48b3dsLWRhdGUtdGltZS10aW1lci1ib3hcbiAgW2Rvd25CdG5BcmlhTGFiZWxdPVwiZG93bk1pbnV0ZUJ1dHRvbkxhYmVsXCJcbiAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93bk1pbnV0ZUVuYWJsZWQoKVwiXG4gIFtpbnB1dExhYmVsXT1cIidNaW51dGUnXCJcbiAgW21heF09XCI1OVwiXG4gIFttaW5dPVwiMFwiXG4gIFtzaG93RGl2aWRlcl09XCJ0cnVlXCJcbiAgW3N0ZXBdPVwic3RlcE1pbnV0ZVwiXG4gIFt1cEJ0bkFyaWFMYWJlbF09XCJ1cE1pbnV0ZUJ1dHRvbkxhYmVsXCJcbiAgW3VwQnRuRGlzYWJsZWRdPVwiIXVwTWludXRlRW5hYmxlZCgpXCJcbiAgW3ZhbHVlXT1cIm1pbnV0ZVZhbHVlXCJcbiAgKGlucHV0Q2hhbmdlKT1cInNldE1pbnV0ZVZhbHVlKCRldmVudClcIlxuICAodmFsdWVDaGFuZ2UpPVwic2V0TWludXRlVmFsdWUoJGV2ZW50KVwiPlxuPC9vd2wtZGF0ZS10aW1lLXRpbWVyLWJveD5cblxuQGlmIChzaG93U2Vjb25kc1RpbWVyKSB7XG4gIDxvd2wtZGF0ZS10aW1lLXRpbWVyLWJveFxuICAgIFtkb3duQnRuQXJpYUxhYmVsXT1cImRvd25TZWNvbmRCdXR0b25MYWJlbFwiXG4gICAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93blNlY29uZEVuYWJsZWQoKVwiXG4gICAgW2lucHV0TGFiZWxdPVwiJ1NlY29uZCdcIlxuICAgIFttYXhdPVwiNTlcIlxuICAgIFttaW5dPVwiMFwiXG4gICAgW3Nob3dEaXZpZGVyXT1cInRydWVcIlxuICAgIFtzdGVwXT1cInN0ZXBTZWNvbmRcIlxuICAgIFt1cEJ0bkFyaWFMYWJlbF09XCJ1cFNlY29uZEJ1dHRvbkxhYmVsXCJcbiAgICBbdXBCdG5EaXNhYmxlZF09XCIhdXBTZWNvbmRFbmFibGVkKClcIlxuICAgIFt2YWx1ZV09XCJzZWNvbmRWYWx1ZVwiXG4gICAgKGlucHV0Q2hhbmdlKT1cInNldFNlY29uZFZhbHVlKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRTZWNvbmRWYWx1ZSgkZXZlbnQpXCI+XG4gIDwvb3dsLWRhdGUtdGltZS10aW1lci1ib3g+XG59XG5cbkBpZiAoaG91cjEyVGltZXIpIHtcbiAgPGRpdiBjbGFzcz1cIm93bC1kdC10aW1lci1ob3VyMTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0TWVyaWRpZW0oJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cIm93bC1kdC1jb250cm9sLWJ1dHRvbiBvd2wtZHQtdGltZXItaG91cjEyLWJveFwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAge3sgaG91cjEyQnV0dG9uTGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGlja2VyL3NyYy9saWIvZGF0ZS10aW1lL3RpbWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BpY2tlci9zcmMvbGliL2RhdGUtdGltZS90aW1lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWdCdEMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEtBQVE7UUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFJRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWU7UUFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFB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QUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM1RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVksQ0FBQyxHQUFRO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BHLENBQUM7K0dBbFRVLGlCQUFpQjttR0FBakIsaUJBQWlCLGllQzNCOUIsb3lEQThEQTs7NEZEbkNhLGlCQUFpQjtrQkFaN0IsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIscUJBQXFCLHVCQUdWLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixzQkFBc0IsRUFBRSxpQkFBaUI7d0JBQ3pDLGlCQUFpQixFQUFFLG1CQUFtQjtxQkFDdkM7OzBCQThKRSxRQUFRO3lDQXhKUCxZQUFZO3NCQURmLEtBQUs7Z0JBYUYsV0FBVztzQkFEZCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFnQk4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQTJFTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlci9kYXRlLXRpbWUtYWRhcHRlci5jbGFzcyc7XG5pbXBvcnQgeyBPd2xEYXRlVGltZUludGwgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnb3dsRGF0ZVRpbWVUaW1lcicsXG4gIHNlbGVjdG9yOiAnb3dsLWRhdGUtdGltZS10aW1lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mub3dsLWR0LXRpbWVyXSc6ICdvd2xEVFRpbWVyQ2xhc3MnLFxuICAgICdbYXR0ci50YWJpbmRleF0nOiAnb3dsRFRUaW1lVGFiSW5kZXgnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT3dsVGltZXJDb21wb25lbnQ8VD4ge1xuICAvKiogVGhlIGN1cnJlbnQgcGlja2VyIG1vbWVudCAqL1xuICBwcml2YXRlIF9waWNrZXJNb21lbnQ6IFQ7XG4gIEBJbnB1dCgpXG4gIGdldCBwaWNrZXJNb21lbnQoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX3BpY2tlck1vbWVudDtcbiAgfVxuXG4gIHNldCBwaWNrZXJNb21lbnQodmFsdWU6IFQpIHtcbiAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgICB0aGlzLl9waWNrZXJNb21lbnQgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSkgfHwgdGhpcy5kYXRlVGltZUFkYXB0ZXIubm93KCk7XG4gIH1cblxuICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlIHRpbWUuICovXG4gIHByaXZhdGUgX21pbkRhdGVUaW1lOiBUIHwgbnVsbDtcbiAgQElucHV0KClcbiAgZ2V0IG1pbkRhdGVUaW1lKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVRpbWU7XG4gIH1cblxuICBzZXQgbWluRGF0ZVRpbWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbWluRGF0ZVRpbWUgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlIHRpbWUuICovXG4gIHByaXZhdGUgX21heERhdGVUaW1lOiBUIHwgbnVsbDtcbiAgQElucHV0KClcbiAgZ2V0IG1heERhdGVUaW1lKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZVRpbWU7XG4gIH1cblxuICBzZXQgbWF4RGF0ZVRpbWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbWF4RGF0ZVRpbWUgPSB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzUE0gPSBmYWxzZTsgLy8gYSBmbGFnIGluZGljYXRlcyB0aGUgY3VycmVudCB0aW1lciBtb21lbnQgaXMgaW4gUE0gb3IgQU1cblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBzZWNvbmQncyB0aW1lclxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd1NlY29uZHNUaW1lcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGltZXIgaXMgaW4gaG91cjEyIGZvcm1hdFxuICAgKi9cbiAgQElucHV0KClcbiAgaG91cjEyVGltZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdXJzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgc3RlcEhvdXIgPSAxO1xuXG4gIC8qKlxuICAgKiBNaW51dGVzIHRvIGNoYW5nZSBwZXIgc3RlcFxuICAgKi9cbiAgQElucHV0KClcbiAgc3RlcE1pbnV0ZSA9IDE7XG5cbiAgLyoqXG4gICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAqL1xuICBASW5wdXQoKVxuICBzdGVwU2Vjb25kID0gMTtcblxuICBnZXQgaG91clZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldEhvdXJzKHRoaXMucGlja2VyTW9tZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgd291bGQgYmUgZGlzcGxheWVkIGluIGhvdXJCb3guXG4gICAqIFdlIG5lZWQgdGhpcyBiZWNhdXNlIHRoZSB2YWx1ZSBkaXNwbGF5ZWQgaW4gaG91ckJveCBpdCBub3RcbiAgICogdGhlIHNhbWUgYXMgdGhlIGhvdXJWYWx1ZSB3aGVuIHRoZSB0aW1lciBpcyBpbiBob3VyMTJUaW1lciBtb2RlLlxuICAgKi9cbiAgZ2V0IGhvdXJCb3hWYWx1ZSgpOiBudW1iZXIge1xuICAgIGxldCBob3VycyA9IHRoaXMuaG91clZhbHVlO1xuXG4gICAgaWYgKCF0aGlzLmhvdXIxMlRpbWVyKSB7XG4gICAgICByZXR1cm4gaG91cnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgICBob3VycyA9IDEyO1xuICAgICAgICB0aGlzLmlzUE0gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwICYmIGhvdXJzIDwgMTIpIHtcbiAgICAgICAgdGhpcy5pc1BNID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGhvdXJzID09PSAxMikge1xuICAgICAgICB0aGlzLmlzUE0gPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChob3VycyA+IDEyICYmIGhvdXJzIDwgMjQpIHtcbiAgICAgICAgaG91cnMgPSBob3VycyAtIDEyO1xuICAgICAgICB0aGlzLmlzUE0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaG91cnM7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbnV0ZVZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldE1pbnV0ZXModGhpcy5waWNrZXJNb21lbnQpO1xuICB9XG5cbiAgZ2V0IHNlY29uZFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpO1xuICB9XG5cbiAgZ2V0IHVwSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC51cEhvdXJMYWJlbDtcbiAgfVxuXG4gIGdldCBkb3duSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5kb3duSG91ckxhYmVsO1xuICB9XG5cbiAgZ2V0IHVwTWludXRlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLnVwTWludXRlTGFiZWw7XG4gIH1cblxuICBnZXQgZG93bk1pbnV0ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5kb3duTWludXRlTGFiZWw7XG4gIH1cblxuICBnZXQgdXBTZWNvbmRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBpY2tlckludGwudXBTZWNvbmRMYWJlbDtcbiAgfVxuXG4gIGdldCBkb3duU2Vjb25kQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLmRvd25TZWNvbmRMYWJlbDtcbiAgfVxuXG4gIGdldCBob3VyMTJCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzUE0pIHtcbiAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwuaG91cjEyUE1MYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5ob3VyMTJBTUxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBnZXQgb3dsRFRUaW1lckNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IG93bERUVGltZVRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGVsbVJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBpY2tlckludGw6IE93bERhdGVUaW1lSW50bCxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZVRpbWVBZGFwdGVyPFQ+XG4gICkge31cblxuICAvKipcbiAgICogRm9jdXMgdG8gdGhlIGhvc3QgZWxlbWVudFxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVsbVJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaG91ciB2YWx1ZSB2aWEgdHlwaW5nIGludG8gdGltZXIgYm94IGlucHV0XG4gICAqIFdlIG5lZWQgdGhpcyB0byBoYW5kbGUgdGhlIGhvdXIgdmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgaW4gaG91cjEyIG1vZGVcbiAgICovXG4gIHB1YmxpYyBzZXRIb3VyVmFsdWVWaWFJbnB1dChob3VyczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgdGhpcy5pc1BNICYmIGhvdXJzID49IDEgJiYgaG91cnMgPD0gMTEpIHtcbiAgICAgIGhvdXJzID0gaG91cnMgKyAxMjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgIXRoaXMuaXNQTSAmJiBob3VycyA9PT0gMTIpIHtcbiAgICAgIGhvdXJzID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLnNldEhvdXJWYWx1ZShob3Vycyk7XG4gIH1cblxuICBwdWJsaWMgc2V0SG91clZhbHVlKGhvdXJzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0SG91cnModGhpcy5waWNrZXJNb21lbnQsIGhvdXJzKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobSk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNaW51dGVWYWx1ZShtaW51dGVzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0TWludXRlcyh0aGlzLnBpY2tlck1vbWVudCwgbWludXRlcyk7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG0pO1xuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2Vjb25kVmFsdWUoc2Vjb25kczogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQsIHNlY29uZHMpO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChtKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldE1lcmlkaWVtKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmlzUE0gPSAhdGhpcy5pc1BNO1xuXG4gICAgbGV0IGhvdXJzID0gdGhpcy5ob3VyVmFsdWU7XG4gICAgaWYgKHRoaXMuaXNQTSkge1xuICAgICAgaG91cnMgPSBob3VycyArIDEyO1xuICAgIH0gZWxzZSB7XG4gICAgICBob3VycyA9IGhvdXJzIC0gMTI7XG4gICAgfVxuXG4gICAgaWYgKGhvdXJzID49IDAgJiYgaG91cnMgPD0gMjMpIHtcbiAgICAgIHRoaXMuc2V0SG91clZhbHVlKGhvdXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHVwIGhvdXIgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyB1cEhvdXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5tYXhEYXRlVGltZSB8fCB0aGlzLmNvbXBhcmVIb3Vycyh0aGlzLnN0ZXBIb3VyLCB0aGlzLm1heERhdGVUaW1lKSA8IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGRvd24gaG91ciBidXR0b24gaXMgZW5hYmxlZFxuICAgKi9cbiAgcHVibGljIGRvd25Ib3VyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWluRGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlSG91cnMoLXRoaXMuc3RlcEhvdXIsIHRoaXMubWluRGF0ZVRpbWUpID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHVwIG1pbnV0ZSBidXR0b24gaXMgZW5hYmxlZFxuICAgKi9cbiAgcHVibGljIHVwTWludXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWF4RGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlTWludXRlcyh0aGlzLnN0ZXBNaW51dGUsIHRoaXMubWF4RGF0ZVRpbWUpIDwgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZG93biBtaW51dGUgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyBkb3duTWludXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWluRGF0ZVRpbWUgfHwgdGhpcy5jb21wYXJlTWludXRlcygtdGhpcy5zdGVwTWludXRlLCB0aGlzLm1pbkRhdGVUaW1lKSA+IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSB1cCBzZWNvbmQgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHB1YmxpYyB1cFNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm1heERhdGVUaW1lIHx8IHRoaXMuY29tcGFyZVNlY29uZHModGhpcy5zdGVwU2Vjb25kLCB0aGlzLm1heERhdGVUaW1lKSA8IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGRvd24gc2Vjb25kIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAqL1xuICBwdWJsaWMgZG93blNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm1pbkRhdGVUaW1lIHx8IHRoaXMuY29tcGFyZVNlY29uZHMoLXRoaXMuc3RlcFNlY29uZCwgdGhpcy5taW5EYXRlVGltZSkgPiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQaWNrZXJNb21lbnQncyBob3VyIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICovXG4gIHByaXZhdGUgY29tcGFyZUhvdXJzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0SG91cnModGhpcy5waWNrZXJNb21lbnQpICsgYW1vdW50O1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldEhvdXJzKHRoaXMucGlja2VyTW9tZW50LCBob3Vycyk7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUocmVzdWx0LCBjb21wYXJlZERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBpY2tlck1vbWVudCdzIG1pbnV0ZSB2YWx1ZSArLy0gY2VydGFpbiBhbW91bnQgYW5kIGNvbXBhcmUgaXQgdG8gdGhlIGdpdmUgZGF0ZVxuICAgKiAxIGlzIGFmdGVyIHRoZSBjb21wYXJlZERhdGVcbiAgICogLTEgaXMgYmVmb3JlIHRoZSBjb21wYXJlZERhdGVcbiAgICogMCBpcyBlcXVhbCB0aGUgY29tcGFyZWREYXRlXG4gICAqL1xuICBwcml2YXRlIGNvbXBhcmVNaW51dGVzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50KSArIGFtb3VudDtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50LCBtaW51dGVzKTtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuY29tcGFyZShyZXN1bHQsIGNvbXBhcmVkRGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogUGlja2VyTW9tZW50J3Mgc2Vjb25kIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICovXG4gIHByaXZhdGUgY29tcGFyZVNlY29uZHMoYW1vdW50OiBudW1iZXIsIGNvbXBhcmVkRGF0ZTogVCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpICsgYW1vdW50O1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQsIHNlY29uZHMpO1xuICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKHJlc3VsdCwgY29tcGFyZWREYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSB2YWxpZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWxpZERhdGUob2JqOiBhbnkpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiYgdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChvYmopID8gb2JqIDogbnVsbDtcbiAgfVxufVxuIiwiPG93bC1kYXRlLXRpbWUtdGltZXItYm94XG4gIFtib3hWYWx1ZV09XCJob3VyQm94VmFsdWVcIlxuICBbZG93bkJ0bkFyaWFMYWJlbF09XCJkb3duSG91ckJ1dHRvbkxhYmVsXCJcbiAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93bkhvdXJFbmFibGVkKClcIlxuICBbaW5wdXRMYWJlbF09XCInSG91cidcIlxuICBbbWF4XT1cIjIzXCJcbiAgW21pbl09XCIwXCJcbiAgW3N0ZXBdPVwic3RlcEhvdXJcIlxuICBbdXBCdG5BcmlhTGFiZWxdPVwidXBIb3VyQnV0dG9uTGFiZWxcIlxuICBbdXBCdG5EaXNhYmxlZF09XCIhdXBIb3VyRW5hYmxlZCgpXCJcbiAgW3ZhbHVlXT1cImhvdXJWYWx1ZVwiXG4gIChpbnB1dENoYW5nZSk9XCJzZXRIb3VyVmFsdWVWaWFJbnB1dCgkZXZlbnQpXCJcbiAgKHZhbHVlQ2hhbmdlKT1cInNldEhvdXJWYWx1ZSgkZXZlbnQpXCI+XG48L293bC1kYXRlLXRpbWUtdGltZXItYm94PlxuXG48b3dsLWRhdGUtdGltZS10aW1lci1ib3hcbiAgW2Rvd25CdG5BcmlhTGFiZWxdPVwiZG93bk1pbnV0ZUJ1dHRvbkxhYmVsXCJcbiAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93bk1pbnV0ZUVuYWJsZWQoKVwiXG4gIFtpbnB1dExhYmVsXT1cIidNaW51dGUnXCJcbiAgW21heF09XCI1OVwiXG4gIFttaW5dPVwiMFwiXG4gIFtzaG93RGl2aWRlcl09XCJ0cnVlXCJcbiAgW3N0ZXBdPVwic3RlcE1pbnV0ZVwiXG4gIFt1cEJ0bkFyaWFMYWJlbF09XCJ1cE1pbnV0ZUJ1dHRvbkxhYmVsXCJcbiAgW3VwQnRuRGlzYWJsZWRdPVwiIXVwTWludXRlRW5hYmxlZCgpXCJcbiAgW3ZhbHVlXT1cIm1pbnV0ZVZhbHVlXCJcbiAgKGlucHV0Q2hhbmdlKT1cInNldE1pbnV0ZVZhbHVlKCRldmVudClcIlxuICAodmFsdWVDaGFuZ2UpPVwic2V0TWludXRlVmFsdWUoJGV2ZW50KVwiPlxuPC9vd2wtZGF0ZS10aW1lLXRpbWVyLWJveD5cblxuQGlmIChzaG93U2Vjb25kc1RpbWVyKSB7XG4gIDxvd2wtZGF0ZS10aW1lLXRpbWVyLWJveFxuICAgIFtkb3duQnRuQXJpYUxhYmVsXT1cImRvd25TZWNvbmRCdXR0b25MYWJlbFwiXG4gICAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93blNlY29uZEVuYWJsZWQoKVwiXG4gICAgW2lucHV0TGFiZWxdPVwiJ1NlY29uZCdcIlxuICAgIFttYXhdPVwiNTlcIlxuICAgIFttaW5dPVwiMFwiXG4gICAgW3Nob3dEaXZpZGVyXT1cInRydWVcIlxuICAgIFtzdGVwXT1cInN0ZXBTZWNvbmRcIlxuICAgIFt1cEJ0bkFyaWFMYWJlbF09XCJ1cFNlY29uZEJ1dHRvbkxhYmVsXCJcbiAgICBbdXBCdG5EaXNhYmxlZF09XCIhdXBTZWNvbmRFbmFibGVkKClcIlxuICAgIFt2YWx1ZV09XCJzZWNvbmRWYWx1ZVwiXG4gICAgKGlucHV0Q2hhbmdlKT1cInNldFNlY29uZFZhbHVlKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRTZWNvbmRWYWx1ZSgkZXZlbnQpXCI+XG4gIDwvb3dsLWRhdGUtdGltZS10aW1lci1ib3g+XG59XG5cbkBpZiAoaG91cjEyVGltZXIpIHtcbiAgPGRpdiBjbGFzcz1cIm93bC1kdC10aW1lci1ob3VyMTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwic2V0TWVyaWRpZW0oJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cIm93bC1kdC1jb250cm9sLWJ1dHRvbiBvd2wtZHQtdGltZXItaG91cjEyLWJveFwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJvd2wtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAge3sgaG91cjEyQnV0dG9uTGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG59XG4iXX0=
|