@seniorsistemas/angular-components 17.9.2 → 17.9.4

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 (26) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +202 -43
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/dynamic-form/components/fields/currency/currency-field.component.d.ts +3 -1
  6. package/components/dynamic-form/configurations/fields/currency-field.d.ts +1 -0
  7. package/components/tooltip/tooltip.directive.d.ts +1 -2
  8. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.component.js +7 -4
  9. package/esm2015/components/dynamic-form/configurations/fields/currency-field.js +2 -1
  10. package/esm2015/components/dynamic-form/configurations/fields/decimal-field.js +2 -3
  11. package/esm2015/components/navigation-button/navigation-button.component.js +5 -1
  12. package/esm2015/components/tooltip/tooltip.directive.js +7 -14
  13. package/esm2015/utils/currency/currency.service.js +162 -2
  14. package/esm5/components/dynamic-form/components/fields/currency/currency-field.component.js +7 -4
  15. package/esm5/components/dynamic-form/configurations/fields/currency-field.js +2 -1
  16. package/esm5/components/dynamic-form/configurations/fields/decimal-field.js +2 -3
  17. package/esm5/components/navigation-button/navigation-button.component.js +5 -1
  18. package/esm5/components/tooltip/tooltip.directive.js +7 -14
  19. package/esm5/utils/currency/currency.service.js +162 -2
  20. package/fesm2015/seniorsistemas-angular-components.js +200 -41
  21. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  22. package/fesm5/seniorsistemas-angular-components.js +202 -43
  23. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  24. package/package.json +1 -1
  25. package/seniorsistemas-angular-components.metadata.json +1 -1
  26. package/utils/currency/currency.service.d.ts +634 -0
@@ -3,14 +3,16 @@ import { FormControl } from "@angular/forms";
3
3
  import { LocaleService } from "../../../../locale/locale.service";
4
4
  import { CurrencyField } from "../../../configurations/fields/currency-field";
5
5
  import { BaseFieldComponent, BaseFieldComponentConfig } from "../base-field-component";
6
+ import { CurrencyService } from "../../../../../utils/currency/currency.service";
6
7
  /**
7
8
  * @deprecated Should use bignumber instead
8
9
  */
9
10
  export declare class CurrencyFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig, OnInit {
10
11
  private readonly localeService;
12
+ readonly currencyService: CurrencyService;
11
13
  field: CurrencyField;
12
14
  formControl: FormControl;
13
- constructor(localeService: LocaleService);
15
+ constructor(localeService: LocaleService, currencyService: CurrencyService);
14
16
  ngOnInit(): void;
15
17
  private onLocaleService;
16
18
  }
@@ -3,5 +3,6 @@ import { DecimalField, DecimalFieldConfig } from "./decimal-field";
3
3
  * @deprecated Should use BignumberField instead
4
4
  */
5
5
  export declare class CurrencyField extends DecimalField {
6
+ currency: () => string;
6
7
  constructor(config: DecimalFieldConfig);
7
8
  }
