imm-element-ui 2.0.1 → 2.0.3

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 (106) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/am/am.component.mjs +6 -6
  3. package/esm2022/lib/crumb-action/crumb-action.component.mjs +3 -3
  4. package/esm2022/lib/form/form/form.component.mjs +5 -5
  5. package/esm2022/lib/form/form-field/context-menu.mjs +35 -35
  6. package/esm2022/lib/form/form-field/field-control.mjs +1 -1
  7. package/esm2022/lib/form/form-field/field-utils.mjs +2 -2
  8. package/esm2022/lib/form/form-field/form-field.mjs +135 -135
  9. package/esm2022/lib/form/form-field/form-type.mjs +85 -85
  10. package/esm2022/lib/form/form-field/index.mjs +1 -1
  11. package/esm2022/lib/form/form-field/label.directive.mjs +1 -1
  12. package/esm2022/lib/form/form-type/autocomplete.type.mjs +151 -151
  13. package/esm2022/lib/form/form-type/codemirror.type.mjs +6 -3
  14. package/esm2022/lib/form/form-type/datepicker.type.mjs +183 -183
  15. package/esm2022/lib/form/form-type/image.type.mjs +221 -221
  16. package/esm2022/lib/form/form-type/index.mjs +1 -1
  17. package/esm2022/lib/form/form-type/inputnumber.type.mjs +91 -91
  18. package/esm2022/lib/form/form-type/inputtext.type.mjs +19 -19
  19. package/esm2022/lib/form/form-type/multiselect.type.mjs +165 -163
  20. package/esm2022/lib/form/form-type/radio.type.mjs +78 -78
  21. package/esm2022/lib/form/form-type/rowselector.type.mjs +29 -29
  22. package/esm2022/lib/form/form-type/select.type.mjs +135 -133
  23. package/esm2022/lib/form/form-type/textarea.type.mjs +25 -25
  24. package/esm2022/lib/form/form-type/treeselect.type.mjs +115 -115
  25. package/esm2022/lib/form/form-type/upload.type.mjs +133 -133
  26. package/esm2022/lib/grid/actions/actions.component.mjs +1 -1
  27. package/esm2022/lib/grid/cell-edit/cell-edit-autoComplete.component.mjs +27 -27
  28. package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +140 -140
  29. package/esm2022/lib/grid/cell-edit/cell-edit-inputDate.component.mjs +27 -27
  30. package/esm2022/lib/grid/cell-edit/cell-edit-inputNumber.component.mjs +75 -75
  31. package/esm2022/lib/grid/cell-edit/cell-edit-inputText.compoent.mjs +1 -1
  32. package/esm2022/lib/grid/cell-edit/cell-edit-select.component.mjs +126 -122
  33. package/esm2022/lib/grid/cell-edit/index.mjs +1 -1
  34. package/esm2022/lib/grid/cell-render/async-renderer.mjs +1 -1
  35. package/esm2022/lib/grid/cell-render/chip-render.mjs +21 -21
  36. package/esm2022/lib/grid/cell-render/img-renderer.mjs +25 -25
  37. package/esm2022/lib/grid/cell-render/link-render.mjs +13 -13
  38. package/esm2022/lib/grid/cell-render/row-span.mjs +5 -5
  39. package/esm2022/lib/grid/grid/grid.component.mjs +5 -5
  40. package/esm2022/lib/grid/grid-utils.mjs +1 -1
  41. package/esm2022/lib/grid/mock-data.mjs +1 -1
  42. package/esm2022/lib/grid/pager/pager.component.mjs +3 -3
  43. package/esm2022/lib/head/head.component.mjs +4 -4
  44. package/esm2022/lib/href-btn-list/href-btn-list.component.mjs +7 -7
  45. package/esm2022/lib/import/import.component.mjs +3 -3
  46. package/esm2022/lib/loading/loading.component.mjs +4 -4
  47. package/esm2022/lib/log/log.component.mjs +3 -3
  48. package/esm2022/lib/page-form/page-form.component.mjs +7 -7
  49. package/esm2022/lib/page-form/page-form.interface.mjs +1 -1
  50. package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +3 -3
  51. package/esm2022/lib/row-selector/row-selector.component.mjs +3 -3
  52. package/esm2022/lib/search/mock-data.mjs +1 -1
  53. package/esm2022/lib/search/pop-date/pop-date.component.mjs +3 -3
  54. package/esm2022/lib/search/pop-list/pop-list.component.mjs +3 -3
  55. package/esm2022/lib/search/pop-panel/pop-panel.component.mjs +3 -3
  56. package/esm2022/lib/search/pop-select/pop-select.component.mjs +3 -3
  57. package/esm2022/lib/search/pop-self/pop-self.component.mjs +3 -3
  58. package/esm2022/lib/search/pop-sort/pop-sort.component.mjs +3 -3
  59. package/esm2022/lib/search/pop-tree/pop-tree.component.mjs +3 -3
  60. package/esm2022/lib/search/search/search.component.mjs +4 -4
  61. package/esm2022/lib/search/search-tip/search-tip.component.mjs +3 -3
  62. package/esm2022/lib/search/search-utils.mjs +1 -1
  63. package/esm2022/lib/search/text-panel/text-panel.component.mjs +3 -3
  64. package/esm2022/lib/service/i18n.service.mjs +1 -1
  65. package/esm2022/lib/service/loading.service.mjs +1 -1
  66. package/esm2022/lib/service/themeConfig.service.mjs +1 -1
  67. package/esm2022/lib/share/utils.mjs +11 -1
  68. package/esm2022/lib/steps/steps.component.mjs +4 -4
  69. package/esm2022/lib/theme-config/theme-config-panel.compoent.mjs +39 -39
  70. package/esm2022/lib/theme-config/theme-config.compoent.mjs +29 -29
  71. package/esm2022/public-api.mjs +1 -1
  72. package/fesm2022/imm-element-ui.mjs +3485 -3467
  73. package/fesm2022/imm-element-ui.mjs.map +1 -1
  74. package/lib/crumb-action/crumb-action.component.d.ts +1 -1
  75. package/lib/form/form-type/codemirror.type.d.ts +1 -1
  76. package/lib/form/form-type/multiselect.type.d.ts +1 -0
  77. package/lib/form/form-type/select.type.d.ts +1 -0
  78. package/lib/grid/cell-edit/cell-edit-select.component.d.ts +1 -0
  79. package/lib/grid/grid-utils.d.ts +529 -2
  80. package/lib/share/utils.d.ts +2 -0
  81. package/lib/steps/steps.component.d.ts +1 -1
  82. package/package.json +1 -1
  83. package/src/lib/crumb-action/crumb-action.component.scss +60 -60
  84. package/src/lib/grid/grid/grid.component.scss +45 -45
  85. package/src/lib/grid/pager/pager.component.scss +3 -3
  86. package/src/lib/head/head.component.scss +3 -3
  87. package/src/lib/href-btn-list/href-btn-list.component.scss +51 -51
  88. package/src/lib/import/import.component.scss +10 -10
  89. package/src/lib/loading/loading.component.scss +31 -31
  90. package/src/lib/log/log.component.scss +26 -26
  91. package/src/lib/page-form/page-form.component.scss +31 -31
  92. package/src/lib/page-grid-list/page-grid-list.component.scss +12 -12
  93. package/src/lib/row-selector/row-selector.component.scss +1 -1
  94. package/src/lib/search/dynamic-search/dynamic-search.component.scss +70 -70
  95. package/src/lib/search/pop-date/pop-date.component.scss +67 -67
  96. package/src/lib/search/pop-list/pop-list.component.scss +23 -23
  97. package/src/lib/search/pop-panel/pop-panel.component.scss +32 -32
  98. package/src/lib/search/pop-select/pop-select.component.scss +39 -39
  99. package/src/lib/search/pop-self/pop-self.component.scss +80 -80
  100. package/src/lib/search/pop-sort/pop-sort.component.scss +49 -49
  101. package/src/lib/search/pop-tree/pop-tree.component.scss +37 -37
  102. package/src/lib/search/search/search.component.scss +70 -70
  103. package/src/lib/search/search-tip/search-tip.component.scss +50 -50
  104. package/src/lib/search/text-panel/text-panel.component.scss +24 -24
  105. package/src/lib/steps/steps.component.scss +97 -97
  106. package/src/lib/styles/styles.scss +232 -232
@@ -47,163 +47,163 @@ export class AutoCompleteComponent {
47
47
  }
