@acorex/components 16.0.18 → 16.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. package/esm2022/index.mjs +1 -1
  2. package/esm2022/lib/accordion/accordion.component.mjs +11 -11
  3. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  4. package/esm2022/lib/base/base-page.class.mjs +8 -8
  5. package/esm2022/lib/base/components.class.mjs +7 -7
  6. package/esm2022/lib/base/element.class.mjs +44 -38
  7. package/esm2022/lib/button/button.component.mjs +5 -5
  8. package/esm2022/lib/button/button.module.mjs +5 -5
  9. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +5 -5
  10. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +5 -5
  11. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +10 -10
  12. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +1 -1
  13. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +5 -5
  14. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +5 -5
  15. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +5 -5
  16. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +5 -5
  17. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +5 -5
  18. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +5 -5
  19. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +5 -5
  20. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +4 -4
  21. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +5 -5
  22. package/esm2022/lib/checkbox/checkbox.component.mjs +5 -5
  23. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  24. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +5 -5
  25. package/esm2022/lib/color-picker/color-picker.component.mjs +5 -5
  26. package/esm2022/lib/color-picker/color-picker.module.mjs +5 -5
  27. package/esm2022/lib/context-menu/context-menu.component.mjs +5 -5
  28. package/esm2022/lib/context-menu/context-menu.directive.mjs +5 -5
  29. package/esm2022/lib/context-menu/context-menu.module.mjs +5 -5
  30. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +5 -5
  31. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +5 -5
  32. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +5 -5
  33. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +5 -5
  34. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +5 -5
  35. package/esm2022/lib/data-filter/filter.class.mjs +5 -5
  36. package/esm2022/lib/data-filter/filter.module.mjs +5 -5
  37. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +5 -5
  38. package/esm2022/lib/data-list/core/data-list.component.mjs +4 -4
  39. package/esm2022/lib/data-list/list/list.component.mjs +5 -5
  40. package/esm2022/lib/data-list/list/list.module.mjs +5 -5
  41. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +5 -5
  42. package/esm2022/lib/data-source/datasource.component.mjs +4 -4
  43. package/esm2022/lib/data-source/datasource.module.mjs +5 -5
  44. package/esm2022/lib/date-picker/date-picker.component.mjs +5 -5
  45. package/esm2022/lib/date-picker/date-picker.module.mjs +7 -6
  46. package/esm2022/lib/dialog/dialog.component.mjs +5 -5
  47. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  48. package/esm2022/lib/dialog/dialog.service.mjs +5 -5
  49. package/esm2022/lib/drawer/content.component.mjs +5 -5
  50. package/esm2022/lib/drawer/drawer-container.component.mjs +5 -5
  51. package/esm2022/lib/drawer/drawer.component.mjs +5 -5
  52. package/esm2022/lib/drawer/drawer.module.mjs +5 -5
  53. package/esm2022/lib/dropdown/dropdown.component.mjs +5 -5
  54. package/esm2022/lib/dropdown/dropdown.module.mjs +5 -5
  55. package/esm2022/lib/fieldset/fieldset.component.mjs +4 -4
  56. package/esm2022/lib/fieldset/fieldset.module.mjs +5 -5
  57. package/esm2022/lib/form-group/form-group.component.mjs +5 -5
  58. package/esm2022/lib/form-group/form-group.module.mjs +5 -5
  59. package/esm2022/lib/label/label.component.mjs +5 -5
  60. package/esm2022/lib/label/label.module.mjs +5 -5
  61. package/esm2022/lib/loading/loading-indicator.component.mjs +5 -5
  62. package/esm2022/lib/loading/loading-panel.component.mjs +5 -5
  63. package/esm2022/lib/loading/loading.module.mjs +5 -5
  64. package/esm2022/lib/loading/loading.service.mjs +5 -5
  65. package/esm2022/lib/menu/menu-item.component.mjs +5 -5
  66. package/esm2022/lib/menu/menu.component.mjs +5 -5
  67. package/esm2022/lib/menu/menu.module.mjs +5 -5
  68. package/esm2022/lib/menu/menu2.component.mjs +5 -5
  69. package/esm2022/lib/number-box/number-box.component.mjs +5 -5
  70. package/esm2022/lib/number-box/number-box.module.mjs +5 -5
  71. package/esm2022/lib/page/content.component.mjs +5 -5
  72. package/esm2022/lib/page/footer.component.mjs +4 -4
  73. package/esm2022/lib/page/page.component.mjs +5 -5
  74. package/esm2022/lib/page/page.module.mjs +5 -5
  75. package/esm2022/lib/panel-box/panel-box.component.mjs +4 -4
  76. package/esm2022/lib/panel-box/panel-box.module.mjs +5 -5
  77. package/esm2022/lib/password-box/password-box.component.mjs +5 -5
  78. package/esm2022/lib/password-box/password-box.module.mjs +5 -5
  79. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +9 -9
  80. package/esm2022/lib/popover/overlay.service.mjs +5 -5
  81. package/esm2022/lib/popover/popover.component.mjs +5 -5
  82. package/esm2022/lib/popover/popover.module.mjs +5 -5
  83. package/esm2022/lib/popup/popup.component.mjs +6 -6
  84. package/esm2022/lib/popup/popup.module.mjs +5 -5
  85. package/esm2022/lib/popup/popup.service.mjs +5 -5
  86. package/esm2022/lib/progress-bar/progress-bar.component.mjs +4 -4
  87. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  88. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +5 -5
  89. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +5 -5
  90. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +5 -5
  91. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +6 -6
  92. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +5 -5
  93. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +6 -6
  94. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +5 -5
  95. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +6 -6
  96. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +5 -5
  97. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +6 -6
  98. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +5 -5
  99. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +10 -10
  100. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +5 -5
  101. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +6 -6
  102. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +5 -5
  103. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +5 -5
  104. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +6 -6
  105. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +5 -5
  106. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +5 -5
  107. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +5 -5
  108. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +6 -6
  109. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +5 -5
  110. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +11 -11
  111. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +5 -5
  112. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +10 -10
  113. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +5 -5
  114. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +10 -10
  115. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +5 -5
  116. package/esm2022/lib/property-editor/property-editor.class.mjs +5 -5
  117. package/esm2022/lib/property-editor/property-editor.module.mjs +5 -5
  118. package/esm2022/lib/query-builder/query-builder-group.component.mjs +5 -5
  119. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +5 -5
  120. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +5 -5
  121. package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
  122. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  123. package/esm2022/lib/query-builder/query-builder.service.mjs +5 -5
  124. package/esm2022/lib/search-bar/search-bar.component.mjs +5 -5
  125. package/esm2022/lib/search-bar/search-bar.module.mjs +5 -5
  126. package/esm2022/lib/searchbox/searchbox.component.mjs +5 -5
  127. package/esm2022/lib/searchbox/searchbox.module.mjs +5 -5
  128. package/esm2022/lib/selectbox/selectbox.component.mjs +5 -5
  129. package/esm2022/lib/selectbox/selectbox.module.mjs +9 -8
  130. package/esm2022/lib/selectbox/selectbox2.component.mjs +5 -5
  131. package/esm2022/lib/selection-list/selection-list.component.mjs +5 -5
  132. package/esm2022/lib/selection-list/selection-list.module.mjs +5 -5
  133. package/esm2022/lib/switch/switch.component.mjs +6 -6
  134. package/esm2022/lib/switch/switch.module.mjs +5 -5
  135. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +5 -5
  136. package/esm2022/lib/tab-page/tab-page-host.component.mjs +5 -5
  137. package/esm2022/lib/tab-page/tab-page.module.mjs +5 -5
  138. package/esm2022/lib/tab-page/tab-page.service.mjs +5 -5
  139. package/esm2022/lib/tab-strip/tab-strip.component.mjs +5 -5
  140. package/esm2022/lib/tab-strip/tab-strip.module.mjs +5 -5
  141. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +5 -5
  142. package/esm2022/lib/tab-view/tab-view.component.mjs +6 -6
  143. package/esm2022/lib/tab-view/tab-view.module.mjs +5 -5
  144. package/esm2022/lib/tab-view/tab.component.mjs +4 -4
  145. package/esm2022/lib/textarea/textarea.component.mjs +5 -5
  146. package/esm2022/lib/textarea/textarea.module.mjs +5 -5
  147. package/esm2022/lib/textbox/textbox.component.mjs +5 -5
  148. package/esm2022/lib/textbox/textbox.module.mjs +5 -5
  149. package/esm2022/lib/time-picker/time-picker.component.mjs +5 -5
  150. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  151. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +5 -5
  152. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +5 -5
  153. package/esm2022/lib/toast/toast.module.mjs +5 -5
  154. package/esm2022/lib/toast/toast.service.mjs +5 -5
  155. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +5 -5
  156. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +5 -5
  157. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +5 -5
  158. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +5 -5
  159. package/esm2022/lib/toolbar/toolbar.component.mjs +5 -5
  160. package/esm2022/lib/toolbar/toolbar.module.mjs +5 -5
  161. package/esm2022/lib/tooltip/tooltip.directive.mjs +5 -5
  162. package/esm2022/lib/tooltip/tooltip.module.mjs +5 -5
  163. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +5 -5
  164. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +5 -5
  165. package/esm2022/lib/tree-view/tree-view.component.mjs +5 -5
  166. package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
  167. package/esm2022/lib/upload-file/upload-file.component.mjs +5 -5
  168. package/esm2022/lib/upload-file/upload-file.module.mjs +5 -5
  169. package/esm2022/lib/validation/validation-form.component.mjs +5 -5
  170. package/esm2022/lib/validation/validation-rule.widget.mjs +6 -6
  171. package/esm2022/lib/validation/validation.component.mjs +9 -9
  172. package/esm2022/lib/validation/validation.module.mjs +6 -6
  173. package/fesm2022/acorex-components.mjs +765 -757
  174. package/fesm2022/acorex-components.mjs.map +1 -1
  175. package/lib/accordion/accordion.component.d.ts +2 -2
  176. package/lib/base/element.class.d.ts +2 -2
  177. package/package.json +6 -6