@@ -34,8 +34,7 @@ export declare class TooltipDirective implements OnInit, OnDestroy {
34
34
  private updateTooltipVisibilityWhenFocusOnInput;
35
35
  /**
36
36
  * Obtém o elemento do ícone associado ao label do input em focus.
37
- * @param focusedInput O input em focus.
38
- * @returns O ícone do input em focus ou null.
37
+ * @returns O ícone do input em focus.
39
38
  */
40
39
  private getIconFromFocusedInput;
41
40
  /**
@@ -3,13 +3,15 @@ import { Component, Input } from "@angular/core";
3
3
  import { first } from "rxjs/operators";
4
4
  import { LocaleService } from "../../../../locale/locale.service";
5
5
  import { BaseFieldComponent } from "../base-field-component";
6
+ import { CurrencyService } from "../../../../../utils/currency/currency.service";
6
7
  /**
7
8
  * @deprecated Should use bignumber instead
8
9
  */
9
10
  let CurrencyFieldComponent = class CurrencyFieldComponent extends BaseFieldComponent {
10
- constructor(localeService) {
11
+ constructor(localeService, currencyService) {
11
12
  super();
12
13
  this.localeService = localeService;
14
+ this.currencyService = currencyService;
13
15
  }
14
16
  ngOnInit() {
15
17
  this.onLocaleService();
@@ -43,7 +45,8 @@ let CurrencyFieldComponent = class CurrencyFieldComponent extends BaseFieldCompo
43
45
  }
44
46
  };
45
47
  CurrencyFieldComponent.ctorParameters = () => [
46
- { type: LocaleService }
48
+ { type: LocaleService },
49
+ { type: CurrencyService }
47
50
  ];
48
51
  __decorate([
49
52
  Input()
@@ -53,8 +56,8 @@ __decorate([
53
56
  ], CurrencyFieldComponent.prototype, "formControl", void 0);
54
57
  CurrencyFieldComponent = __decorate([
55
58
  Component({
56
- template: "<div class=\"ui-inputgroup\">\n <span\n *ngIf=\"field.numberLocaleOptions.currencySymbol\"\n class=\"ui-inputgroup-addon\">\n {{ field.numberLocaleOptions.currencySymbol }}\n </span>\n <input\n *ngIf=\"!field.mask\"\n type=\"text\"\n [id]=\"(field.id || field.name)\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n sNumberInput\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [scale]=\"isFunction(field.scale) ? trigger(field.scale) : field.scale\"\n [decimalSeparator]=\"field.numberLocaleOptions.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"field.onFocus ? field.onFocus($event): null\" />\n <p-inputMask\n *ngIf=\"field.mask\"\n type=\"text\"\n [inputId]=\"(field.id || field.name)\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n [mask]=\"field.mask\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event): null\"\n (onComplete)=\"field.onComplete ? field.onComplete($event) : null\"\n (onInput)=\"field.onInput ? field.onInput($event) : null\" >\n </p-inputMask>\n</div>\n"
59
+ template: "<div class=\"ui-inputgroup\">\n <span\n *ngIf=\"field.currency || field.numberLocaleOptions?.currencySymbol\"\n class=\"ui-inputgroup-addon\"\n >\n {{\n field.currency\n ? currencyService.getCurrencySymbol({\n currency: field.currency()\n })\n : field.numberLocaleOptions.currencySymbol\n }}\n </span>\n\n <input\n *ngIf=\"!field.mask\"\n type=\"text\"\n [id]=\"field.id || field.name\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n sNumberInput\n [precision]=\"\n field.precision\n ? isFunction(field.precision)\n ? trigger(field.precision)\n : field.precision\n : field.currency && field.currency()\n ? currencyService.currencies[field.currency()].precision\n : 15\n \"\n [scale]=\"\n field.scale\n ? isFunction(field.scale)\n ? trigger(field.scale)\n : field.scale\n : field.currency && field.currency()\n ? currencyService.currencies[field.currency()].scale\n : 0\n \"\n [decimalSeparator]=\"field.numberLocaleOptions.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\n />\n\n <p-inputMask\n *ngIf=\"field.mask\"\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n [mask]=\"field.mask\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onComplete)=\"field.onComplete ? field.onComplete($event) : null\"\n (onInput)=\"field.onInput ? field.onInput($event) : null\"\n ></p-inputMask>\n</div>\n"
57
60
  })
58
61
  ], CurrencyFieldComponent);
59
62
  export { CurrencyFieldComponent };
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0seUJBQXlCLENBQUM7QUFFdkY7O0dBRUc7QUFJSCxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUF1QixTQUFRLGtCQUFrQjtJQU0xRCxZQUE2QixhQUE0QjtRQUNyRCxLQUFLLEVBQUUsQ0FBQztRQURpQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUV6RCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsYUFBYTthQUNiLFNBQVMsRUFBRTthQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNiLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxHQUFHLEVBQUU7O2dCQUNQLElBQUksUUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQiwwQ0FBRSxnQkFBZ0IsQ0FBQSxFQUFFO29CQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixtQ0FDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsS0FDakMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxHQUM3RCxDQUFDO2lCQUNMO2dCQUVELElBQUksUUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQiwwQ0FBRSxrQkFBa0IsQ0FBQSxFQUFFO29CQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixtQ0FDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsS0FDakMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxHQUNoRSxDQUFDO2lCQUNMO2dCQUVELElBQUksUUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQiwwQ0FBRSxjQUFjLENBQUEsRUFBRTtvQkFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsbUNBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQ2pDLGNBQWMsRUFBRSxJQUFJLEdBQ3ZCLENBQUM7aUJBQ0w7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTs7Z0JBQ1IsT0FBQSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLFNBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsbUNBQUk7b0JBQ2hFLGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLGdCQUFnQixFQUFFLEdBQUc7b0JBQ3JCLGNBQWMsRUFBRSxJQUFJO2lCQUN2QixDQUFDLENBQUE7YUFBQTtTQUNULENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSixDQUFBOztZQTNDK0MsYUFBYTs7QUFKekQ7SUFEQyxLQUFLLEVBQUU7cURBQ29CO0FBRTVCO0lBREMsS0FBSyxFQUFFOzJEQUN3QjtBQUp2QixzQkFBc0I7SUFIbEMsU0FBUyxDQUFDO1FBQ1AscTREQUE0QztLQUMvQyxDQUFDO0dBQ1csc0JBQXNCLENBaURsQztTQWpEWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2xvY2FsZS9sb2NhbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZCB9IGZyb20gXCIuLi8uLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvY3VycmVuY3ktZmllbGRcIjtcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIi4uL2Jhc2UtZmllbGQtY29tcG9uZW50XCI7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIHVzZSBiaWdudW1iZXIgaW5zdGVhZFxuICovXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCJjdXJyZW5jeS1maWVsZC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnLCBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpZWxkOiBDdXJyZW5jeUZpZWxkO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTG9jYWxlU2VydmljZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Mb2NhbGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2NhbGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiBcIlIkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IFwiLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogXCIsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogXCJSJFwiLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQTRCLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRWpGOztHQUVHO0FBSUgsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBdUIsU0FBUSxrQkFBa0I7SUFNMUQsWUFDcUIsYUFBNEIsRUFDcEMsZUFBZ0M7UUFFekMsS0FBSyxFQUFFLENBQUM7UUFIUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFHN0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLGFBQWE7YUFDYixTQUFTLEVBQUU7YUFDWCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDYixTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsR0FBRyxFQUFFOztnQkFDUCxJQUFJLFFBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsMENBQUUsZ0JBQWdCLENBQUEsRUFBRTtvQkFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsbUNBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQ2pDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsR0FDN0QsQ0FBQztpQkFDTDtnQkFFRCxJQUFJLFFBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsMENBQUUsa0JBQWtCLENBQUEsRUFBRTtvQkFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsbUNBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQ2pDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsR0FDaEUsQ0FBQztpQkFDTDtnQkFFRCxJQUFJLFFBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsMENBQUUsY0FBYyxDQUFBLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLG1DQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixLQUNqQyxjQUFjLEVBQUUsSUFBSSxHQUN2QixDQUFDO2lCQUNMO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7O2dCQUNSLE9BQUEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixTQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLG1DQUFJO29CQUNoRSxrQkFBa0IsRUFBRSxHQUFHO29CQUN2QixnQkFBZ0IsRUFBRSxHQUFHO29CQUNyQixjQUFjLEVBQUUsSUFBSTtpQkFDdkIsQ0FBQyxDQUFBO2FBQUE7U0FDVCxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0osQ0FBQTs7WUE3Q3VDLGFBQWE7WUFDbkIsZUFBZTs7QUFON0M7SUFEQyxLQUFLLEVBQUU7cURBQ29CO0FBRTVCO0lBREMsS0FBSyxFQUFFOzJEQUN3QjtBQUp2QixzQkFBc0I7SUFIbEMsU0FBUyxDQUFDO1FBQ1Asd2tGQUE0QztLQUMvQyxDQUFDO0dBQ1csc0JBQXNCLENBb0RsQztTQXBEWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2xvY2FsZS9sb2NhbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZCB9IGZyb20gXCIuLi8uLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvY3VycmVuY3ktZmllbGRcIjtcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIi4uL2Jhc2UtZmllbGQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvY3VycmVuY3kvY3VycmVuY3kuc2VydmljZVwiO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFNob3VsZCB1c2UgYmlnbnVtYmVyIGluc3RlYWRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6IFwiY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZENvbXBvbmVudCBleHRlbmRzIEJhc2VGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWVsZDogQ3VycmVuY3lGaWVsZDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxuICAgICAgICByZWFkb25seSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTG9jYWxlU2VydmljZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Mb2NhbGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2NhbGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiBcIlIkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IFwiLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogXCIsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogXCJSJFwiLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,7 +5,8 @@ import { DecimalField } from "./decimal-field";
5
5
  export class CurrencyField extends DecimalField {
6
6
  constructor(config) {
7
7
  super(config);
8
+ this.currency = config['currency'];
8
9
  this.numberLocaleOptions = config.numberLocaleOptions;
9
10
  }
10
11
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29uZmlndXJhdGlvbnMvZmllbGRzL2N1cnJlbmN5LWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0saUJBQWlCLENBQUM7QUFHbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFlBQVk7SUFDM0MsWUFBWSxNQUEwQjtRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlXCI7XG5pbXBvcnQgeyBEZWNpbWFsRmllbGQsIERlY2ltYWxGaWVsZENvbmZpZyB9IGZyb20gXCIuL2RlY2ltYWwtZmllbGRcIjtcblxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFNob3VsZCB1c2UgQmlnbnVtYmVyRmllbGQgaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZCBleHRlbmRzIERlY2ltYWxGaWVsZCB7XG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBEZWNpbWFsRmllbGRDb25maWcpIHtcbiAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgdGhpcy5udW1iZXJMb2NhbGVPcHRpb25zID0gY29uZmlnLm51bWJlckxvY2FsZU9wdGlvbnM7XG4gICAgfVxufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29uZmlndXJhdGlvbnMvZmllbGRzL2N1cnJlbmN5LWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0saUJBQWlCLENBQUM7QUFHbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFlBQVk7SUFHM0MsWUFBWSxNQUEwQjtRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlXCI7XG5pbXBvcnQgeyBEZWNpbWFsRmllbGQsIERlY2ltYWxGaWVsZENvbmZpZyB9IGZyb20gXCIuL2RlY2ltYWwtZmllbGRcIjtcblxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFNob3VsZCB1c2UgQmlnbnVtYmVyRmllbGQgaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZCBleHRlbmRzIERlY2ltYWxGaWVsZCB7XG4gICAgY3VycmVuY3k6ICgpID0+IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogRGVjaW1hbEZpZWxkQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSBjb25maWdbJ2N1cnJlbmN5J107XG4gICAgICAgIHRoaXMubnVtYmVyTG9jYWxlT3B0aW9ucyA9IGNvbmZpZy5udW1iZXJMb2NhbGVPcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,11 +5,10 @@ import { NumberField } from "./number-field";
5
5
  */
6
6
  export class DecimalField extends NumberField {
7
7
  constructor(config) {
8
- var _a;
9
8
  super(config);
10
9
  this.numberLocaleOptions = config.numberLocaleOptions;
11
10
  this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;
12
- this.scale = typeof config.scale === "function" ? config.scale() : (_a = config.scale) !== null && _a !== void 0 ? _a : 2;
11
+ this.scale = typeof config.scale === "function" ? config.scale() : config.scale;
13
12
  }
14
13
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb25maWd1cmF0aW9ucy9maWVsZHMvZGVjaW1hbC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBU2hFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBR3pDLFlBQVksTUFBMEI7O1FBQ2xDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQUMsTUFBTSxDQUFDLEtBQUssbUNBQUssQ0FBQyxDQUFDO0lBQzFGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlXCI7XG5pbXBvcnQgeyBOdW1iZXJBbGlnbm1lbnRPcHRpb24gfSBmcm9tIFwiLi4vLi4vLi4vbnVtYmVyLWlucHV0XCI7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZCwgTnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi9udW1iZXItZmllbGRcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlIEJpZ251bWJlckZpZWxkIGluc3RlYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpbWFsRmllbGRDb25maWcgZXh0ZW5kcyBOdW1iZXJGaWVsZENvbmZpZyB7XG4gICAgc2NhbGU/OiAoKCkgPT4gbnVtYmVyKSB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlIEJpZ251bWJlckZpZWxkIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIERlY2ltYWxGaWVsZCBleHRlbmRzIE51bWJlckZpZWxkIGltcGxlbWVudHMgRGVjaW1hbEZpZWxkQ29uZmlnIHtcbiAgICBwdWJsaWMgc2NhbGU/OiAoKCkgPT4gbnVtYmVyKSB8IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogRGVjaW1hbEZpZWxkQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgICAgIHRoaXMubnVtYmVyTG9jYWxlT3B0aW9ucyA9IGNvbmZpZy5udW1iZXJMb2NhbGVPcHRpb25zO1xuICAgICAgICB0aGlzLmFsaWduVG8gPSBjb25maWcuYWxpZ25UbyB8fCBOdW1iZXJBbGlnbm1lbnRPcHRpb24uUklHSFQ7XG4gICAgICAgIHRoaXMuc2NhbGUgPSB0eXBlb2YgY29uZmlnLnNjYWxlID09PSBcImZ1bmN0aW9uXCIgPyBjb25maWcuc2NhbGUoKSA6IGNvbmZpZy5zY2FsZSA/PyAgMjtcbiAgICB9XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb25maWd1cmF0aW9ucy9maWVsZHMvZGVjaW1hbC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBU2hFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBR3pDLFlBQVksTUFBMEI7UUFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBQzdELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlXCI7XG5pbXBvcnQgeyBOdW1iZXJBbGlnbm1lbnRPcHRpb24gfSBmcm9tIFwiLi4vLi4vLi4vbnVtYmVyLWlucHV0XCI7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZCwgTnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi9udW1iZXItZmllbGRcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlIEJpZ251bWJlckZpZWxkIGluc3RlYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpbWFsRmllbGRDb25maWcgZXh0ZW5kcyBOdW1iZXJGaWVsZENvbmZpZyB7XG4gICAgc2NhbGU/OiAoKCkgPT4gbnVtYmVyKSB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlIEJpZ251bWJlckZpZWxkIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIERlY2ltYWxGaWVsZCBleHRlbmRzIE51bWJlckZpZWxkIGltcGxlbWVudHMgRGVjaW1hbEZpZWxkQ29uZmlnIHtcbiAgICBwdWJsaWMgc2NhbGU/OiAoKCkgPT4gbnVtYmVyKSB8IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogRGVjaW1hbEZpZWxkQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgICAgIHRoaXMubnVtYmVyTG9jYWxlT3B0aW9ucyA9IGNvbmZpZy5udW1iZXJMb2NhbGVPcHRpb25zO1xuICAgICAgICB0aGlzLmFsaWduVG8gPSBjb25maWcuYWxpZ25UbyB8fCBOdW1iZXJBbGlnbm1lbnRPcHRpb24uUklHSFQ7XG4gICAgICAgIHRoaXMuc2NhbGUgPSB0eXBlb2YgY29uZmlnLnNjYWxlID09PSBcImZ1bmN0aW9uXCIgPyBjb25maWcuc2NhbGUoKSA6IGNvbmZpZy5zY2FsZTtcbiAgICB9XG59XG4iXX0=
@@ -28,6 +28,10 @@ let NavigationButtonComponent = NavigationButtonComponent_1 = class NavigationBu
28
28
  this._value = this.defaultValue;
29
29
  const index = this.steps.findIndex((step) => step.value === this._value);
30
30
  this.currentIndex = index !== -1 ? index : 0;
31
+ this.stepChanged.emit({
32
+ previous: undefined,
33
+ current: this.steps[this.currentIndex],
34
+ });
31
35
  this.changeDetectorRef.detectChanges();
32
36
  }
33
37
  }
@@ -119,4 +123,4 @@ NavigationButtonComponent = NavigationButtonComponent_1 = __decorate([
119
123
  })
120
124
  ], NavigationButtonComponent);
121
125
  export { NavigationButtonComponent };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLElBQWEseUJBQXlCLGlDQUF0QyxNQUFhLHlCQUF5QjtJQXdCbEMsWUFBNkIsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFiMUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBa0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztJQU1tQixDQUFDO0lBRS9ELFFBQVE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3pDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtR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QU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQXlCLENBQUM7Z0JBQ3hELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjs7S0FDSixDQUFDO0dBQ1cseUJBQXlCLENBMEhyQztTQTFIWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgTmF2aWdhdGlvbkJ1dHRvbkl0ZW0gfSBmcm9tIFwiLi9tb2RlbHMvbmF2aWdhdGlvbi1idXR0b24taXRlbVwiO1xuaW1wb3J0IHsgVGllcmVkTWVudUl0ZW1EYXRhIH0gZnJvbSBcIi4uL3RpZXJlZC1tZW51XCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQnV0dG9uU3RlcENoYW5nZWRJbmZvIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtbmF2aWdhdGlvbi1idXR0b25cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5hdmlnYXRpb25CdXR0b25Db21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXBzOiBOYXZpZ2F0aW9uQnV0dG9uSXRlbVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiB1bmtub3duO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hhbmdlT25Jbml0ID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc3RlcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxOYXZpZ2F0aW9uQnV0dG9uU3RlcENoYW5nZWRJbmZvPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBjdXJyZW50SW5kZXggPSAwO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHVibGljIHRpZXJlZE1lbnVJdGVtczogVGllcmVkTWVudUl0ZW1EYXRhW10gPSBbXTtcblxuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX3ZhbHVlOiB1bmtub3duO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jcmVhdGVUaWVyZWRNZW51SXRlbXMoKTtcblxuICAgICAgICBpZiAodGhpcy5jaGFuZ2VPbkluaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgcHJldmlvdXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjdXJyZW50OiB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy5maW5kSW5kZXgoKHN0ZXApID0+IHN0ZXAudmFsdWUgPT09IHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXggIT09IC0xID8gaW5kZXggOiAwO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnN0ZXBzLmZpbmRJbmRleCgoc3RlcCkgPT4gc3RlcC52YWx1ZSA9PT0gdGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICE9PSAtMSA/IGluZGV4IDogMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnN0ZXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UoY3VycmVudC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoeyBwcmV2aW91cywgY3VycmVudCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF07XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdO1xuXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShjdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7IHByZXZpb3VzLCBjdXJyZW50IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRpZXJlZE1lbnVJdGVtcygpIHtcbiAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwOiBOYXZpZ2F0aW9uQnV0dG9uSXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHN0ZXAubGFiZWwsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzKSA9PiBzID09PSBzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2Uoc3RlcC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoeyBwcmV2aW91czogdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF0sIGN1cnJlbnQ6IHN0ZXAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvbmF2aWdhdGlvbi1idXR0b24vbmF2aWdhdGlvbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLElBQWEseUJBQXlCLGlDQUF0QyxNQUFhLHlCQUF5QjtJQXdCbEMsWUFBNkIsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFiMUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBa0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztJQU1tQixDQUFDO0lBRS9ELFFBQVE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3pDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtR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OytEQUNvQjtBQUc1QjtJQURDLE1BQU0sRUFBRTs4REFDOEU7QUFkOUUseUJBQXlCO0lBWnJDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0Isb3FDQUFpRDtRQUVqRCxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7O0tBQ0osQ0FBQztHQUNXLHlCQUF5QixDQThIckM7U0E5SFkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IE5hdmlnYXRpb25CdXR0b25JdGVtIH0gZnJvbSBcIi4vbW9kZWxzL25hdmlnYXRpb24tYnV0dG9uLWl0ZW1cIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSB9IGZyb20gXCIuLi90aWVyZWQtbWVudVwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkJ1dHRvblN0ZXBDaGFuZ2VkSW5mbyB9IGZyb20gXCIuL21vZGVsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLW5hdmlnYXRpb24tYnV0dG9uXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOYXZpZ2F0aW9uQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwczogTmF2aWdhdGlvbkJ1dHRvbkl0ZW1bXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlZmF1bHRWYWx1ZTogdW5rbm93bjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNoYW5nZU9uSW5pdCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHN0ZXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TmF2aWdhdGlvbkJ1dHRvblN0ZXBDaGFuZ2VkSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgY3VycmVudEluZGV4ID0gMDtcbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyB0aWVyZWRNZW51SXRlbXM6IFRpZXJlZE1lbnVJdGVtRGF0YVtdID0gW107XG5cbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX29uVG91Y2hlZDogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIF92YWx1ZTogdW5rbm93bjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlVGllcmVkTWVudUl0ZW1zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlT25Jbml0KSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY3VycmVudDogdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldERlZmF1bHRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzdGVwKSA9PiBzdGVwLnZhbHVlID09PSB0aGlzLl92YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICE9PSAtMSA/IGluZGV4IDogMDtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgcHJldmlvdXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjdXJyZW50OiB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnN0ZXBzLmZpbmRJbmRleCgoc3RlcCkgPT4gc3RlcC52YWx1ZSA9PT0gdGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICE9PSAtMSA/IGluZGV4IDogMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnN0ZXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudEluZGV4XTtcblxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UoY3VycmVudC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoeyBwcmV2aW91cywgY3VycmVudCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF07XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50SW5kZXhdO1xuXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShjdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh7IHByZXZpb3VzLCBjdXJyZW50IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRpZXJlZE1lbnVJdGVtcygpIHtcbiAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwOiBOYXZpZ2F0aW9uQnV0dG9uSXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHN0ZXAubGFiZWwsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzKSA9PiBzID09PSBzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2Uoc3RlcC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQoeyBwcmV2aW91czogdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRJbmRleF0sIGN1cnJlbnQ6IHN0ZXAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -52,14 +52,13 @@ let TooltipDirective = class TooltipDirective {
52
52
  */
53
53
  updateTooltipVisibilityWhenFocusOnInput() {
54
54
  if (this.focusedInputRef) {
55
- const inputFocus = this.focusedInputRef;
56
- const icon = this.getIconFromFocusedInput(inputFocus);
57
- this.renderer.listen(inputFocus, 'focus', () => {
55
+ const icon = this.getIconFromFocusedInput();
56
+ this.renderer.listen(this.focusedInputRef, 'focus', () => {
58
57
  if (icon && this.isMatchingTooltip(icon)) {
59
58
  this.createTootipByFocus(icon);
60
59
  }
61
60
  });
62
- this.renderer.listen(inputFocus, 'blur', () => {
61
+ this.renderer.listen(this.focusedInputRef, 'blur', () => {
63
62
  if (icon && this.isMatchingTooltip(icon)) {
64
63
  this.removeTooltip(icon);
65
64
  this.destroy();
@@ -69,16 +68,10 @@ let TooltipDirective = class TooltipDirective {
69
68
  }
70
69
  /**
71
70
  * Obtém o elemento do ícone associado ao label do input em focus.
72
- * @param focusedInput O input em focus.
73
- * @returns O ícone do input em focus ou null.
71
+ * @returns O ícone do input em focus.
74
72
  */
75
- getIconFromFocusedInput(focusedInput) {
76
- const label = document.querySelector(`label[for='${focusedInput.id}']`);
77
- if (label) {
78
- const icon = label.nextElementSibling;
79
- return (icon === null || icon === void 0 ? void 0 : icon.classList.contains('info-sign__icon')) ? icon : null;
80
- }
81
- return null;
73
+ getIconFromFocusedInput() {
74
+ return this.elementRef.nativeElement;
82
75
  }
83
76
  /**
84
77
  * Verifica se o ícone tem o tooltip correspondente ao atual.
@@ -374,4 +367,4 @@ TooltipDirective = __decorate([
374
367
  })
375
368
  ], TooltipDirective);
376
369
  export { TooltipDirective };
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQW1DMUIsWUFDb0IsVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQW1CO1FBTG5CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQ2hDLGFBQVEsR0FBb0IsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUdoRCxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBTWhCLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUdsQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsWUFBTyxHQUFH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Q0FBQzs0REFLbkM7QUFHRDtJQURDLFlBQVksQ0FBQyxPQUFPLENBQUM7K0NBS3JCO0FBR0Q7SUFEQyxZQUFZLENBQUMsTUFBTSxDQUFDOzhDQUtwQjtBQUdEO0lBREMsWUFBWSxDQUFDLFlBQVksQ0FBQztvREFLMUI7QUFJRDtJQUZDLFlBQVksQ0FBQyxZQUFZLENBQUM7SUFDMUIsWUFBWSxDQUFDLE9BQU8sQ0FBQztvREFLckI7QUFHRDtJQURDLFlBQVksQ0FBQyxZQUFZLENBQUM7b0RBUzFCO0FBR0Q7SUFEQyxZQUFZLENBQUMsVUFBVSxDQUFDO2tEQVF4QjtBQTVNUyxnQkFBZ0I7SUFINUIsU0FBUyxDQUFDO1FBQ1IsUUFBUSxFQUFFLFlBQVk7S0FDeEIsQ0FBQztHQUNXLGdCQUFnQixDQTBZNUI7U0ExWVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIEFwcGxpY2F0aW9uUmVmLFxuICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgQ29tcG9uZW50UmVmLFxuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEVtYmVkZGVkVmlld1JlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIEluamVjdG9yLFxuICAgSW5wdXQsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXQsXG4gICBSZW5kZXJlcjJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERlYm91bmNlVXRpbHMgfSBmcm9tIFwiLi4vdXRpbHMvZGVib3VjZVwiO1xuaW1wb3J0IHsgTW9iaWxlQmVoYXZpb3IsIFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEVsZW1lbnRBcmVhIH0gZnJvbSBcIi4vbW9kZWxzL2VsZW1lbnQtYXJlYVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgIHNlbGVjdG9yOiBcIltzVG9vbHRpcF1cIixcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgIEBJbnB1dChcInNUb29sdGlwXCIpXG4gICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xuXG4gICBASW5wdXQoXCJ0b29sdGlwUG9zaXRpb25cIilcbiAgIHB1YmxpYyBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZGlzcGxheVRpbWU6IG51bWJlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyB0b29sdGlwRXZlbnQgPSBUb29sdGlwRXZlbnQuSG92ZXI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgdmlzaWJsZSA9IHRydWU7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgbW9iaWxlQmVoYXZpb3IgPSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBmb2N1c2VkSW5wdXRSZWY6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG4gICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgcHJpdmF0ZSB0b3VjaFRpbWVvdXQ/OiBudW1iZXI7XG4gICBwcml2YXRlIHRvb2x0aXBEaXZFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbjogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgcHJpdmF0ZSByZWFkb25seSBkZWJvdW5jZUNyZWF0ZVRvb2x0aXBGdW5jdGlvbjogKCkgPT4gdm9pZDtcblxuICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlVXRpbHM6IERlYm91bmNlVXRpbHMsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICkge1xuICAgICAgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24gPSB0aGlzLm9uV2luZG93TW91c2VNb3ZlLmJpbmQodGhpcyk7XG4gICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uID0gdGhpcy5kZWJvdW5jZVV0aWxzLmRlYm91bmNlTGVhZGluZygoKSA9PiB0aGlzLmNyZWF0ZVRvb3RpcCgpKTtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy52YWxpZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBvbldpbmRvd01vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvb2xUaXBSZWN0ID0gdGhpcy50b29sdGlwRGl2RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgY29uc3QgdG90YWxFbGVtZW50QXJlYSA9IHtcbiAgICAgICAgIHRvcDogTWF0aC5taW4oZWxlbWVudFJlY3QudG9wLCB0b29sVGlwUmVjdC50b3ApLFxuICAgICAgICAgcmlnaHQ6IE1hdGgubWF4KGVsZW1lbnRSZWN0LnJpZ2h0LCB0b29sVGlwUmVjdC5yaWdodCksXG4gICAgICAgICBsZWZ0OiBNYXRoLm1pbihlbGVtZW50UmVjdC5sZWZ0LCB0b29sVGlwUmVjdC5sZWZ0KSxcbiAgICAgICAgIGJvdHRvbTogTWF0aC5tYXgoZWxlbWVudFJlY3QuYm90dG9tLCB0b29sVGlwUmVjdC5ib3R0b20pXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5pc01vdXNlUG9zaXRpb25PdXRzaWRlT2ZFbGVtZW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFksIHRvdGFsRWxlbWVudEFyZWEpKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBpc01vdXNlUG9zaXRpb25PdXRzaWRlT2ZFbGVtZW50KG1vdXNlWDogbnVtYmVyLCBtb3VzZVk6IG51bWJlciwgZWxlbWVudEFyZWE6IEVsZW1lbnRBcmVhKSB7XG4gICAgICByZXR1cm4gbW91c2VYIDwgZWxlbWVudEFyZWEubGVmdCB8fCBtb3VzZVggPj0gZWxlbWVudEFyZWEucmlnaHQgfHwgbW91c2VZIDwgZWxlbWVudEFyZWEudG9wIHx8IG1vdXNlWSA+PSBlbGVtZW50QXJlYS5ib3R0b207XG4gICB9XG5cbiAgIC8qKlxuICAgICogTWFuaXB1bGEgYSB2aXNpYmlsaWRhZGUgZG8gdG9vbHRpcCBxdWFuZG8gaG91dmVyIHVtYSByZWZlcsOqbmNpYSBkZSBpbnB1dC5cbiAgICAqL1xuICAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwVmlzaWJpbGl0eVdoZW5Gb2N1c09uSW5wdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJbnB1dFJlZikge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRGb2N1cyA9IHRoaXMuZm9jdXNlZElucHV0UmVmO1xuICAgICAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuZ2V0SWNvbkZyb21Gb2N1c2VkSW5wdXQoaW5wdXRGb2N1cyk7XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGlucHV0Rm9jdXMsICdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbiAmJiB0aGlzLmlzTWF0Y2hpbmdUb29sdGlwKGljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vdGlwQnlGb2N1cyhpY29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGlucHV0Rm9jdXMsICdibHVyJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uICYmIHRoaXMuaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKGljb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idMOpbSBvIGVsZW1lbnRvIGRvIMOtY29uZSBhc3NvY2lhZG8gYW8gbGFiZWwgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHBhcmFtIGZvY3VzZWRJbnB1dCBPIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEByZXR1cm5zIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzIG91IG51bGwuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJY29uRnJvbUZvY3VzZWRJbnB1dChmb2N1c2VkSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxhYmVsW2Zvcj0nJHtmb2N1c2VkSW5wdXQuaWR9J11gKTtcbiAgICAgICAgaWYgKGxhYmVsKSB7XG4gICAgICAgICAgICBjb25zdCBpY29uID0gbGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgcmV0dXJuIGljb24/LmNsYXNzTGlzdC5jb250YWlucygnaW5mby1zaWduX19pY29uJykgPyBpY29uIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmljYSBzZSBvIMOtY29uZSB0ZW0gbyB0b29sdGlwIGNvcnJlc3BvbmRlbnRlIGFvIGF0dWFsLlxuICAgICAqIEBwYXJhbSBpY29uIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEByZXR1cm5zIHRydWUgc2UgbyB0b29sdGlwIGNvcnJlc3BvbmRlOyBjYXNvIGNvbnRyw6FyaW8sIGZhbHNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdG9vbHRpcFRleHQgPSBpY29uLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC10b29sdGlwJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXAgPT09IHRvb2x0aXBUZXh0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBvIHRvb2x0aXAgYXNzb2NpYWRvIGFvIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAgKiBAcGFyYW0gaWNvbiBPIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbW92ZVRvb2x0aXAoaWNvbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG9vbHRpcCA9IGljb24ucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgIC8vIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgdG9vbHRpcCBpcyBjbGlja2VkIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIC8vIHdoZW5ldmVyIGEga2V5IGlzIHByZXNzZWQgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiKVxuICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIilcbiAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIgJiZcbiAgICAgICAgICFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkL2kpICYmXG4gICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVBob25lL2kpKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgLy8gd2hlbmV2ZXIgeW91IHRvdWNoIG91dHNpZGUgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDp0b3VjaHN0YXJ0XCIpXG4gICBwdWJsaWMgb25Eb2N1bWVudFRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiKVxuICAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Gb2N1cykge1xuICAgICAgICAgdGhpcy5jcmVhdGVUb290aXAoKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImJsdXJcIilcbiAgIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Gb2N1cykge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIpXG4gICBwdWJsaWMgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIHRoaXMuZGVib3VuY2VDcmVhdGVUb29sdGlwRnVuY3Rpb24oKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIilcbiAgIEBIb3N0TGlzdGVuZXIoXCJ3aGVlbFwiKVxuICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoc3RhcnRcIilcbiAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICB0aGlzLnRvdWNoVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVUb290aXAuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHRoaXMubW9iaWxlQmVoYXZpb3IgPT09IE1vYmlsZUJlaGF2aW9yLlByZXNzaW5nID8gdGhpcy5zaG93RGVsYXkgOiAwXG4gICAgICAgICApO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwidG91Y2hlbmRcIilcbiAgIHB1YmxpYyBvblRvdWNoRW5kKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIGlmICh0aGlzLm1vYmlsZUJlaGF2aW9yID09PSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZykge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSB2YWxpZGF0ZVBvc2l0aW9uKCkge1xuICAgICAgY29uc3QgY29udGFpbnNQb3NpdGlvbiA9IFtcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5Ub3AsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uUmlnaHQsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uQm90dG9tLFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLkxlZnQsXG4gICAgICBdLmluY2x1ZGVzKHRoaXMucG9zaXRpb24pO1xuXG4gICAgICBpZiAoIWNvbnRhaW5zUG9zaXRpb24pIHtcbiAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb29sdGlwICR7dGhpcy5wb3NpdGlvbn0gcG9zaXRpb24gaXMgdW5leHBlY3RlZGApO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGNyZWF0ZVRvb3RpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gbnVsbCAmJiB0aGlzLnRvb2x0aXA/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgZG9tRWxlbSA9IHRoaXMuZ2V0RG9tRWxlbWVudCgpO1xuICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcbiAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLnNob3dUb29sdGlwLmJpbmQodGhpcyksIHRoaXMuc2hvd0RlbGF5KTtcblxuICAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IGRvbUVsZW0ucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKTtcblxuICAgICAgICAgaWYgKHRoaXMuZGlzcGxheVRpbWUpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZGVzdHJveS5iaW5kKHRoaXMpLCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBnZXREb21FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIENyaWEgdW0gdG9vbHRpcCBwYXJhIG8gaWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgKlxuICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgKi9cbiAgIHByaXZhdGUgY3JlYXRlVG9vdGlwQnlGb2N1cyhpY29uOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IG51bGwgJiYgdGhpcy50b29sdGlwPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSB0aGlzLmdldERvbUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBkb21FbGVtLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBpY29uLmFwcGVuZENoaWxkKHRvb2x0aXApO1xuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRvb2x0aXAuY2xhc3NMaXN0LmFkZChcInRvb2x0aXAtLXZpc2libGVcIiksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52aXNpYmxlID0gdGhpcy52aXNpYmxlO1xuXG4gICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24pO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCkge1xuICAgICAgY29uc3QgbWFyZ2luID0gMjA7XG4gICAgICBjb25zdCBhbmNob3JTaXplID0gNTtcblxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b29sdGlwID0gdGhpcy50b29sdGlwO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZXNjYXBlID0gdGhpcy5lc2NhcGU7XG5cbiAgICAgICAgIGNvbnN0IHsgbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tIH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgY29uc3QgdG9vbHRpcEhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHJpZ2h0IC0gbGVmdDtcbiAgICAgICAgIGNvbnN0IHNhZmVTcGFjZSA9IDE1MDtcblxuICAgICAgICAgbGV0IHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgIGNvbnN0IGludmFsaWRPcHRpb25zOiBUb29sdGlwUG9zaXRpb25bXSA9IFtdO1xuXG4gICAgICAgICB3aGlsZSAoIXBvc2l0aW9uZWQpIHtcbiAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uVG9wKVxuICAgICAgICAgICAgICAgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSlcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KVxuICAgICAgICAgICAgICAgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlJpZ2h0KSkge1xuICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBzcGFjZSB0byBzaG93IHRvb2x0aXBcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uVG9wOiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlRvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCB0b3BTaGlmdCA9IHRvcDtcblxuICAgICAgICAgICAgICAgICAgaWYgKHRvcFNoaWZ0IDw9IHRvb2x0aXBIZWlnaHQgKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uQm90dG9tO1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uVG9wKTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCAtIG1hcmdpbiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLkJvdHRvbToge1xuXG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBib3R0b21TaGlmdCA9IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IC0gYm90dG9tO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoYm90dG9tU2hpZnQgPD0gdG9vbHRpcEhlaWdodCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHRvb2x0aXBXaWR0aCAvIDIgKyBsZWZ0KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQoYm90dG9tICsgbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5MZWZ0OiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkxlZnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0U2hpZnQgPSBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICBpZiAobGVmdFNoaWZ0IDw9IHRvb2x0aXBXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5SaWdodDtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLkxlZnQpO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQgLSBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyB0b29sdGlwSGVpZ2h0IC8gMiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlJpZ2h0OiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlJpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgcmlnaHRTaGlmdCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggLSByaWdodDtcblxuICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0U2hpZnQgPD0gdG9vbHRpcFdpZHRoICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5SaWdodCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQocmlnaHQgKyBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyB0b29sdGlwSGVpZ2h0IC8gMiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcbiAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbik7XG4gICB9XG59XG4iXX0=
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQW1DMUIsWUFDb0IsVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQW1CO1FBTG5CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQ2hDLGFBQVEsR0FBb0IsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUdoRCxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBTWhCLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUdsQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsWUFBTyxHQUFH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QUM7UUFDUixRQUFRLEVBQUUsWUFBWTtLQUN4QixDQUFDO0dBQ1csZ0JBQWdCLENBbVk1QjtTQW5ZWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgQXBwbGljYXRpb25SZWYsXG4gICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICBDb21wb25lbnRSZWYsXG4gICBEaXJlY3RpdmUsXG4gICBFbGVtZW50UmVmLFxuICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgSG9zdExpc3RlbmVyLFxuICAgSW5qZWN0b3IsXG4gICBJbnB1dCxcbiAgIE9uRGVzdHJveSxcbiAgIE9uSW5pdCxcbiAgIFJlbmRlcmVyMlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gXCIuLi91dGlscy9kZWJvdWNlXCI7XG5pbXBvcnQgeyBNb2JpbGVCZWhhdmlvciwgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tIFwiLi90b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRWxlbWVudEFyZWEgfSBmcm9tIFwiLi9tb2RlbHMvZWxlbWVudC1hcmVhXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgc2VsZWN0b3I6IFwiW3NUb29sdGlwXVwiLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgQElucHV0KFwic1Rvb2x0aXBcIilcbiAgIHB1YmxpYyB0b29sdGlwOiBzdHJpbmc7XG5cbiAgIEBJbnB1dChcInRvb2x0aXBQb3NpdGlvblwiKVxuICAgcHVibGljIHBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHNob3dEZWxheSA9IDUwMDtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBkaXNwbGF5VGltZTogbnVtYmVyO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHRvb2x0aXBFdmVudCA9IFRvb2x0aXBFdmVudC5Ib3ZlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBlc2NhcGUgPSBmYWxzZTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyB2aXNpYmxlID0gdHJ1ZTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBtb2JpbGVCZWhhdmlvciA9IE1vYmlsZUJlaGF2aW9yLlByZXNzaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGZvY3VzZWRJbnB1dFJlZjogSFRNTElucHV0RWxlbWVudDtcblxuICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gbnVsbDtcbiAgIHByaXZhdGUgc2hvd1RpbWVvdXQ/OiBudW1iZXI7XG4gICBwcml2YXRlIHRvdWNoVGltZW91dD86IG51bWJlcjtcbiAgIHByaXZhdGUgdG9vbHRpcERpdkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgIHByaXZhdGUgcmVhZG9ubHkgYm91bmRPbldpbmRvd01vdXNlTW92ZUZ1bmN0aW9uOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uOiAoKSA9PiB2b2lkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVib3VuY2VVdGlsczogRGVib3VuY2VVdGlscyxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgKSB7XG4gICAgICB0aGlzLmJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbiA9IHRoaXMub25XaW5kb3dNb3VzZU1vdmUuYmluZCh0aGlzKTtcbiAgICAgIHRoaXMuZGVib3VuY2VDcmVhdGVUb29sdGlwRnVuY3Rpb24gPSB0aGlzLmRlYm91bmNlVXRpbHMuZGVib3VuY2VMZWFkaW5nKCgpID0+IHRoaXMuY3JlYXRlVG9vdGlwKCkpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9zaXRpb24oKTtcbiAgICAgIHRoaXMudXBkYXRlVG9vbHRpcFZpc2liaWxpdHlXaGVuRm9jdXNPbklucHV0KCk7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBwcml2YXRlIG9uV2luZG93TW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBlbGVtZW50UmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgdG9vbFRpcFJlY3QgPSB0aGlzLnRvb2x0aXBEaXZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBjb25zdCB0b3RhbEVsZW1lbnRBcmVhID0ge1xuICAgICAgICAgdG9wOiBNYXRoLm1pbihlbGVtZW50UmVjdC50b3AsIHRvb2xUaXBSZWN0LnRvcCksXG4gICAgICAgICByaWdodDogTWF0aC5tYXgoZWxlbWVudFJlY3QucmlnaHQsIHRvb2xUaXBSZWN0LnJpZ2h0KSxcbiAgICAgICAgIGxlZnQ6IE1hdGgubWluKGVsZW1lbnRSZWN0LmxlZnQsIHRvb2xUaXBSZWN0LmxlZnQpLFxuICAgICAgICAgYm90dG9tOiBNYXRoLm1heChlbGVtZW50UmVjdC5ib3R0b20sIHRvb2xUaXBSZWN0LmJvdHRvbSlcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmlzTW91c2VQb3NpdGlvbk91dHNpZGVPZkVsZW1lbnQoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSwgdG90YWxFbGVtZW50QXJlYSkpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGlzTW91c2VQb3NpdGlvbk91dHNpZGVPZkVsZW1lbnQobW91c2VYOiBudW1iZXIsIG1vdXNlWTogbnVtYmVyLCBlbGVtZW50QXJlYTogRWxlbWVudEFyZWEpIHtcbiAgICAgIHJldHVybiBtb3VzZVggPCBlbGVtZW50QXJlYS5sZWZ0IHx8IG1vdXNlWCA+PSBlbGVtZW50QXJlYS5yaWdodCB8fCBtb3VzZVkgPCBlbGVtZW50QXJlYS50b3AgfHwgbW91c2VZID49IGVsZW1lbnRBcmVhLmJvdHRvbTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBNYW5pcHVsYSBhIHZpc2liaWxpZGFkZSBkbyB0b29sdGlwIHF1YW5kbyBob3V2ZXIgdW1hIHJlZmVyw6puY2lhIGRlIGlucHV0LlxuICAgICovXG4gICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmZvY3VzZWRJbnB1dFJlZiwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uICYmIHRoaXMuaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUb290aXBCeUZvY3VzKGljb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5mb2N1c2VkSW5wdXRSZWYsICdibHVyJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uICYmIHRoaXMuaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKGljb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idMOpbSBvIGVsZW1lbnRvIGRvIMOtY29uZSBhc3NvY2lhZG8gYW8gbGFiZWwgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHJldHVybnMgTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmljYSBzZSBvIMOtY29uZSB0ZW0gbyB0b29sdGlwIGNvcnJlc3BvbmRlbnRlIGFvIGF0dWFsLlxuICAgICAqIEBwYXJhbSBpY29uIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEByZXR1cm5zIHRydWUgc2UgbyB0b29sdGlwIGNvcnJlc3BvbmRlOyBjYXNvIGNvbnRyw6FyaW8sIGZhbHNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdG9vbHRpcFRleHQgPSBpY29uLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC10b29sdGlwJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXAgPT09IHRvb2x0aXBUZXh0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBvIHRvb2x0aXAgYXNzb2NpYWRvIGFvIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAgKiBAcGFyYW0gaWNvbiBPIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbW92ZVRvb2x0aXAoaWNvbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG9vbHRpcCA9IGljb24ucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgIC8vIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgdG9vbHRpcCBpcyBjbGlja2VkIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIC8vIHdoZW5ldmVyIGEga2V5IGlzIHByZXNzZWQgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiKVxuICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIilcbiAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIgJiZcbiAgICAgICAgICFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkL2kpICYmXG4gICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVBob25lL2kpKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgLy8gd2hlbmV2ZXIgeW91IHRvdWNoIG91dHNpZGUgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDp0b3VjaHN0YXJ0XCIpXG4gICBwdWJsaWMgb25Eb2N1bWVudFRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiKVxuICAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Gb2N1cykge1xuICAgICAgICAgdGhpcy5jcmVhdGVUb290aXAoKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImJsdXJcIilcbiAgIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Gb2N1cykge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIpXG4gICBwdWJsaWMgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIHRoaXMuZGVib3VuY2VDcmVhdGVUb29sdGlwRnVuY3Rpb24oKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIilcbiAgIEBIb3N0TGlzdGVuZXIoXCJ3aGVlbFwiKVxuICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoc3RhcnRcIilcbiAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICB0aGlzLnRvdWNoVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVUb290aXAuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHRoaXMubW9iaWxlQmVoYXZpb3IgPT09IE1vYmlsZUJlaGF2aW9yLlByZXNzaW5nID8gdGhpcy5zaG93RGVsYXkgOiAwXG4gICAgICAgICApO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwidG91Y2hlbmRcIilcbiAgIHB1YmxpYyBvblRvdWNoRW5kKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIGlmICh0aGlzLm1vYmlsZUJlaGF2aW9yID09PSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZykge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSB2YWxpZGF0ZVBvc2l0aW9uKCkge1xuICAgICAgY29uc3QgY29udGFpbnNQb3NpdGlvbiA9IFtcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5Ub3AsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uUmlnaHQsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uQm90dG9tLFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLkxlZnQsXG4gICAgICBdLmluY2x1ZGVzKHRoaXMucG9zaXRpb24pO1xuXG4gICAgICBpZiAoIWNvbnRhaW5zUG9zaXRpb24pIHtcbiAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb29sdGlwICR7dGhpcy5wb3NpdGlvbn0gcG9zaXRpb24gaXMgdW5leHBlY3RlZGApO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGNyZWF0ZVRvb3RpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gbnVsbCAmJiB0aGlzLnRvb2x0aXA/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgZG9tRWxlbSA9IHRoaXMuZ2V0RG9tRWxlbWVudCgpO1xuICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcbiAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLnNob3dUb29sdGlwLmJpbmQodGhpcyksIHRoaXMuc2hvd0RlbGF5KTtcblxuICAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IGRvbUVsZW0ucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKTtcblxuICAgICAgICAgaWYgKHRoaXMuZGlzcGxheVRpbWUpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZGVzdHJveS5iaW5kKHRoaXMpLCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBnZXREb21FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIENyaWEgdW0gdG9vbHRpcCBwYXJhIG8gaWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgKlxuICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgKi9cbiAgIHByaXZhdGUgY3JlYXRlVG9vdGlwQnlGb2N1cyhpY29uOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IG51bGwgJiYgdGhpcy50b29sdGlwPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSB0aGlzLmdldERvbUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBkb21FbGVtLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBpY29uLmFwcGVuZENoaWxkKHRvb2x0aXApO1xuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRvb2x0aXAuY2xhc3NMaXN0LmFkZChcInRvb2x0aXAtLXZpc2libGVcIiksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52aXNpYmxlID0gdGhpcy52aXNpYmxlO1xuXG4gICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24pO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCkge1xuICAgICAgY29uc3QgbWFyZ2luID0gMjA7XG4gICAgICBjb25zdCBhbmNob3JTaXplID0gNTtcblxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b29sdGlwID0gdGhpcy50b29sdGlwO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZXNjYXBlID0gdGhpcy5lc2NhcGU7XG5cbiAgICAgICAgIGNvbnN0IHsgbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tIH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgY29uc3QgdG9vbHRpcEhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHJpZ2h0IC0gbGVmdDtcbiAgICAgICAgIGNvbnN0IHNhZmVTcGFjZSA9IDE1MDtcblxuICAgICAgICAgbGV0IHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgIGNvbnN0IGludmFsaWRPcHRpb25zOiBUb29sdGlwUG9zaXRpb25bXSA9IFtdO1xuXG4gICAgICAgICB3aGlsZSAoIXBvc2l0aW9uZWQpIHtcbiAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uVG9wKVxuICAgICAgICAgICAgICAgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSlcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KVxuICAgICAgICAgICAgICAgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlJpZ2h0KSkge1xuICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBzcGFjZSB0byBzaG93IHRvb2x0aXBcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uVG9wOiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlRvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCB0b3BTaGlmdCA9IHRvcDtcblxuICAgICAgICAgICAgICAgICAgaWYgKHRvcFNoaWZ0IDw9IHRvb2x0aXBIZWlnaHQgKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uQm90dG9tO1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uVG9wKTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCAtIG1hcmdpbiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLkJvdHRvbToge1xuXG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBib3R0b21TaGlmdCA9IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IC0gYm90dG9tO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoYm90dG9tU2hpZnQgPD0gdG9vbHRpcEhlaWdodCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHRvb2x0aXBXaWR0aCAvIDIgKyBsZWZ0KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQoYm90dG9tICsgbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5MZWZ0OiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkxlZnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0U2hpZnQgPSBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICBpZiAobGVmdFNoaWZ0IDw9IHRvb2x0aXBXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5SaWdodDtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLkxlZnQpO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQgLSBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyB0b29sdGlwSGVpZ2h0IC8gMiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlJpZ2h0OiB7XG4gICAgICAgICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlJpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgcmlnaHRTaGlmdCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggLSByaWdodDtcblxuICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0U2hpZnQgPD0gdG9vbHRpcFdpZHRoICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5SaWdodCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQocmlnaHQgKyBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyB0b29sdGlwSGVpZ2h0IC8gMiAtIGFuY2hvclNpemUpO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcbiAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbik7XG4gICB9XG59XG4iXX0=