48
48
  }
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AutoCompleteComponent, isStandalone: true, selector: "form-autocomplete", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-autocomplete
51
- [id]="field()?.uuid"
52
- [inputId]="field()?.uuid"
53
- [minLength]="props.minLength ?? 1"
54
- [delay]="props.delay ?? 300"
55
- [panelStyle]="props.panelStyle"
56
- [panelStyleClass]="props.panelStyleClass"
57
- [styleClass]="props.styleClass"
58
- [inputStyle]="props.inputStyle"
59
- [inputStyleClass]="props.inputStyleClass"
60
- [placeholder]="props.placeholder"
61
- [readonly]="props.readonly"
62
- [scrollHeight]="props.scrollHeight ?? '200px'"
63
- [lazy]="props.lazy"
64
- [virtualScroll]="props.virtualScroll"
65
- [virtualScrollItemSize]="props.virtualScrollItemSize"
66
- [virtualScrollOptions]="props.virtualScrollOptions"
67
- [maxlength]="props.maxlength"
68
- [name]="props.name"
69
- [size]="props.size"
70
- [appendTo]="props.appendTo ?? 'body'"
71
- [autoHighlight]="props.autoHighlight"
72
- [forceSelection]="props.forceSelection"
73
- [type]="props.type ?? 'text'"
74
- [autoZIndex]="props.autoZIndex ?? true"
75
- [baseZIndex]="props.baseZIndex ?? 0"
76
- [ariaLabel]="props.ariaLabel"
77
- [ariaLabelledBy]="props.ariaLabelledBy"
78
- [dropdownAriaLabel]="props.dropdownAriaLabel"
79
- [dropdownIcon]="props.dropdownIcon"
80
- [unique]="props.unique ?? true"
81
- [group]="props.group"
82
- [completeOnFocus]="props.completeOnFocus"
83
- [showClear]="props.showClear"
84
- [dropdown]="props.dropdown"
85
- [showEmptyMessage]="props.showEmptyMessage ?? true"
86
- [dropdownMode]="props.dropdownMode ?? 'blank'"
87
- [multiple]="props.multiple"
88
- [tabindex]="props.tabindex"
89
- [dataKey]="props.dataKey"
90
- [emptyMessage]="props.emptyMessage"
91
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
92
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
93
- [autofocus]="props.autofocus"
94
- [autocomplete]="props.autocomplete ?? 'off'"
95
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
96
- [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
97
- [overlayOptions]="props.overlayOptions"
98
- [suggestions]="props.suggestions ?? []"
99
- [optionLabel]="props.optionLabel"
100
- [optionValue]="props.optionValue"
101
- [searchMessage]="props.searchMessage ?? '{0} results are available'"
102
- [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
103
- [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
104
- [autoOptionFocus]="props.autoOptionFocus"
105
- [selectOnFocus]="props.selectOnFocus"
106
- [searchLocale]="props.searchLocale"
107
- [optionDisabled]="props.optionDisabled"
108
- [focusOnHover]="props.focusOnHover ?? true"
109
- [typeahead]="props.typeahead ?? true"
110
- [variant]="props.variant"
111
- [fluid]="props.fluid ?? true"
112
- [class]="props.class"
113
- [style]="props.style"
114
- (completeMethod)="props.completeMethod?.(field()!, $event)"
115
- (onSelect)="props.onSelect?.(field()!, $event)"
116
- (onUnselect)="props.onUnselect?.(field()!, $event)"
117
- (onFocus)="props.onFocus?.(field()!, $event)"
118
- (onBlur)="props.onBlur?.(field()!, $event)"
119
- (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
120
- (onClear)="props.onClear?.(field()!, $event)"
121
- (onKeyUp)="props.onKeyUp?.(field()!, $event)"
122
- (onShow)="props.onShow?.(field()!, $event)"
123
- (onHide)="props.onHide?.(field()!, $event)"
124
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AutoCompleteComponent, isStandalone: true, selector: "form-autocomplete", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-autocomplete
51
+ [id]="field()?.uuid"
52
+ [inputId]="field()?.uuid"
53
+ [minLength]="props.minLength ?? 1"
54
+ [delay]="props.delay ?? 300"
55
+ [panelStyle]="props.panelStyle"
56
+ [panelStyleClass]="props.panelStyleClass"
57
+ [styleClass]="props.styleClass"
58
+ [inputStyle]="props.inputStyle"
59
+ [inputStyleClass]="props.inputStyleClass"
60
+ [placeholder]="props.placeholder"
61
+ [readonly]="props.readonly"
62
+ [scrollHeight]="props.scrollHeight ?? '200px'"
63
+ [lazy]="props.lazy"
64
+ [virtualScroll]="props.virtualScroll"
65
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
66
+ [virtualScrollOptions]="props.virtualScrollOptions"
67
+ [maxlength]="props.maxlength"
68
+ [name]="props.name"
69
+ [size]="props.size"
70
+ [appendTo]="props.appendTo ?? 'body'"
71
+ [autoHighlight]="props.autoHighlight"
72
+ [forceSelection]="props.forceSelection"
73
+ [type]="props.type ?? 'text'"
74
+ [autoZIndex]="props.autoZIndex ?? true"
75
+ [baseZIndex]="props.baseZIndex ?? 0"
76
+ [ariaLabel]="props.ariaLabel"
77
+ [ariaLabelledBy]="props.ariaLabelledBy"
78
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
79
+ [dropdownIcon]="props.dropdownIcon"
80
+ [unique]="props.unique ?? true"
81
+ [group]="props.group"
82
+ [completeOnFocus]="props.completeOnFocus"
83
+ [showClear]="props.showClear"
84
+ [dropdown]="props.dropdown"
85
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
86
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
87
+ [multiple]="props.multiple"
88
+ [tabindex]="props.tabindex"
89
+ [dataKey]="props.dataKey"
90
+ [emptyMessage]="props.emptyMessage"
91
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
92
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
93
+ [autofocus]="props.autofocus"
94
+ [autocomplete]="props.autocomplete ?? 'off'"
95
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
96
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
97
+ [overlayOptions]="props.overlayOptions"
98
+ [suggestions]="props.suggestions ?? []"
99
+ [optionLabel]="props.optionLabel"
100
+ [optionValue]="props.optionValue"
101
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
102
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
103
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
104
+ [autoOptionFocus]="props.autoOptionFocus"
105
+ [selectOnFocus]="props.selectOnFocus"
106
+ [searchLocale]="props.searchLocale"
107
+ [optionDisabled]="props.optionDisabled"
108
+ [focusOnHover]="props.focusOnHover ?? true"
109
+ [typeahead]="props.typeahead ?? true"
110
+ [variant]="props.variant"
111
+ [fluid]="props.fluid ?? true"
112
+ [class]="props.class"
113
+ [style]="props.style"
114
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
115
+ (onSelect)="props.onSelect?.(field()!, $event)"
116
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
117
+ (onFocus)="props.onFocus?.(field()!, $event)"
118
+ (onBlur)="props.onBlur?.(field()!, $event)"
119
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
120
+ (onClear)="props.onClear?.(field()!, $event)"
121
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
122
+ (onShow)="props.onShow?.(field()!, $event)"
123
+ (onHide)="props.onHide?.(field()!, $event)"
124
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
125
125
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
126
126
  }
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'form-autocomplete', standalone: true, imports: [AutoComplete, ReactiveFormsModule], template: `<p-autocomplete
130
- [id]="field()?.uuid"
131
- [inputId]="field()?.uuid"
132
- [minLength]="props.minLength ?? 1"
133
- [delay]="props.delay ?? 300"
134
- [panelStyle]="props.panelStyle"
135
- [panelStyleClass]="props.panelStyleClass"
136
- [styleClass]="props.styleClass"
137
- [inputStyle]="props.inputStyle"
138
- [inputStyleClass]="props.inputStyleClass"
139
- [placeholder]="props.placeholder"
140
- [readonly]="props.readonly"
141
- [scrollHeight]="props.scrollHeight ?? '200px'"
142
- [lazy]="props.lazy"
143
- [virtualScroll]="props.virtualScroll"
144
- [virtualScrollItemSize]="props.virtualScrollItemSize"
145
- [virtualScrollOptions]="props.virtualScrollOptions"
146
- [maxlength]="props.maxlength"
147
- [name]="props.name"
148
- [size]="props.size"
149
- [appendTo]="props.appendTo ?? 'body'"
150
- [autoHighlight]="props.autoHighlight"
151
- [forceSelection]="props.forceSelection"
152
- [type]="props.type ?? 'text'"
153
- [autoZIndex]="props.autoZIndex ?? true"
154
- [baseZIndex]="props.baseZIndex ?? 0"
155
- [ariaLabel]="props.ariaLabel"
156
- [ariaLabelledBy]="props.ariaLabelledBy"
157
- [dropdownAriaLabel]="props.dropdownAriaLabel"
158
- [dropdownIcon]="props.dropdownIcon"
159
- [unique]="props.unique ?? true"
160
- [group]="props.group"
161
- [completeOnFocus]="props.completeOnFocus"
162
- [showClear]="props.showClear"
163
- [dropdown]="props.dropdown"
164
- [showEmptyMessage]="props.showEmptyMessage ?? true"
165
- [dropdownMode]="props.dropdownMode ?? 'blank'"
166
- [multiple]="props.multiple"
167
- [tabindex]="props.tabindex"
168
- [dataKey]="props.dataKey"
169
- [emptyMessage]="props.emptyMessage"
170
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
171
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
172
- [autofocus]="props.autofocus"
173
- [autocomplete]="props.autocomplete ?? 'off'"
174
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
175
- [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
176
- [overlayOptions]="props.overlayOptions"
177
- [suggestions]="props.suggestions ?? []"
178
- [optionLabel]="props.optionLabel"
179
- [optionValue]="props.optionValue"
180
- [searchMessage]="props.searchMessage ?? '{0} results are available'"
181
- [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
182
- [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
183
- [autoOptionFocus]="props.autoOptionFocus"
184
- [selectOnFocus]="props.selectOnFocus"
185
- [searchLocale]="props.searchLocale"
186
- [optionDisabled]="props.optionDisabled"
187
- [focusOnHover]="props.focusOnHover ?? true"
188
- [typeahead]="props.typeahead ?? true"
189
- [variant]="props.variant"
190
- [fluid]="props.fluid ?? true"
191
- [class]="props.class"
192
- [style]="props.style"
193
- (completeMethod)="props.completeMethod?.(field()!, $event)"
194
- (onSelect)="props.onSelect?.(field()!, $event)"
195
- (onUnselect)="props.onUnselect?.(field()!, $event)"
196
- (onFocus)="props.onFocus?.(field()!, $event)"
197
- (onBlur)="props.onBlur?.(field()!, $event)"
198
- (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
199
- (onClear)="props.onClear?.(field()!, $event)"
200
- (onKeyUp)="props.onKeyUp?.(field()!, $event)"
201
- (onShow)="props.onShow?.(field()!, $event)"
202
- (onHide)="props.onHide?.(field()!, $event)"
203
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
129
+ args: [{ selector: 'form-autocomplete', standalone: true, imports: [AutoComplete, ReactiveFormsModule], template: `<p-autocomplete
130
+ [id]="field()?.uuid"
131
+ [inputId]="field()?.uuid"
132
+ [minLength]="props.minLength ?? 1"
133
+ [delay]="props.delay ?? 300"
134
+ [panelStyle]="props.panelStyle"
135
+ [panelStyleClass]="props.panelStyleClass"
136
+ [styleClass]="props.styleClass"
137
+ [inputStyle]="props.inputStyle"
138
+ [inputStyleClass]="props.inputStyleClass"
139
+ [placeholder]="props.placeholder"
140
+ [readonly]="props.readonly"
141
+ [scrollHeight]="props.scrollHeight ?? '200px'"
142
+ [lazy]="props.lazy"
143
+ [virtualScroll]="props.virtualScroll"
144
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
145
+ [virtualScrollOptions]="props.virtualScrollOptions"
146
+ [maxlength]="props.maxlength"
147
+ [name]="props.name"
148
+ [size]="props.size"
149
+ [appendTo]="props.appendTo ?? 'body'"
150
+ [autoHighlight]="props.autoHighlight"
151
+ [forceSelection]="props.forceSelection"
152
+ [type]="props.type ?? 'text'"
153
+ [autoZIndex]="props.autoZIndex ?? true"
154
+ [baseZIndex]="props.baseZIndex ?? 0"
155
+ [ariaLabel]="props.ariaLabel"
156
+ [ariaLabelledBy]="props.ariaLabelledBy"
157
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
158
+ [dropdownIcon]="props.dropdownIcon"
159
+ [unique]="props.unique ?? true"
160
+ [group]="props.group"
161
+ [completeOnFocus]="props.completeOnFocus"
162
+ [showClear]="props.showClear"
163
+ [dropdown]="props.dropdown"
164
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
165
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
166
+ [multiple]="props.multiple"
167
+ [tabindex]="props.tabindex"
168
+ [dataKey]="props.dataKey"
169
+ [emptyMessage]="props.emptyMessage"
170
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
171
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
172
+ [autofocus]="props.autofocus"
173
+ [autocomplete]="props.autocomplete ?? 'off'"
174
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
175
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
176
+ [overlayOptions]="props.overlayOptions"
177
+ [suggestions]="props.suggestions ?? []"
178
+ [optionLabel]="props.optionLabel"
179
+ [optionValue]="props.optionValue"
180
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
181
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
182
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
183
+ [autoOptionFocus]="props.autoOptionFocus"
184
+ [selectOnFocus]="props.selectOnFocus"
185
+ [searchLocale]="props.searchLocale"
186
+ [optionDisabled]="props.optionDisabled"
187
+ [focusOnHover]="props.focusOnHover ?? true"
188
+ [typeahead]="props.typeahead ?? true"
189
+ [variant]="props.variant"
190
+ [fluid]="props.fluid ?? true"
191
+ [class]="props.class"
192
+ [style]="props.style"
193
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
194
+ (onSelect)="props.onSelect?.(field()!, $event)"
195
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
196
+ (onFocus)="props.onFocus?.(field()!, $event)"
197
+ (onBlur)="props.onBlur?.(field()!, $event)"
198
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
199
+ (onClear)="props.onClear?.(field()!, $event)"
200
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
201
+ (onShow)="props.onShow?.(field()!, $event)"
202
+ (onHide)="props.onHide?.(field()!, $event)"
203
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
204
204
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
205
205
  }], ctorParameters: () => [{ type: i1.ActionService }, { type: i0.Renderer2 }], propDecorators: { autoCompleteRef: [{
206
206
  type: ViewChild,
207
207
  args: [AutoComplete, { read: ElementRef, static: false }]
208
208
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL2F1dG9jb21wbGV0ZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQXFKcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUlqQyxZQUNTLE1BQXFCLEVBQ3JCLFFBQW1CO1FBRG5CLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUo1QixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFLN0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLGlCQUFrQixDQUFDO2dCQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3RSxDQUFDO2lCQUFNLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3BFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsWUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDRixDQUFDOytHQTNDVyxxQkFBcUI7bUdBQXJCLHFCQUFxQixrUUFDdEIsWUFBWSwyQkFBVSxVQUFVLDZCQS9FakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0Q0EyRWlDLHdzTEE1RWpDLFlBQVksc3RDQUFFLG1CQUFtQjs7NEZBK0UvQixxQkFBcUI7a0JBbEZqQyxTQUFTOytCQUNDLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsWUFDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0Q0EyRWlDOzBHQUltQixlQUFlO3NCQUE1RSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU2Nyb2xsZXJPcHRpb25zLCBPdmVybGF5T3B0aW9ucyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvQ29tcGxldGVQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xyXG5cdHNjcm9sbEhlaWdodD86IHN0cmluZztcclxuXHRtaW5MZW5ndGg/OiBudW1iZXI7XHJcblx0ZGVsYXk/OiBudW1iZXI7XHJcblx0cGFuZWxTdHlsZT86IGFueTtcclxuXHRwYW5lbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0YXV0b0hpZ2hsaWdodD86IGJvb2xlYW47XHJcblx0Zm9yY2VTZWxlY3Rpb24/OiBib29sZWFuO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0YXV0b1pJbmRleD86IGJvb2xlYW47XHJcblx0YmFzZVpJbmRleD86IG51bWJlcjtcclxuXHRkcm9wZG93bkFyaWFMYWJlbD86IHN0cmluZztcclxuXHR1bmlxdWU/OiBib29sZWFuO1xyXG5cdGNvbXBsZXRlT25Gb2N1cz86IGJvb2xlYW47XHJcblx0ZHJvcGRvd24/OiBib29sZWFuO1xyXG5cdHNob3dFbXB0eU1lc3NhZ2U/OiBib29sZWFuO1xyXG5cdGRyb3Bkb3duTW9kZT86IHN0cmluZztcclxuXHRtdWx0aXBsZT86IGJvb2xlYW47XHJcblx0c2hvd1RyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xyXG5cdGhpZGVUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcclxuXHRhdXRvY29tcGxldGU/OiBzdHJpbmc7XHJcblx0b3B0aW9uR3JvdXBDaGlsZHJlbj86IHN0cmluZztcclxuXHRvcHRpb25Hcm91cExhYmVsPzogc3RyaW5nO1xyXG5cdHN1Z2dlc3Rpb25zPzogYW55W107XHJcblx0b3B0aW9uTGFiZWw/OiBzdHJpbmcgfCAoKGl0ZW06IGFueSkgPT4gc3RyaW5nKTtcclxuXHRvcHRpb25WYWx1ZT86IHN0cmluZyB8ICgoaXRlbTogYW55KSA9PiBzdHJpbmcpO1xyXG5cdHNlYXJjaE1lc3NhZ2U/OiBzdHJpbmc7XHJcblx0ZW1wdHlTZWxlY3Rpb25NZXNzYWdlPzogc3RyaW5nO1xyXG5cdHNlbGVjdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XHJcblx0YXV0b09wdGlvbkZvY3VzPzogYm9vbGVhbjtcclxuXHRzZWxlY3RPbkZvY3VzPzogYm9vbGVhbjtcclxuXHRzZWFyY2hMb2NhbGU/OiBib29sZWFuO1xyXG5cdG9wdGlvbkRpc2FibGVkPzogc3RyaW5nO1xyXG5cdGZvY3VzT25Ib3Zlcj86IGJvb2xlYW47XHJcblx0dHlwZWFoZWFkPzogYm9vbGVhbjtcclxuXHRyZWFkb25seT86IGJvb2xlYW47XHJcblx0YXBwZW5kVG8/OiBhbnk7XHJcblx0dGFiaW5kZXg/OiBudW1iZXI7XHJcblx0ZGF0YUtleT86IHN0cmluZztcclxuXHRkcm9wZG93bkljb24/OiBzdHJpbmc7XHJcblx0Z3JvdXA/OiBib29sZWFuO1xyXG5cdHNob3dDbGVhcj86IGJvb2xlYW47XHJcblx0ZW1wdHlNZXNzYWdlPzogYW55O1xyXG5cdGxhenk/OiBib29sZWFuO1xyXG5cdHZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xyXG5cdHZpcnR1YWxTY3JvbGxJdGVtU2l6ZT86IG51bWJlcjtcclxuXHR2aXJ0dWFsU2Nyb2xsT3B0aW9ucz86IFNjcm9sbGVyT3B0aW9ucztcclxuXHRvdmVybGF5T3B0aW9ucz86IE92ZXJsYXlPcHRpb25zO1xyXG5cdG1heGxlbmd0aD86IGFueTtcclxuXHJcblx0Y29tcGxldGVNZXRob2Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNlbGVjdD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uVW5zZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25CbHVyPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25Ecm9wZG93bkNsaWNrPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uS2V5VXA/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNob3c/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkhpZGU/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkxhenlMb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZm9ybS1hdXRvY29tcGxldGUnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0F1dG9Db21wbGV0ZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGU6IGA8cC1hdXRvY29tcGxldGVcclxuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcclxuXHRcdFtpbnB1dElkXT1cImZpZWxkKCk/LnV1aWRcIlxyXG5cdFx0W21pbkxlbmd0aF09XCJwcm9wcy5taW5MZW5ndGggPz8gMVwiXHJcblx0XHRbZGVsYXldPVwicHJvcHMuZGVsYXkgPz8gMzAwXCJcclxuXHRcdFtwYW5lbFN0eWxlXT1cInByb3BzLnBhbmVsU3R5bGVcIlxyXG5cdFx0W3BhbmVsU3R5bGVDbGFzc109XCJwcm9wcy5wYW5lbFN0eWxlQ2xhc3NcIlxyXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXHJcblx0XHRbaW5wdXRTdHlsZV09XCJwcm9wcy5pbnB1dFN0eWxlXCJcclxuXHRcdFtpbnB1dFN0eWxlQ2xhc3NdPVwicHJvcHMuaW5wdXRTdHlsZUNsYXNzXCJcclxuXHRcdFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXHJcblx0XHRbcmVhZG9ubHldPVwicHJvcHMucmVhZG9ubHlcIlxyXG5cdFx0W3Njcm9sbEhlaWdodF09XCJwcm9wcy5zY3JvbGxIZWlnaHQgPz8gJzIwMHB4J1wiXHJcblx0XHRbbGF6eV09XCJwcm9wcy5sYXp5XCJcclxuXHRcdFt2aXJ0dWFsU2Nyb2xsXT1cInByb3BzLnZpcnR1YWxTY3JvbGxcIlxyXG5cdFx0W3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJwcm9wcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxyXG5cdFx0W3ZpcnR1YWxTY3JvbGxPcHRpb25zXT1cInByb3BzLnZpcnR1YWxTY3JvbGxPcHRpb25zXCJcclxuXHRcdFttYXhsZW5ndGhdPVwicHJvcHMubWF4bGVuZ3RoXCJcclxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxyXG5cdFx0W3NpemVdPVwicHJvcHMuc2l6ZVwiXHJcblx0XHRbYXBwZW5kVG9dPVwicHJvcHMuYXBwZW5kVG8gPz8gJ2JvZHknXCJcclxuXHRcdFthdXRvSGlnaGxpZ2h0XT1cInByb3BzLmF1dG9IaWdobGlnaHRcIlxyXG5cdFx0W2ZvcmNlU2VsZWN0aW9uXT1cInByb3BzLmZvcmNlU2VsZWN0aW9uXCJcclxuXHRcdFt0eXBlXT1cInByb3BzLnR5cGUgPz8gJ3RleHQnXCJcclxuXHRcdFthdXRvWkluZGV4XT1cInByb3BzLmF1dG9aSW5kZXggPz8gdHJ1ZVwiXHJcblx0XHRbYmFzZVpJbmRleF09XCJwcm9wcy5iYXNlWkluZGV4ID8/IDBcIlxyXG5cdFx0W2FyaWFMYWJlbF09XCJwcm9wcy5hcmlhTGFiZWxcIlxyXG5cdFx0W2FyaWFMYWJlbGxlZEJ5XT1cInByb3BzLmFyaWFMYWJlbGxlZEJ5XCJcclxuXHRcdFtkcm9wZG93bkFyaWFMYWJlbF09XCJwcm9wcy5kcm9wZG93bkFyaWFMYWJlbFwiXHJcblx0XHRbZHJvcGRvd25JY29uXT1cInByb3BzLmRyb3Bkb3duSWNvblwiXHJcblx0XHRbdW5pcXVlXT1cInByb3BzLnVuaXF1ZSA/PyB0cnVlXCJcclxuXHRcdFtncm91cF09XCJwcm9wcy5ncm91cFwiXHJcblx0XHRbY29tcGxldGVPbkZvY3VzXT1cInByb3BzLmNvbXBsZXRlT25Gb2N1c1wiXHJcblx0XHRbc2hvd0NsZWFyXT1cInByb3BzLnNob3dDbGVhclwiXHJcblx0XHRbZHJvcGRvd25dPVwicHJvcHMuZHJvcGRvd25cIlxyXG5cdFx0W3Nob3dFbXB0eU1lc3NhZ2VdPVwicHJvcHMuc2hvd0VtcHR5TWVzc2FnZSA/PyB0cnVlXCJcclxuXHRcdFtkcm9wZG93bk1vZGVdPVwicHJvcHMuZHJvcGRvd25Nb2RlID8/ICdibGFuaydcIlxyXG5cdFx0W211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCJcclxuXHRcdFt0YWJpbmRleF09XCJwcm9wcy50YWJpbmRleFwiXHJcblx0XHRbZGF0YUtleV09XCJwcm9wcy5kYXRhS2V5XCJcclxuXHRcdFtlbXB0eU1lc3NhZ2VdPVwicHJvcHMuZW1wdHlNZXNzYWdlXCJcclxuXHRcdFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuc2hvd1RyYW5zaXRpb25PcHRpb25zID8/ICcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXHJcblx0XHRbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cInByb3BzLmhpZGVUcmFuc2l0aW9uT3B0aW9ucyA/PyAnLjFzIGxpbmVhcidcIlxyXG5cdFx0W2F1dG9mb2N1c109XCJwcm9wcy5hdXRvZm9jdXNcIlxyXG5cdFx0W2F1dG9jb21wbGV0ZV09XCJwcm9wcy5hdXRvY29tcGxldGUgPz8gJ29mZidcIlxyXG5cdFx0W29wdGlvbkdyb3VwQ2hpbGRyZW5dPVwicHJvcHMub3B0aW9uR3JvdXBDaGlsZHJlbiA/PyAnaXRlbXMnXCJcclxuXHRcdFtvcHRpb25Hcm91cExhYmVsXT1cInByb3BzLm9wdGlvbkdyb3VwTGFiZWwgPz8gJ2xhYmVsJ1wiXHJcblx0XHRbb3ZlcmxheU9wdGlvbnNdPVwicHJvcHMub3ZlcmxheU9wdGlvbnNcIlxyXG5cdFx0W3N1Z2dlc3Rpb25zXT1cInByb3BzLnN1Z2dlc3Rpb25zID8/IFtdXCJcclxuXHRcdFtvcHRpb25MYWJlbF09XCJwcm9wcy5vcHRpb25MYWJlbFwiXHJcblx0XHRbb3B0aW9uVmFsdWVdPVwicHJvcHMub3B0aW9uVmFsdWVcIlxyXG5cdFx0W3NlYXJjaE1lc3NhZ2VdPVwicHJvcHMuc2VhcmNoTWVzc2FnZSA/PyAnezB9IHJlc3VsdHMgYXJlIGF2YWlsYWJsZSdcIlxyXG5cdFx0W2VtcHR5U2VsZWN0aW9uTWVzc2FnZV09XCJwcm9wcy5lbXB0eVNlbGVjdGlvbk1lc3NhZ2UgPz8gJ05vIHNlbGVjdGVkIGl0ZW0nXCJcclxuXHRcdFtzZWxlY3Rpb25NZXNzYWdlXT1cInByb3BzLnNlbGVjdGlvbk1lc3NhZ2UgPz8gJ3swfSBpdGVtcyBzZWxlY3RlZCdcIlxyXG5cdFx0W2F1dG9PcHRpb25Gb2N1c109XCJwcm9wcy5hdXRvT3B0aW9uRm9jdXNcIlxyXG5cdFx0W3NlbGVjdE9uRm9jdXNdPVwicHJvcHMuc2VsZWN0T25Gb2N1c1wiXHJcblx0XHRbc2VhcmNoTG9jYWxlXT1cInByb3BzLnNlYXJjaExvY2FsZVwiXHJcblx0XHRbb3B0aW9uRGlzYWJsZWRdPVwicHJvcHMub3B0aW9uRGlzYWJsZWRcIlxyXG5cdFx0W2ZvY3VzT25Ib3Zlcl09XCJwcm9wcy5mb2N1c09uSG92ZXIgPz8gdHJ1ZVwiXHJcblx0XHRbdHlwZWFoZWFkXT1cInByb3BzLnR5cGVhaGVhZCA/PyB0cnVlXCJcclxuXHRcdFt2YXJpYW50XT1cInByb3BzLnZhcmlhbnRcIlxyXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkID8/IHRydWVcIlxyXG5cdFx0W2NsYXNzXT1cInByb3BzLmNsYXNzXCJcclxuXHRcdFtzdHlsZV09XCJwcm9wcy5zdHlsZVwiXHJcblx0XHQoY29tcGxldGVNZXRob2QpPVwicHJvcHMuY29tcGxldGVNZXRob2Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25VbnNlbGVjdCk9XCJwcm9wcy5vblVuc2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uRm9jdXMpPVwicHJvcHMub25Gb2N1cz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkJsdXIpPVwicHJvcHMub25CbHVyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uRHJvcGRvd25DbGljayk9XCJwcm9wcy5vbkRyb3Bkb3duQ2xpY2s/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uS2V5VXApPVwicHJvcHMub25LZXlVcD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblNob3cpPVwicHJvcHMub25TaG93Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uSGlkZSk9XCJwcm9wcy5vbkhpZGU/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25MYXp5TG9hZCk9XCJwcm9wcy5vbkxhenlMb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0W2Zvcm1Db250cm9sXT1cImZpZWxkKCkhLmZpZWxkQ29udHJvbCFcIiAvPmAsXHJcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSwgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGF1dG9Db21wbGV0ZVJlZiE6IEVsZW1lbnRSZWY7XHJcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XHJcblx0cHJvcHM6IEF1dG9Db21wbGV0ZVByb3BzID0ge307XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5hdXRvQ29tcGxldGVQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVIb29rQ2hhbmdlKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xyXG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcclxuXHRcdFx0XHR0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlSG9va0NoYW5nZSgpIHtcclxuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKCF2YWx1ZSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZURpc2FibGVkKCkge1xyXG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XHJcblx0XHRcdHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS10eXBlL2F1dG9jb21wbGV0ZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQXFKcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUlqQyxZQUNTLE1BQXFCLEVBQ3JCLFFBQW1CO1FBRG5CLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUo1QixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFLN0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLGlCQUFrQixDQUFDO2dCQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3RSxDQUFDO2lCQUFNLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3BFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsWUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDRixDQUFDOytHQTNDVyxxQkFBcUI7bUdBQXJCLHFCQUFxQixrUUFDdEIsWUFBWSwyQkFBVSxVQUFVLDZCQS9FakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0Q0EyRWlDLHdzTEE1RWpDLFlBQVksc3RDQUFFLG1CQUFtQjs7NEZBK0UvQixxQkFBcUI7a0JBbEZqQyxTQUFTOytCQUNDLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsWUFDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0Q0EyRWlDOzBHQUltQixlQUFlO3NCQUE1RSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFNjcm9sbGVyT3B0aW9ucywgT3ZlcmxheU9wdGlvbnMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0NvbXBsZXRlUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcblx0c2Nyb2xsSGVpZ2h0Pzogc3RyaW5nO1xuXHRtaW5MZW5ndGg/OiBudW1iZXI7XG5cdGRlbGF5PzogbnVtYmVyO1xuXHRwYW5lbFN0eWxlPzogYW55O1xuXHRwYW5lbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGF1dG9IaWdobGlnaHQ/OiBib29sZWFuO1xuXHRmb3JjZVNlbGVjdGlvbj86IGJvb2xlYW47XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGF1dG9aSW5kZXg/OiBib29sZWFuO1xuXHRiYXNlWkluZGV4PzogbnVtYmVyO1xuXHRkcm9wZG93bkFyaWFMYWJlbD86IHN0cmluZztcblx0dW5pcXVlPzogYm9vbGVhbjtcblx0Y29tcGxldGVPbkZvY3VzPzogYm9vbGVhbjtcblx0ZHJvcGRvd24/OiBib29sZWFuO1xuXHRzaG93RW1wdHlNZXNzYWdlPzogYm9vbGVhbjtcblx0ZHJvcGRvd25Nb2RlPzogc3RyaW5nO1xuXHRtdWx0aXBsZT86IGJvb2xlYW47XG5cdHNob3dUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcblx0aGlkZVRyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xuXHRhdXRvY29tcGxldGU/OiBzdHJpbmc7XG5cdG9wdGlvbkdyb3VwQ2hpbGRyZW4/OiBzdHJpbmc7XG5cdG9wdGlvbkdyb3VwTGFiZWw/OiBzdHJpbmc7XG5cdHN1Z2dlc3Rpb25zPzogYW55W107XG5cdG9wdGlvbkxhYmVsPzogc3RyaW5nIHwgKChpdGVtOiBhbnkpID0+IHN0cmluZyk7XG5cdG9wdGlvblZhbHVlPzogc3RyaW5nIHwgKChpdGVtOiBhbnkpID0+IHN0cmluZyk7XG5cdHNlYXJjaE1lc3NhZ2U/OiBzdHJpbmc7XG5cdGVtcHR5U2VsZWN0aW9uTWVzc2FnZT86IHN0cmluZztcblx0c2VsZWN0aW9uTWVzc2FnZT86IHN0cmluZztcblx0YXV0b09wdGlvbkZvY3VzPzogYm9vbGVhbjtcblx0c2VsZWN0T25Gb2N1cz86IGJvb2xlYW47XG5cdHNlYXJjaExvY2FsZT86IGJvb2xlYW47XG5cdG9wdGlvbkRpc2FibGVkPzogc3RyaW5nO1xuXHRmb2N1c09uSG92ZXI/OiBib29sZWFuO1xuXHR0eXBlYWhlYWQ/OiBib29sZWFuO1xuXHRyZWFkb25seT86IGJvb2xlYW47XG5cdGFwcGVuZFRvPzogYW55O1xuXHR0YWJpbmRleD86IG51bWJlcjtcblx0ZGF0YUtleT86IHN0cmluZztcblx0ZHJvcGRvd25JY29uPzogc3RyaW5nO1xuXHRncm91cD86IGJvb2xlYW47XG5cdHNob3dDbGVhcj86IGJvb2xlYW47XG5cdGVtcHR5TWVzc2FnZT86IGFueTtcblx0bGF6eT86IGJvb2xlYW47XG5cdHZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xuXHR2aXJ0dWFsU2Nyb2xsSXRlbVNpemU/OiBudW1iZXI7XG5cdHZpcnR1YWxTY3JvbGxPcHRpb25zPzogU2Nyb2xsZXJPcHRpb25zO1xuXHRvdmVybGF5T3B0aW9ucz86IE92ZXJsYXlPcHRpb25zO1xuXHRtYXhsZW5ndGg/OiBhbnk7XG5cblx0Y29tcGxldGVNZXRob2Q/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25TZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25VbnNlbGVjdD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQmx1cj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkRyb3Bkb3duQ2xpY2s/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbktleVVwPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2hvdz86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkhpZGU/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25MYXp5TG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdmb3JtLWF1dG9jb21wbGV0ZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtBdXRvQ29tcGxldGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYDxwLWF1dG9jb21wbGV0ZVxuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcblx0XHRbaW5wdXRJZF09XCJmaWVsZCgpPy51dWlkXCJcblx0XHRbbWluTGVuZ3RoXT1cInByb3BzLm1pbkxlbmd0aCA/PyAxXCJcblx0XHRbZGVsYXldPVwicHJvcHMuZGVsYXkgPz8gMzAwXCJcblx0XHRbcGFuZWxTdHlsZV09XCJwcm9wcy5wYW5lbFN0eWxlXCJcblx0XHRbcGFuZWxTdHlsZUNsYXNzXT1cInByb3BzLnBhbmVsU3R5bGVDbGFzc1wiXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXG5cdFx0W2lucHV0U3R5bGVdPVwicHJvcHMuaW5wdXRTdHlsZVwiXG5cdFx0W2lucHV0U3R5bGVDbGFzc109XCJwcm9wcy5pbnB1dFN0eWxlQ2xhc3NcIlxuXHRcdFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXG5cdFx0W3JlYWRvbmx5XT1cInByb3BzLnJlYWRvbmx5XCJcblx0XHRbc2Nyb2xsSGVpZ2h0XT1cInByb3BzLnNjcm9sbEhlaWdodCA/PyAnMjAwcHgnXCJcblx0XHRbbGF6eV09XCJwcm9wcy5sYXp5XCJcblx0XHRbdmlydHVhbFNjcm9sbF09XCJwcm9wcy52aXJ0dWFsU2Nyb2xsXCJcblx0XHRbdmlydHVhbFNjcm9sbEl0ZW1TaXplXT1cInByb3BzLnZpcnR1YWxTY3JvbGxJdGVtU2l6ZVwiXG5cdFx0W3ZpcnR1YWxTY3JvbGxPcHRpb25zXT1cInByb3BzLnZpcnR1YWxTY3JvbGxPcHRpb25zXCJcblx0XHRbbWF4bGVuZ3RoXT1cInByb3BzLm1heGxlbmd0aFwiXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXG5cdFx0W3NpemVdPVwicHJvcHMuc2l6ZVwiXG5cdFx0W2FwcGVuZFRvXT1cInByb3BzLmFwcGVuZFRvID8/ICdib2R5J1wiXG5cdFx0W2F1dG9IaWdobGlnaHRdPVwicHJvcHMuYXV0b0hpZ2hsaWdodFwiXG5cdFx0W2ZvcmNlU2VsZWN0aW9uXT1cInByb3BzLmZvcmNlU2VsZWN0aW9uXCJcblx0XHRbdHlwZV09XCJwcm9wcy50eXBlID8/ICd0ZXh0J1wiXG5cdFx0W2F1dG9aSW5kZXhdPVwicHJvcHMuYXV0b1pJbmRleCA/PyB0cnVlXCJcblx0XHRbYmFzZVpJbmRleF09XCJwcm9wcy5iYXNlWkluZGV4ID8/IDBcIlxuXHRcdFthcmlhTGFiZWxdPVwicHJvcHMuYXJpYUxhYmVsXCJcblx0XHRbYXJpYUxhYmVsbGVkQnldPVwicHJvcHMuYXJpYUxhYmVsbGVkQnlcIlxuXHRcdFtkcm9wZG93bkFyaWFMYWJlbF09XCJwcm9wcy5kcm9wZG93bkFyaWFMYWJlbFwiXG5cdFx0W2Ryb3Bkb3duSWNvbl09XCJwcm9wcy5kcm9wZG93bkljb25cIlxuXHRcdFt1bmlxdWVdPVwicHJvcHMudW5pcXVlID8/IHRydWVcIlxuXHRcdFtncm91cF09XCJwcm9wcy5ncm91cFwiXG5cdFx0W2NvbXBsZXRlT25Gb2N1c109XCJwcm9wcy5jb21wbGV0ZU9uRm9jdXNcIlxuXHRcdFtzaG93Q2xlYXJdPVwicHJvcHMuc2hvd0NsZWFyXCJcblx0XHRbZHJvcGRvd25dPVwicHJvcHMuZHJvcGRvd25cIlxuXHRcdFtzaG93RW1wdHlNZXNzYWdlXT1cInByb3BzLnNob3dFbXB0eU1lc3NhZ2UgPz8gdHJ1ZVwiXG5cdFx0W2Ryb3Bkb3duTW9kZV09XCJwcm9wcy5kcm9wZG93bk1vZGUgPz8gJ2JsYW5rJ1wiXG5cdFx0W211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCJcblx0XHRbdGFiaW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIlxuXHRcdFtkYXRhS2V5XT1cInByb3BzLmRhdGFLZXlcIlxuXHRcdFtlbXB0eU1lc3NhZ2VdPVwicHJvcHMuZW1wdHlNZXNzYWdlXCJcblx0XHRbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cInByb3BzLnNob3dUcmFuc2l0aW9uT3B0aW9ucyA/PyAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcIlxuXHRcdFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuaGlkZVRyYW5zaXRpb25PcHRpb25zID8/ICcuMXMgbGluZWFyJ1wiXG5cdFx0W2F1dG9mb2N1c109XCJwcm9wcy5hdXRvZm9jdXNcIlxuXHRcdFthdXRvY29tcGxldGVdPVwicHJvcHMuYXV0b2NvbXBsZXRlID8/ICdvZmYnXCJcblx0XHRbb3B0aW9uR3JvdXBDaGlsZHJlbl09XCJwcm9wcy5vcHRpb25Hcm91cENoaWxkcmVuID8/ICdpdGVtcydcIlxuXHRcdFtvcHRpb25Hcm91cExhYmVsXT1cInByb3BzLm9wdGlvbkdyb3VwTGFiZWwgPz8gJ2xhYmVsJ1wiXG5cdFx0W292ZXJsYXlPcHRpb25zXT1cInByb3BzLm92ZXJsYXlPcHRpb25zXCJcblx0XHRbc3VnZ2VzdGlvbnNdPVwicHJvcHMuc3VnZ2VzdGlvbnMgPz8gW11cIlxuXHRcdFtvcHRpb25MYWJlbF09XCJwcm9wcy5vcHRpb25MYWJlbFwiXG5cdFx0W29wdGlvblZhbHVlXT1cInByb3BzLm9wdGlvblZhbHVlXCJcblx0XHRbc2VhcmNoTWVzc2FnZV09XCJwcm9wcy5zZWFyY2hNZXNzYWdlID8/ICd7MH0gcmVzdWx0cyBhcmUgYXZhaWxhYmxlJ1wiXG5cdFx0W2VtcHR5U2VsZWN0aW9uTWVzc2FnZV09XCJwcm9wcy5lbXB0eVNlbGVjdGlvbk1lc3NhZ2UgPz8gJ05vIHNlbGVjdGVkIGl0ZW0nXCJcblx0XHRbc2VsZWN0aW9uTWVzc2FnZV09XCJwcm9wcy5zZWxlY3Rpb25NZXNzYWdlID8/ICd7MH0gaXRlbXMgc2VsZWN0ZWQnXCJcblx0XHRbYXV0b09wdGlvbkZvY3VzXT1cInByb3BzLmF1dG9PcHRpb25Gb2N1c1wiXG5cdFx0W3NlbGVjdE9uRm9jdXNdPVwicHJvcHMuc2VsZWN0T25Gb2N1c1wiXG5cdFx0W3NlYXJjaExvY2FsZV09XCJwcm9wcy5zZWFyY2hMb2NhbGVcIlxuXHRcdFtvcHRpb25EaXNhYmxlZF09XCJwcm9wcy5vcHRpb25EaXNhYmxlZFwiXG5cdFx0W2ZvY3VzT25Ib3Zlcl09XCJwcm9wcy5mb2N1c09uSG92ZXIgPz8gdHJ1ZVwiXG5cdFx0W3R5cGVhaGVhZF09XCJwcm9wcy50eXBlYWhlYWQgPz8gdHJ1ZVwiXG5cdFx0W3ZhcmlhbnRdPVwicHJvcHMudmFyaWFudFwiXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkID8/IHRydWVcIlxuXHRcdFtjbGFzc109XCJwcm9wcy5jbGFzc1wiXG5cdFx0W3N0eWxlXT1cInByb3BzLnN0eWxlXCJcblx0XHQoY29tcGxldGVNZXRob2QpPVwicHJvcHMuY29tcGxldGVNZXRob2Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblVuc2VsZWN0KT1cInByb3BzLm9uVW5zZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uRm9jdXMpPVwicHJvcHMub25Gb2N1cz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25CbHVyKT1cInByb3BzLm9uQmx1cj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Ecm9wZG93bkNsaWNrKT1cInByb3BzLm9uRHJvcGRvd25DbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbktleVVwKT1cInByb3BzLm9uS2V5VXA/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2hvdyk9XCJwcm9wcy5vblNob3c/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uSGlkZSk9XCJwcm9wcy5vbkhpZGU/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uTGF6eUxvYWQpPVwicHJvcHMub25MYXp5TG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHRbZm9ybUNvbnRyb2xdPVwiZmllbGQoKSEuZmllbGRDb250cm9sIVwiIC8+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSwgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGF1dG9Db21wbGV0ZVJlZiE6IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wczogQXV0b0NvbXBsZXRlUHJvcHMgPSB7fTtcblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UsXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHQpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5hdXRvQ29tcGxldGVQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuYXV0b0NvbXBsZXRlUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICghdmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -13,6 +13,7 @@ import { lintKeymap } from '@codemirror/lint';
13
13
  import prettier from 'prettier';
14
14
  import typescript from 'prettier/plugins/typescript';
15
15
  import estree from 'prettier/plugins/estree';
16
+ import { sql } from '@codemirror/lang-sql';
16
17
  import * as i0 from "@angular/core";
17
18
  import * as i1 from "../../service/action.service";
18
19
  export class CodeMirrorComponent {
@@ -143,6 +144,8 @@ export class CodeMirrorComponent {
143
144
  return javascript();
144
145
  case 'json':
145
146
  return json();
147
+ case 'sql':
148
+ return sql();
146
149
  default:
147
150
  return javascript();
148
151
  }
@@ -181,12 +184,12 @@ export class CodeMirrorComponent {
181
184
  changes: { from: 0, to: this.editorView.state.doc.length, insert: formatted },
182
185
  });
183
186
  this.editorView.dispatch(transaction);
184
- console.log('格式化成功:', formatted);
187
+ // console.log('格式化成功:', formatted);
185
188
  });
186
189
  return true;
187
190
  }
188
191
  catch (error) {
189
- console.error('格式化错误:', error);
192
+ // console.error('格式化错误:', error);
190
193
  return false;
191
194
  }
192
195
  };