@@ -596,13 +596,13 @@ export class AXNumberBoxComponent extends AXBaseTextComponent {
596
596
  htmlEvent: e
597
597
  });
598
598
  }
599
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
600
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { min: "min", max: "max", showSeparator: "showSeparator", showCurrency: "showCurrency", showCounter: "showCounter", scrollWeel: "scrollWeel", showDoubleCounter: "showDoubleCounter", maxLength: "maxLength", intStep: "intStep", decimalNumber: "decimalNumber", customStep: "customStep" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
600
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { min: "min", max: "max", showSeparator: "showSeparator", showCurrency: "showCurrency", showCounter: "showCounter", scrollWeel: "scrollWeel", showDoubleCounter: "showDoubleCounter", maxLength: "maxLength", intStep: "intStep", decimalNumber: "decimalNumber", customStep: "customStep" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
601
601
  }
602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
603
603
  type: Component,
604
604
  args: [{ selector: 'ax-number-box', changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }], template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n" }]
605
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { min: [{
605
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { min: [{
606
606
  type: Input
607
607
  }], max: [{
608
608
  type: Input
@@ -625,4 +625,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
625
625
  }], customStep: [{
626
626
  type: Input
627
627
  }] } });
628
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9udW1iZXItYm94L251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbnVtYmVyLWJveC9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBZ0IsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFRcEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTZKckM7SUE1SmIsR0FBRyxHQUFXLElBQUksQ0FBQztJQUNuQixHQUFHLEdBQVcsSUFBSSxDQUFDO0lBRzVCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUc5QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBRzVCLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFHM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBR25DLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFFdkIsa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUUzQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLEdBQUcsQ0FBTTtJQUNULEtBQUssQ0FBUztJQUNkLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsU0FBUyxHQUFZLEtB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RSxhQUNuQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBQztpSUFHMUUsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFpQkcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBBZnRlclZpZXdJbml0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50LCBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IHN0eWxlOiAnd2lkdGg6IDEwMCUnIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyID0gbnVsbDtcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2hvd0N1cnJlbmN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2hvd0NvdW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbFdlZWw6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dEb3VibGVDb3VudGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODtcblxuICB1c2VyUXVlc3Rpb25VcGRhdGUgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgdXNlckVkaXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdG1wOiBhbnk7XG4gIGNvdW50OiBudW1iZXI7XG4gIGZpbmREb3RzOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbmRNaW51czogYm9vbGVhbiA9IGZhbHNlO1xuICBjdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgZG90UG9zaXRpb246IG51bWJlcjtcbiAgdGV4dFZhbHVlOiBzdHJpbmc7XG4gIGRlY2ltYWxDb25zdGFudDogbnVtYmVyID0gMC4xO1xuICBsYXN0U3RlcDogbnVtYmVyID0gbnVsbDtcblxuICBASW5wdXQoKSBpbnRTdGVwOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBkZWNpbWFsTnVtYmVyOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBjdXN0b21TdGVwOiBudW1iZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgX3ZhbHVlczogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgIGlmICh2ID09PSAnLScpIHtcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0nO1xuICAgICAgdGhpcy5fdmFsdWVzID0gJy0nO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodiA9PT0gJycgfHwgdiA9PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBpc05hTihOdW1iZXIodi50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpKSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmICh2ID09PSAnJyB8fCB2ID09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcbiAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcblxuICAgICAgICAgIGlmICh0aGlzLl92YWx1ZXMgIT09IG9sZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgb2xkVmFsdWU6XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxuICAgICAgICAgICAgICAgICAgPyBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09IG51bGwgfHwgb2xkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2ID0gdi50b1N0cmluZygpO1xuXG4gICAgICAgICAgLy8gdGhpcy5hZGRDb21tYXModi50b1N0cmluZygpKTtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMuc2hvd1NlcGFyYXRvciAmJiB2ID8gdGhpcy5hZGRDb21tYXModi50b1N0cmluZygpKSA6IHY7XG5cbiAgICAgICAgICAvLyBpZiAodGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpICE9PSAtMSkge1xuICAgICAgICAgIC8vICAgLy8gY29uc3QgZG90dHQ9ICh0aGlzLnRleHRWYWx1ZS5sZW5ndGgtMSkgLSB0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCcuJylcbiAgICAgICAgICAvLyAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggLSAxIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpIDwgdGhpcy5kZWNpbWFsTnVtYmVyKSB7XG4gICAgICAgICAgLy8gICAgIGNvbnN0IGEgPSB0aGlzLmRlY2ltYWxOdW1iZXIgLSAodGhpcy50ZXh0VmFsdWUubGVuZ3RoIC0gMSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKSk7XG4gICAgICAgICAgLy8gICAgIGNvbnN0IHogPSAnMCc7XG4gICAgICAgICAgLy8gICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy50ZXh0VmFsdWUgKyAnMCc7XG4gICAgICAgICAgLy8gICB9XG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgICAgaWYgKG9sZC50b1N0cmluZygpLnNlYXJjaCgvXFwuL2cpICE9PSB2LnRvU3RyaW5nKCkuc2VhcmNoKC9cXC4vZykpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gb2xkLnNlYXJjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHYuc2VhcmNoKC9cXC4vZyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHYubGVuZ3RoO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IHY7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyBOdW1iZXIodi5yZXBsYWNlKC8sL2csICcnKSkgOiBOdW1iZXIodikpO1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyBOdW1iZXIodi5yZXBsYWNlKC8sL2csICcnKSkgOiBOdW1iZXIodiksXG4gICAgICAgICAgICAgIG9sZFZhbHVlOlxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NlcGFyYXRvciAmJiBvbGRcbiAgICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZC5yZXBsYWNlKC8sL2csICcnKSlcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkKSxcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy51c2VyRWRpdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gJyc7XG4gICAgICAgIHYgPSBudWxsO1xuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcyAhPT0gb2xkKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICBvbGRWYWx1ZTpcbiAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxuICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxuICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZCksXG4gICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudXNlckVkaXRlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoY2RyLCByZWYpO1xuICAgIHRoaXMudGV4dEFsaWduID0gJ2xlZnQnO1xuICB9XG5cbiAgY2FsY1NlcGFyYXRvcihudW06IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNob3dTZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiBudW0gKyArKG51bSAvIDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbW1hczIoeCkge1xuICAgIHJldHVybiB4LnRvU3RyaW5nKCkucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJywnKTtcbiAgfVxuXG4gIGFkZENvbW1hcyhuU3RyKSB7XG4gICAgblN0ciArPSAnJztcbiAgICBjb25zdCB4ID0gblN0ci5zcGxpdCgnLicpO1xuICAgIGxldCB4MSA9IHhbMF07XG4gICAgY29uc3QgeDIgPSB4Lmxlbmd0aCA+IDEgPyAnLicgKyB4WzFdIDogJyc7XG4gICAgY29uc3Qgcmd4ID0gLyhcXGQrKShcXGR7M30pLztcbiAgICB3aGlsZSAocmd4LnRlc3QoeDEpKSB7XG4gICAgICB4MSA9IHgxLnJlcGxhY2Uocmd4LCAnJDEnICsgJywnICsgJyQyJyk7XG4gICAgfVxuICAgIHJldHVybiB4MSArIHgyO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IGZhbHNlKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxXZWVsID09PSB0cnVlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVXaGVlbChlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcbiAgfVxuXG4gIGhhbmRsZVdoZWVsKGV2ZW50KSB7XG4gICAgaWYgKChldmVudCBhcyBhbnkpLndoZWVsRGVsdGEgPiAwKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG5cbiAgICAgIHRoaXMudXBTdGVwSGFuZGVsKCk7XG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGlmICgoZXZlbnQgYXMgYW55KS53aGVlbERlbHRhIDwgMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuXG4gICAgICB0aGlzLmRvd25TdGVwSGFuZGVsKCk7XG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBoYW5kbGVLZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGNvbnN0IE51bWJlckRvdHBhdHRlcm4gPSAvWzAtOVxcLl0vZztcbiAgICBjb25zdCBOdW1iZXJNaW51c1BhdHRlcm4gPSAvWzAtOVxcLV0vZztcblxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xuXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZmluZERvdHMgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLnNlYXJjaCgnLScpID09PSBudWxsKSB7XG4gICAgICB0aGlzLmZpbmRNaW51cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGdldCBjdXJzdXIgcG9zaXRpb24gd2hlbiBrZXkgcHJlc3NcbiAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gKz0gMTtcbiAgICB9XG5cbiAgICAvLyBjb250cm9sIGN1cnNvciB3aGVuIGluIGZpcnN0IEluZGV4XG4gICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMSkge1xuICAgICAgaWYgKCFOdW1iZXJNaW51c1BhdHRlcm4udGVzdChpbnB1dENoYXIpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLm1hdGNoKC9cXC0vZykpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gY29udHJvbCBjdXJzb3Igd2hlbiBpbiBhbm90aGVyIGluZGV4XG4gICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gIT09IDEpIHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlICE9PSA4ICYmICFOdW1iZXJEb3RwYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZm9yIGNvbnRvciBkZWNpbWFsIGZpZ3VyID0gMCBvciBudWxsXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWxOdW1iZXIgPT09IG51bGwgfHwgdGhpcy5kZWNpbWFsTnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgaWYgKGlucHV0Q2hhciA9PT0gJy4nKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb250cm9sIGRlY2ltYWwgbnVtYmVyIChmaWd1ciBvZiBkZWNpbWFsKVxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xuICAgICAgICAgIGNvbnN0IGZpZ3VyZUFmdGVyRG90ID0gdGhpcy52YWx1ZS5sZW5ndGggLSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcbiAgICAgICAgICBjb25zdCBkb3RJbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICAgIGlmIChkb3RJbmRleCAtIDEgKyBkb3RJbmRleCArIGZpZ3VyZUFmdGVyRG90ID4gZG90SW5kZXggLSAxICsgZG90SW5kZXggKyB0aGlzLmRlY2ltYWxOdW1iZXIgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiAtIDEgPiBkb3RJbmRleCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29udHJvbCAnLicgaW5wdXRcbiAgICAgICAgaWYgKGlucHV0Q2hhciA9PT0gJy4nKSB7XG4gICAgICAgICAgY29uc3QgbGFzdENoYXIgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuY2hhckF0KHRoaXMudmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgLy8gY29udHJvbCAuIHdoZW4gbGFzdCBjaGFyIGlzIC1cbiAgICAgICAgICBpZiAobGFzdENoYXIudG9TdHJpbmcoKS5tYXRjaCgvXFwtL2cpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBjb250cm9sIC4gd2hlbiBmaW5kIGZpcnN0IGRvdFxuICAgICAgICAgIGlmICh0aGlzLmZpbmREb3RzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbmREb3RzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZpbmRNaW51cyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICB9XG5cbiAgICAvLyBsZWZ0ICYgcmlnaHQgQnV0dG9uXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaG9tZSBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgIH1cblxuICAgIC8vIGVuZCBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIHNldCBkZWxheSB3aXRoIHJ4anNcbiAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAvLyBiYWNrc3BhY2UgQ29udHJvbFxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiAtPSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cbiAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxuICAgICAgICAgIDogMDtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxuICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XG4gICAgICAvLyBzdGVwIGFuZCArLSB3aXRoIHVwIGtleSBhbmQgZG93biBrZXlcbiAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcbiAgICAgICAgaWYgKHRoaXMuZG90UG9zaXRpb24gPj0gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA+PSBOdW1iZXIodGhpcy5taW4pKSB7XG4gICAgICAgICAgICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQodGhpcy5kZWNpbWFsTnVtYmVyKTtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA8PSBOdW1iZXIodGhpcy5tYXgpKSB7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IE51bWJlcih0aGlzLm1pbikpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSB0aGlzLmxhc3RTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IE51bWJlcih0aGlzLm1heCkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyB0aGlzLmxhc3RTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gcGFyc2VJbnQodGhpcy5taW4udG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSArdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IHBhcnNlSW50KHRoaXMubWF4LnRvU3RyaW5nKCkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gJzAnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdG9wIHdoZW4ga2V5ZG93blxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgZGVsYXlTZWFyY2goKSB7XG4gICAgT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZSA9IG9ic2VydmVyO1xuICAgIH0pO1xuICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4gdGhpcy5jaGVja01pbk1heCh0ZXh0KSk7XG4gICAgLy8gdGhpcy51c2VyUXVlc3Rpb25VcGRhdGUubmV4dCgoZS50YXJnZXQgYXMgYW55KS52YWx1ZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgY2hlY2tNaW5NYXgodGV4dCkge1xuICAgIGxldCBudW1iZXI6IG51bWJlcjtcbiAgICBpZiAodGV4dC5pbmRleE9mKCcsJykgPiAwKSB7XG4gICAgICBudW1iZXIgPSBOdW1iZXIodGV4dC5yZXBsYWNlQWxsKCcsJywgJycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbnVtYmVyID0gTnVtYmVyKHRleHQpO1xuICAgIH1cblxuICAgIGlmICghIXRoaXMubWluKSB7XG4gICAgICBpZiAobnVtYmVyIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISF0aGlzLm1heCkge1xuICAgICAgaWYgKG51bWJlciA+IHRoaXMubWF4KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkb0dldENhcmV0UG9zaXRpb24oY3RybCkge1xuICAgIGxldCBDYXJldFBvcyA9IDA7XG4gICAgaWYgKGN0cmwuc2VsZWN0aW9uU3RhcnQgfHwgY3RybC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgQ2FyZXRQb3MgPSBjdHJsLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgcmV0dXJuIENhcmV0UG9zO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0UG9zaXRpb24oY3RybCwgcG9zKSB7XG4gICAgaWYgKGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcbiAgICAgIGN0cmwuZm9jdXMoKTtcbiAgICAgIGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgIH0gZWxzZSBpZiAoY3RybC5jcmVhdGVUZXh0UmFuZ2UpIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0KCkge1xuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xuICB9XG5cbiAgdXBTdGVwSGFuZGVsKCkge1xuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgY291bnRBZnRlckRvdCA9XG4gICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZS50b1N0cmluZygpLmxlbmd0aCAtIDEgLSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpXG4gICAgICAgICAgICA6IDA7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gJzAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxuICAgICAgICAgICAgY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCB0aGlzLmRlY2ltYWxOdW1iZXIpIDogTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpICsgMTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZG90UG9zaXRpb24gPiB0aGlzLmN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHRoaXMudG1wICsgK3RoaXMuaW50U3RlcDtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA8PSB0aGlzLm1heCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgTnVtYmVyKHRoaXMubWF4KSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApICsgdGhpcy5sYXN0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgcGFyc2VJbnQodGhpcy5tYXgudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZG93blN0ZXBIYW5kZWwoKSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cbiAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XG4gICAgICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgdGhpcy5kb3RQb3NpdGlvbiA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+IHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKSAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPj0gdGhpcy5taW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IE51bWJlcih0aGlzLm1pbikpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21TdGVwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgK1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuY3VzdG9tU3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgLVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIHRoaXMubGFzdFN0ZXA7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApIC0gZGVmYXVsdFN0ZXA7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IHBhcnNlSW50KHRoaXMubWluLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgICAgICAgIHRoaXMudG1wID0gK3RoaXMudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlSW5wdXRCbHVyKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5jaGVja01pbk1heCh0aGlzLnRleHRWYWx1ZSk7XG4gICAgdGhpcy5vbkJsdXIuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIGh0bWxFdmVudDogZVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXggZm9ybS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuaWRdPVwidWlkXCIgI2ZjPlxuICAgIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8YXgtYnV0dG9uIGljb249XCJmYXIgZmEtcGx1c1wiIHR5cGU9XCJzdWNjZXNzIGJsYW5rXCIgKGNsaWNrKT1cInVwU3RlcEhhbmRlbCgpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKm5nSWY9XCJzaG93RG91YmxlQ291bnRlclwiPjwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheCBmb3JtLWNvbnRyb2wgaW5wdXQge3tzaXplfX1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLmljb25dPVwiaWNvblwiPlxuICAgICAgICAgICAgPGlucHV0IFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCIgW25hbWVdPVwibmFtZVwiICNpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYXgge3tzaXplfX1cIiBbbWF4bGVuZ3RoXT1cImNhbGNTZXBhcmF0b3IobWF4TGVuZ3RoKVwiIFsobmdNb2RlbCldPVwidGV4dFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInNldFRleHRBbGlnbigpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY2xlYXJdPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKCRldmVudClcIiAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleXByZXNzKT1cImhhbmRsZUtleVByZXNzKCRldmVudClcIiAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiIChjbGljayk9XCJoYW5kbGVDbGljaygpXCIgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpY29ufX1cIiAqbmdJZj1cImljb25cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxheC1idXR0b24gKm5nSWY9XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cImZhciBmYS10aW1lc1wiIHR5cGU9XCJkYW5nZXIgYmxhbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDxheC1idXR0b24gaWNvbj1cImZhciBmYS1taW51c1wiIHR5cGU9XCJkYW5nZXIgYmxhbmtcIiAoY2xpY2spPVwiZG93blN0ZXBIYW5kZWwoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiICpuZ0lmPVwic2hvd0RvdWJsZUNvdW50ZXJcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3ctbnVtYmVyXCIgKm5nSWY9XCJzaG93Q291bnRlciAmJiAhc2hvd0RvdWJsZUNvdW50ZXIgJiYgIXJlYWRvbmx5XCIgPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwibGlnaHQgYmxhbmtcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBpY29uPVwiZmFzIGZhLWFuZ2xlLXVwXCIgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJ1cFN0ZXBIYW5kZWwoKVwiIChtb3VzZXVwKT1cImRlbGF5U2VhcmNoKClcIiBbdGFiSW5kZXhdPVwiLTFcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cImZhcyBmYS1hbmdsZS1kb3duXCIgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJkb3duU3RlcEhhbmRlbCgpXCIgKG1vdXNldXApPVwiZGVsYXlTZWFyY2goKVwiIFt0YWJJbmRleF09XCItMVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
628
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9udW1iZXItYm94L251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbnVtYmVyLWJveC9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBZ0IsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFRcEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTZKckM7SUE1SmIsR0FBRyxHQUFXLElBQUksQ0FBQztJQUNuQixHQUFHLEdBQVcsSUFBSSxDQUFDO0lBRzVCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUc5QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBRzVCLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFHM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBR25DLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFFdkIsa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUUzQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLEdBQUcsQ0FBTTtJQUNULEtBQUssQ0FBUztJQUNkLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBQzNCLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFDbEIsZUFBZSxHQUFXLEdBQUcsQ0FBQztJQUM5QixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBRWYsT0FBTyxHQUFXLENBQUMsQ0FBQztJQUNwQixhQUFhLEdBQVcsSUFBSSxDQUFDO0lBQzdCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFFM0IsT0FBTyxDQUFTO0lBQ3hCLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBUztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDOUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBRXBCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOzRCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7NEJBQzVCLFNBQVMsRUFBRSxJQUFJOzRCQUNmLEtBQUssRUFBRSxJQUFJOzRCQUNYLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7Z0NBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRztvQ0FDWCxDQUFDLENBQUMsSUFBSTtvQ0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUztvQ0FDbkMsQ0FBQyxDQUFDLElBQUk7b0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHO3dDQUNiLENBQUMsQ0FBQyxJQUFJO3dDQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO3lCQUNwQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0RCxDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUVqQixnQ0FBZ0M7b0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFNUUsNENBQTRDO29CQUM1Qyw0RUFBNEU7b0JBQzVFLHdGQUF3RjtvQkFDeEYsZ0dBQWdHO29CQUNoRyxxQkFBcUI7b0JBQ3JCLDZDQUE2QztvQkFDN0MsTUFBTTtvQkFDTixJQUFJO29CQUVKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDOzRCQUNoRSxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dDQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ3hDLENBQUM7aUNBQU0sQ0FBQztnQ0FDTixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7NEJBQ2pDLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7d0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOzRCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7NEJBQzVCLFNBQVMsRUFBRSxJQUFJOzRCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7NEJBQ3hFLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7Z0NBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRztvQ0FDWCxDQUFDLENBQUMsSUFBSTtvQ0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUztvQ0FDbkMsQ0FBQyxDQUFDLElBQUk7b0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHO3dDQUNiLENBQUMsQ0FBQyxJQUFJO3dDQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO3lCQUNwQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0RCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ1QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBRXBCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO3dCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7d0JBQzVCLFNBQVMsRUFBRSxJQUFJO3dCQUNmLEtBQUssRUFBRSxJQUFJO3dCQUNYLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7NEJBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRztnQ0FDWCxDQUFDLENBQUMsSUFBSTtnQ0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDOzRCQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUztnQ0FDbkMsQ0FBQyxDQUFDLElBQUk7Z0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHO29DQUNiLENBQUMsQ0FBQyxJQUFJO29DQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO3dCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO3FCQUNwQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBc0IsR0FBc0IsRUFBRSxHQUFlO1FBQzNELEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFESSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUUxQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQUk7UUFDWixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwQixFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7d0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN0QixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsb0NBQW9DO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUssS0FBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUUxRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUNyRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDO1FBQ0QsSUFBSyxLQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBRTFELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3JELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNwQyxNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztRQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUM5RCxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUNELHVDQUF1QztRQUN2QyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHVDQUF1QztnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM1RCxJQUFJLFNBQVMsS0FBSyxHQUFHLEVBQUUsQ0FBQzt3QkFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN6QixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsNENBQTRDO2dCQUM1QyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDckQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25FLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN6QyxJQUFJLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLGNBQWMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDO3dCQUNsSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxvQkFBb0I7Z0JBQ3BCLElBQUksU0FBUyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDckUsZ0NBQWdDO29CQUNoQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDckMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN6QixDQUFDO29CQUNELGdDQUFnQztvQkFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2xCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDekIsQ0FBQztvQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBb0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ25ELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztRQUVELGNBQWM7UUFDZCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixvQkFBb0I7UUFDcEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO2dCQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDdkUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNSLE1BQU0sV0FBVyxHQUNmLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDMUksdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM1QyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7d0JBQzlCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUN0QyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNoRSx1REFBdUQ7NEJBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUMzRyxDQUFDO29CQUNILENBQUM7b0JBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDdEMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQzNHLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUMvRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7Z0NBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsUUFBUTtvQ0FDWCxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQ3hHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQzVHLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dDQUMzRyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQzNHLENBQUM7aUNBQU0sQ0FBQztnQ0FDTixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQ0FDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQ0FDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQzNHLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO29CQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDL0QsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO2dDQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQ0FDcEQsSUFBSSxDQUFDLFFBQVE7b0NBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dDQUN4RyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dDQUM1RyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQ0FDM0csSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0NBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRCQUMzRyxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0NBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7Z0NBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRCQUMzRyxDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ25DLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDOzRCQUM1RSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7Z0NBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDOzRCQUNuQixDQUFDO2lDQUFNLENBQUM7Z0NBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQ0FDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDdkQsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNuQyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQzs0QkFDNUUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dDQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQzs0QkFDbkIsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNuRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0NBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDOzRCQUN2RCxDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBQzFELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0gseURBQXlEO1FBQ3pELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCxXQUFXLENBQUMsSUFBSTtRQUNkLElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFJO1FBQ3JCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUMvQixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHO1FBQ3hCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM1QixNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO29CQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztvQkFDdkUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDUixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxXQUFXLEdBQ2YsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDMUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNyRCxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOzRCQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDdEMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQ0FDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQzNHLENBQUM7d0JBQ0gsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQy9ELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQ0FDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0NBQ3BELElBQUksQ0FBQyxRQUFRO3dDQUNYLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs0Q0FDeEcsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs0Q0FDNUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7b0NBQzNHLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29DQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUM3SCxDQUFDO3FDQUFNLENBQUM7b0NBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0NBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7b0NBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQzdILENBQUM7NEJBQ0gsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDOzRCQUM1RSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDOzRCQUV2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUztvQkFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7b0JBQ3ZFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sV0FBVyxHQUNmLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQzFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDckQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzs0QkFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDdEUsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQ0FDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDN0gsQ0FBQzt3QkFDSCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQ0FDL0QsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO29DQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQ0FDcEQsSUFBSSxDQUFDLFFBQVE7d0NBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUN4RyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUM1RyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQ0FDM0csSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0NBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dDQUMzRyxDQUFDO3FDQUFNLENBQUM7b0NBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0NBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7b0NBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dDQUMzRyxDQUFDOzRCQUNILENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQzs0QkFDNUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDOzRCQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBUTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNuQyxTQUFTLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBcG5CVSxvQkFBb0I7MkZBQXBCLG9CQUFvQix1WEFGcEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxpRENUckYsdXVFQWdDQTs7MkZEckJhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQ25CLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxzQkFBc0IsRUFBRSxDQUFDOytHQUcxRSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQWlCRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyVmlld0luaXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFYQmFzZVRleHRDb21wb25lbnQsIEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWluOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBtYXg6IG51bWJlciA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgc2hvd1NlcGFyYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBzaG93Q3VycmVuY3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaG93Q291bnRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2Nyb2xsV2VlbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2hvd0RvdWJsZUNvdW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBtYXhMZW5ndGg6IG51bWJlciA9IDE4O1xuXG4gIHVzZXJRdWVzdGlvblVwZGF0ZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICB1c2VyRWRpdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0bXA6IGFueTtcbiAgY291bnQ6IG51bWJlcjtcbiAgZmluZERvdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmluZE1pbnVzOiBib29sZWFuID0gZmFsc2U7XG4gIGN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICBkb3RQb3NpdGlvbjogbnVtYmVyO1xuICB0ZXh0VmFsdWU6IHN0cmluZztcbiAgZGVjaW1hbENvbnN0YW50OiBudW1iZXIgPSAwLjE7XG4gIGxhc3RTdGVwOiBudW1iZXIgPSBudWxsO1xuXG4gIEBJbnB1dCgpIGludFN0ZXA6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGRlY2ltYWxOdW1iZXI6IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIGN1c3RvbVN0ZXA6IG51bWJlciA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XG4gICAgaWYgKHYgPT09ICctJykge1xuICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLSc7XG4gICAgICB0aGlzLl92YWx1ZXMgPSAnLSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh2ID09PSAnJyB8fCB2ID09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGlzTmFOKE51bWJlcih2LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJykpKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHYgPT09ICcnIHx8IHYgPT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xuICAgICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcyAhPT0gb2xkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICBvbGRWYWx1ZTpcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgJiYgb2xkXG4gICAgICAgICAgICAgICAgICA/IG9sZCA9PT0gJy0nXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQucmVwbGFjZSgvLC9nLCAnJykpXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gbnVsbCB8fCBvbGQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gJy0nXG4gICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZCksXG4gICAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudXNlckVkaXRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHYgPSB2LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAvLyB0aGlzLmFkZENvbW1hcyh2LnRvU3RyaW5nKCkpO1xuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyB0aGlzLmFkZENvbW1hcyh2LnRvU3RyaW5nKCkpIDogdjtcblxuICAgICAgICAgIC8vIGlmICh0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCcuJykgIT09IC0xKSB7XG4gICAgICAgICAgLy8gICAvLyBjb25zdCBkb3R0dD0gKHRoaXMudGV4dFZhbHVlLmxlbmd0aC0xKSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKVxuICAgICAgICAgIC8vICAgaWYgKHRoaXMudGV4dFZhbHVlLmxlbmd0aCAtIDEgLSB0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCcuJykgPCB0aGlzLmRlY2ltYWxOdW1iZXIpIHtcbiAgICAgICAgICAvLyAgICAgY29uc3QgYSA9IHRoaXMuZGVjaW1hbE51bWJlciAtICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggLSAxIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpKTtcbiAgICAgICAgICAvLyAgICAgY29uc3QgeiA9ICcwJztcbiAgICAgICAgICAvLyAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnRleHRWYWx1ZSArICcwJztcbiAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICBpZiAodGhpcy5fdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgICBpZiAob2xkLnRvU3RyaW5nKCkuc2VhcmNoKC9cXC4vZykgIT09IHYudG9TdHJpbmcoKS5zZWFyY2goL1xcLi9nKSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSBvbGQuc2VhcmNoKC9cXC4vZykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdi5zZWFyY2goL1xcLi9nKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdi5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gdjtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3dTZXBhcmF0b3IgJiYgdiA/IE51bWJlcih2LnJlcGxhY2UoLywvZywgJycpKSA6IE51bWJlcih2KSk7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNob3dTZXBhcmF0b3IgJiYgdiA/IE51bWJlcih2LnJlcGxhY2UoLywvZywgJycpKSA6IE51bWJlcih2KSxcbiAgICAgICAgICAgICAgb2xkVmFsdWU6XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxuICAgICAgICAgICAgICAgICAgPyBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09IG51bGwgfHwgb2xkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcbiAgICAgICAgdiA9IG51bGw7XG4gICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5fdmFsdWVzICE9PSBvbGQpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyRWRpdGUsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgIG9sZFZhbHVlOlxuICAgICAgICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgJiYgb2xkXG4gICAgICAgICAgICAgICAgPyBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQucmVwbGFjZSgvLC9nLCAnJykpXG4gICAgICAgICAgICAgICAgOiBvbGQgPT09IG51bGwgfHwgb2xkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IG9sZCA9PT0gJy0nXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkKSxcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy51c2VyRWRpdGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIHJlZik7XG4gICAgdGhpcy50ZXh0QWxpZ24gPSAnbGVmdCc7XG4gIH1cblxuICBjYWxjU2VwYXJhdG9yKG51bTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc2hvd1NlcGFyYXRvcikge1xuICAgICAgcmV0dXJuIG51bSArICsobnVtIC8gMyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudW07XG4gICAgfVxuICB9XG5cbiAgYWRkQ29tbWFzMih4KSB7XG4gICAgcmV0dXJuIHgudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnLCcpO1xuICB9XG5cbiAgYWRkQ29tbWFzKG5TdHIpIHtcbiAgICBuU3RyICs9ICcnO1xuICAgIGNvbnN0IHggPSBuU3RyLnNwbGl0KCcuJyk7XG4gICAgbGV0IHgxID0geFswXTtcbiAgICBjb25zdCB4MiA9IHgubGVuZ3RoID4gMSA/ICcuJyArIHhbMV0gOiAnJztcbiAgICBjb25zdCByZ3ggPSAvKFxcZCspKFxcZHszfSkvO1xuICAgIHdoaWxlIChyZ3gudGVzdCh4MSkpIHtcbiAgICAgIHgxID0geDEucmVwbGFjZShyZ3gsICckMScgKyAnLCcgKyAnJDInKTtcbiAgICB9XG4gICAgcmV0dXJuIHgxICsgeDI7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgIGlmICh0aGlzLnNjcm9sbFdlZWwgPT09IHRydWUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVdoZWVsKGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICB9XG5cbiAgaGFuZGxlV2hlZWwoZXZlbnQpIHtcbiAgICBpZiAoKGV2ZW50IGFzIGFueSkud2hlZWxEZWx0YSA+IDApIHtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcblxuICAgICAgdGhpcy51cFN0ZXBIYW5kZWwoKTtcbiAgICAgIHRoaXMuZGVsYXlTZWFyY2goKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gICAgaWYgKChldmVudCBhcyBhbnkpLndoZWVsRGVsdGEgPCAwKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG5cbiAgICAgIHRoaXMuZG93blN0ZXBIYW5kZWwoKTtcbiAgICAgIHRoaXMuZGVsYXlTZWFyY2goKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XG4gICAgY29uc3QgTnVtYmVyRG90cGF0dGVybiA9IC9bMC05XFwuXS9nO1xuICAgIGNvbnN0IE51bWJlck1pbnVzUGF0dGVybiA9IC9bMC05XFwtXS9nO1xuXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XG5cbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5maW5kRG90cyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuc2VhcmNoKCctJykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZmluZE1pbnVzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gZ2V0IGN1cnN1ciBwb3NpdGlvbiB3aGVuIGtleSBwcmVzc1xuICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiArPSAxO1xuICAgIH1cblxuICAgIC8vIGNvbnRyb2wgY3Vyc29yIHdoZW4gaW4gZmlyc3QgSW5kZXhcbiAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAxKSB7XG4gICAgICBpZiAoIU51bWJlck1pbnVzUGF0dGVybi50ZXN0KGlucHV0Q2hhcikpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubWF0Y2goL1xcLS9nKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBjb250cm9sIGN1cnNvciB3aGVuIGluIGFub3RoZXIgaW5kZXhcbiAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiAhPT0gMSkge1xuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgIT09IDggJiYgIU51bWJlckRvdHBhdHRlcm4udGVzdChpbnB1dENoYXIpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBmb3IgY29udG9yIGRlY2ltYWwgZmlndXIgPSAwIG9yIG51bGxcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbE51bWJlciA9PT0gbnVsbCB8fCB0aGlzLmRlY2ltYWxOdW1iZXIgPT09IDApIHtcbiAgICAgICAgICBpZiAoaW5wdXRDaGFyID09PSAnLicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnRyb2wgZGVjaW1hbCBudW1iZXIgKGZpZ3VyIG9mIGRlY2ltYWwpXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgY29uc3QgZmlndXJlQWZ0ZXJEb3QgPSB0aGlzLnZhbHVlLmxlbmd0aCAtIHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICAgIGNvbnN0IGRvdEluZGV4ID0gdGhpcy52YWx1ZS5pbmRleE9mKCcuJyk7XG4gICAgICAgICAgaWYgKGRvdEluZGV4IC0gMSArIGRvdEluZGV4ICsgZmlndXJlQWZ0ZXJEb3QgPiBkb3RJbmRleCAtIDEgKyBkb3RJbmRleCArIHRoaXMuZGVjaW1hbE51bWJlciAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIC0gMSA+IGRvdEluZGV4KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb250cm9sICcuJyBpbnB1dFxuICAgICAgICBpZiAoaW5wdXRDaGFyID09PSAnLicpIHtcbiAgICAgICAgICBjb25zdCBsYXN0Q2hhciA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5jaGFyQXQodGhpcy52YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAvLyBjb250cm9sIC4gd2hlbiBsYXN0IGNoYXIgaXMgLVxuICAgICAgICAgIGlmIChsYXN0Q2hhci50b1N0cmluZygpLm1hdGNoKC9cXC0vZykpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGNvbnRyb2wgLiB3aGVuIGZpbmQgZmlyc3QgZG90XG4gICAgICAgICAgaWYgKHRoaXMuZmluZERvdHMpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZmluZERvdHMgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZmluZE1pbnVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgIH1cblxuICAgIC8vIGxlZnQgJiByaWdodCBCdXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBob21lIGJ1dHRvblxuICAgIGlmIChldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgfVxuXG4gICAgLy8gZW5kIGJ1dHRvblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gc2V0IGRlbGF5IHdpdGggcnhqc1xuICAgIHRoaXMuZGVsYXlTZWFyY2goKTtcblxuICAgIC8vIGJhY2tzcGFjZSBDb250cm9sXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsIHx8IHRoaXMudmFsdWUubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uIC09IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IGNvdW50QWZ0ZXJEb3QgPVxuICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdGhpcy52YWx1ZS50b1N0cmluZygpLmxlbmd0aCAtIDEgLSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpXG4gICAgICAgICAgOiAwO1xuICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XG4gICAgICAgIGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgdGhpcy5kZWNpbWFsTnVtYmVyKSA6IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCBjb3VudEFmdGVyRG90KTtcbiAgICAgIC8vIHN0ZXAgYW5kICstIHdpdGggdXAga2V5IGFuZCBkb3duIGtleVxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykpIHtcbiAgICAgICAgdGhpcy5kb3RQb3NpdGlvbiA9IHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+PSB0aGlzLmN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSB0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpID49IE51bWJlcih0aGlzLm1pbikpIHtcbiAgICAgICAgICAgICAgLy8gdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZCh0aGlzLmRlY2ltYWxOdW1iZXIpO1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSB0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpIDw9IE51bWJlcih0aGlzLm1heCkpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gTnVtYmVyKHRoaXMubWluKSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21TdGVwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgK1xuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIHRoaXMubGFzdFN0ZXA7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIGRlZmF1bHRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgTnVtYmVyKHRoaXMubWF4KSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21TdGVwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgK1xuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSArIHRoaXMubGFzdFN0ZXA7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSArIGRlZmF1bHRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPiBwYXJzZUludCh0aGlzLm1pbi50b1N0cmluZygpKSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRtcCA9ICt0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgcGFyc2VJbnQodGhpcy5tYXgudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHN0b3Agd2hlbiBrZXlkb3duXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGljaygpIHtcbiAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICB9XG4gIH1cblxuICBkZWxheVNlYXJjaCgpIHtcbiAgICBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlID0gb2JzZXJ2ZXI7XG4gICAgfSk7XG4gICAgdGhpcy51c2VyUXVlc3Rpb25VcGRhdGUucGlwZShkZWJvdW5jZVRpbWUoMTAwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB0aGlzLmNoZWNrTWluTWF4KHRleHQpKTtcbiAgICAvLyB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KChlLnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlLm5leHQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICB9LCA1MCk7XG4gIH1cblxuICBjaGVja01pbk1heCh0ZXh0KSB7XG4gICAgbGV0IG51bWJlcjogbnVtYmVyO1xuICAgIGlmICh0ZXh0LmluZGV4T2YoJywnKSA+IDApIHtcbiAgICAgIG51bWJlciA9IE51bWJlcih0ZXh0LnJlcGxhY2VBbGwoJywnLCAnJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBudW1iZXIgPSBOdW1iZXIodGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKCEhdGhpcy5taW4pIHtcbiAgICAgIGlmIChudW1iZXIgPCB0aGlzLm1pbikge1xuICAgICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghIXRoaXMubWF4KSB7XG4gICAgICBpZiAobnVtYmVyID4gdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRvR2V0Q2FyZXRQb3NpdGlvbihjdHJsKSB7XG4gICAgbGV0IENhcmV0UG9zID0gMDtcbiAgICBpZiAoY3RybC5zZWxlY3Rpb25TdGFydCB8fCBjdHJsLnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XG4gICAgICBDYXJldFBvcyA9IGN0cmwuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICByZXR1cm4gQ2FyZXRQb3M7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2FyZXRQb3NpdGlvbihjdHJsLCBwb3MpIHtcbiAgICBpZiAoY3RybC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgY3RybC5mb2N1cygpO1xuICAgICAgY3RybC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgfSBlbHNlIGlmIChjdHJsLmNyZWF0ZVRleHRSYW5nZSkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBjdHJsLmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICByYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCBwb3MpO1xuICAgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBwb3MpO1xuICAgICAgcmFuZ2Uuc2VsZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2FyZXQoKSB7XG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XG4gIH1cblxuICB1cFN0ZXBIYW5kZWwoKSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cbiAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XG4gICAgICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgdGhpcy5kb3RQb3NpdGlvbiA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+IHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpIDw9IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPCBOdW1iZXIodGhpcy5tYXgpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0U3RlcCA9XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyB0aGlzLmxhc3RTdGVwO1xuICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSArIGRlZmF1bHRTdGVwO1xuICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPCBwYXJzZUludCh0aGlzLm1heC50b1N0cmluZygpKSkge1xuICAgICAgICAgICAgICB0aGlzLnRtcCA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XG5cbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkb3duU3RlcEhhbmRlbCgpIHtcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGNvdW50QWZ0ZXJEb3QgPVxuICAgICAgICAgIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gJycgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxuICAgICAgICAgICAgOiAwO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0U3RlcDogbnVtYmVyID1cbiAgICAgICAgICAgIGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgdGhpcy5kZWNpbWFsTnVtYmVyKSA6IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICB0aGlzLmRvdFBvc2l0aW9uID0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKSArIDE7XG4gICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRvdFBvc2l0aW9uID4gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpIC0gK3RoaXMuaW50U3RlcDtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA+PSB0aGlzLm1pbikge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gTnVtYmVyKHRoaXMubWluKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApIC0gdGhpcy5sYXN0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gcGFyc2VJbnQodGhpcy5taW4udG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSArdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gK3RoaXMudG1wIC0gK3RoaXMuaW50U3RlcDtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVJbnB1dEJsdXIoZTogRXZlbnQpIHtcbiAgICB0aGlzLmNoZWNrTWluTWF4KHRoaXMudGV4dFZhbHVlKTtcbiAgICB0aGlzLm9uQmx1ci5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgaHRtbEV2ZW50OiBlXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheCBmb3JtLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5pZF09XCJ1aWRcIiAjZmM+XG4gICAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgICAgIDxheC1idXR0b24gaWNvbj1cImZhciBmYS1wbHVzXCIgdHlwZT1cInN1Y2Nlc3MgYmxhbmtcIiAoY2xpY2spPVwidXBTdGVwSGFuZGVsKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAqbmdJZj1cInNob3dEb3VibGVDb3VudGVyXCI+PC9heC1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiAjY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4IGZvcm0tY29udHJvbCBpbnB1dCB7e3NpemV9fVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbY2xhc3MuaWNvbl09XCJpY29uXCI+XG4gICAgICAgICAgICA8aW5wdXQgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIiBbbmFtZV09XCJuYW1lXCIgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJheCB7e3NpemV9fVwiIFttYXhsZW5ndGhdPVwiY2FsY1NlcGFyYXRvcihtYXhMZW5ndGgpXCIgWyhuZ01vZGVsKV09XCJ0ZXh0VmFsdWVcIiBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW25nQ2xhc3NdPVwic2V0VGV4dEFsaWduKClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5jbGVhcl09XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCIgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwiaGFuZGxlS2V5UHJlc3MoJGV2ZW50KVwiIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMudXNlclF1ZXN0aW9uVXBkYXRlLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrKClcIiAoa2V5dXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2ljb259fVwiICpuZ0lmPVwiaWNvblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIj5cbiAgICAgICAgPGF4LWJ1dHRvbiAqbmdJZj1cInZhbHVlICYmIGFsbG93Q2xlYXJcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBpY29uPVwiZmFyIGZhLXRpbWVzXCIgdHlwZT1cImRhbmdlciBibGFua1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBpY29uPVwiZmFyIGZhLW1pbnVzXCIgdHlwZT1cImRhbmdlciBibGFua1wiIChjbGljayk9XCJkb3duU3RlcEhhbmRlbCgpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKm5nSWY9XCJzaG93RG91YmxlQ291bnRlclwiPjwvYXgtYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcnJvdy1udW1iZXJcIiAqbmdJZj1cInNob3dDb3VudGVyICYmICFzaG93RG91YmxlQ291bnRlciAmJiAhcmVhZG9ubHlcIiA+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGljb249XCJmYXMgZmEtYW5nbGUtdXBcIiBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cInVwU3RlcEhhbmRlbCgpXCIgKG1vdXNldXApPVwiZGVsYXlTZWFyY2goKVwiIFt0YWJJbmRleF09XCItMVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwibGlnaHQgYmxhbmtcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBpY29uPVwiZmFzIGZhLWFuZ2xlLWRvd25cIiBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cImRvd25TdGVwSGFuZGVsKClcIiAobW91c2V1cCk9XCJkZWxheVNlYXJjaCgpXCIgW3RhYkluZGV4XT1cIi0xXCI+PC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -5,11 +5,11 @@ import { AXButtonModule } from '../button/button.module';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import * as i0 from "@angular/core";
7
7
  export class AXNumberBoxModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule, AXButtonModule, FormsModule], exports: [AXNumberBoxComponent] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxModule, imports: [CommonModule, AXButtonModule, FormsModule] });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule, AXButtonModule, FormsModule], exports: [AXNumberBoxComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxModule, imports: [CommonModule, AXButtonModule, FormsModule] });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXNumberBoxModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [AXNumberBoxComponent],
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
18
18
  providers: []
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9udW1iZXItYm94L251bWJlci1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTdDLE1BQU0sT0FBTyxpQkFBaUI7d0dBQWpCLGlCQUFpQjt5R0FBakIsaUJBQWlCLGlCQUxiLG9CQUFvQixhQUN6QixZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsYUFDekMsb0JBQW9CO3lHQUduQixpQkFBaUIsWUFKbEIsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXOzs0RkFJeEMsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBWE51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQVhOdW1iZXJCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbQVhOdW1iZXJCb3hDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94TW9kdWxlIHt9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9udW1iZXItYm94L251bWJlci1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTdDLE1BQU0sT0FBTyxpQkFBaUI7dUdBQWpCLGlCQUFpQjt3R0FBakIsaUJBQWlCLGlCQUxiLG9CQUFvQixhQUN6QixZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsYUFDekMsb0JBQW9CO3dHQUduQixpQkFBaUIsWUFKbEIsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXOzsyRkFJeEMsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBWE51bWJlckJveENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQVhOdW1iZXJCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBleHBvcnRzOiBbQVhOdW1iZXJCb3hDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94TW9kdWxlIHt9XG4iXX0=
@@ -5,8 +5,8 @@ export class AXPageContentComponent {
5
5
  constructor(el) {
6
6
  this.el = el;
7
7
  }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageContentComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXPageContentComponent, selector: "ax-page-content", ngImport: i0, template: `
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageContentComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXPageContentComponent, selector: "ax-page-content", ngImport: i0, template: `
10
10
  <div class='ax-page-content'>
11
11
  <div class='inner-content'>
12
12
  <ng-content></ng-content>
@@ -14,7 +14,7 @@ export class AXPageContentComponent {
14
14
  </div>
15
15
  `, isInline: true, styles: [":host{height:100%}\n"] });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageContentComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageContentComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'ax-page-content', template: `
20
20
  <div class='ax-page-content'>
@@ -23,5 +23,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23
23
  </div>
24
24
  </div>
25
25
  `, styles: [":host{height:100%}\n"] }]
26
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL2NvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWV0RCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2I7SUFBcEIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBSSxDQUFDO3dHQUQ1QixzQkFBc0I7NEZBQXRCLHNCQUFzQix1REFYdkI7Ozs7OztHQU1UOzs0RkFLVSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7R0FNVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wYWdlLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9J2F4LXBhZ2UtY29udGVudCc+XG4gICAgICA8ZGl2IGNsYXNzPSdpbm5lci1jb250ZW50Jz5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgICc6aG9zdCB7IGhlaWdodDoxMDAlIH0nXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhQYWdlQ29udGVudENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxufVxuIl19
26
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL2NvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWV0RCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2I7SUFBcEIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBSSxDQUFDO3VHQUQ1QixzQkFBc0I7MkZBQXRCLHNCQUFzQix1REFYdkI7Ozs7OztHQU1UOzsyRkFLVSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7R0FNVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wYWdlLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9J2F4LXBhZ2UtY29udGVudCc+XG4gICAgICA8ZGl2IGNsYXNzPSdpbm5lci1jb250ZW50Jz5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgICc6aG9zdCB7IGhlaWdodDoxMDAlIH0nXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhQYWdlQ29udGVudENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxufVxuIl19
@@ -1,12 +1,12 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class AXPageFooterComponent {
4
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXPageFooterComponent, selector: "ax-page-footer", ngImport: i0, template: `<div class='ax-page-footer' >
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXPageFooterComponent, selector: "ax-page-footer", ngImport: i0, template: `<div class='ax-page-footer' >
6
6
  <ng-content></ng-content>
7
7
  </div>`, isInline: true });
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageFooterComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageFooterComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{
12
12
  selector: 'ax-page-footer',
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
16
16
  }]
