verben-workflow-ui 0.5.77 → 0.5.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +13 -0
  2. package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
  3. package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
  4. package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
  5. package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
  6. package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
  7. package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
  8. package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
  9. package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
  10. package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
  11. package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
  12. package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
  13. package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
  14. package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
  15. package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
  16. package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
  17. package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
  18. package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
  19. package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
  20. package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
  21. package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
  22. package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
  23. package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
  24. package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
  25. package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
  26. package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
  27. package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
  28. package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
  29. package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
  30. package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
  31. package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
  32. package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
  33. package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
  34. package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
  35. package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
  36. package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
  37. package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
  38. package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
  39. package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
  40. package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +5 -5
  41. package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
  42. package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
  43. package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
  44. package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
  45. package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
  46. package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
  47. package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
  48. package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
  49. package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +32 -15
  50. package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
  51. package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
  52. package/esm2022/src/lib/components/form-group/form-group.component.mjs +64 -13
  53. package/esm2022/src/lib/components/form-group/form-group.module.mjs +10 -6
  54. package/esm2022/src/lib/components/form-group/form-group.service.mjs +9 -4
  55. package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
  56. package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
  57. package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
  58. package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
  59. package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
  60. package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
  61. package/esm2022/src/lib/components/forms/forms.component.mjs +8 -8
  62. package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
  63. package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
  64. package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
  65. package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
  66. package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +7 -7
  67. package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +6 -41
  68. package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
  69. package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
  70. package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
  71. package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
  72. package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
  73. package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
  74. package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
  75. package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
  76. package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
  77. package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
  78. package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
  79. package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
  80. package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
  81. package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
  82. package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
  83. package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
  84. package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
  85. package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
  86. package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
  87. package/esm2022/src/lib/components/tasks/tasks.component.mjs +5 -5
  88. package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
  89. package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
  90. package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
  91. package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
  92. package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
  93. package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
  94. package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
  95. package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
  96. package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
  97. package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
  98. package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
  99. package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
  100. package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
  101. package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
  102. package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
  103. package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
  104. package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
  105. package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
  106. package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
  107. package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
  108. package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
  109. package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
  110. package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
  111. package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
  112. package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
  113. package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
  114. package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
  115. package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
  116. package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
  117. package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
  118. package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
  119. package/esm2022/src/lib/components/workflows/workflows.component.mjs +5 -5
  120. package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
  121. package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
  122. package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
  123. package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
  124. package/esm2022/src/lib/models/DataType.mjs +7 -1
  125. package/esm2022/src/lib/models/EAVEntity.mjs +2 -0
  126. package/esm2022/src/lib/models/FormEntity.mjs +1 -1
  127. package/esm2022/src/lib/models/public-api.mjs +2 -1
  128. package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
  129. package/esm2022/src/lib/services/environment.service.mjs +3 -3
  130. package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
  131. package/esm2022/src/lib/services/label.service.mjs +3 -3
  132. package/esm2022/src/lib/services/util.service.mjs +3 -3
  133. package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
  134. package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
  135. package/esm2022/src/lib/shared/shared.module.mjs +4 -4
  136. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
  137. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
  138. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
  139. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
  140. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
  141. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
  142. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
  143. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
  144. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
  145. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
  146. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +21 -21
  147. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
  148. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
  149. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
  150. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +120 -43
  151. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
  152. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
  153. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
  154. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
  155. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
  156. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
  157. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
  158. package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
  159. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +25 -60
  160. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
  161. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
  162. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
  163. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
  164. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
  165. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
  166. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
  167. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
  168. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
  169. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
  170. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
  171. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +21 -21
  172. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
  173. package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
  174. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
  175. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
  176. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
  177. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
  178. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +21 -21
  179. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
  180. package/fesm2022/verben-workflow-ui-src-lib-models.mjs +6 -0
  181. package/fesm2022/verben-workflow-ui-src-lib-models.mjs.map +1 -1
  182. package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
  183. package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
  184. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
  185. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
  186. package/package.json +20 -20
  187. package/src/lib/components/form-group/form-fields/form-fields.component.d.ts +1 -0
  188. package/src/lib/components/form-group/form-group.component.d.ts +6 -1
  189. package/src/lib/components/form-group/form-group.module.d.ts +3 -2
  190. package/src/lib/components/my-queue/my-queue.facade.d.ts +0 -1
  191. package/src/lib/components/workflow/workflow.component.d.ts +1 -1
  192. package/src/lib/models/DataType.d.ts +7 -1
  193. package/src/lib/models/EAVEntity.d.ts +4 -0
  194. package/src/lib/models/FormEntity.d.ts +1 -0
  195. package/src/lib/models/public-api.d.ts +1 -0
  196. package/styles/styles.css +19 -1436
@@ -335,12 +335,12 @@ export class OperationPopupComponent {
335
335
  };
336
336
  return labels[this.activeActionType || 'passon'] || 'Submit';
337
337
  }
