@taiga-ui/legacy 4.17.0 → 4.18.0

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.
Files changed (44) hide show
  1. package/classes/control.d.ts +2 -0
  2. package/components/input-date/input-date.component.d.ts +1 -2
  3. package/components/input-date-range/input-date-range.component.d.ts +1 -2
  4. package/components/input-date-time/input-date-time.component.d.ts +1 -3
  5. package/components/input-time/input-time.component.d.ts +2 -1
  6. package/esm2022/classes/control.mjs +4 -1
  7. package/esm2022/components/input-date/input-date.component.mjs +7 -13
  8. package/esm2022/components/input-date/input-date.directive.mjs +1 -4
  9. package/esm2022/components/input-date-range/input-date-range.component.mjs +12 -18
  10. package/esm2022/components/input-date-time/input-date-time.component.mjs +12 -24
  11. package/esm2022/components/input-number/input-number.component.mjs +8 -1
  12. package/esm2022/components/input-tag/input-tag.component.mjs +2 -2
  13. package/esm2022/components/input-time/input-time.component.mjs +6 -3
  14. package/esm2022/components/multi-select/multi-select-group/multi-select-group.directive.mjs +31 -14
  15. package/esm2022/components/multi-select-option/multi-select-option.component.mjs +3 -3
  16. package/esm2022/components/primitive-textfield/textfield/textfield.component.mjs +2 -2
  17. package/esm2022/components/select-option/select-option.component.mjs +2 -2
  18. package/esm2022/components/sheet/components/sheet-bar/sheet-bar.component.mjs +3 -3
  19. package/fesm2022/taiga-ui-legacy-classes.mjs +3 -0
  20. package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +11 -17
  22. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +11 -23
  24. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +6 -15
  26. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +7 -0
  28. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +2 -2
  30. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +5 -2
  32. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +2 -2
  34. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +30 -14
  36. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +2 -2
  38. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +1 -1
  40. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-legacy-components-sheet.mjs +2 -2
  42. package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +1 -1
  43. package/package.json +7 -7
  44. package/utils/icons-path-factory.d.ts +1 -1
@@ -2,6 +2,7 @@ import type { OnInit, Provider, Type } from '@angular/core';
2
2
  import { ChangeDetectorRef, DestroyRef } from '@angular/core';
3
3
  import type { AbstractControl, ControlValueAccessor } from '@angular/forms';
4
4
  import { TuiValueTransformer } from '@taiga-ui/cdk/classes';
5
+ import { Subject } from 'rxjs';
5
6
  import { AbstractTuiInteractive } from './interactive';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
@@ -20,6 +21,7 @@ export declare abstract class AbstractTuiControl<T> extends AbstractTuiInteracti
20
21
  protected readonly valueTransformer: TuiValueTransformer<T, unknown> | null;
21
22
  readOnly: boolean;
22
23
  pseudoInvalid: boolean | null;
24
+ readonly update$: Subject<void>;
23
25
  constructor();
24
26
  protected abstract getFallbackValue(): T;
25
27
  get computedInvalid(): boolean;
@@ -17,6 +17,7 @@ export declare class TuiInputDateComponent extends AbstractTuiNullableControl<Tu
17
17
  private readonly textfieldSize;
18
18
  private readonly mobileCalendar;
19
19
  private month;
20
+ private readonly nativeValue;
20
21
  min: TuiDay | null;
21
22
  max: TuiDay | null;
22
23
  disabledItemHandler: TuiBooleanHandler<TuiDay>;
@@ -35,8 +36,6 @@ export declare class TuiInputDateComponent extends AbstractTuiNullableControl<Tu
35
36
  get computedMax(): TuiDay;
36
37
  get nativeFocusableElement(): HTMLInputElement | null;
37
38
  get focused(): boolean;
38
- get nativeValue(): string;
39
- set nativeValue(value: string);
40
39
  get computedValue(): string;
41
40
  onValueChange(value: string): void;
42
41
  setDisabledState(): void;
@@ -16,6 +16,7 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
16
16
  private readonly mobileCalendar;
17
17
  private readonly options;
18
18
  private readonly textfieldSize;
19
+ private readonly nativeValue;
19
20
  protected readonly dateTexts$: import("rxjs").Observable<Record<TuiDateMode, string>>;
20
21
  protected readonly valueTransformer: import("@taiga-ui/cdk/classes").TuiValueTransformer<TuiDayRange | null, unknown> | null;
21
22
  protected readonly dateFiller$: import("rxjs").Observable<string>;
@@ -47,8 +48,6 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
47
48
  protected get showValueTemplate(): boolean;
48
49
  protected get computedContent(): PolymorpheusContent;
49
50
  protected get innerPseudoFocused(): boolean | null;
50
- protected get nativeValue(): string;
51
- protected set nativeValue(value: string);
52
51
  protected getComputedRangeFiller(dateFiller: string): string;
53
52
  protected onIconClick(): void;
54
53
  protected onOpenChange(open: boolean): void;