17
17
  }] });
18
18
  ;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BhZ2UvZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOztBQVV2QixNQUFNLE9BQU8scUJBQXFCO3dHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQixzREFMOUI7O2NBRVU7OzRGQUdELHFCQUFxQjtrQkFSakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQ047O2NBRVU7aUJBQ2I7O0FBRXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhZ2UtZm9vdGVyJyxcbiAgdGVtcGxhdGU6XG4gICAgYDxkaXYgY2xhc3M9J2F4LXBhZ2UtZm9vdGVyJyA+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgIDwvZGl2PmBcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBhZ2VGb290ZXJDb21wb25lbnQgeyB9OyJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BhZ2UvZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOztBQVV2QixNQUFNLE9BQU8scUJBQXFCO3VHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQixzREFMOUI7O2NBRVU7OzJGQUdELHFCQUFxQjtrQkFSakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQ047O2NBRVU7aUJBQ2I7O0FBRXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhZ2UtZm9vdGVyJyxcbiAgdGVtcGxhdGU6XG4gICAgYDxkaXYgY2xhc3M9J2F4LXBhZ2UtZm9vdGVyJyA+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgIDwvZGl2PmBcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBhZ2VGb290ZXJDb21wb25lbnQgeyB9OyJdfQ==
@@ -28,8 +28,8 @@ export class AXPageComponent {
28
28
  this._loadingId = this.loadingService.show(this.el.nativeElement);
29
29
  }