338
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupComponent, deps: [{ token: i1.OperationPopupFacade }], target: i0.ɵɵFactoryTarget.Component });
339
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OperationPopupComponent, isStandalone: true, selector: "lib-operation-popup", inputs: { user: "user", task: "task", allowedActions: "allowedActions" }, outputs: { actionComplete: "actionComplete" }, providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], ngImport: i0, template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'#fff'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: VerbenPopUpModule }, { kind: "component", type: i4.VerbenPopUpComponent, selector: "verben-pop-Up", inputs: ["dropdownOpen", "dropdownWidth", "color", "customStyles", "popUpClass", "border", "borderRadius", "enableMouseLeave", "cdkPosition"], outputs: ["dropdownOpenChange", "close"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "ngmodule", type: VerbenaButtonModule }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormControlerModule }, { kind: "component", type: i5.FormControlComponent, selector: "form-control", inputs: ["dataType", "value", "boolInputType", "formProperties", "disabled"] }, { kind: "ngmodule", type: FormTimerModule }, { kind: "ngmodule", type: SvgModule }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
338
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupComponent, deps: [{ token: i1.OperationPopupFacade }], target: i0.ɵɵFactoryTarget.Component });
339
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OperationPopupComponent, isStandalone: true, selector: "lib-operation-popup", inputs: { user: "user", task: "task", allowedActions: "allowedActions" }, outputs: { actionComplete: "actionComplete" }, providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], ngImport: i0, template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'var(--vbn-color-surface)'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: VerbenPopUpModule }, { kind: "component", type: i4.VerbenPopUpComponent, selector: "verben-pop-Up", inputs: ["dropdownOpen", "dropdownWidth", "color", "customStyles", "popUpClass", "border", "borderRadius", "enableMouseLeave", "cdkPosition"], outputs: ["dropdownOpenChange", "close"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "ngmodule", type: VerbenaButtonModule }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormControlerModule }, { kind: "component", type: i5.FormControlComponent, selector: "form-control", inputs: ["dataType", "value", "boolInputType", "formProperties", "disabled"] }, { kind: "ngmodule", type: FormTimerModule }, { kind: "ngmodule", type: SvgModule }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
340
340
  }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupComponent, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupComponent, decorators: [{
342
342
  type: Component,
343
- args: [{ selector: 'lib-operation-popup', standalone: true, imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule], providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'#fff'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n" }]
343
+ args: [{ selector: 'lib-operation-popup', standalone: true, imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule], providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'var(--vbn-color-surface)'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n" }]
344
344
  }], ctorParameters: () => [{ type: i1.OperationPopupFacade }], propDecorators: { user: [{
345
345
  type: Input
346
346
  }], task: [{
@@ -350,4 +350,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
350
350
  }], actionComplete: [{
351
351
  type: Output
352
352
  }] } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvb3BlcmF0aW9uLXBvcHVwL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL29wZXJhdGlvbi1wb3B1cC9vcGVyYXRpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBUyxRQUFRLEVBQThCLE1BQU0sbUNBQW1DLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlC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QkFBdEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHJvcERvd25Nb2R1bGUsIFN2Z01vZHVsZSwgVmVyYmVuYUJ1dHRvbk1vZHVsZSwgVmVyYmVuRGlhbG9ndWVNb2R1bGUsIFZlcmJlblBvcFVwTW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IEZvcm1Db250cm9sZXJNb2R1bGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBGb3JtVGltZXJNb2R1bGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tdGltZXInO1xuaW1wb3J0IHsgQWN0b3IsIERhdGFUeXBlLCBGb3JtLCBUYXNrLCBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBPcGVyYXRpb25Qb3B1cEZhY2FkZSB9IGZyb20gJy4vb3BlcmF0aW9uLXBvcHVwLmZhY2FkZSc7XG5pbXBvcnQgeyBPcGVyYXRpb25Qb3B1cFNlcnZpY2UgfSBmcm9tICcuL29wZXJhdGlvbi1wb3B1cC5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZXJhdGlvblBvcHVwU3RhdGUgfSBmcm9tICcuL29wZXJhdGlvbi1wb3B1cC5zdGF0ZSc7XG5cbnR5cGUgQWN0aW9uVHlwZSA9ICdwYXNzb24nIHwgJ3Bhc3NiYWNrJyB8ICdyZWFzc2lnbicgfCAnc2tpcHRvJyB8ICdwaWNrdGFzaycgfCAncmVsZWFzZXRhc2snIHwgJ2ZvbGxvd3Rhc2snIHwgJ3VuZm9sbG93dGFzayc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1vcGVyYXRpb24tcG9wdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVmVyYmVuUG9wVXBNb2R1bGUsIERyb3BEb3duTW9kdWxlLCBWZXJiZW5hQnV0dG9uTW9kdWxlLCBWZXJiZW5EaWFsb2d1ZU1vZHVsZSwgRm9ybUNvbnRyb2xlck1vZHVsZSwgRm9ybVRpbWVyTW9kdWxlLCBTdmdNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtPcGVyYXRpb25Qb3B1cFNlcnZpY2UsIE9wZXJhdGlvblBvcHVwU3RhdGUsIE9wZXJhdGlvblBvcHVwRmFjYWRlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHVzZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhc2s6IFRhc2sgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dlZEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgQE91dHB1dCgpIGFjdGlvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8vIEludGVybmFsIHBvcHVwIHZpc2liaWxpdHkgY29udHJvbFxuICBpc1BvcHVwT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0Zvcm1Nb2RhbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudFN0ZXA6ICdhY3Rpb24tc2VsZWN0aW9uJyB8ICdhY3Rpb24tZm9ybScgPSAnYWN0aW9uLXNlbGVjdGlvbic7XG5cbiAgLy8gQWN0aW9uIHN0YXRlXG4gIGFjdGl2ZUFjdGlvblR5cGU6IEFjdGlvblR5cGUgfCBudWxsID0gbnVsbDtcbiAgY29tbWVudDogc3RyaW5nID0gJyc7XG4gIHJlY2lwaWVudENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RlZEFjdGlvbjogQmVoYXZpb3JTdWJqZWN0PFdvcmtmbG93QWN0aW9uIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtmbG93QWN0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHNlbGVjdGVkU3RhZ2VDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZm9ybVN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIERhdGEgZnJvbSBmYWNhZGVcbiAgbmV4dEFjdGlvbnM6IFdvcmtmbG93QWN0aW9uW10gPSBbXTtcbiAgbmV4dEFjdG9yczogQWN0b3JbXSA9IFtdO1xuICBzdGFnZUZvcm06IEZvcm0gfCBudWxsID0gbnVsbDtcbiAgYWN0aXZlOiBudW1iZXIgPSAwO1xuICBkYXRhVHlwZTogRGF0YVR5cGUgPSBEYXRhVHlwZS5UZXh0O1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjYWRlOiBPcGVyYXRpb25Qb3B1cEZhY2FkZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIGZhY2FkZSBvYnNlcnZhYmxlc1xuICAgIHRoaXMuZmFjYWRlLmdldE5leHRBY3Rpb25zJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEFjdGlvbnMgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmZhY2FkZS5nZXROZXh0QWN0b3JzJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEFjdG9ycyA9IGRhdGE7XG4gICAgICAgIC8vIEF1dG8tc2VsZWN0IGN1cnJlbnQgdXNlciBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKHRoaXMudXNlciAmJiBkYXRhLm1hcCgoeyBJZGVudGlmaWVyIH0pID0+IElkZW50aWZpZXIpLmluY2x1ZGVzKHRoaXMudXNlcikpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwaWVudENvZGUgPSB0aGlzLnVzZXI7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5mYWNhZGUuZ2V0VGFza0Zvcm1zJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtID0gZGF0YT8uWzBdIHx8IG51bGw7XG4gICAgICB9KTtcblxuICAgIC8vIExvYWQgYWN0b3JzIHdoZW4gYWN0aW9uIGlzIHNlbGVjdGVkXG4gICAgdGhpcy5zZWxlY3RlZEFjdGlvblxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24gJiYgdGhpcy50YXNrKSB7XG4gICAgICAgICAgdGhpcy5mYWNhZGUubG9hZE5leHRBY3RvcnModGhpcy50YXNrLkNvZGUsIGZhbHNlLCBhY3Rpb24uVG9TdGFnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLy8gR2V0IGZpbHRlcmVkIGFjdGlvbnMgYmFzZWQgb24gYWxsb3dlZEFjdGlvbnMgaW5wdXRcbiAgZ2V0IGZpbHRlcmVkQWN0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBBY3Rpb25UeXBlOyByZXF1aXJlc0Zvcm06IGJvb2xlYW4gfVtdIHtcbiAgICBjb25zdCBhbGxBY3Rpb25zID0gW1xuICAgICAgeyBsYWJlbDogJ1Bhc3MgT24nLCB2YWx1ZTogJ3Bhc3NvbicgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUGFzcyBCYWNrJywgdmFsdWU6ICdwYXNzYmFjaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUmUtQXNzaWduJywgdmFsdWU6ICdyZWFzc2lnbicgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1NraXAgVG8nLCB2YWx1ZTogJ3NraXB0bycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUGljayBUYXNrJywgdmFsdWU6ICdwaWNrdGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1JlbGVhc2UgVGFzaycsIHZhbHVlOiAncmVsZWFzZXRhc2snIGFzIEFjdGlvblR5cGUsIHJlcXVpcmVzRm9ybTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdGb2xsb3cgVGFzaycsIHZhbHVlOiAnZm9sbG93dGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1VuZm9sbG93IFRhc2snLCB2YWx1ZTogJ3VuZm9sbG93dGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gYWxsQWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IHRoaXMuYWxsb3dlZEFjdGlvbnMuaW5jbHVkZXMoYWN0aW9uLnZhbHVlKSk7XG4gIH1cblxuICAvLyBDYWxsZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBhbiBhY3Rpb24gZnJvbSB0aGUgbGlzdFxuICBhc3luYyBvbkFjdGlvblNlbGVjdChhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnRhc2spIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlQWN0aW9uVHlwZSA9IGFjdGlvblR5cGU7XG4gICAgdGhpcy5jb21tZW50ID0gJyc7XG4gICAgdGhpcy5yZWNpcGllbnRDb2RlID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkQWN0aW9uLm5leHQobnVsbCk7XG5cbiAgICAvLyBMb2FkIG5lY2Vzc2FyeSBkYXRhIGJhc2VkIG9uIGFjdGlvbiB0eXBlXG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICdwYXNzb24nOlxuICAgICAgICBhd2FpdCB0aGlzLmZhY2FkZS5sb2FkTmV4dEFjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBhd2FpdCB0aGlzLmZhY2FkZS5sb2FkVGFza0Zvcm1zKHRoaXMudGFzay5Db2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwYXNzYmFjayc6XG4gICAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRQcmV2aW91c0FjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NraXB0byc6XG4gICAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRBbGxQcmV2aW91c0FjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYXNzaWduJzpcbiAgICAgICAgYXdhaXQgdGhpcy5mYWNhZGUubG9hZE5leHRBY3RvcnModGhpcy50YXNrLkNvZGUsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BpY2t0YXNrJzpcbiAgICAgIGNhc2UgJ3JlbGVhc2V0YXNrJzpcbiAgICAgICAgLy8gVGhlc2UgdXNlIHRoZSB0YXNrJ3MgZnVsbCBzdGFnZXNcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmb2xsb3d0YXNrJzpcbiAgICAgIGNhc2UgJ3VuZm9sbG93dGFzayc6XG4gICAgICAgIC8vIFRoZXNlIGRvbid0IG5lZWQgYWRkaXRpb25hbCBkYXRhXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIFRvZ2dsZSBwb3B1cDogY2xvc2UgdGhlbiByZW9wZW4gZm9yIHN0ZXAgdHJhbnNpdGlvblxuICAgIHRoaXMuaXNQb3B1cE9wZW4gPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSAnYWN0aW9uLWZvcm0nO1xuICAgICAgdGhpcy5pc1BvcHVwT3BlbiA9IHRydWU7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgLy8gSGFuZGxlIGFjdGlvbiBzdWJtaXNzaW9uXG4gIGFzeW5jIGhhbmRsZUFjdGlvblN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMudGFzaykgcmV0dXJuO1xuXG4gICAgbGV0IGFjdGlvbkNvbXBsZXRlZCA9IGZhbHNlO1xuXG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVBY3Rpb25UeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3Nvbic6XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gYXdhaXQgdGhpcy5oYW5kbGVQYXNzT24oKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncGFzc2JhY2snOlxuICAgICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUGFzc0JhY2soKTtcbiAgICAgICAgICBhY3Rpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWFzc2lnbic6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVSZUFzc2lnbigpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NraXB0byc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTa2lwVG8oKTtcbiAgICAgICAgICBhY3Rpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdwaWNrdGFzayc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVQaWNrVGFzaygpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlbGVhc2V0YXNrJzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVJlbGVhc2VUYXNrKCk7XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZm9sbG93dGFzayc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGb2xsb3dUYXNrKCk7XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndW5mb2xsb3d0YXNrJzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVVuZm9sbG93VGFzaygpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgY2xvc2UgcG9wdXAgYW5kIGVtaXQgY29tcGxldGlvbiBpZiBhY3Rpb24gYWN0dWFsbHkgY29tcGxldGVkXG4gICAgICAvLyAobm90IHdhaXRpbmcgZm9yIGZvcm0gZGlhbG9nKVxuICAgICAgaWYgKGFjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FjdGlvbiBmYWlsZWQ6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUGFzc09uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnN0YWdlRm9ybSAmJiAhdGhpcy5mb3JtU3VibWl0dGVkKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgZm9ybSBhbmQgaXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHlldCwgc2hvdyB0aGUgZm9ybSBtb2RhbFxuICAgICAgdGhpcy5pc1BvcHVwT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0Zvcm1Nb2RhbFZpc2libGUgPSB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlOyAvLyBBY3Rpb24gbm90IGNvbXBsZXRlZCB5ZXQsIHdhaXRpbmcgZm9yIGZvcm1cbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEFjdGlvbiA9IHRoaXMuc2VsZWN0ZWRBY3Rpb24uZ2V0VmFsdWUoKTtcbiAgICBpZiAoc2VsZWN0ZWRBY3Rpb24gJiYgdGhpcy50YXNrICYmIHRoaXMuY29tbWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUucGFzc09uKHNlbGVjdGVkQWN0aW9uLCB0aGlzLnRhc2ssIHRoaXMuY29tbWVudCwgdGhpcy5yZWNpcGllbnRDb2RlKTtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IGZhbHNlOyAvLyBSZXNldCBmb3IgbmV4dCB0aW1lXG4gICAgfVxuICAgIHJldHVybiB0cnVlOyAvLyBBY3Rpb24gY29tcGxldGVkXG4gIH1cblxuICBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YWdlRm9ybSAmJiB0aGlzLnRhc2spIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTdWJtaXR0aW5nIGZvcm0uLi4nLCB0aGlzLnN0YWdlRm9ybSk7XG4gICAgICB0aGlzLmZhY2FkZS5maWxsRm9ybSh0aGlzLnN0YWdlRm9ybSwgdGhpcy50YXNrLkNvZGUpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBmaWxsRm9ybSBBUEkgcmV0dXJucyBlbXB0eSByZXNwb25zZSwgc28ganVzdCBjaGVjayB0aGF0IGl0IGRpZG4ndCBlcnJvclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIGZpbGxlZCBzdWNjZXNzZnVsbHksIHByb2NlZWRpbmcgd2l0aCBwYXNzT24uLi4nKTtcbiAgICAgICAgICB0aGlzLnN0YWdlRm9ybSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pc0Zvcm1Nb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgIC8vIENvbnRpbnVlIHdpdGggcGFzc09uIGFmdGVyIGZvcm0gaXMgZmlsbGVkXG4gICAgICAgICAgdGhpcy5oYW5kbGVQYXNzT24oKS50aGVuKChjb21wbGV0ZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwYXNzT24gY29tcGxldGVkOicsIGNvbXBsZXRlZCk7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGhhbmRsZVBhc3NPbjonLCBlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmaWxsaW5nIGZvcm06JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHN1Ym1pdCBmb3JtOiBzdGFnZUZvcm0gb3IgdGFzayBpcyBtaXNzaW5nJywge1xuICAgICAgICBzdGFnZUZvcm06IHRoaXMuc3RhZ2VGb3JtLFxuICAgICAgICB0YXNrOiB0aGlzLnRhc2tcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFyZVJlcXVpcmVkUHJvcGVydGllc0ZpbGxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc3RhZ2VGb3JtKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5zdGFnZUZvcm0uRW50aXRpZXNbdGhpcy5hY3RpdmVdLlByb3BlcnRpZXMgfHwgW107XG4gICAgLy8gQ2hlY2sgaWYgYWxsIHJlcXVpcmVkIHByb3BlcnRpZXMgaGF2ZSB2YWxpZCB2YWx1ZXNcbiAgICByZXR1cm4gcHJvcGVydGllcy5ldmVyeSgocHJvcGVydHk6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXByb3BlcnR5LmlzUmVxdWlyZWQgfHxcbiAgICAgICAgKHByb3BlcnR5LlZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBwcm9wZXJ0eS5WYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgIHByb3BlcnR5LlZhbHVlICE9PSAnJylcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBhc3NCYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQWN0aW9uID0gdGhpcy5zZWxlY3RlZEFjdGlvbi5nZXRWYWx1ZSgpO1xuICAgIGlmIChzZWxlY3RlZEFjdGlvbiAmJiB0aGlzLnRhc2sgJiYgdGhpcy5jb21tZW50KSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS5wYXNzQmFjayhzZWxlY3RlZEFjdGlvbiwgdGhpcy50YXNrLCB0aGlzLmNvbW1lbnQsIHRoaXMucmVjaXBpZW50Q29kZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVSZUFzc2lnbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMuY29tbWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUucmVBc3NpZ24odGhpcy50YXNrLCB0aGlzLmNvbW1lbnQsIHRoaXMudXNlciwgdGhpcy5yZWNpcGllbnRDb2RlIHx8IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVTa2lwVG8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRBY3Rpb24gPSB0aGlzLnNlbGVjdGVkQWN0aW9uLmdldFZhbHVlKCk7XG4gICAgaWYgKHNlbGVjdGVkQWN0aW9uICYmIHRoaXMudGFzayAmJiB0aGlzLmNvbW1lbnQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnNraXBUbyhcbiAgICAgICAgdGhpcy50YXNrLkN1cnJlbnRTdGFnZXNbMF0sXG4gICAgICAgIHNlbGVjdGVkQWN0aW9uLlRvU3RhZ2UsXG4gICAgICAgIHRoaXMudGFzayxcbiAgICAgICAgdGhpcy5jb21tZW50LFxuICAgICAgICB0aGlzLnJlY2lwaWVudENvZGVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVQaWNrVGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMuY29tbWVudCAmJiB0aGlzLnNlbGVjdGVkU3RhZ2VDb2RlKSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS5waWNrVGFzayh0aGlzLnNlbGVjdGVkU3RhZ2VDb2RlLCB0aGlzLnRhc2ssIHRoaXMuY29tbWVudCwgdGhpcy5yZWNpcGllbnRDb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJlbGVhc2VUYXNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRhc2sgJiYgdGhpcy5jb21tZW50ICYmIHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnJlbGVhc2VUYXNrKHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUsIHRoaXMudGFzaywgdGhpcy5jb21tZW50LCB0aGlzLnJlY2lwaWVudENvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRm9sbG93VGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMudXNlcikge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUuZm9sbG93VGFzayh0aGlzLnVzZXIsIHRoaXMudGFzayk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVVbmZvbGxvd1Rhc2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMudGFzayAmJiB0aGlzLnVzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnVuZm9sbG93VGFzayh0aGlzLnRhc2suQ29kZSwgdGhpcy51c2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlUG9wdXAoKTogdm9pZCB7XG4gICAgdGhpcy5pc1BvcHVwT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNGb3JtTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9ICdhY3Rpb24tc2VsZWN0aW9uJztcbiAgICB0aGlzLmFjdGl2ZUFjdGlvblR5cGUgPSBudWxsO1xuICAgIHRoaXMuY29tbWVudCA9ICcnO1xuICAgIHRoaXMucmVjaXBpZW50Q29kZSA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZEFjdGlvbi5uZXh0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUgPSBudWxsO1xuICAgIHRoaXMubmV4dEFjdGlvbnMgPSBbXTtcbiAgICB0aGlzLm5leHRBY3RvcnMgPSBbXTtcbiAgICB0aGlzLnN0YWdlRm9ybSA9IG51bGw7XG4gICAgdGhpcy5mb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiBzdWJtaXQgYnV0dG9uIHNob3VsZCBiZSBlbmFibGVkXG4gIGdldCBjYW5TdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNvbW1lbnQpIHJldHVybiBmYWxzZTtcblxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVBY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICdwYXNzb24nOlxuICAgICAgY2FzZSAncGFzc2JhY2snOlxuICAgICAgY2FzZSAnc2tpcHRvJzpcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zZWxlY3RlZEFjdGlvbi5nZXRWYWx1ZSgpO1xuICAgICAgY2FzZSAncmVhc3NpZ24nOlxuICAgICAgICByZXR1cm4gISF0aGlzLnJlY2lwaWVudENvZGU7XG4gICAgICBjYXNlICdwaWNrdGFzayc6XG4gICAgICBjYXNlICdyZWxlYXNldGFzayc6XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRTdGFnZUNvZGU7XG4gICAgICBjYXNlICdmb2xsb3d0YXNrJzpcbiAgICAgIGNhc2UgJ3VuZm9sbG93dGFzayc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3cgYWN0aW9uIGRyb3Bkb3duIGZvciBjZXJ0YWluIGFjdGlvbiB0eXBlc1xuICBnZXQgc2hvd0FjdGlvbkRyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3Bhc3NvbicsICdwYXNzYmFjaycsICdza2lwdG8nXS5pbmNsdWRlcyh0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJycpO1xuICB9XG5cbiAgLy8gU2hvdyBhY3RvciBkcm9wZG93biBmb3IgY2VydGFpbiBhY3Rpb24gdHlwZXNcbiAgZ2V0IHNob3dBY3RvckRyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3Bhc3NvbicsICdwYXNzYmFjaycsICdza2lwdG8nLCAncmVhc3NpZ24nLCAncGlja3Rhc2snLCAncmVsZWFzZXRhc2snXS5pbmNsdWRlcyh0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJycpO1xuICB9XG5cbiAgLy8gU2hvdyBzdGFnZSBkcm9wZG93biBmb3IgcGljay9yZWxlYXNlIHRhc2tcbiAgZ2V0IHNob3dTdGFnZURyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3BpY2t0YXNrJywgJ3JlbGVhc2V0YXNrJ10uaW5jbHVkZXModGhpcy5hY3RpdmVBY3Rpb25UeXBlIHx8ICcnKTtcbiAgfVxuXG4gIC8vIEdldCBsYWJlbCBmb3Igc3VibWl0IGJ1dHRvblxuICBnZXQgc3VibWl0QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxBY3Rpb25UeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgcGFzc29uOiAnUGFzcyBPbicsXG4gICAgICBwYXNzYmFjazogJ1Bhc3MgQmFjaycsXG4gICAgICByZWFzc2lnbjogJ1JlLUFzc2lnbicsXG4gICAgICBza2lwdG86ICdTa2lwIFRvJyxcbiAgICAgIHBpY2t0YXNrOiAnUGljayBUYXNrJyxcbiAgICAgIHJlbGVhc2V0YXNrOiAnUmVsZWFzZSBUYXNrJyxcbiAgICAgIGZvbGxvd3Rhc2s6ICdGb2xsb3cnLFxuICAgICAgdW5mb2xsb3d0YXNrOiAnVW5mb2xsb3cnLFxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1t0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJ3Bhc3NvbiddIHx8ICdTdWJtaXQnO1xuICB9XG59XG4iLCI8dmVyYmVuLXBvcC1VcCBbY3VzdG9tU3R5bGVzXT1cInsgJ3otaW5kZXgnOiAnOTknIH1cIiBbZW5hYmxlTW91c2VMZWF2ZV09XCJmYWxzZVwiIFtjdXN0b21TdHlsZXNdPVwie1xuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZDRhMTA3ODAnLFxuICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnXG4gIH1cIiBbKGRyb3Bkb3duT3BlbildPVwiaXNQb3B1cE9wZW5cIj5cblxuICAgIDwhLS0gVHJpZ2dlciAocHJvamVjdGVkIGNvbnRlbnQgZnJvbSBwYXJlbnQpIC0tPlxuICAgIDxkaXYgZHJvcGRvd24tdHJpZ2dlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RyaWdnZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQb3B1cCBjb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkLXNtXCIgZHJvcGRvd24tY29udGVudD5cbiAgICAgICAgPCEtLSBTdGVwIDE6IEFjdGlvbiBTZWxlY3Rpb24gLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gJ2FjdGlvbi1zZWxlY3Rpb24nXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZmlsdGVyZWRBY3Rpb25zXCIgKGNsaWNrKT1cIm9uQWN0aW9uU2VsZWN0KGFjdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcHktMiBweC0zIGhvdmVyOmJnLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyBhY3Rpb24ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFN0ZXAgMjogQWN0aW9uIEZvcm0gLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gJ2FjdGlvbi1mb3JtJ1wiIHN0eWxlPVwid2lkdGg6IDE2cmVtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQganVzdGlmeS1iZXR3ZWVuIGgtMTIgcHgtMiBwdC00XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRTdGVwID0gJ2FjdGlvbi1zZWxlY3Rpb24nOyBhY3RpdmVBY3Rpb25UeXBlID0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PVwiMC42XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi43NDY0OSA4LjAwMzM4QzYuOTE0ODMgOC4xMzQ3IDcuMDI1MiA4LjIwNDU1IDcuMTE1MzEgOC4yOTM5NkM3Ljk4ODQ2IDkuMTYyMjIgOC44NTc0MiAxMC4wMzQ3IDkuNzI5MTcgMTAuOTA1QzkuODcxNjcgMTEuMDQ3NSA5Ljk5MzkxIDExLjE5MjEgOS45OTMyMSAxMS40MTI5QzkuOTkyNTEgMTEuNjQ2MiA5Ljg5NDcyIDExLjgxNTIgOS42OTU2NCAxMS45MjU2QzkuNDkzMDcgMTIuMDM4IDkuMjkyNiAxMi4wMjA2IDkuMTA0NjkgMTEuODg5OUM5LjAzODMzIDExLjg0MzggOC45ODE3NSAxMS43ODQ1IDguOTIzNzggMTEuNzI3MkM3Ljg1NTc0IDEwLjY1OTIgNi43OTY3OCA5LjU4MjAzIDUuNzE0NzcgOC41Mjg2N0M1LjM3MTEgOC4xOTQwNyA1LjM4NDM3IDcuNzkxNzMgNS43MDc3OSA3LjQ3NTk5QzYuNzg4NCA2LjQyMTIzIDcuODQ4NzUgNS4zNDU1MSA4LjkxNTM5IDQuMjc2MDdDOS4xMTM3NyA0LjA3NzY5IDkuMzIwNTQgMy45MjI2MiA5LjYyMyA0LjA0MTM3QzkuOTc5MjQgNC4xODEwNyAxMC4xMTIgNC41ODkwMSA5Ljg5NDcyIDQuOTAzMzVDOS44Mjk3NiA0Ljk5NzY1IDkuNzQxNzQgNS4wNzcyOCA5LjY2MDAyIDUuMTU5N0M4LjgwNjQyIDYuMDE0NjkgNy45NTI4MyA2Ljg2OTY4IDcuMDk2NDUgNy43MjI1N0M3LjAxNDcyIDcuODA0MyA2LjkxNTUzIDcuODY4NTYgNi43NDU3OSA4LjAwNDA4TDYuNzQ2NDkgOC4wMDMzOFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj57eyBzdWJtaXRCdXR0b25MYWJlbCB9fTwvaDM+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTIgbWF4LWgtOTYgb3ZlcmZsb3cteS1hdXRvIHAtMlwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9uIERyb3Bkb3duIChmb3IgUGFzc09uLCBQYXNzQmFjaywgU2tpcFRvKSAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biAqbmdJZj1cInNob3dBY3Rpb25Ecm9wZG93blwiIGxhYmVsPVwiQWN0aW9uXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIGZpbHRlckJ5PVwiTmFtZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IEFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm5leHRBY3Rpb25zXCIgaWQ9XCJhY3Rpb25zXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgW25nTW9kZWxdPVwic2VsZWN0ZWRBY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkQWN0aW9uLm5leHQoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBTdGFnZSBEcm9wZG93biAoZm9yIFBpY2tUYXNrLCBSZWxlYXNlVGFzaykgLS0+XG4gICAgICAgICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd24gKm5nSWY9XCJzaG93U3RhZ2VEcm9wZG93blwiIGxhYmVsPVwiU3RhZ2VzXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIGZpbHRlckJ5PVwiTmFtZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFN0YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidGFzaz8uRnVsbFN0YWdlcyB8fCBbXVwiIGlkPVwic3RhZ2VzXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN0YWdlQ29kZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBBY3RvciBEcm9wZG93biAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biAqbmdJZj1cInNob3dBY3RvckRyb3Bkb3duXCIgbGFiZWw9XCJBY3RvcnNcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCIgW2ZpbHRlcl09XCJ0cnVlXCIgZmlsdGVyQnk9XCJOYW1lXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgQWN0b3JcIlxuICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJuZXh0QWN0b3JzXCIgaWQ9XCJhY3RvcnNcIiBvcHRpb25MYWJlbD1cIk5hbWVcIiBvcHRpb25WYWx1ZT1cIklkZW50aWZpZXJcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlY2lwaWVudENvZGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgICAgICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQ29tbWVudCBUZXh0YXJlYSAtLT5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJjb21tZW50XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBDb21tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC0xIHRleHQteHMgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHJvdW5kZWQtbWRcIiBzdHlsZT1cImhlaWdodDogOHJlbVwiIFtjb2xzXT1cIjhcIj5cbiAgICAgICAgPC90ZXh0YXJlYT5cblxuICAgICAgICAgICAgICAgIDwhLS0gU3VibWl0IEJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuYS1idXR0b24gW2Rpc2FibGVdPVwiIWNhblN1Ym1pdFwiIFt0ZXh0XT1cInN1Ym1pdEJ1dHRvbkxhYmVsXCIgKGNsaWNrKT1cImhhbmRsZUFjdGlvblN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHctZnVsbFwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiIGJvcmRlclJhZGl1cz1cIjEwcHhcIiBmb250U2l6ZT1cIjE0cHhcIlxuICAgICAgICAgICAgICAgICAgICBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjMycHhcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgc3VibWl0QnV0dG9uTGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC92ZXJiZW4tcG9wLVVwPlxuXG48IS0tIEZvcm0gRGlhbG9nIGZvciBQYXNzT24gd2hlbiBmb3JtIGlzIHJlcXVpcmVkIC0tPlxuPHZlcmJlbi1kaWFsb2d1ZSBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCIgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIiBbbW9kZV09XCInZHJhd2VyJ1wiXG4gICAgW3BhZGRpbmddPVwiJzBweCdcIiBbZHJhd2VyV2lkdGhdPVwiJzQwMHB4J1wiIFtkaXNhYmxlRm9vdGVyXT1cImZhbHNlXCIgW2lzVmlzaWJsZV09XCJpc0Zvcm1Nb2RhbFZpc2libGVcIlxuICAgIFttb2RhbERhdGFdPVwic3RhZ2VGb3JtXCIgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgW2JvZHlUZW1wbGF0ZV09XCJib2R5VGVtcGxhdGVcIiBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiIFtzdHlsZV09XCJ7ICd6LWluZGV4JzogJzk5JyB9XCI+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImJnLVsjRkZFNjgxXSBweC02IHB5LTQgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxoMT5Gb3JtPC9oMT5cbiAgICAgICAgPHZlcmJlbi1zdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtpY29uXT1cIidjbG9zZS1jaXJjbGUnXCIgKGNsaWNrKT1cImlzRm9ybU1vZGFsVmlzaWJsZSA9IGZhbHNlXCIgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIiBbc3Ryb2tlXT1cIicjZmZmJ1wiPjwvdmVyYmVuLXN2Zz5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICAgIDxkaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdGFnZUZvcm0/LkVudGl0aWVzPy5bYWN0aXZlXTsgZWxzZSBlbXB0eVN0YXRlXCIgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICA8Zm9ybS1jb250cm9sIFtkYXRhVHlwZV09XCJkYXRhVHlwZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Qcm9wZXJ0aWVzXT1cInN0YWdlRm9ybT8uRW50aXRpZXM/LlthY3RpdmVdPy5Qcm9wZXJ0aWVzID8/IFtdXCI+PC9mb3JtLWNvbnRyb2w+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zIGp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uIGNsYXNzPVwidmVyYmVuLXByaW1hcnktYnV0dG9uXCIgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlXT1cIiFhcmVSZXF1aXJlZFByb3BlcnRpZXNGaWxsZWQoKVwiIHRleHQ9XCJTYXZlXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEVtcHR5IHN0YXRlIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5U3RhdGU+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm10LTQgcC00IHRleHQtZ3JheS02MDAgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICBObyBlbnRyaWVzIGF2YWlsYWJsZSBmb3IgdGhlIHNlbGVjdGVkIGZvcm0gZ3JvdXAuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvb3BlcmF0aW9uLXBvcHVwL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL29wZXJhdGlvbi1wb3B1cC9vcGVyYXRpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBUyxRQUFRLEVBQThCLE1BQU0sbUNBQW1DLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlC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QkFBdEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHJvcERvd25Nb2R1bGUsIFN2Z01vZHVsZSwgVmVyYmVuYUJ1dHRvbk1vZHVsZSwgVmVyYmVuRGlhbG9ndWVNb2R1bGUsIFZlcmJlblBvcFVwTW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IEZvcm1Db250cm9sZXJNb2R1bGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBGb3JtVGltZXJNb2R1bGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tdGltZXInO1xuaW1wb3J0IHsgQWN0b3IsIERhdGFUeXBlLCBGb3JtLCBUYXNrLCBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBPcGVyYXRpb25Qb3B1cEZhY2FkZSB9IGZyb20gJy4vb3BlcmF0aW9uLXBvcHVwLmZhY2FkZSc7XG5pbXBvcnQgeyBPcGVyYXRpb25Qb3B1cFNlcnZpY2UgfSBmcm9tICcuL29wZXJhdGlvbi1wb3B1cC5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZXJhdGlvblBvcHVwU3RhdGUgfSBmcm9tICcuL29wZXJhdGlvbi1wb3B1cC5zdGF0ZSc7XG5cbnR5cGUgQWN0aW9uVHlwZSA9ICdwYXNzb24nIHwgJ3Bhc3NiYWNrJyB8ICdyZWFzc2lnbicgfCAnc2tpcHRvJyB8ICdwaWNrdGFzaycgfCAncmVsZWFzZXRhc2snIHwgJ2ZvbGxvd3Rhc2snIHwgJ3VuZm9sbG93dGFzayc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1vcGVyYXRpb24tcG9wdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVmVyYmVuUG9wVXBNb2R1bGUsIERyb3BEb3duTW9kdWxlLCBWZXJiZW5hQnV0dG9uTW9kdWxlLCBWZXJiZW5EaWFsb2d1ZU1vZHVsZSwgRm9ybUNvbnRyb2xlck1vZHVsZSwgRm9ybVRpbWVyTW9kdWxlLCBTdmdNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtPcGVyYXRpb25Qb3B1cFNlcnZpY2UsIE9wZXJhdGlvblBvcHVwU3RhdGUsIE9wZXJhdGlvblBvcHVwRmFjYWRlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29wZXJhdGlvbi1wb3B1cC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHVzZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhc2s6IFRhc2sgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dlZEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgQE91dHB1dCgpIGFjdGlvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8vIEludGVybmFsIHBvcHVwIHZpc2liaWxpdHkgY29udHJvbFxuICBpc1BvcHVwT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0Zvcm1Nb2RhbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudFN0ZXA6ICdhY3Rpb24tc2VsZWN0aW9uJyB8ICdhY3Rpb24tZm9ybScgPSAnYWN0aW9uLXNlbGVjdGlvbic7XG5cbiAgLy8gQWN0aW9uIHN0YXRlXG4gIGFjdGl2ZUFjdGlvblR5cGU6IEFjdGlvblR5cGUgfCBudWxsID0gbnVsbDtcbiAgY29tbWVudDogc3RyaW5nID0gJyc7XG4gIHJlY2lwaWVudENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RlZEFjdGlvbjogQmVoYXZpb3JTdWJqZWN0PFdvcmtmbG93QWN0aW9uIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtmbG93QWN0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHNlbGVjdGVkU3RhZ2VDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZm9ybVN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIERhdGEgZnJvbSBmYWNhZGVcbiAgbmV4dEFjdGlvbnM6IFdvcmtmbG93QWN0aW9uW10gPSBbXTtcbiAgbmV4dEFjdG9yczogQWN0b3JbXSA9IFtdO1xuICBzdGFnZUZvcm06IEZvcm0gfCBudWxsID0gbnVsbDtcbiAgYWN0aXZlOiBudW1iZXIgPSAwO1xuICBkYXRhVHlwZTogRGF0YVR5cGUgPSBEYXRhVHlwZS5UZXh0O1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjYWRlOiBPcGVyYXRpb25Qb3B1cEZhY2FkZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIGZhY2FkZSBvYnNlcnZhYmxlc1xuICAgIHRoaXMuZmFjYWRlLmdldE5leHRBY3Rpb25zJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEFjdGlvbnMgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmZhY2FkZS5nZXROZXh0QWN0b3JzJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEFjdG9ycyA9IGRhdGE7XG4gICAgICAgIC8vIEF1dG8tc2VsZWN0IGN1cnJlbnQgdXNlciBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKHRoaXMudXNlciAmJiBkYXRhLm1hcCgoeyBJZGVudGlmaWVyIH0pID0+IElkZW50aWZpZXIpLmluY2x1ZGVzKHRoaXMudXNlcikpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwaWVudENvZGUgPSB0aGlzLnVzZXI7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5mYWNhZGUuZ2V0VGFza0Zvcm1zJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtID0gZGF0YT8uWzBdIHx8IG51bGw7XG4gICAgICB9KTtcblxuICAgIC8vIExvYWQgYWN0b3JzIHdoZW4gYWN0aW9uIGlzIHNlbGVjdGVkXG4gICAgdGhpcy5zZWxlY3RlZEFjdGlvblxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24gJiYgdGhpcy50YXNrKSB7XG4gICAgICAgICAgdGhpcy5mYWNhZGUubG9hZE5leHRBY3RvcnModGhpcy50YXNrLkNvZGUsIGZhbHNlLCBhY3Rpb24uVG9TdGFnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLy8gR2V0IGZpbHRlcmVkIGFjdGlvbnMgYmFzZWQgb24gYWxsb3dlZEFjdGlvbnMgaW5wdXRcbiAgZ2V0IGZpbHRlcmVkQWN0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBBY3Rpb25UeXBlOyByZXF1aXJlc0Zvcm06IGJvb2xlYW4gfVtdIHtcbiAgICBjb25zdCBhbGxBY3Rpb25zID0gW1xuICAgICAgeyBsYWJlbDogJ1Bhc3MgT24nLCB2YWx1ZTogJ3Bhc3NvbicgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUGFzcyBCYWNrJywgdmFsdWU6ICdwYXNzYmFjaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUmUtQXNzaWduJywgdmFsdWU6ICdyZWFzc2lnbicgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1NraXAgVG8nLCB2YWx1ZTogJ3NraXB0bycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiB0cnVlIH0sXG4gICAgICB7IGxhYmVsOiAnUGljayBUYXNrJywgdmFsdWU6ICdwaWNrdGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1JlbGVhc2UgVGFzaycsIHZhbHVlOiAncmVsZWFzZXRhc2snIGFzIEFjdGlvblR5cGUsIHJlcXVpcmVzRm9ybTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdGb2xsb3cgVGFzaycsIHZhbHVlOiAnZm9sbG93dGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ1VuZm9sbG93IFRhc2snLCB2YWx1ZTogJ3VuZm9sbG93dGFzaycgYXMgQWN0aW9uVHlwZSwgcmVxdWlyZXNGb3JtOiBmYWxzZSB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gYWxsQWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IHRoaXMuYWxsb3dlZEFjdGlvbnMuaW5jbHVkZXMoYWN0aW9uLnZhbHVlKSk7XG4gIH1cblxuICAvLyBDYWxsZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBhbiBhY3Rpb24gZnJvbSB0aGUgbGlzdFxuICBhc3luYyBvbkFjdGlvblNlbGVjdChhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnRhc2spIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlQWN0aW9uVHlwZSA9IGFjdGlvblR5cGU7XG4gICAgdGhpcy5jb21tZW50ID0gJyc7XG4gICAgdGhpcy5yZWNpcGllbnRDb2RlID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkQWN0aW9uLm5leHQobnVsbCk7XG5cbiAgICAvLyBMb2FkIG5lY2Vzc2FyeSBkYXRhIGJhc2VkIG9uIGFjdGlvbiB0eXBlXG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICdwYXNzb24nOlxuICAgICAgICBhd2FpdCB0aGlzLmZhY2FkZS5sb2FkTmV4dEFjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBhd2FpdCB0aGlzLmZhY2FkZS5sb2FkVGFza0Zvcm1zKHRoaXMudGFzay5Db2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwYXNzYmFjayc6XG4gICAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRQcmV2aW91c0FjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NraXB0byc6XG4gICAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRBbGxQcmV2aW91c0FjdGlvbnModGhpcy50YXNrLkNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYXNzaWduJzpcbiAgICAgICAgYXdhaXQgdGhpcy5mYWNhZGUubG9hZE5leHRBY3RvcnModGhpcy50YXNrLkNvZGUsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BpY2t0YXNrJzpcbiAgICAgIGNhc2UgJ3JlbGVhc2V0YXNrJzpcbiAgICAgICAgLy8gVGhlc2UgdXNlIHRoZSB0YXNrJ3MgZnVsbCBzdGFnZXNcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmb2xsb3d0YXNrJzpcbiAgICAgIGNhc2UgJ3VuZm9sbG93dGFzayc6XG4gICAgICAgIC8vIFRoZXNlIGRvbid0IG5lZWQgYWRkaXRpb25hbCBkYXRhXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIFRvZ2dsZSBwb3B1cDogY2xvc2UgdGhlbiByZW9wZW4gZm9yIHN0ZXAgdHJhbnNpdGlvblxuICAgIHRoaXMuaXNQb3B1cE9wZW4gPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSAnYWN0aW9uLWZvcm0nO1xuICAgICAgdGhpcy5pc1BvcHVwT3BlbiA9IHRydWU7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgLy8gSGFuZGxlIGFjdGlvbiBzdWJtaXNzaW9uXG4gIGFzeW5jIGhhbmRsZUFjdGlvblN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMudGFzaykgcmV0dXJuO1xuXG4gICAgbGV0IGFjdGlvbkNvbXBsZXRlZCA9IGZhbHNlO1xuXG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVBY3Rpb25UeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3Nvbic6XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gYXdhaXQgdGhpcy5oYW5kbGVQYXNzT24oKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncGFzc2JhY2snOlxuICAgICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUGFzc0JhY2soKTtcbiAgICAgICAgICBhY3Rpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWFzc2lnbic6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVSZUFzc2lnbigpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NraXB0byc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTa2lwVG8oKTtcbiAgICAgICAgICBhY3Rpb25Db21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdwaWNrdGFzayc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVQaWNrVGFzaygpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlbGVhc2V0YXNrJzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVJlbGVhc2VUYXNrKCk7XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZm9sbG93dGFzayc6XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGb2xsb3dUYXNrKCk7XG4gICAgICAgICAgYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndW5mb2xsb3d0YXNrJzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVVuZm9sbG93VGFzaygpO1xuICAgICAgICAgIGFjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgY2xvc2UgcG9wdXAgYW5kIGVtaXQgY29tcGxldGlvbiBpZiBhY3Rpb24gYWN0dWFsbHkgY29tcGxldGVkXG4gICAgICAvLyAobm90IHdhaXRpbmcgZm9yIGZvcm0gZGlhbG9nKVxuICAgICAgaWYgKGFjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FjdGlvbiBmYWlsZWQ6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUGFzc09uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnN0YWdlRm9ybSAmJiAhdGhpcy5mb3JtU3VibWl0dGVkKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgZm9ybSBhbmQgaXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHlldCwgc2hvdyB0aGUgZm9ybSBtb2RhbFxuICAgICAgdGhpcy5pc1BvcHVwT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0Zvcm1Nb2RhbFZpc2libGUgPSB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlOyAvLyBBY3Rpb24gbm90IGNvbXBsZXRlZCB5ZXQsIHdhaXRpbmcgZm9yIGZvcm1cbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEFjdGlvbiA9IHRoaXMuc2VsZWN0ZWRBY3Rpb24uZ2V0VmFsdWUoKTtcbiAgICBpZiAoc2VsZWN0ZWRBY3Rpb24gJiYgdGhpcy50YXNrICYmIHRoaXMuY29tbWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUucGFzc09uKHNlbGVjdGVkQWN0aW9uLCB0aGlzLnRhc2ssIHRoaXMuY29tbWVudCwgdGhpcy5yZWNpcGllbnRDb2RlKTtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IGZhbHNlOyAvLyBSZXNldCBmb3IgbmV4dCB0aW1lXG4gICAgfVxuICAgIHJldHVybiB0cnVlOyAvLyBBY3Rpb24gY29tcGxldGVkXG4gIH1cblxuICBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YWdlRm9ybSAmJiB0aGlzLnRhc2spIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTdWJtaXR0aW5nIGZvcm0uLi4nLCB0aGlzLnN0YWdlRm9ybSk7XG4gICAgICB0aGlzLmZhY2FkZS5maWxsRm9ybSh0aGlzLnN0YWdlRm9ybSwgdGhpcy50YXNrLkNvZGUpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBmaWxsRm9ybSBBUEkgcmV0dXJucyBlbXB0eSByZXNwb25zZSwgc28ganVzdCBjaGVjayB0aGF0IGl0IGRpZG4ndCBlcnJvclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIGZpbGxlZCBzdWNjZXNzZnVsbHksIHByb2NlZWRpbmcgd2l0aCBwYXNzT24uLi4nKTtcbiAgICAgICAgICB0aGlzLnN0YWdlRm9ybSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pc0Zvcm1Nb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgIC8vIENvbnRpbnVlIHdpdGggcGFzc09uIGFmdGVyIGZvcm0gaXMgZmlsbGVkXG4gICAgICAgICAgdGhpcy5oYW5kbGVQYXNzT24oKS50aGVuKChjb21wbGV0ZWQpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwYXNzT24gY29tcGxldGVkOicsIGNvbXBsZXRlZCk7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGhhbmRsZVBhc3NPbjonLCBlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmaWxsaW5nIGZvcm06JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHN1Ym1pdCBmb3JtOiBzdGFnZUZvcm0gb3IgdGFzayBpcyBtaXNzaW5nJywge1xuICAgICAgICBzdGFnZUZvcm06IHRoaXMuc3RhZ2VGb3JtLFxuICAgICAgICB0YXNrOiB0aGlzLnRhc2tcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFyZVJlcXVpcmVkUHJvcGVydGllc0ZpbGxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc3RhZ2VGb3JtKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5zdGFnZUZvcm0uRW50aXRpZXNbdGhpcy5hY3RpdmVdLlByb3BlcnRpZXMgfHwgW107XG4gICAgLy8gQ2hlY2sgaWYgYWxsIHJlcXVpcmVkIHByb3BlcnRpZXMgaGF2ZSB2YWxpZCB2YWx1ZXNcbiAgICByZXR1cm4gcHJvcGVydGllcy5ldmVyeSgocHJvcGVydHk6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXByb3BlcnR5LmlzUmVxdWlyZWQgfHxcbiAgICAgICAgKHByb3BlcnR5LlZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBwcm9wZXJ0eS5WYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgIHByb3BlcnR5LlZhbHVlICE9PSAnJylcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBhc3NCYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQWN0aW9uID0gdGhpcy5zZWxlY3RlZEFjdGlvbi5nZXRWYWx1ZSgpO1xuICAgIGlmIChzZWxlY3RlZEFjdGlvbiAmJiB0aGlzLnRhc2sgJiYgdGhpcy5jb21tZW50KSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS5wYXNzQmFjayhzZWxlY3RlZEFjdGlvbiwgdGhpcy50YXNrLCB0aGlzLmNvbW1lbnQsIHRoaXMucmVjaXBpZW50Q29kZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVSZUFzc2lnbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMuY29tbWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUucmVBc3NpZ24odGhpcy50YXNrLCB0aGlzLmNvbW1lbnQsIHRoaXMudXNlciwgdGhpcy5yZWNpcGllbnRDb2RlIHx8IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVTa2lwVG8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRBY3Rpb24gPSB0aGlzLnNlbGVjdGVkQWN0aW9uLmdldFZhbHVlKCk7XG4gICAgaWYgKHNlbGVjdGVkQWN0aW9uICYmIHRoaXMudGFzayAmJiB0aGlzLmNvbW1lbnQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnNraXBUbyhcbiAgICAgICAgdGhpcy50YXNrLkN1cnJlbnRTdGFnZXNbMF0sXG4gICAgICAgIHNlbGVjdGVkQWN0aW9uLlRvU3RhZ2UsXG4gICAgICAgIHRoaXMudGFzayxcbiAgICAgICAgdGhpcy5jb21tZW50LFxuICAgICAgICB0aGlzLnJlY2lwaWVudENvZGVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVQaWNrVGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMuY29tbWVudCAmJiB0aGlzLnNlbGVjdGVkU3RhZ2VDb2RlKSB7XG4gICAgICBhd2FpdCB0aGlzLmZhY2FkZS5waWNrVGFzayh0aGlzLnNlbGVjdGVkU3RhZ2VDb2RlLCB0aGlzLnRhc2ssIHRoaXMuY29tbWVudCwgdGhpcy5yZWNpcGllbnRDb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJlbGVhc2VUYXNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRhc2sgJiYgdGhpcy5jb21tZW50ICYmIHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnJlbGVhc2VUYXNrKHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUsIHRoaXMudGFzaywgdGhpcy5jb21tZW50LCB0aGlzLnJlY2lwaWVudENvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRm9sbG93VGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50YXNrICYmIHRoaXMudXNlcikge1xuICAgICAgYXdhaXQgdGhpcy5mYWNhZGUuZm9sbG93VGFzayh0aGlzLnVzZXIsIHRoaXMudGFzayk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVVbmZvbGxvd1Rhc2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMudGFzayAmJiB0aGlzLnVzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLnVuZm9sbG93VGFzayh0aGlzLnRhc2suQ29kZSwgdGhpcy51c2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlUG9wdXAoKTogdm9pZCB7XG4gICAgdGhpcy5pc1BvcHVwT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNGb3JtTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9ICdhY3Rpb24tc2VsZWN0aW9uJztcbiAgICB0aGlzLmFjdGl2ZUFjdGlvblR5cGUgPSBudWxsO1xuICAgIHRoaXMuY29tbWVudCA9ICcnO1xuICAgIHRoaXMucmVjaXBpZW50Q29kZSA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZEFjdGlvbi5uZXh0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGFnZUNvZGUgPSBudWxsO1xuICAgIHRoaXMubmV4dEFjdGlvbnMgPSBbXTtcbiAgICB0aGlzLm5leHRBY3RvcnMgPSBbXTtcbiAgICB0aGlzLnN0YWdlRm9ybSA9IG51bGw7XG4gICAgdGhpcy5mb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiBzdWJtaXQgYnV0dG9uIHNob3VsZCBiZSBlbmFibGVkXG4gIGdldCBjYW5TdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNvbW1lbnQpIHJldHVybiBmYWxzZTtcblxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVBY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlICdwYXNzb24nOlxuICAgICAgY2FzZSAncGFzc2JhY2snOlxuICAgICAgY2FzZSAnc2tpcHRvJzpcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zZWxlY3RlZEFjdGlvbi5nZXRWYWx1ZSgpO1xuICAgICAgY2FzZSAncmVhc3NpZ24nOlxuICAgICAgICByZXR1cm4gISF0aGlzLnJlY2lwaWVudENvZGU7XG4gICAgICBjYXNlICdwaWNrdGFzayc6XG4gICAgICBjYXNlICdyZWxlYXNldGFzayc6XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRTdGFnZUNvZGU7XG4gICAgICBjYXNlICdmb2xsb3d0YXNrJzpcbiAgICAgIGNhc2UgJ3VuZm9sbG93dGFzayc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3cgYWN0aW9uIGRyb3Bkb3duIGZvciBjZXJ0YWluIGFjdGlvbiB0eXBlc1xuICBnZXQgc2hvd0FjdGlvbkRyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3Bhc3NvbicsICdwYXNzYmFjaycsICdza2lwdG8nXS5pbmNsdWRlcyh0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJycpO1xuICB9XG5cbiAgLy8gU2hvdyBhY3RvciBkcm9wZG93biBmb3IgY2VydGFpbiBhY3Rpb24gdHlwZXNcbiAgZ2V0IHNob3dBY3RvckRyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3Bhc3NvbicsICdwYXNzYmFjaycsICdza2lwdG8nLCAncmVhc3NpZ24nLCAncGlja3Rhc2snLCAncmVsZWFzZXRhc2snXS5pbmNsdWRlcyh0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJycpO1xuICB9XG5cbiAgLy8gU2hvdyBzdGFnZSBkcm9wZG93biBmb3IgcGljay9yZWxlYXNlIHRhc2tcbiAgZ2V0IHNob3dTdGFnZURyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3BpY2t0YXNrJywgJ3JlbGVhc2V0YXNrJ10uaW5jbHVkZXModGhpcy5hY3RpdmVBY3Rpb25UeXBlIHx8ICcnKTtcbiAgfVxuXG4gIC8vIEdldCBsYWJlbCBmb3Igc3VibWl0IGJ1dHRvblxuICBnZXQgc3VibWl0QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxBY3Rpb25UeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgcGFzc29uOiAnUGFzcyBPbicsXG4gICAgICBwYXNzYmFjazogJ1Bhc3MgQmFjaycsXG4gICAgICByZWFzc2lnbjogJ1JlLUFzc2lnbicsXG4gICAgICBza2lwdG86ICdTa2lwIFRvJyxcbiAgICAgIHBpY2t0YXNrOiAnUGljayBUYXNrJyxcbiAgICAgIHJlbGVhc2V0YXNrOiAnUmVsZWFzZSBUYXNrJyxcbiAgICAgIGZvbGxvd3Rhc2s6ICdGb2xsb3cnLFxuICAgICAgdW5mb2xsb3d0YXNrOiAnVW5mb2xsb3cnLFxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1t0aGlzLmFjdGl2ZUFjdGlvblR5cGUgfHwgJ3Bhc3NvbiddIHx8ICdTdWJtaXQnO1xuICB9XG59XG4iLCI8dmVyYmVuLXBvcC1VcCBbY3VzdG9tU3R5bGVzXT1cInsgJ3otaW5kZXgnOiAnOTknIH1cIiBbZW5hYmxlTW91c2VMZWF2ZV09XCJmYWxzZVwiIFtjdXN0b21TdHlsZXNdPVwie1xuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZDRhMTA3ODAnLFxuICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnXG4gIH1cIiBbKGRyb3Bkb3duT3BlbildPVwiaXNQb3B1cE9wZW5cIj5cblxuICAgIDwhLS0gVHJpZ2dlciAocHJvamVjdGVkIGNvbnRlbnQgZnJvbSBwYXJlbnQpIC0tPlxuICAgIDxkaXYgZHJvcGRvd24tdHJpZ2dlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RyaWdnZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQb3B1cCBjb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkLXNtXCIgZHJvcGRvd24tY29udGVudD5cbiAgICAgICAgPCEtLSBTdGVwIDE6IEFjdGlvbiBTZWxlY3Rpb24gLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gJ2FjdGlvbi1zZWxlY3Rpb24nXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZmlsdGVyZWRBY3Rpb25zXCIgKGNsaWNrKT1cIm9uQWN0aW9uU2VsZWN0KGFjdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcHktMiBweC0zIGhvdmVyOmJnLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyBhY3Rpb24ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFN0ZXAgMjogQWN0aW9uIEZvcm0gLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gJ2FjdGlvbi1mb3JtJ1wiIHN0eWxlPVwid2lkdGg6IDE2cmVtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQganVzdGlmeS1iZXR3ZWVuIGgtMTIgcHgtMiBwdC00XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRTdGVwID0gJ2FjdGlvbi1zZWxlY3Rpb24nOyBhY3RpdmVBY3Rpb25UeXBlID0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PVwiMC42XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi43NDY0OSA4LjAwMzM4QzYuOTE0ODMgOC4xMzQ3IDcuMDI1MiA4LjIwNDU1IDcuMTE1MzEgOC4yOTM5NkM3Ljk4ODQ2IDkuMTYyMjIgOC44NTc0MiAxMC4wMzQ3IDkuNzI5MTcgMTAuOTA1QzkuODcxNjcgMTEuMDQ3NSA5Ljk5MzkxIDExLjE5MjEgOS45OTMyMSAxMS40MTI5QzkuOTkyNTEgMTEuNjQ2MiA5Ljg5NDcyIDExLjgxNTIgOS42OTU2NCAxMS45MjU2QzkuNDkzMDcgMTIuMDM4IDkuMjkyNiAxMi4wMjA2IDkuMTA0NjkgMTEuODg5OUM5LjAzODMzIDExLjg0MzggOC45ODE3NSAxMS43ODQ1IDguOTIzNzggMTEuNzI3MkM3Ljg1NTc0IDEwLjY1OTIgNi43OTY3OCA5LjU4MjAzIDUuNzE0NzcgOC41Mjg2N0M1LjM3MTEgOC4xOTQwNyA1LjM4NDM3IDcuNzkxNzMgNS43MDc3OSA3LjQ3NTk5QzYuNzg4NCA2LjQyMTIzIDcuODQ4NzUgNS4zNDU1MSA4LjkxNTM5IDQuMjc2MDdDOS4xMTM3NyA0LjA3NzY5IDkuMzIwNTQgMy45MjI2MiA5LjYyMyA0LjA0MTM3QzkuOTc5MjQgNC4xODEwNyAxMC4xMTIgNC41ODkwMSA5Ljg5NDcyIDQuOTAzMzVDOS44Mjk3NiA0Ljk5NzY1IDkuNzQxNzQgNS4wNzcyOCA5LjY2MDAyIDUuMTU5N0M4LjgwNjQyIDYuMDE0NjkgNy45NTI4MyA2Ljg2OTY4IDcuMDk2NDUgNy43MjI1N0M3LjAxNDcyIDcuODA0MyA2LjkxNTUzIDcuODY4NTYgNi43NDU3OSA4LjAwNDA4TDYuNzQ2NDkgOC4wMDMzOFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj57eyBzdWJtaXRCdXR0b25MYWJlbCB9fTwvaDM+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTIgbWF4LWgtOTYgb3ZlcmZsb3cteS1hdXRvIHAtMlwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9uIERyb3Bkb3duIChmb3IgUGFzc09uLCBQYXNzQmFjaywgU2tpcFRvKSAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biAqbmdJZj1cInNob3dBY3Rpb25Ecm9wZG93blwiIGxhYmVsPVwiQWN0aW9uXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIGZpbHRlckJ5PVwiTmFtZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IEFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm5leHRBY3Rpb25zXCIgaWQ9XCJhY3Rpb25zXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgW25nTW9kZWxdPVwic2VsZWN0ZWRBY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkQWN0aW9uLm5leHQoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBTdGFnZSBEcm9wZG93biAoZm9yIFBpY2tUYXNrLCBSZWxlYXNlVGFzaykgLS0+XG4gICAgICAgICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd24gKm5nSWY9XCJzaG93U3RhZ2VEcm9wZG93blwiIGxhYmVsPVwiU3RhZ2VzXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIGZpbHRlckJ5PVwiTmFtZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFN0YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidGFzaz8uRnVsbFN0YWdlcyB8fCBbXVwiIGlkPVwic3RhZ2VzXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN0YWdlQ29kZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBBY3RvciBEcm9wZG93biAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biAqbmdJZj1cInNob3dBY3RvckRyb3Bkb3duXCIgbGFiZWw9XCJBY3RvcnNcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCIgW2ZpbHRlcl09XCJ0cnVlXCIgZmlsdGVyQnk9XCJOYW1lXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgQWN0b3JcIlxuICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJuZXh0QWN0b3JzXCIgaWQ9XCJhY3RvcnNcIiBvcHRpb25MYWJlbD1cIk5hbWVcIiBvcHRpb25WYWx1ZT1cIklkZW50aWZpZXJcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlY2lwaWVudENvZGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgICAgICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQ29tbWVudCBUZXh0YXJlYSAtLT5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJjb21tZW50XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBDb21tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC0xIHRleHQteHMgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHJvdW5kZWQtbWRcIiBzdHlsZT1cImhlaWdodDogOHJlbVwiIFtjb2xzXT1cIjhcIj5cbiAgICAgICAgPC90ZXh0YXJlYT5cblxuICAgICAgICAgICAgICAgIDwhLS0gU3VibWl0IEJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8dmVyYmVuYS1idXR0b24gW2Rpc2FibGVdPVwiIWNhblN1Ym1pdFwiIFt0ZXh0XT1cInN1Ym1pdEJ1dHRvbkxhYmVsXCIgKGNsaWNrKT1cImhhbmRsZUFjdGlvblN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHctZnVsbFwiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIiBib3JkZXJSYWRpdXM9XCIxMHB4XCIgZm9udFNpemU9XCIxNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgcGQ9XCIxMHB4IDIwcHhcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIzMnB4XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1Ym1pdEJ1dHRvbkxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdmVyYmVuLXBvcC1VcD5cblxuPCEtLSBGb3JtIERpYWxvZyBmb3IgUGFzc09uIHdoZW4gZm9ybSBpcyByZXF1aXJlZCAtLT5cbjx2ZXJiZW4tZGlhbG9ndWUgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiIFtkaXNtaXNzT3V0c2lkZUNsaWNrXT1cInRydWVcIiBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCIgW21vZGVdPVwiJ2RyYXdlcidcIlxuICAgIFtwYWRkaW5nXT1cIicwcHgnXCIgW2RyYXdlcldpZHRoXT1cIic0MDBweCdcIiBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiIFtpc1Zpc2libGVdPVwiaXNGb3JtTW9kYWxWaXNpYmxlXCJcbiAgICBbbW9kYWxEYXRhXT1cInN0YWdlRm9ybVwiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCIgW3Nob3dDbG9zZUljb25dPVwiZmFsc2VcIiBbc3R5bGVdPVwieyAnei1pbmRleCc6ICc5OScgfVwiPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1bdmFyKC0tdmJuLWNvbG9yLXByaW1hcnkpXSBweC02IHB5LTQgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxoMT5Gb3JtPC9oMT5cbiAgICAgICAgPHZlcmJlbi1zdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtpY29uXT1cIidjbG9zZS1jaXJjbGUnXCIgKGNsaWNrKT1cImlzRm9ybU1vZGFsVmlzaWJsZSA9IGZhbHNlXCIgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIiBbc3Ryb2tlXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSknXCI+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGU+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInN0YWdlRm9ybT8uRW50aXRpZXM/LlthY3RpdmVdOyBlbHNlIGVtcHR5U3RhdGVcIiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICAgIDxmb3JtLWNvbnRyb2wgW2RhdGFUeXBlXT1cImRhdGFUeXBlXCJcbiAgICAgICAgICAgICAgICBbZm9ybVByb3BlcnRpZXNdPVwic3RhZ2VGb3JtPy5FbnRpdGllcz8uW2FjdGl2ZV0/LlByb3BlcnRpZXMgPz8gW11cIj48L2Zvcm0tY29udHJvbD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTMganVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuYS1idXR0b24gY2xhc3M9XCJ2ZXJiZW4tcHJpbWFyeS1idXR0b25cIiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVdPVwiIWFyZVJlcXVpcmVkUHJvcGVydGllc0ZpbGxlZCgpXCIgdGV4dD1cIlNhdmVcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgdGVtcGxhdGUgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTdGF0ZT5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCBwLTQgdGV4dC1ncmF5LTYwMCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIE5vIGVudHJpZXMgYXZhaWxhYmxlIGZvciB0aGUgc2VsZWN0ZWQgZm9ybSBncm91cC5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -343,10 +343,10 @@ export class OperationPopupFacade {
343
343
  this.state.setIsUpdating(false);
344
344
  }
345
345
  }
346
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade, deps: [{ token: i1.OperationPopupService }, { token: i2.OperationPopupState }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
347
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade });
346
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade, deps: [{ token: i1.OperationPopupService }, { token: i2.OperationPopupState }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
347
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade });
348
348
  }
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade, decorators: [{
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade, decorators: [{
350
350
  type: Injectable
351
351
  }], ctorParameters: () => [{ type: i1.OperationPopupService }, { type: i2.OperationPopupState }, { type: i3.UtilService }] });