@@ -209,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
209
212
  type: ViewChild,
210
213
  args: ['codeContainer', { static: false }]
211
214
  }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsV0FBVyxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFB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YUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIGlucHV0LCBlZmZlY3QsIFJlbmRlcmVyMiwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xyXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcclxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctanNvbic7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBTdGF0ZUVmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHtcclxuXHRFZGl0b3JWaWV3LFxyXG5cdGtleW1hcCxcclxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXHJcblx0ZHJhd1NlbGVjdGlvbixcclxuXHRkcm9wQ3Vyc29yLFxyXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxyXG5cdGNyb3NzaGFpckN1cnNvcixcclxuXHRsaW5lTnVtYmVycyxcclxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxyXG5cdHBsYWNlaG9sZGVyLFxyXG59IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBzZWFyY2hLZXltYXAsIGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXMgfSBmcm9tICdAY29kZW1pcnJvci9zZWFyY2gnO1xyXG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGludEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xyXG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xyXG5pbXBvcnQgdHlwZXNjcmlwdCBmcm9tICdwcmV0dGllci9wbHVnaW5zL3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgZXN0cmVlIGZyb20gJ3ByZXR0aWVyL3BsdWdpbnMvZXN0cmVlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29kZU1pcnJvclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XHJcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbic7XHJcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG5cdG1pbkhlaWdodD86IHN0cmluZztcclxuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWNvZGVtaXJyb3InLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiAjY29kZUNvbnRhaW5lcj48L2Rpdj5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3JDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoJ2NvZGVDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29kZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xyXG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xyXG5cdHByb3BzOiBDb2RlTWlycm9yUHJvcHMgPSB7fTtcclxuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcclxuXHR0ZW1wbGF0ZUluZGV4ID0gMDtcclxuXHJcblx0Y2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRXh0ZW5zaW9ucygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xyXG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcclxuXHRcdFx0XHR0aGlzLmVkaXRvclZpZXcuZm9jdXMoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMucHJvcHMudGVtcGxhdGVzIHx8ICF0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpIHJldHVybjtcclxuXHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoXHJcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcclxuXHRcdFx0XHRcdFx0KCh0aGlzLnRlbXBsYXRlSW5kZXggJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpICsgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSAlIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXHJcblx0XHRcdFx0XHR0cnVlLFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xyXG5cdFx0XHRzdGF0ZTogRWRpdG9yU3RhdGUuY3JlYXRlKHtcclxuXHRcdFx0XHRkb2M6IHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy52YWx1ZSxcclxuXHRcdFx0fSksXHJcblx0XHRcdHBhcmVudDogdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcblx0XHR9KTtcclxuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldy5kZXN0cm95KCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVFeHRlbnNpb25zKCkge1xyXG5cdFx0Y29uc3QgZXh0ZW5kc2lvbnMgPSBbXHJcblx0XHRcdGxpbmVOdW1iZXJzKCksXHJcblx0XHRcdGZvbGRHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U3BlY2lhbENoYXJzKCksXHJcblx0XHRcdGhpc3RvcnkoKSxcclxuXHRcdFx0ZHJhd1NlbGVjdGlvbigpLFxyXG5cdFx0XHRkcm9wQ3Vyc29yKCksXHJcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxyXG5cdFx0XHRpbmRlbnRPbklucHV0KCksXHJcblx0XHRcdHN5bnRheEhpZ2hsaWdodGluZyhkZWZhdWx0SGlnaGxpZ2h0U3R5bGUpLFxyXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcclxuXHRcdFx0Y2xvc2VCcmFja2V0cygpLFxyXG5cdFx0XHRhdXRvY29tcGxldGlvbigpLFxyXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxyXG5cdFx0XHRjcm9zc2hhaXJDdXJzb3IoKSxcclxuXHRcdFx0aGlnaGxpZ2h0QWN0aXZlTGluZUd1dHRlcigpLFxyXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXHJcblx0XHRcdHRoaXMuZm9ybWF0dGluZygpLFxyXG5cdFx0XHRrZXltYXAub2YoW1xyXG5cdFx0XHRcdC4uLmNsb3NlQnJhY2tldHNLZXltYXAsXHJcblx0XHRcdFx0Li4uZGVmYXVsdEtleW1hcCxcclxuXHRcdFx0XHQuLi5zZWFyY2hLZXltYXAsXHJcblx0XHRcdFx0Li4uaGlzdG9yeUtleW1hcCxcclxuXHRcdFx0XHQuLi5mb2xkS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmNvbXBsZXRpb25LZXltYXAsXHJcblx0XHRcdFx0Li4ubGludEtleW1hcCxcclxuXHRcdFx0XSksXHJcblx0XHRcdEVkaXRvclZpZXcudGhlbWUoe1xyXG5cdFx0XHRcdCcuY20tZ3V0dGVycyc6IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0XHRcdGJvcmRlcjogJ25vbmUnLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Jy5jbS1hY3RpdmVMaW5lR3V0dGVyJzoge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0JyYnOiB7IG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnLCBtYXhIZWlnaHQ6IHRoaXMucHJvcHMubWF4SGVpZ2h0IHx8ICcyMDRweCcgfSxcclxuXHRcdFx0XHQnLmNtLXNjcm9sbGVyJzogeyBvdmVyZmxvdzogJ2F1dG8nLCBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JyB9LFxyXG5cdFx0XHR9KSxcclxuXHRcdFx0dGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbigpLFxyXG5cdFx0XHRFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcclxuXHRcdFx0XHRpZiAodXBkYXRlLnRyYW5zYWN0aW9ucy5zb21lKCh0cikgPT4gdHIuaXNVc2VyRXZlbnQoJ2lucHV0JykgfHwgdHIuaXNVc2VyRXZlbnQoJ2RlbGV0ZScpKSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgbmV3VmFsdWUgPSB1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCk7XHJcblx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUobmV3VmFsdWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KSxcclxuXHRcdF07XHJcblx0XHRpZiAodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikge1xyXG5cdFx0XHRleHRlbmRzaW9ucy51bnNoaWZ0KHBsYWNlaG9sZGVyKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpKTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7XHJcblx0XHRcdGV4dGVuZHNpb25zLnB1c2goRWRpdG9yVmlldy5lZGl0YWJsZS5vZihmYWxzZSkpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5lZGl0b3JWaWV3LmRpc3BhdGNoKHtcclxuXHRcdFx0ZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoZXh0ZW5kc2lvbnMpLFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2U/LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0Ly8g5pS56L+b5Yik5pat6YC76L6R77ya5Y+q5pyJ5Zyo5YC85Li6IG51bGwg5LiU57yW6L6R5Zmo5Li656m65pe25omN6L+U5ZueXHJcblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsICYmICF0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XHJcblx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5lZGl0b3JWaWV3LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogdmFsdWUgfHwgJycgfSxcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGdldExhbmd1YWdlRXh0ZW5zaW9uKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLnByb3BzLmxhbmd1YWdlKSB7XHJcblx0XHRcdGNhc2UgJ2h0bWwnOlxyXG5cdFx0XHRcdHJldHVybiBodG1sKCk7XHJcblx0XHRcdGNhc2UgJ2phdmFzY3JpcHQnOlxyXG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XHJcblx0XHRcdGNhc2UgJ2pzb24nOlxyXG5cdFx0XHRcdHJldHVybiBqc29uKCk7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIGphdmFzY3JpcHQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG1pbkxpbmVzKG1pbjogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodikgPT4ge1xyXG5cdFx0XHRjb25zdCBkb2MgPSB2LnN0YXRlLmRvYztcclxuXHRcdFx0Y29uc3QgbGluZUNvdW50ID0gZG9jLmxpbmVzO1xyXG5cdFx0XHRpZiAobGluZUNvdW50IDwgbWluKSB7XHJcblx0XHRcdFx0Y29uc3QgbmV3TGluZXMgPSBBcnJheShtaW4gKyAxIC0gbGluZUNvdW50KVxyXG5cdFx0XHRcdFx0LmZpbGwoJycpXHJcblx0XHRcdFx0XHQuam9pbignXFxuJyk7XHJcblx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB2LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IGRvYy5sZW5ndGgsIGluc2VydDogbmV3TGluZXMgfSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR2LnZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGZvcm1hdHRpbmcoKSB7XHJcblx0XHRjb25zdCBmb3JtYXRDb21tYW5kID0gKHZpZXc6IGFueSkgPT4ge1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHByZXR0aWVyXHJcblx0XHRcdFx0XHQuZm9ybWF0KHZpZXcuc3RhdGUuZG9jLnRvU3RyaW5nKCksIHtcclxuXHRcdFx0XHRcdFx0cGFyc2VyOiAndHlwZXNjcmlwdCcsXHJcblx0XHRcdFx0XHRcdHBsdWdpbnM6IFt0eXBlc2NyaXB0LCBlc3RyZWVdLFxyXG5cdFx0XHRcdFx0XHRzZW1pOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRzaW5nbGVRdW90ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0dGFiV2lkdGg6IDIsXHJcblx0XHRcdFx0XHRcdHByaW50V2lkdGg6IDgwLFxyXG5cdFx0XHRcdFx0XHR0cmFpbGluZ0NvbW1hOiAnYWxsJyxcclxuXHRcdFx0XHRcdFx0YXJyb3dQYXJlbnM6ICdhbHdheXMnLFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC50aGVuKChmb3JtYXR0ZWQpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcclxuXHRcdFx0XHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiBmb3JtYXR0ZWQgfSxcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmoLzlvI/ljJbmiJDlip86JywgZm9ybWF0dGVkKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+agvOW8j+WMlumUmeivrzonLCBlcnJvcik7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIGtleW1hcC5vZihbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRrZXk6ICdTaGlmdC1BbHQtZicsXHJcblx0XHRcdFx0bWFjOiAnU2hpZnQtQ21kLWYnLFxyXG5cdFx0XHRcdHJ1bjogZm9ybWF0Q29tbWFuZCxcclxuXHRcdFx0XHRwcmV2ZW50RGVmYXVsdDogdHJ1ZSxcclxuXHRcdFx0fSxcclxuXHRcdF0pO1xyXG5cdH1cclxufVxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsV0FBVyxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFDckQsT0FBTyxNQUFNLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFnQjNDLE1BQU0sT0FBTyxtQkFBbUI7SUFVL0IsWUFDUyxNQUFxQixFQUNyQixRQUFtQjtRQURuQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFUNUIsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLFdBQU0sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQU16QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsZUFBZ0IsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDckQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFDbEUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ2hILEVBQ0QsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQ25CLElBQUksQ0FDSixDQUFDO2dCQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDaEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUs7YUFDdEMsQ0FBQztZQUNGLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixNQUFNLFdBQVcsR0FBRztZQUNuQixXQUFXLEVBQUU7WUFDYixVQUFVLEVBQUU7WUFDWixxQkFBcUIsRUFBRTtZQUN2QixPQUFPLEVBQUU7WUFDVCxhQUFhLEVBQUU7WUFDZixVQUFVLEVBQUU7WUFDWixXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM1QyxhQUFhLEVBQUU7WUFDZixrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxlQUFlLEVBQUU7WUFDakIsYUFBYSxFQUFFO1lBQ2YsY0FBYyxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFO1lBQ3RCLGVBQWUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRTtZQUMzQix5QkFBeUIsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsR0FBRyxtQkFBbUI7Z0JBQ3RCLEdBQUcsYUFBYTtnQkFDaEIsR0FBRyxZQUFZO2dCQUNmLEdBQUcsYUFBYTtnQkFDaEIsR0FBRyxVQUFVO2dCQUNiLEdBQUcsZ0JBQWdCO2dCQUNuQixHQUFHLFVBQVU7YUFDYixDQUFDO1lBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDaEIsYUFBYSxFQUFFO29CQUNkLGVBQWUsRUFBRSxhQUFhO29CQUM5QixNQUFNLEVBQUUsTUFBTTtpQkFDZDtnQkFDRCxzQkFBc0IsRUFBRTtvQkFDdkIsZUFBZSxFQUFFLGFBQWE7aUJBQzlCO2dCQUNELEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRTtnQkFDOUYsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFO2FBQy9FLENBQUM7WUFDRixJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNGLENBQUMsQ0FBQztTQUNGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4QixPQUFPLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQ2hELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzRCwrQkFBK0I7WUFDL0IsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4RCxPQUFPO1lBQ1IsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUU7YUFDL0UsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ25CLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixLQUFLLE1BQU07Z0JBQ1YsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNmLEtBQUssWUFBWTtnQkFDaEIsT0FBTyxVQUFVLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU07Z0JBQ1YsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNmLEtBQUssS0FBSztnQkFDVCxPQUFPLEdBQUcsRUFBRSxDQUFBO1lBQ2I7Z0JBQ0MsT0FBTyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0YsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzVCLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7cUJBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUM7cUJBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNiLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNsQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2lCQUMvQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDVCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQztnQkFDSixRQUFRO3FCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDbEMsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7b0JBQzdCLElBQUksRUFBRSxJQUFJO29CQUNWLFdBQVcsRUFBRSxJQUFJO29CQUNqQixRQUFRLEVBQUUsQ0FBQztvQkFDWCxVQUFVLEVBQUUsRUFBRTtvQkFDZCxhQUFhLEVBQUUsS0FBSztvQkFDcEIsV0FBVyxFQUFFLFFBQVE7aUJBQ3JCLENBQUM7cUJBQ0QsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3QkFDaEQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3FCQUM3RSxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3RDLG9DQUFvQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsa0NBQWtDO2dCQUNsQyxPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDRixDQUFDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0MsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsY0FBYyxFQUFFLElBQUk7YUFDcEI7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDOytHQXZNVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4VkFIckIsNEJBQTRCLHVzTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFN0YXRlRWZmZWN0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcblx0RWRpdG9yVmlldyxcblx0a2V5bWFwLFxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXG5cdGRyYXdTZWxlY3Rpb24sXG5cdGRyb3BDdXJzb3IsXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxuXHRjcm9zc2hhaXJDdXJzb3IsXG5cdGxpbmVOdW1iZXJzLFxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxuXHRwbGFjZWhvbGRlcixcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgZGVmYXVsdEtleW1hcCwgaGlzdG9yeSwgaGlzdG9yeUtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJztcbmltcG9ydCB7IHNlYXJjaEtleW1hcCwgaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcyB9IGZyb20gJ0Bjb2RlbWlycm9yL3NlYXJjaCc7XG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBsaW50S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGludCc7XG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSAncHJldHRpZXIvcGx1Z2lucy90eXBlc2NyaXB0JztcbmltcG9ydCBlc3RyZWUgZnJvbSAncHJldHRpZXIvcGx1Z2lucy9lc3RyZWUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1zcWwnO1xuZXhwb3J0IGludGVyZmFjZSBDb2RlTWlycm9yUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbicgfCAnc3FsJztcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xuXHRtaW5IZWlnaHQ/OiBzdHJpbmc7XG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1jb2RlbWlycm9yJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYDxkaXYgI2NvZGVDb250YWluZXI+PC9kaXY+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RlTWlycm9yQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnY29kZUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2RlQ29udGFpbmVyITogRWxlbWVudFJlZjtcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHM6IENvZGVNaXJyb3JQcm9wcyA9IHt9O1xuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcblx0dGVtcGxhdGVJbmRleCA9IDA7XG5cblx0Y2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmNvZGVNaXJyb3JQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XG5cdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5mb2N1cygpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XG5cdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXG5cdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XG5cdFx0XHRcdGRvYzogdGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnZhbHVlLFxuXHRcdFx0fSksXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuXHRcdH0pO1xuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xuXHR9XG5cblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcblx0XHRjb25zdCBleHRlbmRzaW9ucyA9IFtcblx0XHRcdGxpbmVOdW1iZXJzKCksXG5cdFx0XHRmb2xkR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMoKSxcblx0XHRcdGhpc3RvcnkoKSxcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcblx0XHRcdGRyb3BDdXJzb3IoKSxcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxuXHRcdFx0c3ludGF4SGlnaGxpZ2h0aW5nKGRlZmF1bHRIaWdobGlnaHRTdHlsZSksXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcblx0XHRcdGF1dG9jb21wbGV0aW9uKCksXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXG5cdFx0XHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXG5cdFx0XHR0aGlzLmZvcm1hdHRpbmcoKSxcblx0XHRcdGtleW1hcC5vZihbXG5cdFx0XHRcdC4uLmNsb3NlQnJhY2tldHNLZXltYXAsXG5cdFx0XHRcdC4uLmRlZmF1bHRLZXltYXAsXG5cdFx0XHRcdC4uLnNlYXJjaEtleW1hcCxcblx0XHRcdFx0Li4uaGlzdG9yeUtleW1hcCxcblx0XHRcdFx0Li4uZm9sZEtleW1hcCxcblx0XHRcdFx0Li4uY29tcGxldGlvbktleW1hcCxcblx0XHRcdFx0Li4ubGludEtleW1hcCxcblx0XHRcdF0pLFxuXHRcdFx0RWRpdG9yVmlldy50aGVtZSh7XG5cdFx0XHRcdCcuY20tZ3V0dGVycyc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdFx0Ym9yZGVyOiAnbm9uZScsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcmJzogeyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JywgbWF4SGVpZ2h0OiB0aGlzLnByb3BzLm1heEhlaWdodCB8fCAnMjA0cHgnIH0sXG5cdFx0XHRcdCcuY20tc2Nyb2xsZXInOiB7IG92ZXJmbG93OiAnYXV0bycsIG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnIH0sXG5cdFx0XHR9KSxcblx0XHRcdHRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSxcblx0XHRcdEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xuXHRcdFx0XHRpZiAodXBkYXRlLnRyYW5zYWN0aW9ucy5zb21lKCh0cikgPT4gdHIuaXNVc2VyRXZlbnQoJ2lucHV0JykgfHwgdHIuaXNVc2VyRXZlbnQoJ2RlbGV0ZScpKSkge1xuXHRcdFx0XHRcdGNvbnN0IG5ld1ZhbHVlID0gdXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpO1xuXHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdF07XG5cdFx0aWYgKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpIHtcblx0XHRcdGV4dGVuZHNpb25zLnVuc2hpZnQocGxhY2Vob2xkZXIodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkge1xuXHRcdFx0ZXh0ZW5kc2lvbnMucHVzaChFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKSk7XG5cdFx0fVxuXHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh7XG5cdFx0XHRlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZihleHRlbmRzaW9ucyksXG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlPy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHQvLyDmlLnov5vliKTmlq3pgLvovpHvvJrlj6rmnInlnKjlgLzkuLogbnVsbCDkuJTnvJbovpHlmajkuLrnqbrml7bmiY3ov5Tlm55cblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsICYmICF0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XG5cdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSB8fCAnJyB9LFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSB7XG5cdFx0c3dpdGNoICh0aGlzLnByb3BzLmxhbmd1YWdlKSB7XG5cdFx0XHRjYXNlICdodG1sJzpcblx0XHRcdFx0cmV0dXJuIGh0bWwoKTtcblx0XHRcdGNhc2UgJ2phdmFzY3JpcHQnOlxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xuXHRcdFx0Y2FzZSAnanNvbic6XG5cdFx0XHRcdHJldHVybiBqc29uKCk7XG5cdFx0XHRjYXNlICdzcWwnOlxuXHRcdFx0XHRyZXR1cm4gc3FsKClcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XG5cdFx0fVxuXHR9XG5cblx0bWluTGluZXMobWluOiBudW1iZXIpIHtcblx0XHRyZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodikgPT4ge1xuXHRcdFx0Y29uc3QgZG9jID0gdi5zdGF0ZS5kb2M7XG5cdFx0XHRjb25zdCBsaW5lQ291bnQgPSBkb2MubGluZXM7XG5cdFx0XHRpZiAobGluZUNvdW50IDwgbWluKSB7XG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVzID0gQXJyYXkobWluICsgMSAtIGxpbmVDb3VudClcblx0XHRcdFx0XHQuZmlsbCgnJylcblx0XHRcdFx0XHQuam9pbignXFxuJyk7XG5cdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdi5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXdMaW5lcyB9LFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0di52aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGZvcm1hdHRpbmcoKSB7XG5cdFx0Y29uc3QgZm9ybWF0Q29tbWFuZCA9ICh2aWV3OiBhbnkpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHByZXR0aWVyXG5cdFx0XHRcdFx0LmZvcm1hdCh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB7XG5cdFx0XHRcdFx0XHRwYXJzZXI6ICd0eXBlc2NyaXB0Jyxcblx0XHRcdFx0XHRcdHBsdWdpbnM6IFt0eXBlc2NyaXB0LCBlc3RyZWVdLFxuXHRcdFx0XHRcdFx0c2VtaTogdHJ1ZSxcblx0XHRcdFx0XHRcdHNpbmdsZVF1b3RlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dGFiV2lkdGg6IDIsXG5cdFx0XHRcdFx0XHRwcmludFdpZHRoOiA4MCxcblx0XHRcdFx0XHRcdHRyYWlsaW5nQ29tbWE6ICdhbGwnLFxuXHRcdFx0XHRcdFx0YXJyb3dQYXJlbnM6ICdhbHdheXMnLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LnRoZW4oKGZvcm1hdHRlZCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogZm9ybWF0dGVkIH0sXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygn5qC85byP5YyW5oiQ5YqfOicsIGZvcm1hdHRlZCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5lcnJvcign5qC85byP5YyW6ZSZ6K+vOicsIGVycm9yKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cmV0dXJuIGtleW1hcC5vZihbXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogJ1NoaWZ0LUFsdC1mJyxcblx0XHRcdFx0bWFjOiAnU2hpZnQtQ21kLWYnLFxuXHRcdFx0XHRydW46IGZvcm1hdENvbW1hbmQsXG5cdFx0XHRcdHByZXZlbnREZWZhdWx0OiB0cnVlLFxuXHRcdFx0fSxcblx0XHRdKTtcblx0fVxufVxuIl19