30
30
  }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXLoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXPageComponent, selector: "ax-page", ngImport: i0, template: `
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXLoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXPageComponent, selector: "ax-page", ngImport: i0, template: `
33
33
  <div class="page-content-wrap">
34
34
  <div class="ax-page-toolbar">
35
35
  <ng-content select="ax-toolbar"></ng-content>
@@ -39,7 +39,7 @@ export class AXPageComponent {
39
39
  </div>
40
40
  `, isInline: true });
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{
45
45
  selector: 'ax-page',
@@ -53,5 +53,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
53
53
  </div>
54
54
  `
55
55
  }]
56
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AXLoadingService }, { type: i0.ChangeDetectorRef }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL3BhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFjOUQsTUFBTSxPQUFPLGVBQWU7SUFFaEI7SUFDQTtJQUNBO0lBSFYsWUFDVSxFQUEyQixFQUMzQixjQUFnQyxFQUNoQyxHQUFzQjtRQUZ0QixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFDNUIsQ0FBQztJQUdMLGVBQWU7SUFDZixDQUFDO0lBRU8sVUFBVSxDQUFTO0lBRW5CLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDcEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsQ0FBVTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO3dHQTFCVSxlQUFlOzRGQUFmLGVBQWUsK0NBVmhCOzs7Ozs7OztDQVFYOzs0RkFFWSxlQUFlO2tCQVozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUU7Ozs7Ozs7O0NBUVg7aUJBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wYWdlJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cInBhZ2UtY29udGVudC13cmFwXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LXBhZ2UtdG9vbGJhclwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdG9vbGJhclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wYWdlLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcGFnZS1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuYFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhZ2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBBWExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7IH1cblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRpbmdJZDogbnVtYmVyO1xuXG4gIHByaXZhdGUgX2lzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xuICB9XG4gIHB1YmxpYyBzZXQgaXNMb2FkaW5nKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0xvYWRpbmcgPSB2O1xuICAgIGlmICh0aGlzLl9sb2FkaW5nSWQgJiYgIXYpIHtcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuaGlkZSh0aGlzLl9sb2FkaW5nSWQpO1xuICAgICAgdGhpcy5fbG9hZGluZ0lkID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX2xvYWRpbmdJZCA9IHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxufVxuIl19
56
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AXLoadingService }, { type: i0.ChangeDetectorRef }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL3BhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFjOUQsTUFBTSxPQUFPLGVBQWU7SUFFaEI7SUFDQTtJQUNBO0lBSFYsWUFDVSxFQUEyQixFQUMzQixjQUFnQyxFQUNoQyxHQUFzQjtRQUZ0QixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFDNUIsQ0FBQztJQUdMLGVBQWU7SUFDZixDQUFDO0lBRU8sVUFBVSxDQUFTO0lBRW5CLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDcEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsQ0FBVTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7dUdBMUJVLGVBQWU7MkZBQWYsZUFBZSwrQ0FWaEI7Ozs7Ozs7O0NBUVg7OzJGQUVZLGVBQWU7a0JBWjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRTs7Ozs7Ozs7Q0FRWDtpQkFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2FkaW5nL2xvYWRpbmcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhZ2UnLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwicGFnZS1jb250ZW50LXdyYXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtcGFnZS10b29sYmFyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC10b29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXBhZ2UtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wYWdlLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIEFYUGFnZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IEFYTG9hZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHsgfVxuXG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGluZ0lkOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XG4gIH1cbiAgcHVibGljIHNldCBpc0xvYWRpbmcodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzTG9hZGluZyA9IHY7XG4gICAgaWYgKHRoaXMuX2xvYWRpbmdJZCAmJiAhdikge1xuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKHRoaXMuX2xvYWRpbmdJZCk7XG4gICAgICB0aGlzLl9sb2FkaW5nSWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fbG9hZGluZ0lkID0gdGhpcy5sb2FkaW5nU2VydmljZS5zaG93KHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -6,11 +6,11 @@ import { AXPageComponent } from './page.component';
6
6
  import { AXLoadingModule } from '../loading/loading.module';