352
352
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXBvcHVwLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvb3BlcmF0aW9uLXBvcHVwL29wZXJhdGlvbi1wb3B1cC5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQVMsYUFBYSxFQUE4QixNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU1yRyxNQUFNLE9BQU8sb0JBQW9CO0lBRXJCO0lBQ0E7SUFDQTtJQUhWLFlBQ1UsT0FBOEIsRUFDOUIsS0FBMEIsRUFDMUIsV0FBd0I7UUFGeEIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFaEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBZ0I7UUFD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b250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdG9yLCBFcnJvclJlc3BvbnNlLCBGb3JtLCBUYXNrLCBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IE9wZXJhdGlvblBvcHVwU2VydmljZSB9IGZyb20gJy4vb3BlcmF0aW9uLXBvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlcmF0aW9uUG9wdXBTdGF0ZSB9IGZyb20gJy4vb3BlcmF0aW9uLXBvcHVwLnN0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvblBvcHVwRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBPcGVyYXRpb25Qb3B1cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdGF0ZTogT3BlcmF0aW9uUG9wdXBTdGF0ZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzVXBkYXRpbmckKCkuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShsb2FkaW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzVXBkYXRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmdldElzVXBkYXRpbmckKCk7XG4gIH1cblxuICBnZXROZXh0QWN0aW9ucyQoKTogT2JzZXJ2YWJsZTxXb3JrZmxvd0FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZ2V0TmV4dEFjdGlvbnMkKCk7XG4gIH1cblxuICBnZXROZXh0QWN0b3JzJCgpOiBPYnNlcnZhYmxlPEFjdG9yW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5nZXROZXh0QWN0b3JzJCgpO1xuICB9XG5cbiAgZ2V0VGFza0Zvcm1zJCgpOiBPYnNlcnZhYmxlPEZvcm1bXT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmdldFRhc2tGb3JtcyQoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWROZXh0QWN0aW9ucyh0YXNrQ29kZTogc3RyaW5nKTogUHJvbWlzZTxXb3JrZmxvd0FjdGlvbltdPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldE5leHRBY3Rpb25zKHRhc2tDb2RlKTtcblxuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcihyZXNwb25zZS5FcnJvck1zZyk7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdGF0ZS5zZXROZXh0QWN0aW9ucyhyZXNwb25zZSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIG5leHQgYWN0aW9uczonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZFByZXZpb3VzQWN0aW9ucyh0YXNrQ29kZTogc3RyaW5nKTogUHJvbWlzZTxXb3JrZmxvd0FjdGlvbltdPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldFByZXZpb3VzQWN0aW9ucyh0YXNrQ29kZSk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGUuc2V0TmV4dEFjdGlvbnMocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBwcmV2aW91cyBhY3Rpb25zOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkQWxsUHJldmlvdXNBY3Rpb25zKHRhc2tDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFdvcmtmbG93QWN0aW9uW10+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKHRydWUpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0QWxsUHJldmlvdXNBY3Rpb25zKHRhc2tDb2RlKTtcblxuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcihyZXNwb25zZS5FcnJvck1zZyk7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdGF0ZS5zZXROZXh0QWN0aW9ucyhyZXNwb25zZSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFsbCBwcmV2aW91cyBhY3Rpb25zOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkTmV4dEFjdG9ycyhcbiAgICB0YXNrQ29kZTogc3RyaW5nLFxuICAgIGZvckN1cnJlbnRTdGFnZTogYm9vbGVhbixcbiAgICBzdGFnZUNvZGU/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8QWN0b3JbXT4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXROZXh0QWN0b3JzKHRhc2tDb2RlLCBmb3JDdXJyZW50U3RhZ2UsIHN0YWdlQ29kZSk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGUuc2V0TmV4dEFjdG9ycyhyZXNwb25zZSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIG5leHQgYWN0b3JzOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkVGFza0Zvcm1zKHRhc2tDb2RlOiBzdHJpbmcpOiBQcm9taXNlPEZvcm1bXT4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRDdXJyZW50Rm9ybXNGb3JUYXNrKHRhc2tDb2RlKTtcblxuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcihyZXNwb25zZS5FcnJvck1zZyk7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdGF0ZS5zZXRUYXNrRm9ybXMocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCB0YXNrIGZvcm1zOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwYXNzT24oXG4gICAgYWN0aW9uOiBXb3JrZmxvd0FjdGlvbixcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ6IHN0cmluZyB8IG51bGxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnBhc3NPbihcbiAgICAgICAgYWN0aW9uLkZyb21TdGFnZSxcbiAgICAgICAgYWN0aW9uLlRvU3RhZ2UsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50YXNrLFxuICAgICAgICAgIEZ1bGxTdGFnZXM6IFtdLFxuICAgICAgICAgIEN1cnJlbnRBY3RvcnM6IHRhc2suQ3VycmVudEFjdG9ycy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgQWN0b3JUYWdzOiBbXSxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0sXG4gICAgICAgIGNvbW1lbnQsXG4gICAgICAgIHJlY2lwaWVudCA/PyB1bmRlZmluZWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1Rhc2sgcGFzc2VkIG9uIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgdGhpcy5zdGF0ZS5yZXNldFN0YXRlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXNzIG9uIHRhc2s6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcGFzc0JhY2soXG4gICAgYWN0aW9uOiBXb3JrZmxvd0FjdGlvbixcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ6IHN0cmluZyB8IG51bGxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnBhc3NCYWNrKFxuICAgICAgICBhY3Rpb24uVG9TdGFnZSxcbiAgICAgICAgYWN0aW9uLkZyb21TdGFnZSxcbiAgICAgICAge1xuICAgICAgICAgIC4uLnRhc2ssXG4gICAgICAgICAgRnVsbFN0YWdlczogW10sXG4gICAgICAgICAgQ3VycmVudEFjdG9yczogdGFzay5DdXJyZW50QWN0b3JzLm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBBY3RvclRhZ3M6IFtdLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tbWVudCxcbiAgICAgICAgcmVjaXBpZW50ID8/IHVuZGVmaW5lZFxuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcihyZXNwb25zZS5FcnJvck1zZyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93U3VjY2VzcygnVGFzayBwYXNzZWQgYmFjayBzdWNjZXNzZnVsbHknKTtcbiAgICAgIHRoaXMuc3RhdGUucmVzZXRTdGF0ZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcGFzcyBiYWNrIHRhc2s6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2tpcFRvKFxuICAgIGZyb206IFdvcmtmbG93QWN0aW9uWydGcm9tU3RhZ2UnXSxcbiAgICB0bzogV29ya2Zsb3dBY3Rpb25bJ1RvU3RhZ2UnXSxcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ6IHN0cmluZyB8IG51bGxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNraXBUbyhcbiAgICAgICAgZnJvbSxcbiAgICAgICAgdG8sXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50YXNrLFxuICAgICAgICAgIEZ1bGxTdGFnZXM6IFtdLFxuICAgICAgICAgIEN1cnJlbnRBY3RvcnM6IHRhc2suQ3VycmVudEFjdG9ycy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgQWN0b3JUYWdzOiBbXSxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0sXG4gICAgICAgIGNvbW1lbnQsXG4gICAgICAgIHJlY2lwaWVudCA/PyB1bmRlZmluZWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1Rhc2sgc2tpcHBlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIHRoaXMuc3RhdGUucmVzZXRTdGF0ZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc2tpcCB0YXNrOicsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHBpY2tUYXNrKFxuICAgIHRhcmdldFN0YWdlOiBzdHJpbmcsXG4gICAgdGFzazogVGFzayxcbiAgICBjb21tZW50OiBzdHJpbmcsXG4gICAgcmVjaXBpZW50OiBzdHJpbmcgfCBudWxsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VydmljZS5waWNrVGFzayhcbiAgICAgICAgdGFyZ2V0U3RhZ2UsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50YXNrLFxuICAgICAgICAgIEZ1bGxTdGFnZXM6IFtdLFxuICAgICAgICAgIEN1cnJlbnRBY3RvcnM6IHRhc2suQ3VycmVudEFjdG9ycy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgQWN0b3JUYWdzOiBbXSxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0sXG4gICAgICAgIGNvbW1lbnQsXG4gICAgICAgIHJlY2lwaWVudCA/PyB1bmRlZmluZWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1Rhc2sgcGlja2VkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgdGhpcy5zdGF0ZS5yZXNldFN0YXRlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwaWNrIHRhc2s6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVsZWFzZVRhc2soXG4gICAgdGFyZ2V0U3RhZ2U6IHN0cmluZyxcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ6IHN0cmluZyB8IG51bGxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnJlbGVhc2VUYXNrKFxuICAgICAgICB0YXJnZXRTdGFnZSxcbiAgICAgICAge1xuICAgICAgICAgIC4uLnRhc2ssXG4gICAgICAgICAgRnVsbFN0YWdlczogW10sXG4gICAgICAgICAgQ3VycmVudEFjdG9yczogdGFzay5DdXJyZW50QWN0b3JzLm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBBY3RvclRhZ3M6IFtdLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tbWVudCxcbiAgICAgICAgcmVjaXBpZW50ID8/IHVuZGVmaW5lZFxuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcihyZXNwb25zZS5FcnJvck1zZyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93U3VjY2VzcygnVGFzayByZWxlYXNlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIHRoaXMuc3RhdGUucmVzZXRTdGF0ZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcmVsZWFzZSB0YXNrOicsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZvbGxvd1Rhc2soYWN0b3JJZDogc3RyaW5nLCB0YXNrOiBUYXNrKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmZvbGxvd1Rhc2soXG4gICAgICAgIGFjdG9ySWQsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50YXNrLFxuICAgICAgICAgIEZ1bGxTdGFnZXM6IFtdLFxuICAgICAgICAgIEN1cnJlbnRBY3RvcnM6IHRhc2suQ3VycmVudEFjdG9ycy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgQWN0b3JUYWdzOiBbXSxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1Rhc2sgZm9sbG93ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB0aGlzLnN0YXRlLnJlc2V0U3RhdGUoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZvbGxvdyB0YXNrOicsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVuZm9sbG93VGFzayh0YXNrSWQ6IHN0cmluZywgYWN0b3JJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnVuZm9sbG93VGFzayh0YXNrSWQsIGFjdG9ySWQpO1xuXG4gICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0Vycm9yKHJlc3BvbnNlLkVycm9yTXNnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dTdWNjZXNzKCdUYXNrIHVuZm9sbG93ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB0aGlzLnN0YXRlLnJlc2V0U3RhdGUoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHVuZm9sbG93IHRhc2s6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVBc3NpZ24odGFzazogVGFzaywgY29tbWVudDogc3RyaW5nLCBmcm9tVXNlcj86IHN0cmluZywgdG9Vc2VyPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnJlQXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgLi4udGFzayxcbiAgICAgICAgICBGdWxsU3RhZ2VzOiBbXSxcbiAgICAgICAgICBDdXJyZW50QWN0b3JzOiB0YXNrLkN1cnJlbnRBY3RvcnMubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgIEFjdG9yVGFnczogW10sXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9LFxuICAgICAgICBjb21tZW50LFxuICAgICAgICBmcm9tVXNlcixcbiAgICAgICAgdG9Vc2VyXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0Vycm9yKHJlc3BvbnNlLkVycm9yTXNnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dTdWNjZXNzKCdUYXNrIHJlLWFzc2lnbmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgdGhpcy5zdGF0ZS5yZXNldFN0YXRlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZS1hc3NpZ24gdGFzazonLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRJc1VwZGF0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmaWxsRm9ybShmb3JtOiBGb3JtLCB0YXNrQ29kZTogc3RyaW5nKTogUHJvbWlzZTxGb3JtIHwgbnVsbD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0YXRlLnNldElzVXBkYXRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VydmljZS5maWxsRm9ybShmb3JtLCB0YXNrQ29kZSk7XG5cbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IocmVzcG9uc2UuRXJyb3JNc2cpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93U3VjY2VzcygnRm9ybSBmaWxsZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmaWxsIGZvcm06JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0SXNVcGRhdGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -62,10 +62,10 @@ export class OperationPopupService {
62
62
  const url = `FillForm/${taskCode}`;
63
63
  return this.httpService.post(url, form);
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService, deps: [{ token: i1.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
66
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService, deps: [{ token: i1.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
66
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService });
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService, decorators: [{
69
69
  type: Injectable
70
70
  }], ctorParameters: () => [{ type: i1.HttpWebRequestService }] });
71
71
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXBvcHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL29wZXJhdGlvbi1wb3B1cC9vcGVyYXRpb24tcG9wdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVaO0lBQXBCLFlBQW9CLFdBQWtDO1FBQWxDLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtJQUFJLENBQUM7SUFFM0QsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLGtCQUFrQixRQUFRLEVBQUUsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBOEMsQ0FBQztJQUNoRixDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBZ0I7UUFDakMsTUFBTSxHQUFHLEdBQUcsc0JBQXNCLFFBQVEsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUE4QyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNwQyxNQUFNLEdBQUcsR0FBRyx5QkFBeUIsUUFBUSxFQUFFLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQThDLENBQUM7SUFDaEYsQ0FBQztJQUVELGFBQWEsQ0FDWCxRQUFnQixFQUNoQixlQUF3QixFQUN4QixTQUFrQjtRQUVsQixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsUUFBUSxHQUFHLEdBQUcsR0FBRyxlQUFlLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVB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ekcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLDBCQUEwQixRQUFRLEVBQUUsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBb0MsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUNuQyxNQUFNLEdBQUcsR0FBRyxZQUFZLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7d0dBakhVLHFCQUFxQjs0R0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0b3IsIEVycm9yUmVzcG9uc2UsIEZvcm0sIFRhc2ssIFdvcmtmbG93QWN0aW9uIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NlcnZpY2VzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvblBvcHVwU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlKSB7IH1cblxuICBnZXROZXh0QWN0aW9ucyh0YXNrQ29kZTogc3RyaW5nKTogUHJvbWlzZTxXb3JrZmxvd0FjdGlvbltdIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXROZXh0QWN0aW9ucy8ke3Rhc2tDb2RlfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxXb3JrZmxvd0FjdGlvbltdIHwgRXJyb3JSZXNwb25zZT47XG4gIH1cblxuICBnZXRQcmV2aW91c0FjdGlvbnModGFza0NvZGU6IHN0cmluZyk6IFByb21pc2U8V29ya2Zsb3dBY3Rpb25bXSB8IEVycm9yUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0UHJldmlvdXNBY3Rpb25zLyR7dGFza0NvZGV9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFdvcmtmbG93QWN0aW9uW10gfCBFcnJvclJlc3BvbnNlPjtcbiAgfVxuXG4gIGdldEFsbFByZXZpb3VzQWN0aW9ucyh0YXNrQ29kZTogc3RyaW5nKTogUHJvbWlzZTxXb3JrZmxvd0FjdGlvbltdIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRBbGxQcmV2aW91c0FjdGlvbnMvJHt0YXNrQ29kZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8V29ya2Zsb3dBY3Rpb25bXSB8IEVycm9yUmVzcG9uc2U+O1xuICB9XG5cbiAgZ2V0TmV4dEFjdG9ycyhcbiAgICB0YXNrQ29kZTogc3RyaW5nLFxuICAgIGZvckN1cnJlbnRTdGFnZTogYm9vbGVhbixcbiAgICBzdGFnZUNvZGU/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8QWN0b3JbXSB8IEVycm9yUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgR2V0TmV4dEFjdG9ycy8ke3Rhc2tDb2RlfSR7Jy8nICsgZm9yQ3VycmVudFN0YWdlICsgKHN0YWdlQ29kZSA/ICcvJyArIHN0YWdlQ29kZSA6ICcnKX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8QWN0b3JbXSB8IEVycm9yUmVzcG9uc2U+O1xuICB9XG5cbiAgcGFzc09uKFxuICAgIGZyb21TdGFnZTogc3RyaW5nLFxuICAgIHRvU3RhZ2U6IHN0cmluZyxcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxUYXNrIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBQYXNzT24vJHtmcm9tU3RhZ2V9LyR7dG9TdGFnZX0vJHtjb21tZW50fSR7cmVjaXBpZW50ID8gJy8nICsgcmVjaXBpZW50IDogJyd9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgdGFzayk7XG4gIH1cblxuICBwYXNzQmFjayhcbiAgICBmcm9tU3RhZ2U6IHN0cmluZyxcbiAgICB0b1N0YWdlOiBzdHJpbmcsXG4gICAgdGFzazogVGFzayxcbiAgICBjb21tZW50OiBzdHJpbmcsXG4gICAgcmVjaXBpZW50Pzogc3RyaW5nXG4gICk6IFByb21pc2U8VGFzayB8IEVycm9yUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgUGFzc0JhY2svJHtmcm9tU3RhZ2V9LyR7dG9TdGFnZX0vJHtjb21tZW50fSR7cmVjaXBpZW50ID8gJy8nICsgcmVjaXBpZW50IDogJyd9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgdGFzayk7XG4gIH1cblxuICBwaWNrVGFzayhcbiAgICB0YXJnZXRTdGFnZTogc3RyaW5nLFxuICAgIHRhc2s6IFRhc2ssXG4gICAgY29tbWVudDogc3RyaW5nLFxuICAgIHJlY2lwaWVudD86IHN0cmluZ1xuICApOiBQcm9taXNlPFRhc2sgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYFBpY2tUYXNrLyR7Y29tbWVudH0vJHt0YXJnZXRTdGFnZX0ke3JlY2lwaWVudCA/ICcvJyArIHJlY2lwaWVudCA6ICcnfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHRhc2spO1xuICB9XG5cbiAgcmVsZWFzZVRhc2soXG4gICAgdGFyZ2V0U3RhZ2U6IHN0cmluZyxcbiAgICB0YXNrOiBUYXNrLFxuICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICByZWNpcGllbnQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxUYXNrIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBVblBpY2tUYXNrLyR7Y29tbWVudH0vJHt0YXJnZXRTdGFnZX0ke3JlY2lwaWVudCA/ICcvJyArIHJlY2lwaWVudCA6ICcnfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHRhc2spO1xuICB9XG5cbiAgZm9sbG93VGFzayhhY3RvcklkOiBzdHJpbmcsIHRhc2s6IFRhc2spOiBQcm9taXNlPFRhc2sgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYEZvbGxvd1Rhc2svJHthY3RvcklkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHRhc2spO1xuICB9XG5cbiAgdW5mb2xsb3dUYXNrKFxuICAgIHRhc2tJZDogc3RyaW5nLFxuICAgIGFjdG9ySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYFVuRm9sbG93VGFzay8ke3Rhc2tJZH0vJHthY3RvcklkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHt9KTtcbiAgfVxuXG4gIHJlQXNzaWduKFxuICAgIHRhc2s6IFRhc2ssXG4gICAgY29tbWVudDogc3RyaW5nLFxuICAgIGZyb21Vc2VyPzogc3RyaW5nLFxuICAgIHRvVXNlcj86IHN0cmluZ1xuICApOiBQcm9taXNlPFRhc2sgfCBFcnJvclJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYFJlYXNzaWduLyR7Y29tbWVudH0vJHt0b1VzZXJ9LyR7ZnJvbVVzZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KHVybCwgdGFzayk7XG4gIH1cblxuICBza2lwVG8oXG4gICAgZnJvbVN0YWdlOiBzdHJpbmcsXG4gICAgdG9TdGFnZTogc3RyaW5nLFxuICAgIHRhc2s6IFRhc2ssXG4gICAgY29tbWVudDogc3RyaW5nLFxuICAgIHJlY2lwaWVudD86IHN0cmluZyxcbiAgICBpc0JhY2t3YXJkOiBib29sZWFuID0gZmFsc2VcbiAgKTogUHJvbWlzZTxUYXNrIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBTa2lwVG8vJHtmcm9tU3RhZ2V9LyR7dG9TdGFnZX0vJHtjb21tZW50fSR7cmVjaXBpZW50ID8gJy8nICsgcmVjaXBpZW50IDogJyd9LyR7aXNCYWNrd2FyZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QodXJsLCB0YXNrKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRGb3Jtc0ZvclRhc2sodGFza0NvZGU6IHN0cmluZyk6IFByb21pc2U8Rm9ybVtdIHwgRXJyb3JSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGBHZXRDdXJyZW50Rm9ybXNGb3JUYXNrLyR7dGFza0NvZGV9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPEZvcm1bXSB8IEVycm9yUmVzcG9uc2U+O1xuICB9XG5cbiAgZmlsbEZvcm0oZm9ybTogRm9ybSwgdGFza0NvZGU6IHN0cmluZyk6IFByb21pc2U8Rm9ybSB8IEVycm9yUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgRmlsbEZvcm0vJHt0YXNrQ29kZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QodXJsLCBmb3JtKTtcbiAgfVxufVxuIl19
@@ -35,10 +35,10 @@ export class OperationPopupState {
35
35
  this.nextActors.next([]);
36
36
  this.taskForms.next([]);
37
37
  }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState });
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState, decorators: [{
42
42
  type: Injectable
43
43
  }] });