@@ -16,6 +16,7 @@ export declare class TuiInputDateTimeComponent extends AbstractTuiControl<[TuiDa
16
16
  private readonly textfieldSize;
17
17
  private month;
18
18
  private readonly timeMode$;
19
+ private readonly nativeValue;
19
20
  protected readonly timeTexts$: Observable<{
20
21
  'HH:MM': string;
21
22
  'HH:MM AA': string;
@@ -58,8 +59,6 @@ export declare class TuiInputDateTimeComponent extends AbstractTuiControl<[TuiDa
58
59
  protected get calendarMinDay(): TuiDay;
59
60
  protected get calendarMaxDay(): TuiDay;
60
61
  protected get computedActiveYearMonth(): TuiMonth;
61
- protected get nativeValue(): string;
62
- protected set nativeValue(value: string);
63
62
  protected onClick(): void;
64
63
  protected onDayClick(day: TuiDay): void;
65
64
  protected onMonthChange(month: TuiMonth): void;
@@ -70,7 +69,6 @@ export declare class TuiInputDateTimeComponent extends AbstractTuiControl<[TuiDa
70
69
  private get nativePicker();
71
70
  private calculateMask;
72
71
  private getDateTimeString;
73
- private updateNativeValue;
74
72
  private clampTime;
75
73
  private trimTrailingSeparator;
76
74
  private toNativeDate;
@@ -22,6 +22,7 @@ export declare class TuiInputTimeComponent extends AbstractTuiNullableControl<Tu
22
22
  protected open: boolean;
23
23
  disabledItemHandler: TuiBooleanHandler<TuiTime>;
24
24
  items: readonly TuiTime[];
25
+ itemsHidden: boolean;
25
26
  itemSize: TuiInputTimeOptions['itemSize'];
26
27
  strict: boolean;
27
28
  mode: TuiInputTimeOptions['mode'];
@@ -55,5 +56,5 @@ export declare class TuiInputTimeComponent extends AbstractTuiNullableControl<Tu
55
56
  private getMatch;
56
57
  private focusInput;
57
58
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputTimeComponent, never>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputTimeComponent, "tui-input-time", never, { "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "items": { "alias": "items"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "strict": { "alias": "strict"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }]>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputTimeComponent, "tui-input-time", never, { "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "items": { "alias": "items"; "required": false; }; "itemsHidden": { "alias": "itemsHidden"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "strict": { "alias": "strict"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }]>;
59
60
  }
@@ -25,6 +25,8 @@ class AbstractTuiControl extends AbstractTuiInteractive {
25
25
  this.valueTransformer = inject(TuiValueTransformer, { optional: true });
26
26
  this.readOnly = false;
27
27
  this.pseudoInvalid = null;
28
+ // Workaround for legacy control to notify of internal change in case updateOn: 'blur' is used
29
+ this.update$ = new Subject();
28
30
  if (ngDevMode && this.ngControl === null) {
29
31
  console.assert(false, `NgControl not injected in ${this.constructor.name}!\n`, 'Use [(ngModel)] or [formControl] or formControlName for correct work.');
30
32
  }
@@ -43,6 +45,7 @@ class AbstractTuiControl extends AbstractTuiInteractive {
43
45
  }
44
46
  set value(value) {
45
47
  this.updateValue(value);
48
+ this.update$.next();
46
49
  }
47
50
  get safeCurrentValue() {
48
51
  return this.rawValue ?? this.fallbackValue;
@@ -174,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
174
177
  export function tuiAsControl(control) {
175
178
  return [tuiProvide(AbstractTuiControl, control), tuiProvide(TuiControl, control)];
176
179
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jbGFzc2VzL2NvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUNILEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUVyRDs7O0dBR0c7QUFDSCxNQU9zQixrQkFDbEIsU0FBUSxzQkFBc0I7SUF1QjlCO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFyQkssY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVoRCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0QyxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUMs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QkFDSjswRUFvQlUsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7O0FBME1WLE1BQU0sVUFBVSxZQUFZLENBQUksT0FBb0M7SUFDaEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiQHRhaWdhLXVpL3RzY29uZmlnL25nLWRldi1tb2RlXCIgLz5cbmltcG9ydCB0eXBlIHtPbkluaXQsIFByb3ZpZGVyLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHR5cGUge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1R1aUNvbnRyb2wsIFR1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0VNUFRZX0ZVTkNUSU9OfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUlzUHJlc2VudCwgdHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7XG4gICAgZGVsYXksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgRU1QVFksXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBzdGFydFdpdGgsXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpSW50ZXJhY3RpdmV9IGZyb20gJy4vaW50ZXJhY3RpdmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjBcbiAqIEJhc2ljIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNsYXNzIHRvIGJ1aWxkIGZvcm0gY29tcG9uZW50cyB1cG9uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fcmVhZG9ubHldJzogJ3JlYWRPbmx5JyxcbiAgICAgICAgJ1tjbGFzcy5faW52YWxpZF0nOiAnY29tcHV0ZWRJbnZhbGlkJyxcbiAgICB9LFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFR1aUNvbnRyb2w8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcHJldmlvdXNJbnRlcm5hbFZhbHVlPzogVCB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkID0gRU1QVFlfRlVOQ1RJT047XG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gRU1QVFlfRlVOQ1RJT047XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhbGxiYWNrVmFsdWUgPSB0aGlzLmdldEZhbGxiYWNrVmFsdWUoKTtcbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lciA9IGluamVjdDxUdWlWYWx1ZVRyYW5zZm9ybWVyPFQ+PihcbiAgICAgICAgVHVpVmFsdWVUcmFuc2Zvcm1lcixcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBzZXVkb0ludmFsaWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmIChuZ0Rldk1vZGUgJiYgdGhpcy5uZ0NvbnRyb2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIGBOZ0NvbnRyb2wgbm90IGluamVjdGVkIGluICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSFcXG5gLFxuICAgICAgICAgICAgICAgICdVc2UgWyhuZ01vZGVsKV0gb3IgW2Zvcm1Db250cm9sXSBvciBmb3JtQ29udHJvbE5hbWUgZm9yIGNvcnJlY3Qgd29yay4nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBUO1xuXG4gICAgcHVibGljIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmludGVyYWN0aXZlICYmXG4gICAgICAgICAgICAodGhpcy5wc2V1ZG9JbnZhbGlkICE9PSBudWxsXG4gICAgICAgICAgICAgICAgPyB0aGlzLnBzZXVkb0ludmFsaWRcbiAgICAgICAgICAgICAgICA6IHRoaXMudG91Y2hlZCAmJiB0aGlzLmludmFsaWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2FmZUN1cnJlbnRWYWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3VmFsdWUgPz8gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHtpbnZhbGlkfSkgPT4gaW52YWxpZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7dmFsaWR9KSA9PiB2YWxpZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHt0b3VjaGVkfSkgPT4gdG91Y2hlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7ZGlzYWJsZWR9KSA9PiBkaXNhYmxlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZERpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8QWJzdHJhY3RDb250cm9sIHwgbnVsbD4oXG4gICAgICAgICAgICAoe2NvbnRyb2x9KSA9PiBjb250cm9sLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXB1dGVkTmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbE5hbWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRyb2xOYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/Lm5hbWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlbGF5KDApLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChjb250cm9sKSA9PlxuICAgICAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zdGF0dXNDaGFuZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRyb2wgYXMgYW55KS5ldmVudHMgfHwgRU1QVFksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaExvY2FsVmFsdWUodGhpcy5zYWZlQ3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0NvbnRyb2xVcGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IChjb21wb25lbnRWYWx1ZTogVCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UodGhpcy50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwgJiYgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdGhpcy5uZ0NvbnRyb2wubW9kZWxcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaExvY2FsVmFsdWUodGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xNYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgdmFsdWVgIHNldHRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcih0aGlzLnZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29udHJvbFNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKG9sZFZhbHVlOiBULCBuZXdWYWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb2xkVmFsdWUgPT09IG5ld1ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHJhd1ZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCB7bmdDb250cm9sfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKG5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsICYmIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IG5nQ29udHJvbC52aWV3TW9kZWxcbiAgICAgICAgICAgICAgICA6IG5nQ29udHJvbC52YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlTmdDb250cm9sRGF0YTxUPihcbiAgICAgICAgZXh0cmFjdG9yOiAobmdDb250cm9sOiBOZ0NvbnRyb2wpID0+IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICBkZWZhdWx0RmllbGRWYWx1ZTogVCxcbiAgICApOiBUIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbCAmJiBleHRyYWN0b3IodGhpcy5uZ0NvbnRyb2wpKSA/PyBkZWZhdWx0RmllbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xNYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udHJvbFNldFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaExvY2FsVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZTogdW5rbm93bik6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVUcmFuc2Zvcm1lci5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSlcbiAgICAgICAgICAgIDogKGNvbnRyb2xWYWx1ZSBhcyBUKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvQ29udHJvbFZhbHVlKGNvbXBvbmVudFZhbHVlOiBUKTogdW5rbm93biB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlVHJhbnNmb3JtZXJcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVRyYW5zZm9ybWVyLnRvQ29udHJvbFZhbHVlKGNvbXBvbmVudFZhbHVlKVxuICAgICAgICAgICAgOiBjb21wb25lbnRWYWx1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlBc0NvbnRyb2w8VD4oY29udHJvbDogVHlwZTxBYnN0cmFjdFR1aUNvbnRyb2w8VD4+KTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFt0dWlQcm92aWRlKEFic3RyYWN0VHVpQ29udHJvbCwgY29udHJvbCksIHR1aVByb3ZpZGUoVHVpQ29udHJvbCwgY29udHJvbCldO1xufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jbGFzc2VzL2NvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUNILEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUVyRDs7O0dBR0c7QUFDSCxNQU9zQixrQkFDbEIsU0FBUSxzQkFBc0I7SUEwQjlCO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF4QkssY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVoRCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0QyxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUMs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LFVBQVUsRUFBRSxLQUFLO29CQUNqQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsVUFBVTt3QkFDL0Isa0JBQWtCLEVBQUUsaUJBQWlCO3FCQUN4QztpQkFDSjswRUFvQlUsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7O0FBOE1WLE1BQU0sVUFBVSxZQUFZLENBQUksT0FBb0M7SUFDaEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiQHRhaWdhLXVpL3RzY29uZmlnL25nLWRldi1tb2RlXCIgLz5cbmltcG9ydCB0eXBlIHtPbkluaXQsIFByb3ZpZGVyLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHR5cGUge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1R1aUNvbnRyb2wsIFR1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge0VNUFRZX0ZVTkNUSU9OfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUlzUHJlc2VudCwgdHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7XG4gICAgZGVsYXksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgRU1QVFksXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBzdGFydFdpdGgsXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpSW50ZXJhY3RpdmV9IGZyb20gJy4vaW50ZXJhY3RpdmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjBcbiAqIEJhc2ljIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNsYXNzIHRvIGJ1aWxkIGZvcm0gY29tcG9uZW50cyB1cG9uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fcmVhZG9ubHldJzogJ3JlYWRPbmx5JyxcbiAgICAgICAgJ1tjbGFzcy5faW52YWxpZF0nOiAnY29tcHV0ZWRJbnZhbGlkJyxcbiAgICB9LFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFR1aUNvbnRyb2w8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcHJldmlvdXNJbnRlcm5hbFZhbHVlPzogVCB8IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkID0gRU1QVFlfRlVOQ1RJT047XG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gRU1QVFlfRlVOQ1RJT047XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhbGxiYWNrVmFsdWUgPSB0aGlzLmdldEZhbGxiYWNrVmFsdWUoKTtcbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lciA9IGluamVjdDxUdWlWYWx1ZVRyYW5zZm9ybWVyPFQ+PihcbiAgICAgICAgVHVpVmFsdWVUcmFuc2Zvcm1lcixcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBzZXVkb0ludmFsaWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFdvcmthcm91bmQgZm9yIGxlZ2FjeSBjb250cm9sIHRvIG5vdGlmeSBvZiBpbnRlcm5hbCBjaGFuZ2UgaW4gY2FzZSB1cGRhdGVPbjogJ2JsdXInIGlzIHVzZWRcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAobmdEZXZNb2RlICYmIHRoaXMubmdDb250cm9sID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmFzc2VydChcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBgTmdDb250cm9sIG5vdCBpbmplY3RlZCBpbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX0hXFxuYCxcbiAgICAgICAgICAgICAgICAnVXNlIFsobmdNb2RlbCldIG9yIFtmb3JtQ29udHJvbF0gb3IgZm9ybUNvbnRyb2xOYW1lIGZvciBjb3JyZWN0IHdvcmsuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEZhbGxiYWNrVmFsdWUoKTogVDtcblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2ZSAmJlxuICAgICAgICAgICAgKHRoaXMucHNldWRvSW52YWxpZCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgID8gdGhpcy5wc2V1ZG9JbnZhbGlkXG4gICAgICAgICAgICAgICAgOiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5pbnZhbGlkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA/PyB0aGlzLmZhbGxiYWNrVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGUkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNhZmVDdXJyZW50VmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhd1ZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7aW52YWxpZH0pID0+IGludmFsaWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe3ZhbGlkfSkgPT4gdmFsaWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7dG91Y2hlZH0pID0+IHRvdWNoZWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe2Rpc2FibGVkfSkgPT4gZGlzYWJsZWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPEFic3RyYWN0Q29udHJvbCB8IG51bGw+KFxuICAgICAgICAgICAgKHtjb250cm9sfSkgPT4gY29udHJvbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wdXRlZE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xOYW1lPy50b1N0cmluZygpID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250cm9sTmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5uYW1lPy50b1N0cmluZygpID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZnJlc2gkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMubmdDb250cm9sPy5jb250cm9sKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoY29udHJvbCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb250cm9sIGFzIGFueSkuZXZlbnRzIHx8IEVNUFRZLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hMb2NhbFZhbHVlKHRoaXMuc2FmZUN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tDb250cm9sVXBkYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAoY29tcG9uZW50VmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlKHRoaXMudG9Db250cm9sVmFsdWUoY29tcG9uZW50VmFsdWUpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPVxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsICYmIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMubmdDb250cm9sLm1vZGVsXG4gICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuICAgICAgICB0aGlzLnJlZnJlc2hMb2NhbFZhbHVlKHRoaXMuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sTWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYHZhbHVlYCBzZXR0ZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy52YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IodGhpcy52YWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRyb2xTZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihvbGRWYWx1ZTogVCwgbmV3VmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlID09PSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByYXdWYWx1ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3Qge25nQ29udHJvbH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChuZ0NvbnRyb2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPVxuICAgICAgICAgICAgbmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCAmJiB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBuZ0NvbnRyb2wudmlld01vZGVsXG4gICAgICAgICAgICAgICAgOiBuZ0NvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZU5nQ29udHJvbERhdGE8VD4oXG4gICAgICAgIGV4dHJhY3RvcjogKG5nQ29udHJvbDogTmdDb250cm9sKSA9PiBUIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdEZpZWxkVmFsdWU6IFQsXG4gICAgKTogVCB7XG4gICAgICAgIHJldHVybiAodGhpcy5uZ0NvbnRyb2wgJiYgZXh0cmFjdG9yKHRoaXMubmdDb250cm9sKSkgPz8gZGVmYXVsdEZpZWxkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250cm9sTWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xTZXRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hMb2NhbFZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWU6IHVua25vd24pOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVUcmFuc2Zvcm1lclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlVHJhbnNmb3JtZXIuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpXG4gICAgICAgICAgICA6IChjb250cm9sVmFsdWUgYXMgVCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZTogVCk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVUcmFuc2Zvcm1lci50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSlcbiAgICAgICAgICAgIDogY29tcG9uZW50VmFsdWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpQXNDb250cm9sPFQ+KGNvbnRyb2w6IFR5cGU8QWJzdHJhY3RUdWlDb250cm9sPFQ+Pik6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbdHVpUHJvdmlkZShBYnN0cmFjdFR1aUNvbnRyb2wsIGNvbnRyb2wpLCB0dWlQcm92aWRlKFR1aUNvbnRyb2wsIGNvbnRyb2wpXTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/member-ordering */
3
- import { ChangeDetectionStrategy, Component, inject, Input, ViewChild, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, inject, Input, signal, ViewChild, } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { MASKITO_DEFAULT_OPTIONS } from '@maskito/core';
6
6
  import { maskitoDateOptionsGenerator } from '@maskito/kit';
@@ -38,6 +38,7 @@ class TuiInputDateComponent extends AbstractTuiNullableControl {
38
38
  this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
39
39
  this.mobileCalendar = inject(TUI_MOBILE_CALENDAR, { optional: true });
40
40
  this.month = null;
41
+ this.nativeValue = signal('');
41
42
  this.min = this.options.min;
42
43
  this.max = this.options.max;
43
44
  this.disabledItemHandler = TUI_FALSE_HANDLER;
@@ -70,14 +71,6 @@ class TuiInputDateComponent extends AbstractTuiNullableControl {
70
71
  get focused() {
71
72
  return !!this.textfield?.focused;
72
73
  }
73
- get nativeValue() {
74
- return this.nativeFocusableElement?.value || '';
75
- }
76
- set nativeValue(value) {
77
- if (this.nativeFocusableElement) {
78
- this.nativeFocusableElement.value = value;
79
- }
80
- }
81
74
  get computedValue() {
82
75
  const { value, nativeValue, activeItem } = this;
83
76
  if (activeItem) {
@@ -85,9 +78,10 @@ class TuiInputDateComponent extends AbstractTuiNullableControl {
85
78
  }
86
79
  return value
87
80
  ? value.toString(this.dateFormat.mode, this.dateFormat.separator)
88
- : nativeValue;
81
+ : nativeValue();
89
82
  }
90
83
  onValueChange(value) {
84
+ this.nativeValue.set(value);
91
85
  if (this.control) {
92
86
  this.control.updateValueAndValidity({ emitEvent: false });
93
87
  }
@@ -95,7 +89,7 @@ class TuiInputDateComponent extends AbstractTuiNullableControl {
95
89
  this.onOpenChange(true);
96
90
  }
97
91
  if (this.activeItem) {
98
- this.nativeValue = '';
92
+ this.nativeValue.set('');
99
93
  }
100
94
  this.value =
101
95
  value.length !== DATE_FILLER_LENGTH || this.activeItem
@@ -108,7 +102,7 @@ class TuiInputDateComponent extends AbstractTuiNullableControl {
108
102
  }
109
103
  writeValue(value) {
110
104
  super.writeValue(value);
111
- this.nativeValue = value ? this.computedValue : '';
105
+ this.nativeValue.set(value ? this.computedValue : '');
112
106
  }
113
107
  get size() {
114
108
  return this.textfieldSize.size;
@@ -216,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
216
210
  }], defaultActiveYearMonth: [{
217
211
  type: Input
218
212
  }], computeMaskOptions: [] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsR0FDWCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUNILG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsT0FBTyxHQUNWLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFDLGVBQWUsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRy9FLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBC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USxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFsQmpDLFNBQVM7aUNBQ00sS0FBSyxZQUNQLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwwQkFBMEIsdUJBQXVCO3dCQUNqRCxZQUFZLENBQUMscUJBQTRCLENBQUM7d0JBQzFDLGtCQUFrQix1QkFBdUI7d0JBQ3pDLDRCQUE0QixDQUFDLDBCQUEwQixDQUFDO3dCQUN4RCw0QkFBNEI7cUJBQy9CLFFBQ0s7d0JBQ0Ysa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCOzhCQU9nQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFTbEMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQXNMRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgdHlwZSB7TWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHtNQVNLSVRPX0RFRkFVTFRfT1BUSU9OU30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7dHVpQXNDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfRkFMU0VfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge1R1aURhdGVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge1xuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBUVUlfTEFTVF9ESVNQTEFZRURfREFZLFxuICAgIHR1aURhdGVDbGFtcCxcbiAgICBUdWlEYXksXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB0eXBlIHtUdWlBY3RpdmVab25lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYWN0aXZlLXpvbmUnO1xuaW1wb3J0IHt0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlCb29sZWFuSGFuZGxlciwgVHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge1xuICAgIGNoYW5nZURhdGVTZXBhcmF0b3IsXG4gICAgdHVpTnVsbGFibGVTYW1lLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpTWFya2VySGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQge1RVSV9EQVRFX0ZPUk1BVCwgVFVJX0RFRkFVTFRfREFURV9GT1JNQVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VHVpSW5wdXREYXRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfSU5QVVRfREFURV9PUFRJT05TLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpTmFtZWREYXl9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCBhcyB0dWlBc0xlZ2FjeUNvbnRyb2wsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX1NJWkV9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge1RVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3V0aWxzJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZTpub3QoW211bHRpcGxlXSknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXREYXRlQ29tcG9uZW50IGFzIGFueSksXG4gICAgICAgIHR1aUFzTGVnYWN5Q29udHJvbChUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICAgICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUdWlEYXk+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfSU5QVVRfREFURV9PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUNhbGVuZGFyID0gaW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW46IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4OiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBUVUlfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiByZWFkb25seSBUdWlOYW1lZERheVtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0QWN0aXZlWWVhck1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBwdWJsaWMgZGF0ZUZvcm1hdCA9IFRVSV9ERUZBVUxUX0RBVEVfRk9STUFUO1xuICAgIHByb3RlY3RlZCBvcGVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUZXh0cyQgPSBpbmplY3QoVFVJX0RBVEVfVEVYVFMpO1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyID0gaW5qZWN0KFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0eXBlITogVHVpQ29udGV4dDxUdWlBY3RpdmVab25lPjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsbGVyJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0ZVRleHRzKSA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihcbiAgICAgICAgICAgICAgICBkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0Lm1vZGVdLFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IsXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZUZvcm1hdCQgPSBpbmplY3QoVFVJX0RBVEVfRk9STUFUKVxuICAgICAgICAucGlwZSh0dWlXYXRjaCh0aGlzLmNkciksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAuc3Vic2NyaWJlKChmb3JtYXQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IGZvcm1hdDtcbiAgICAgICAgfSk7XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyB0aGlzLm9wdGlvbnMubWluO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IHRoaXMub3B0aW9ucy5tYXg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnZhbHVlIHx8ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCBhY3RpdmVJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgID8gdmFsdWUudG9TdHJpbmcodGhpcy5kYXRlRm9ybWF0Lm1vZGUsIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IpXG4gICAgICAgICAgICA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUgJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggIT09IERBVEVfRklMTEVSX0xFTkdUSCB8fCB0aGlzLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IFR1aURheS5ub3JtYWxpemVQYXJzZSh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0Lm1vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBUdWlEYXkgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUgPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG5hdGl2ZVBpY2tlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVQaWNrZXIgJiYgdGhpcy5pc01vYmlsZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhbGVuZGFySWNvbigpOiBUdWlJbnB1dERhdGVPcHRpb25zWydpY29uJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGNvbnN0IGNsYW1wZWREYXRlID0gdHVpRGF0ZUNsYW1wKFxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1pbixcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRNYXgsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWU/LmRheUFmdGVyKFRVSV9MQVNUX0RJU1BMQVlFRF9EQVkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb250aCB8fCBjbGFtcGVkRGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWU/LmRheVNhbWUodGhpcy5pdGVtc1swXS5kYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1swXS5kaXNwbGF5RGF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGggfHwgdGhpcy52YWx1ZSB8fCBjbGFtcGVkRGF0ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWFzaygpOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgID8gTUFTS0lUT19ERUZBVUxUX09QVElPTlNcbiAgICAgICAgICAgIDogdGhpcy5jb21wdXRlTWFza09wdGlvbnMoXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQubW9kZSxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVkTWluLFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1heCxcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZGF5LmRheVNhbWUodmFsdWUpKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSWNvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGF5Q2xpY2sodmFsdWU6IFR1aURheSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBUdWlNb250aCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKFxuICAgICAgICBvbGRWYWx1ZTogVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgbmV3VmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlOdWxsYWJsZVNhbWUob2xkVmFsdWUsIG5ld1ZhbHVlLCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY29tcHV0ZU1hc2tPcHRpb25zKFxuICAgICAgICBtb2RlOiBUdWlEYXRlTW9kZSxcbiAgICAgICAgc2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIG1pbjogVHVpRGF5LFxuICAgICAgICBtYXg6IFR1aURheSxcbiAgICApOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgc2VwYXJhdG9yLFxuICAgICAgICAgICAgbW9kZTogVFVJX0RBVEVfTU9ERV9NQVNLSVRPX0FEQVBURVJbbW9kZV0sXG4gICAgICAgICAgICBtaW46IG1pbi50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICAgICAgbWF4OiBtYXgudG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZVBpY2tlclwiXG4gICAgW3R1aURyb3Bkb3duT3Blbl09XCJvcGVuXCJcbiAgICAodHVpRHJvcGRvd25PcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgKnR1aUxldD1cImZpbGxlciQgfCBhc3luYyBhcyBmaWxsZXJcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGUtcmFuZ2VfX3RleHRmaWVsZFwiXG4gICAgICAgIHR1aVZhbHVlQWNjZXNzb3JcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJjb21wdXRlZEZvY3VzYWJsZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFttYXNraXRvXT1cImNvbXB1dGVkTWFza1wiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRGaWxsZXJdPVwiZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyIHx8ICcnKVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImNhbGVuZGFySWNvbiAmJiBpY29uQ29udGVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAgICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgLz5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uQ29udGVudD5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX19pY29uXCJcbiAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fc21hbGxdPVwic2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwibmF0aXZlUGlja2VyXCJcbiAgICAgICAgICAgIHR1aURhdGVcbiAgICAgICAgICAgIGNsYXNzPVwidC1uYXRpdmUtaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2Ryb3Bkb3duPVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgW3BvbHltb3JwaGV1c109XCJ0eXBlXCJcbiAgICA+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZV9fY2FsZW5kYXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhcIlxuICAgICAgICAgICAgW21pbl09XCJjb21wdXRlZE1pblwiXG4gICAgICAgICAgICBbbW9udGhdPVwiY29tcHV0ZWRBY3RpdmVZZWFyTW9udGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm9uTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2Vkb3duLnByZXZlbnQuc2lsZW50KT1cIigwKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAxXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50LnNpbGVudCk9XCIoMClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtc1swXSAmJiBvbkRheUNsaWNrKGl0ZW1zWzBdLmRheSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW1zWzBdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEdBQ1gsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLE9BQU8sR0FDVixNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRSxPQUFPLEVBQ0gsY0FBYyxF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ekIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwwQkFBMEIsdUJBQXVCO3dCQUNqRCxZQUFZLENBQUMscUJBQTRCLENBQUM7d0JBQzFDLGtCQUFrQix1QkFBdUI7d0JBQ3pDLDRCQUE0QixDQUFDLDBCQUEwQixDQUFDO3dCQUN4RCw0QkFBNEI7cUJBQy9CLFFBQ0s7d0JBQ0Ysa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCOzhCQU9nQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFVbEMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQThLRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHR5cGUge01hc2tpdG9PcHRpb25zfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7TUFTS0lUT19ERUZBVUxUX09QVElPTlN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge3R1aUFzQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0ZBTFNFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRlTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgVFVJX0xBU1RfRElTUExBWUVEX0RBWSxcbiAgICB0dWlEYXRlQ2xhbXAsXG4gICAgVHVpRGF5LFxuICAgIFR1aU1vbnRoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQgdHlwZSB7VHVpQWN0aXZlWm9uZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FjdGl2ZS16b25lJztcbmltcG9ydCB7dHVpV2F0Y2h9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXIsIFR1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIHR1aU51bGxhYmxlU2FtZSxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aU1hcmtlckhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHtUVUlfREFURV9GT1JNQVQsIFRVSV9ERUZBVUxUX0RBVEVfRk9STUFUfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUlucHV0RGF0ZU9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIsXG4gICAgVFVJX0lOUFVUX0RBVEVfT1BUSU9OUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVJfUFJPVklERVIsXG4gICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aU5hbWVkRGF5fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICB0dWlBc0NvbnRyb2wgYXMgdHVpQXNMZWdhY3lDb250cm9sLFxufSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkJztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9TSVpFfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHR5cGUge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHt0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHtUVUlfREFURV9NT0RFX01BU0tJVE9fQURBUFRFUn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS91dGlscyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGU6bm90KFttdWx0aXBsZV0pJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXREYXRlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0RGF0ZUNvbXBvbmVudCBhcyBhbnkpLFxuICAgICAgICB0dWlBc0xlZ2FjeUNvbnRyb2woVHVpSW5wdXREYXRlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcihUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUiksXG4gICAgICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVJfUFJPVklERVIsXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgICAgICAnKGNsaWNrKSc6ICdvbkNsaWNrKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX0RBVEVfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplID0gaW5qZWN0KFRVSV9URVhURklFTERfU0laRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhciA9IGluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlVmFsdWUgPSBzaWduYWwoJycpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heDogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gVFVJX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtczogcmVhZG9ubHkgVHVpTmFtZWREYXlbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgcHVibGljIGRhdGVGb3JtYXQgPSBUVUlfREVGQVVMVF9EQVRFX0ZPUk1BVDtcbiAgICBwcm90ZWN0ZWQgb3BlbiA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRlVGV4dHMkID0gaW5qZWN0KFRVSV9EQVRFX1RFWFRTKTtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lciA9IGluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUiwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSE6IFR1aUNvbnRleHQ8VHVpQWN0aXZlWm9uZT47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbGxlciQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoKGRhdGVUZXh0cykgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoXG4gICAgICAgICAgICAgICAgZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdC5tb2RlXSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQuc2VwYXJhdG9yLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVGb3JtYXQkID0gaW5qZWN0KFRVSV9EQVRFX0ZPUk1BVClcbiAgICAgICAgLnBpcGUodHVpV2F0Y2godGhpcy5jZHIpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBmb3JtYXQ7XG4gICAgICAgIH0pO1xuXG4gICAgcHVibGljIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyB0aGlzLm9wdGlvbnMubWF4O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZUl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB2YWx1ZS50b1N0cmluZyh0aGlzLmRhdGVGb3JtYXQubW9kZSwgdGhpcy5kYXRlRm9ybWF0LnNlcGFyYXRvcilcbiAgICAgICAgICAgIDogbmF0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUuc2V0KHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiAhdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNldCgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIIHx8IHRoaXMuYWN0aXZlSXRlbVxuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHZhbHVlLCB0aGlzLmRhdGVGb3JtYXQubW9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUuc2V0KHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbmF0aXZlUGlja2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hdGl2ZVBpY2tlciAmJiB0aGlzLmlzTW9iaWxlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FsZW5kYXJJY29uKCk6IFR1aUlucHV0RGF0ZU9wdGlvbnNbJ2ljb24nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgY2xhbXBlZERhdGUgPSB0dWlEYXRlQ2xhbXAoXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGgsXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkTWluLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1heCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZT8uZGF5QWZ0ZXIoVFVJX0xBU1RfRElTUExBWUVEX0RBWSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IGNsYW1wZWREYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbXNbMF0gJiYgdGhpcy52YWx1ZT8uZGF5U2FtZSh0aGlzLml0ZW1zWzBdLmRheSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zWzBdLmRpc3BsYXlEYXk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tb250aCB8fCB0aGlzLnZhbHVlIHx8IGNsYW1wZWREYXRlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNYXNrKCk6IE1hc2tpdG9PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbVxuICAgICAgICAgICAgPyBNQVNLSVRPX0RFRkFVTFRfT1BUSU9OU1xuICAgICAgICAgICAgOiB0aGlzLmNvbXB1dGVNYXNrT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5tb2RlLFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LnNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRNaW4sXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVkTWF4LFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYWN0aXZlSXRlbSgpOiBUdWlOYW1lZERheSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gKHZhbHVlICYmIHRoaXMuaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5kYXkuZGF5U2FtZSh2YWx1ZSkpKSB8fCBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDb21wdXRlZEZpbGxlcihmaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyAnJyA6IGZpbGxlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JY29uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBuZXdWYWx1ZTogVHVpRGF5IHwgbnVsbCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aU51bGxhYmxlU2FtZShvbGRWYWx1ZSwgbmV3VmFsdWUsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTWFza09wdGlvbnMoXG4gICAgICAgIG1vZGU6IFR1aURhdGVNb2RlLFxuICAgICAgICBzZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgbWluOiBUdWlEYXksXG4gICAgICAgIG1heDogVHVpRGF5LFxuICAgICk6IE1hc2tpdG9PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7XG4gICAgICAgICAgICBzZXBhcmF0b3IsXG4gICAgICAgICAgICBtb2RlOiBUVUlfREFURV9NT0RFX01BU0tJVE9fQURBUFRFUlttb2RlXSxcbiAgICAgICAgICAgIG1pbjogbWluLnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgICAgICBtYXg6IG1heC50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgdHVpRHJvcGRvd25PcGVuTW9uaXRvclxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFt0dWlEcm9wZG93bl09XCJkcm9wZG93blwiXG4gICAgW3R1aURyb3Bkb3duRW5hYmxlZF09XCJpbnRlcmFjdGl2ZSAmJiAhbmF0aXZlUGlja2VyXCJcbiAgICBbdHVpRHJvcGRvd25PcGVuXT1cIm9wZW5cIlxuICAgICh0dWlEcm9wZG93bk9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAqdHVpTGV0PVwiZmlsbGVyJCB8IGFzeW5jIGFzIGZpbGxlclwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZS1yYW5nZV9fdGV4dGZpZWxkXCJcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW21hc2tpdG9dPVwiY29tcHV0ZWRNYXNrXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCJnZXRDb21wdXRlZEZpbGxlcihmaWxsZXIgfHwgJycpXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25Db250ZW50PlxuICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYWxlbmRhckljb24gYXMgc3JjOyBjb250ZXh0OiB7JGltcGxpY2l0OiBzaXplfVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGUtcmFuZ2VfX2ljb25cIlxuICAgICAgICAgICAgdHVpQXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl9zbWFsbF09XCJzaXplID09PSAncydcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl09XCIhY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICBbaWNvbl09XCJzcmMudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JY29uQ2xpY2soKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgKm5nSWY9XCJuYXRpdmVQaWNrZXJcIlxuICAgICAgICAgICAgdHVpRGF0ZVxuICAgICAgICAgICAgY2xhc3M9XCJ0LW5hdGl2ZS1pbnB1dFwiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAjZHJvcGRvd249XCJwb2x5bW9ycGhldXNcIlxuICAgICAgICBbcG9seW1vcnBoZXVzXT1cInR5cGVcIlxuICAgID5cbiAgICAgICAgPHR1aS1jYWxlbmRhclxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlX19jYWxlbmRhclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJjb21wdXRlZE1heFwiXG4gICAgICAgICAgICBbbWluXT1cImNvbXB1dGVkTWluXCJcbiAgICAgICAgICAgIFttb250aF09XCJjb21wdXRlZEFjdGl2ZVllYXJNb250aFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAobW9udGhDaGFuZ2UpPVwib25Nb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24ucHJldmVudC5zaWxlbnQpPVwiKDApXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAobW91c2Vkb3duLnByZXZlbnQuc2lsZW50KT1cIigwKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW1zWzBdICYmIG9uRGF5Q2xpY2soaXRlbXNbMF0uZGF5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbXNbMF0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -16,9 +16,6 @@ class TuiInputDateDirective extends AbstractTuiTextfieldHost {
16
16
  return this.host.dateFormat;
17
17
  }
18
18
  onValueChange(value) {
19
- if (!value) {
20
- this.host.nativeValue = '';
21
- }
22
19
  this.host.onValueChange(value);
23
20
  }
24
21
  process(input) {
@@ -36,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
33
  providers: [tuiAsTextfieldHost(TuiInputDateDirective)],
37
34
  }]
38
35
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHeEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBSTNELE1BS2EscUJBQXNCLFNBQVEsd0JBQStDO0lBQ3RGLElBQW9CLEtBQUs7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztTQUM5QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFZSxPQUFPLENBQUMsS0FBdUI7UUFDM0MsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQzsrR0EzQlEscUJBQXFCO21HQUFyQixxQkFBcUIseURBRm5CLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQzs7U0FFN0MscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQix1QkFBdUIsQ0FBQztpQkFDekQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7VHVpRGF5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQgdHlwZSB7VHVpRGF0ZUZvcm1hdFNldHRpbmdzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3R9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge3R1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuXG5pbXBvcnQgdHlwZSB7VHVpSW5wdXREYXRlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWRhdGUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZTpub3QoW211bHRpcGxlXSknLFxuICAgIHByb3ZpZGVyczogW3R1aUFzVGV4dGZpZWxkSG9zdChUdWlJbnB1dERhdGVEaXJlY3RpdmUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RUdWlUZXh0ZmllbGRIb3N0PFR1aUlucHV0RGF0ZUNvbXBvbmVudD4ge1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdC5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuY29tcHV0ZWRNYXg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtaW4oKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdC5jb21wdXRlZE1pbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBUdWlEYXRlRm9ybWF0U2V0dGluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmRhdGVGb3JtYXQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcHJvY2VzcyhpbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpbnB1dC5pbnB1dE1vZGUgPSAnbnVtZXJpYyc7XG4gICAgfVxufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHeEMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBSTNELE1BS2EscUJBQXNCLFNBQVEsd0JBQStDO0lBQ3RGLElBQW9CLEtBQUs7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVlLE9BQU8sQ0FBQyxLQUF1QjtRQUMzQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDOytHQXZCUSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5REFGbkIsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDOztTQUU3QyxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLHVCQUF1QixDQUFDO2lCQUN6RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlEYXl9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB0eXBlIHtUdWlEYXRlRm9ybWF0U2V0dGluZ3N9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge0Fic3RyYWN0VHVpVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7dHVpQXNUZXh0ZmllbGRIb3N0fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5cbmltcG9ydCB0eXBlIHtUdWlJbnB1dERhdGVDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlOm5vdChbbXVsdGlwbGVdKScsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNUZXh0ZmllbGRIb3N0KFR1aUlucHV0RGF0ZURpcmVjdGl2ZSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVEaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3Q8VHVpSW5wdXREYXRlQ29tcG9uZW50PiB7XG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdC5jb21wdXRlZE1heDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkTWluO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9ybWF0KCk6IFR1aURhdGVGb3JtYXRTZXR0aW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuZGF0ZUZvcm1hdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcHJvY2VzcyhpbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpbnB1dC5pbnB1dE1vZGUgPSAnbnVtZXJpYyc7XG4gICAgfVxufVxuIl19