@smartbit4all/ng-client 3.1.94 → 3.1.96

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 (95) hide show
  1. package/esm2020/lib/smart-client/smart-component-api-client.mjs +12 -1
  2. package/esm2020/lib/smart-client/smart.component.mjs +9 -2
  3. package/esm2020/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
  4. package/esm2020/lib/smart-filter-editor/api/configuration.mjs +1 -1
  5. package/esm2020/lib/smart-filter-editor/api/encoder.mjs +1 -1
  6. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
  7. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
  8. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
  9. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
  10. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
  11. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
  12. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
  13. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
  14. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  15. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
  16. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
  17. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
  18. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
  19. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  20. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
  21. package/esm2020/lib/smart-filter-editor/api/param.mjs +1 -1
  22. package/esm2020/lib/smart-filter-editor/api/variables.mjs +1 -1
  23. package/esm2020/lib/smart-form/api/model/models.mjs +2 -1
  24. package/esm2020/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  25. package/esm2020/lib/smart-form/api/model/smartWidgetHint.mjs +19 -0
  26. package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +11 -1
  27. package/esm2020/lib/smart-form/smartform.form-model.mjs +1 -1
  28. package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +5 -5
  29. package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +6 -6
  30. package/esm2020/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
  31. package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
  32. package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
  33. package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
  34. package/esm2020/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
  35. package/esm2020/lib/smart-grid/api/grid-api/index.mjs +1 -1
  36. package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
  37. package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  38. package/esm2020/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  39. package/esm2020/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  40. package/esm2020/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  41. package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
  42. package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
  43. package/esm2020/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  44. package/esm2020/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  45. package/esm2020/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  46. package/esm2020/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
  47. package/esm2020/lib/smart-grid/api/grid-api/param.mjs +1 -1
  48. package/esm2020/lib/smart-grid/api/grid-api/variables.mjs +1 -1
  49. package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  50. package/esm2020/lib/smart-tree/tree-api/configuration.mjs +1 -1
  51. package/esm2020/lib/smart-tree/tree-api/encoder.mjs +1 -1
  52. package/esm2020/lib/smart-tree/tree-api/param.mjs +1 -1
  53. package/esm2020/lib/smart-tree/tree-api/variables.mjs +1 -1
  54. package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
  55. package/esm2020/lib/view-context/api/model/uploadedFile.mjs +1 -1
  56. package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
  57. package/esm2020/lib/view-context/api/model/viewEventHandler.mjs +1 -1
  58. package/esm2020/lib/view-context/value-api/api/api.mjs +1 -1
  59. package/esm2020/lib/view-context/value-api/api/value.service.mjs +1 -1
  60. package/esm2020/lib/view-context/value-api/api.module.mjs +1 -1
  61. package/esm2020/lib/view-context/value-api/configuration.mjs +1 -1
  62. package/esm2020/lib/view-context/value-api/encoder.mjs +1 -1
  63. package/esm2020/lib/view-context/value-api/index.mjs +1 -1
  64. package/esm2020/lib/view-context/value-api/model/genericValue.mjs +1 -1
  65. package/esm2020/lib/view-context/value-api/model/models.mjs +1 -1
  66. package/esm2020/lib/view-context/value-api/model/value.mjs +1 -1
  67. package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  68. package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  69. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  70. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  71. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
  72. package/esm2020/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  73. package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  74. package/esm2020/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
  75. package/esm2020/lib/view-context/value-api/param.mjs +1 -1
  76. package/esm2020/lib/view-context/value-api/variables.mjs +1 -1
  77. package/fesm2015/smartbit4all-ng-client.mjs +54 -8
  78. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
  79. package/fesm2020/smartbit4all-ng-client.mjs +53 -8
  80. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
  81. package/lib/smart-client/smart-component-api-client.d.ts +4 -1
  82. package/lib/smart-client/smart.component.d.ts +3 -0
  83. package/lib/smart-form/api/model/models.d.ts +1 -0
  84. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +2 -0
  85. package/lib/smart-form/api/model/smartWidgetHint.d.ts +22 -0
  86. package/lib/smart-form/smartform.form-model.d.ts +20 -38
  87. package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +5 -2
  88. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +6 -3
  89. package/package.json +1 -1
  90. package/smartbit4all-ng-client-3.1.96.tgz +0 -0
  91. package/src/lib/smart-filter-editor/api/README.md +226 -226
  92. package/src/lib/smart-grid/api/grid-api/README.md +226 -226
  93. package/src/lib/smart-tree/tree-api/README.md +226 -226
  94. package/src/lib/view-context/value-api/README.md +226 -226
  95. package/smartbit4all-ng-client-3.1.94.tgz +0 -0
@@ -3,7 +3,7 @@ import { FormControl } from '@angular/forms';
3
3
  import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter, } from '@angular/material-moment-adapter';
4
4
  import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
5
5
  import moment from 'moment';