7
7
  import * as i0 from "@angular/core";
8
8
  export class AXPageModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXPageModule, declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent], imports: [CommonModule, AXLoadingModule], exports: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent] });
11
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageModule, imports: [CommonModule, AXLoadingModule] });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: AXPageModule, declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent], imports: [CommonModule, AXLoadingModule], exports: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageModule, imports: [CommonModule, AXLoadingModule] });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXPageModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXPageModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19
19
  providers: [],
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL3BhZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBUTVELE1BQU0sT0FBTyxZQUFZO3dHQUFaLFlBQVk7eUdBQVosWUFBWSxpQkFMTixzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLGFBQ25FLFlBQVksRUFBRSxlQUFlLGFBQzdCLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGVBQWU7eUdBRy9ELFlBQVksWUFKWCxZQUFZLEVBQUUsZUFBZTs7NEZBSTlCLFlBQVk7a0JBTnhCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxDQUFDO29CQUM5RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUM7b0JBQ3pFLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhQYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQYWdlRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQVhQYWdlQ29udGVudENvbXBvbmVudCwgQVhQYWdlRm9vdGVyQ29tcG9uZW50LCBBWFBhZ2VDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYTG9hZGluZ01vZHVsZV0sXG4gICAgZXhwb3J0czogW0FYUGFnZUNvbnRlbnRDb21wb25lbnQsIEFYUGFnZUZvb3RlckNvbXBvbmVudCwgQVhQYWdlQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhZ2VNb2R1bGUgeyB9Il19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlL3BhZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBUTVELE1BQU0sT0FBTyxZQUFZO3VHQUFaLFlBQVk7d0dBQVosWUFBWSxpQkFMTixzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLGFBQ25FLFlBQVksRUFBRSxlQUFlLGFBQzdCLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGVBQWU7d0dBRy9ELFlBQVksWUFKWCxZQUFZLEVBQUUsZUFBZTs7MkZBSTlCLFlBQVk7a0JBTnhCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxDQUFDO29CQUM5RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUM7b0JBQ3pFLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhQYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQYWdlRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQVhQYWdlQ29udGVudENvbXBvbmVudCwgQVhQYWdlRm9vdGVyQ29tcG9uZW50LCBBWFBhZ2VDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYTG9hZGluZ01vZHVsZV0sXG4gICAgZXhwb3J0czogW0FYUGFnZUNvbnRlbnRDb21wb25lbnQsIEFYUGFnZUZvb3RlckNvbXBvbmVudCwgQVhQYWdlQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhZ2VNb2R1bGUgeyB9Il19