44
44
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXBvcHVwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy9vcGVyYXRpb24tcG9wdXAvb3BlcmF0aW9uLXBvcHVwLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFJbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakQsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztJQUN4RCxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsRUFBRSxDQUFDLENBQUM7SUFDOUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXBELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBeUI7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFlO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBMUNVLG1CQUFtQjs0R0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RvciwgRm9ybSwgV29ya2Zsb3dBY3Rpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uUG9wdXBTdGF0ZSB7XG4gIHByaXZhdGUgaXNVcGRhdGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIG5leHRBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXb3JrZmxvd0FjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgbmV4dEFjdG9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0b3JbXT4oW10pO1xuICBwcml2YXRlIHRhc2tGb3JtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybVtdPihbXSk7XG5cbiAgZ2V0SXNVcGRhdGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVcGRhdGluZy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE5leHRBY3Rpb25zJCgpOiBPYnNlcnZhYmxlPFdvcmtmbG93QWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5uZXh0QWN0aW9ucy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE5leHRBY3RvcnMkKCk6IE9ic2VydmFibGU8QWN0b3JbXT4ge1xuICAgIHJldHVybiB0aGlzLm5leHRBY3RvcnMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRUYXNrRm9ybXMkKCk6IE9ic2VydmFibGU8Rm9ybVtdPiB7XG4gICAgcmV0dXJuIHRoaXMudGFza0Zvcm1zLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0SXNVcGRhdGluZyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNVcGRhdGluZy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldE5leHRBY3Rpb25zKGFjdGlvbnM6IFdvcmtmbG93QWN0aW9uW10pOiB2b2lkIHtcbiAgICB0aGlzLm5leHRBY3Rpb25zLm5leHQoYWN0aW9ucyk7XG4gIH1cblxuICBzZXROZXh0QWN0b3JzKGFjdG9yczogQWN0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMubmV4dEFjdG9ycy5uZXh0KGFjdG9ycyk7XG4gIH1cblxuICBzZXRUYXNrRm9ybXMoZm9ybXM6IEZvcm1bXSk6IHZvaWQge1xuICAgIHRoaXMudGFza0Zvcm1zLm5leHQoZm9ybXMpO1xuICB9XG5cbiAgcmVzZXRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLm5leHRBY3Rpb25zLm5leHQoW10pO1xuICAgIHRoaXMubmV4dEFjdG9ycy5uZXh0KFtdKTtcbiAgICB0aGlzLnRhc2tGb3Jtcy5uZXh0KFtdKTtcbiAgfVxufVxuIl19
@@ -31,12 +31,12 @@ export class StageDetailsComponent {
31
31
  getStringValue(data, prop) {
32
32
  return data[prop].toString();
33
33
  }
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StageDetailsComponent, selector: "lib-stage-details", inputs: { RulesOptions: "RulesOptions", TagsOptions: "TagsOptions", isModalVisible: "isModalVisible", stageDetail: "stageDetail" }, outputs: { modalVisibilityChange: "modalVisibilityChange" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'#fff'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"#FFE681\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i1.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: StageDetailsComponent, selector: "lib-stage-details", inputs: { RulesOptions: "RulesOptions", TagsOptions: "TagsOptions", isModalVisible: "isModalVisible", stageDetail: "stageDetail" }, outputs: { modalVisibilityChange: "modalVisibilityChange" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'var(--vbn-color-surface)'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"var(--vbn-color-primary)\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i1.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'lib-stage-details', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'#fff'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"#FFE681\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n" }]
39
+ args: [{ selector: 'lib-stage-details', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'var(--vbn-color-surface)'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"var(--vbn-color-primary)\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n" }]
40
40
  }], propDecorators: { RulesOptions: [{
41
41
  type: Input
42
42
  }], TagsOptions: [{
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
48
48
  }], modalVisibilityChange: [{
49
49
  type: Output
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3N0YWdlLWRldGFpbHMvc3RhZ2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3N0YWdlLWRldGFpbHMvc3RhZ2UtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBQ3ZFLElBQUssS0FFSjtBQUZELFdBQUssS0FBSztJQUNSLHNCQUFXLENBQUE7QUFDYixDQUFDLEVBRkksS0FBSyxLQUFMLEtBQUssUUFFVDtBQUNELElBQUssSUFFSjtBQUZELFdBQUssSUFBSTtJQUNQLDZCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGSSxJQUFJLEtBQUosSUFBSSxRQUVSO0FBZUQsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixZQUFZLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxXQUFXLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFdBQVcsQ0FBTztJQUNqQixxQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQzdELFdBQVcsQ0FBQyxTQUFjO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVSxFQUFFLElBQVMsRUFBRSxJQUFZO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO3dHQXJCVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwwUENyQmxDLDg0RkErRkE7OzRGRDFFYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQU1yQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5lbnVtIFJ1bGVze1xuICBQYXNzPSdQYXNzJ1xufVxuZW51bSBUYWdze1xuICBXb3JrRmxvdz0nV29ya2Zsb3cnXG59XG5pbnRlcmZhY2UgU3RhZ2V7XG4gIE5hbWU6c3RyaW5nO1xuICBDb3VudDpudW1iZXI7XG4gIERlc2NyaXB0aW9uOnN0cmluZztcbiAgRHVyYXRpb246bnVtYmVyO1xuICBSdWxlOnN0cmluZztcbiAgVGFnOnN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YWdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3RhZ2UtZGV0YWlscy5jb21wb25lbnQuY3NzJ1xufSlcblxuZXhwb3J0IGNsYXNzIFN0YWdlRGV0YWlsc0NvbXBvbmVudCB7XG4gQElucHV0KCkgUnVsZXNPcHRpb25zOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKFJ1bGVzKTtcbiBASW5wdXQoKSBUYWdzT3B0aW9uczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhUYWdzKTtcbiBASW5wdXQoKSBpc01vZGFsVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuIEBJbnB1dCgpIHN0YWdlRGV0YWlsITpTdGFnZVxuIEBPdXRwdXQoKSBtb2RhbFZpc2liaWxpdHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIG9uTW9kYWxPcGVuKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ01vZGFsIG9wZW5lZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMubW9kYWxWaXNpYmlsaXR5Q2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBvbk1vZGFsQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnTW9kYWwgY2xvc2VkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMubW9kYWxWaXNpYmlsaXR5Q2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG4gIGNvbnZlcnRUb0ludCh2YWx1ZTogYW55LCBkYXRhOiBhbnksIHByb3A6IHN0cmluZykge1xuICAgIGRhdGFbcHJvcF0gPSBwYXJzZUludCh2YWx1ZSk7XG4gIH1cbiAgZ2V0U3RyaW5nVmFsdWUoZGF0YTogYW55LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhW3Byb3BdLnRvU3RyaW5nKCk7XG4gIH1cblxufVxuIiwiPHZlcmJlbi1kaWFsb2d1ZVxuICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcbiAgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiXG4gIFtwYWRkaW5nXT1cIicwcHgnXCJcbiAgW2RyYXdlcldpZHRoXT1cIic0MDBweCdcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIChvcGVuTW9kYWwpPVwib25Nb2RhbE9wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uTW9kYWxDbG9zZSgkZXZlbnQpXCJcbiAgW2lzVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gIFttb2RhbERhdGFdPVwic3RhZ2VEZXRhaWxcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtzaG93Q2xvc2VJY29uXT1cImZhbHNlXCJcbiAgKGNsb3NlTW9kYWwpPVwib25Nb2RhbENsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYmctWyNGRkU2ODFdIHB4LTYgcHktNCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICA8aDE+U3RhZ2U8L2gxPlxuICAgIDx2ZXJiZW4tc3ZnXG4gICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgIFtpY29uXT1cIidjbG9zZS1jaXJjbGUnXCJcbiAgICAgIChjbGljayk9XCJpc01vZGFsVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgIFtzdHJva2VdPVwiJyNmZmYnXCJcbiAgICA+PC92ZXJiZW4tc3ZnPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJweC02IHB5LTQgZmxleCBmbGV4LWNvbCBnYXAtNlwiPlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbGFiZWw9XCJTdGFnZSBOYW1lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFnZURldGFpbC5OYW1lXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM5QTlGQkY2NidcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIFN0YWdlIE5hbWVcIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBsYWJlbD1cIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFnZURldGFpbC5EZXNjcmlwdGlvblwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjOUE5RkJGNjYnXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBEZXNjcmlwdGlvblwiXG4gICAgICAgIFtiZ0NvbG9yXT1cIid3aGl0ZSdcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIGxhYmVsPVwiUmVjZWlwaWVudCBDb3VudFwiXG4gICAgICAgIFtuZ01vZGVsXT1cImdldFN0cmluZ1ZhbHVlKHN0YWdlRGV0YWlsLCAnQ291bnQnKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb252ZXJ0VG9JbnQoJGV2ZW50LCBzdGFnZURldGFpbCwgJ0NvdW50JylcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgUmVjZWlwaWVudCBDb3VudFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICA8ZGl2PlBhc3MgT24gUnVsZTwvZGl2PlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFnZURldGFpbC5SdWxlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBQYXNzIE9uIFJ1bGVcIlxuICAgICAgICAgIFsob3B0aW9ucyldPVwiUnVsZXNPcHRpb25zXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIFtuZ01vZGVsXT1cImdldFN0cmluZ1ZhbHVlKHN0YWdlRGV0YWlsLCAnRHVyYXRpb24nKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb252ZXJ0VG9JbnQoJGV2ZW50LCBzdGFnZURldGFpbCwgJ0R1cmF0aW9uJylcIlxuICAgICAgICBsYWJlbD1cIkR1cmF0aW9uXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjOUE5RkJGNjYnXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBEdXJhdGlvblwiXG4gICAgICAgIFtiZ0NvbG9yXT1cIid3aGl0ZSdcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgIDxkaXY+VGFnPC9kaXY+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YWdlRGV0YWlsLlRhZ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGFnXCJcbiAgICAgICAgICBbKG9wdGlvbnMpXT1cIlRhZ3NPcHRpb25zXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICBiZ0NvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICAgIFt3aWR0aF09XCInMTAwJSdcIlxuICAgICAgICBbdGV4dF09XCInU2F2ZSdcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3N0YWdlLWRldGFpbHMvc3RhZ2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3N0YWdlLWRldGFpbHMvc3RhZ2UtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBQ3ZFLElBQUssS0FFSjtBQUZELFdBQUssS0FBSztJQUNSLHNCQUFXLENBQUE7QUFDYixDQUFDLEVBRkksS0FBSyxLQUFMLEtBQUssUUFFVDtBQUNELElBQUssSUFFSjtBQUZELFdBQUssSUFBSTtJQUNQLDZCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGSSxJQUFJLEtBQUosSUFBSSxRQUVSO0FBZUQsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixZQUFZLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxXQUFXLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFdBQVcsQ0FBTztJQUNqQixxQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQzdELFdBQVcsQ0FBQyxTQUFjO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVSxFQUFFLElBQVMsRUFBRSxJQUFZO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO3dHQXJCVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwwUENyQmxDLG84RkErRkE7OzRGRDFFYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQU1yQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5lbnVtIFJ1bGVze1xuICBQYXNzPSdQYXNzJ1xufVxuZW51bSBUYWdze1xuICBXb3JrRmxvdz0nV29ya2Zsb3cnXG59XG5pbnRlcmZhY2UgU3RhZ2V7XG4gIE5hbWU6c3RyaW5nO1xuICBDb3VudDpudW1iZXI7XG4gIERlc2NyaXB0aW9uOnN0cmluZztcbiAgRHVyYXRpb246bnVtYmVyO1xuICBSdWxlOnN0cmluZztcbiAgVGFnOnN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YWdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3RhZ2UtZGV0YWlscy5jb21wb25lbnQuY3NzJ1xufSlcblxuZXhwb3J0IGNsYXNzIFN0YWdlRGV0YWlsc0NvbXBvbmVudCB7XG4gQElucHV0KCkgUnVsZXNPcHRpb25zOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKFJ1bGVzKTtcbiBASW5wdXQoKSBUYWdzT3B0aW9uczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhUYWdzKTtcbiBASW5wdXQoKSBpc01vZGFsVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuIEBJbnB1dCgpIHN0YWdlRGV0YWlsITpTdGFnZVxuIEBPdXRwdXQoKSBtb2RhbFZpc2liaWxpdHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIG9uTW9kYWxPcGVuKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ01vZGFsIG9wZW5lZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMubW9kYWxWaXNpYmlsaXR5Q2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBvbk1vZGFsQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnTW9kYWwgY2xvc2VkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMubW9kYWxWaXNpYmlsaXR5Q2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG4gIGNvbnZlcnRUb0ludCh2YWx1ZTogYW55LCBkYXRhOiBhbnksIHByb3A6IHN0cmluZykge1xuICAgIGRhdGFbcHJvcF0gPSBwYXJzZUludCh2YWx1ZSk7XG4gIH1cbiAgZ2V0U3RyaW5nVmFsdWUoZGF0YTogYW55LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhW3Byb3BdLnRvU3RyaW5nKCk7XG4gIH1cblxufVxuIiwiPHZlcmJlbi1kaWFsb2d1ZVxuICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcbiAgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiXG4gIFtwYWRkaW5nXT1cIicwcHgnXCJcbiAgW2RyYXdlcldpZHRoXT1cIic0MDBweCdcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIChvcGVuTW9kYWwpPVwib25Nb2RhbE9wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uTW9kYWxDbG9zZSgkZXZlbnQpXCJcbiAgW2lzVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gIFttb2RhbERhdGFdPVwic3RhZ2VEZXRhaWxcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtzaG93Q2xvc2VJY29uXT1cImZhbHNlXCJcbiAgKGNsb3NlTW9kYWwpPVwib25Nb2RhbENsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYmctW3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KV0gcHgtNiBweS00IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxoMT5TdGFnZTwvaDE+XG4gICAgPHZlcmJlbi1zdmdcbiAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgW2ljb25dPVwiJ2Nsb3NlLWNpcmNsZSdcIlxuICAgICAgKGNsaWNrKT1cImlzTW9kYWxWaXNpYmxlID0gZmFsc2VcIlxuICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgW3N0cm9rZV09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpJ1wiXG4gICAgPjwvdmVyYmVuLXN2Zz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNiBweS00IGZsZXggZmxleC1jb2wgZ2FwLTZcIj5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIGxhYmVsPVwiU3RhZ2UgTmFtZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic3RhZ2VEZXRhaWwuTmFtZVwiXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjOUE5RkJGNjYnXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBTdGFnZSBOYW1lXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbGFiZWw9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic3RhZ2VEZXRhaWwuRGVzY3JpcHRpb25cIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgRGVzY3JpcHRpb25cIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBsYWJlbD1cIlJlY2VpcGllbnQgQ291bnRcIlxuICAgICAgICBbbmdNb2RlbF09XCJnZXRTdHJpbmdWYWx1ZShzdGFnZURldGFpbCwgJ0NvdW50JylcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiY29udmVydFRvSW50KCRldmVudCwgc3RhZ2VEZXRhaWwsICdDb3VudCcpXCJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM5QTlGQkY2NidcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIFJlY2VpcGllbnQgQ291bnRcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgPGRpdj5QYXNzIE9uIFJ1bGU8L2Rpdj5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RhZ2VEZXRhaWwuUnVsZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUGFzcyBPbiBSdWxlXCJcbiAgICAgICAgICBbKG9wdGlvbnMpXT1cIlJ1bGVzT3B0aW9uc1wiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBbbmdNb2RlbF09XCJnZXRTdHJpbmdWYWx1ZShzdGFnZURldGFpbCwgJ0R1cmF0aW9uJylcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiY29udmVydFRvSW50KCRldmVudCwgc3RhZ2VEZXRhaWwsICdEdXJhdGlvbicpXCJcbiAgICAgICAgbGFiZWw9XCJEdXJhdGlvblwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgRHVyYXRpb25cIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICA8ZGl2PlRhZzwvZGl2PlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFnZURldGFpbC5UYWdcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRhZ1wiXG4gICAgICAgICAgWyhvcHRpb25zKV09XCJUYWdzT3B0aW9uc1wiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgYmdDb2xvcj1cInZhcigtLXZibi1jb2xvci1wcmltYXJ5KVwiXG4gICAgICAgIFt3aWR0aF09XCInMTAwJSdcIlxuICAgICAgICBbdGV4dF09XCInU2F2ZSdcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==