6
- import { SmartWidgetHintPosition } from '../../../smartform.model';
6
+ import { SmartWidgetHint } from '../../../api';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/material/form-field";
9
9
  import * as i2 from "@angular/material/datepicker";
@@ -24,7 +24,7 @@ export const YEARH_MONTH_FORMAT = {
24
24
  export class SmartMonthPickerComponent {
25
25
  constructor() {
26
26
  this.valueChange = new EventEmitter();
27
- this.SmartWidgetHintPosition = SmartWidgetHintPosition;
27
+ this.SmartWidgetHintPosition = SmartWidgetHint.PositionEnum;
28
28
  }
29
29
  ngOnInit() {
30
30
  if (this.widgetInstance.value && this.widgetInstance.value.length) {
@@ -53,7 +53,7 @@ SmartMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
53
53
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
54
54
  },
55
55
  { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
56
- ], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position === SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
56
+ ], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.Input\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }] });
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartMonthPickerComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'lib-smart-month-picker', providers: [
@@ -63,10 +63,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
63
63
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
64
64
  },
65
65
  { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
66
- ], template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position === SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""] }]
66
+ ], template: "<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"dp\" placeholder=\"Month and Year\" [formControl]=\"date\" />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.Input\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n", styles: [""] }]
67
67
  }], propDecorators: { widgetInstance: [{
68
68
  type: Input
69
69
  }], valueChange: [{
70
70
  type: Output
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vd2lkZ2V0cy9jb21wb25lbnRzL3NtYXJ0LW1vbnRoLXBpY2tlci9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbW9udGgtcGlja2VyL3NtYXJ0LW1vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJeEYsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBa0IsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUVuRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsU0FBUztLQUNyQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBZUYsTUFBTSxPQUFPLHlCQUF5QjtJQWJ0QztRQWVZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyw0QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztLQXNCbkQ7SUFwQkMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDNUM7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsVUFBaUM7UUFDbEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOztzSEF6QlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsd0lBVHpCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsV0FBVztZQUNwQixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQztTQUN6RDtRQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtLQUM1RCwwQkNyQ0gsdXlCQXNCQTsyRkRpQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3lCQUN6RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7cUJBQzVEOzhCQUdRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLFxyXG4gIE1vbWVudERhdGVBZGFwdGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE1vbnRoUGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IFNtYXJ0VmFsaWRhdG9yLCBTbWFydFdpZGdldEhpbnRQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY29uc3QgWUVBUkhfTU9OVEhfRk9STUFUID0ge1xyXG4gIHBhcnNlOiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdNTS9ZWVlZJyxcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogJ01NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc21hcnQtbW9udGgtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcclxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxyXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBZRUFSSF9NT05USF9GT1JNQVQgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRNb250aFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgd2lkZ2V0SW5zdGFuY2UhOiBTbWFydE1vbnRoUGlja2VyO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkYXRlITogRm9ybUNvbnRyb2w7XHJcbiAgU21hcnRXaWRnZXRIaW50UG9zaXRpb24gPSBTbWFydFdpZGdldEhpbnRQb3NpdGlvbjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSAmJiB0aGlzLndpZGdldEluc3RhbmNlLnZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xyXG4gICAgICBsZXQgdmFsdWVJbk1vbWVudCA9IG1vbWVudChkYXRlKTtcclxuICAgICAgdGhpcy5kYXRlID0gbmV3IEZvcm1Db250cm9sKHZhbHVlSW5Nb21lbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlID0gbmV3IEZvcm1Db250cm9sKG1vbWVudCgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNob3Nlbk1vbnRoSGFuZGxlcihtb21lbnQ6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XHJcbiAgICBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmRhdGUudmFsdWU7XHJcbiAgICBjdHJsVmFsdWUubW9udGgobW9tZW50Lm1vbnRoKCkpO1xyXG4gICAgY3RybFZhbHVlLnllYXIobW9tZW50LnllYXIoKSk7XHJcblxyXG4gICAgdGhpcy5kYXRlLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KGN0cmxWYWx1ZSk7XHJcbiAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWFydC1tb250aC1waWNrZXItY29udGFpbmVyXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZHBcIiBwbGFjZWhvbGRlcj1cIk1vbnRoIGFuZCBZZWFyXCIgW2Zvcm1Db250cm9sXT1cImRhdGVcIiAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkcFwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyXHJcbiAgICAgICNkcFxyXG4gICAgICBzdGFydFZpZXc9XCJtdWx0aS15ZWFyXCJcclxuICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwiY2hvc2VuTW9udGhIYW5kbGVyKCRldmVudCwgZHApXCJcclxuICAgICAgcGFuZWxDbGFzcz1cImV4YW1wbGUtbW9udGgtcGlja2VyXCJcclxuICAgID5cclxuICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8ZGl2IGNsYXNzPVwic21hcnQtbW9udGgtcGlja2VyLWhpbnRcIj5cclxuICAgIDxtYXQtaGludFxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgICF3aWRnZXRJbnN0YW5jZT8uaGludENvbmZpZyB8fFxyXG4gICAgICAgIHdpZGdldEluc3RhbmNlPy5oaW50Q29uZmlnPy5wb3NpdGlvbiA9PT0gU21hcnRXaWRnZXRIaW50UG9zaXRpb24uVU5ERVJfSU5QVVRcclxuICAgICAgXCJcclxuICAgICAgPnt7IHdpZGdldEluc3RhbmNlLmhpbnQgfX08L21hdC1oaW50XHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vd2lkZ2V0cy9jb21wb25lbnRzL3NtYXJ0LW1vbnRoLXBpY2tlci9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbW9udGgtcGlja2VyL3NtYXJ0LW1vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGlCQUFpQixHQUNsQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJeEYsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFFL0MsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLFNBQVM7S0FDckI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsU0FBUztRQUNwQixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2hDO0NBQ0YsQ0FBQztBQWVGLE1BQU0sT0FBTyx5QkFBeUI7SUFidEM7UUFlWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0MsNEJBQXVCLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztLQXNCeEQ7SUFwQkMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDNUM7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsVUFBaUM7UUFDbEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOztzSEF6QlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsd0lBVHpCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsV0FBVztZQUNwQixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQztTQUN6RDtRQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtLQUM1RCwwQkN0Q0gsZ3hCQXFCQTsyRkRtQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3lCQUN6RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7cUJBQzVEOzhCQUdRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLFxyXG4gIE1vbWVudERhdGVBZGFwdGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE1vbnRoUGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IFNtYXJ0VmFsaWRhdG9yLCBTbWFydFdpZGdldEhpbnRQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0V2lkZ2V0SGludCB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XHJcblxyXG5leHBvcnQgY29uc3QgWUVBUkhfTU9OVEhfRk9STUFUID0ge1xyXG4gIHBhcnNlOiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdNTS9ZWVlZJyxcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogJ01NL1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc21hcnQtbW9udGgtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcclxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxyXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBZRUFSSF9NT05USF9GT1JNQVQgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRNb250aFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgd2lkZ2V0SW5zdGFuY2UhOiBTbWFydE1vbnRoUGlja2VyO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkYXRlITogRm9ybUNvbnRyb2w7XHJcbiAgU21hcnRXaWRnZXRIaW50UG9zaXRpb24gPSBTbWFydFdpZGdldEhpbnQuUG9zaXRpb25FbnVtO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndpZGdldEluc3RhbmNlLnZhbHVlICYmIHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSk7XHJcbiAgICAgIGxldCB2YWx1ZUluTW9tZW50ID0gbW9tZW50KGRhdGUpO1xyXG4gICAgICB0aGlzLmRhdGUgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWVJbk1vbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGUgPSBuZXcgRm9ybUNvbnRyb2wobW9tZW50KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hvc2VuTW9udGhIYW5kbGVyKG1vbWVudDogTW9tZW50LCBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD4pIHtcclxuICAgIGNvbnN0IGN0cmxWYWx1ZSA9IHRoaXMuZGF0ZS52YWx1ZTtcclxuICAgIGN0cmxWYWx1ZS5tb250aChtb21lbnQubW9udGgoKSk7XHJcbiAgICBjdHJsVmFsdWUueWVhcihtb21lbnQueWVhcigpKTtcclxuXHJcbiAgICB0aGlzLmRhdGUuc2V0VmFsdWUoY3RybFZhbHVlKTtcclxuXHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQoY3RybFZhbHVlKTtcclxuICAgIGRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LW1vbnRoLXBpY2tlci1jb250YWluZXJcIj5cclxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJkcFwiIHBsYWNlaG9sZGVyPVwiTW9udGggYW5kIFllYXJcIiBbZm9ybUNvbnRyb2xdPVwiZGF0ZVwiIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRwXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXJcclxuICAgICAgI2RwXHJcbiAgICAgIHN0YXJ0Vmlldz1cIm11bHRpLXllYXJcIlxyXG4gICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5Nb250aEhhbmRsZXIoJGV2ZW50LCBkcClcIlxyXG4gICAgICBwYW5lbENsYXNzPVwiZXhhbXBsZS1tb250aC1waWNrZXJcIlxyXG4gICAgPlxyXG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxkaXYgY2xhc3M9XCJzbWFydC1tb250aC1waWNrZXItaGludFwiPlxyXG4gICAgPG1hdC1oaW50XHJcbiAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgIXdpZGdldEluc3RhbmNlPy5oaW50IHx8IHdpZGdldEluc3RhbmNlPy5oaW50Py5wb3NpdGlvbiA9PT0gU21hcnRXaWRnZXRIaW50UG9zaXRpb24uSW5wdXRcclxuICAgICAgXCJcclxuICAgICAgPnt7IHdpZGdldEluc3RhbmNlLmhpbnQ/LnRleHQgfX08L21hdC1oaW50XHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=