@valtimo/components 12.1.1 → 12.1.2

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 (200) hide show
  1. package/assets/css/compatibility.scss +2 -1
  2. package/esm2022/lib/components/alert/alert.component.mjs +4 -4
  3. package/esm2022/lib/components/alert/alert.module.mjs +5 -5
  4. package/esm2022/lib/components/alert/alert.service.mjs +4 -4
  5. package/esm2022/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.mjs +4 -4
  6. package/esm2022/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.mjs +5 -5
  7. package/esm2022/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.mjs +4 -4
  8. package/esm2022/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.mjs +5 -5
  9. package/esm2022/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +4 -4
  10. package/esm2022/lib/components/button/button.component.mjs +4 -4
  11. package/esm2022/lib/components/button/button.module.mjs +5 -5
  12. package/esm2022/lib/components/camunda/form/camunda-form.components.mjs +4 -4
  13. package/esm2022/lib/components/camunda/form/camunda-form.module.mjs +5 -5
  14. package/esm2022/lib/components/camunda/form/custom/camunda-custom-form.component.mjs +4 -4
  15. package/esm2022/lib/components/camunda/form/custom/camunda-custom-form.module.mjs +5 -5
  16. package/esm2022/lib/components/camunda/form/generated/camunda-generated-form.component.mjs +4 -4
  17. package/esm2022/lib/components/camunda/form/generated/camunda-generated-form.module.mjs +5 -5
  18. package/esm2022/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.mjs +4 -4
  19. package/esm2022/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.mjs +4 -4
  20. package/esm2022/lib/components/camunda/form/generated/formfield/camunda-formfield.service.mjs +4 -4
  21. package/esm2022/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.mjs +4 -4
  22. package/esm2022/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.mjs +4 -4
  23. package/esm2022/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.mjs +4 -4
  24. package/esm2022/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.mjs +4 -4
  25. package/esm2022/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.mjs +4 -4
  26. package/esm2022/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.mjs +4 -4
  27. package/esm2022/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.mjs +4 -4
  28. package/esm2022/lib/components/carbon-list/CarbonListFilterPipe.directive.mjs +4 -4
  29. package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +4 -4
  30. package/esm2022/lib/components/carbon-list/carbon-list.module.mjs +5 -5
  31. package/esm2022/lib/components/carbon-list/no-results/carbon-no-results.component.mjs +4 -4
  32. package/esm2022/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.mjs +4 -4
  33. package/esm2022/lib/components/carbon-list/tags-modal/tags-modal.component.mjs +4 -4
  34. package/esm2022/lib/components/card/card.component.mjs +4 -4
  35. package/esm2022/lib/components/card/card.module.mjs +5 -5
  36. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +4 -4
  37. package/esm2022/lib/components/confirmation-modal/confirmation-modal.module.mjs +5 -5
  38. package/esm2022/lib/components/data-list/data-list.component.mjs +4 -4
  39. package/esm2022/lib/components/data-list/data-list.module.mjs +5 -5
  40. package/esm2022/lib/components/date-picker/date-picker.component.mjs +4 -4
  41. package/esm2022/lib/components/date-picker/date-picker.module.mjs +5 -5
  42. package/esm2022/lib/components/dropzone/dropzone.component.mjs +4 -4
  43. package/esm2022/lib/components/dropzone/dropzone.module.mjs +5 -5
  44. package/esm2022/lib/components/editor/editor.component.mjs +4 -4
  45. package/esm2022/lib/components/editor/editor.module.mjs +5 -5
  46. package/esm2022/lib/components/editor/editor.service.mjs +4 -4
  47. package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +4 -4
  48. package/esm2022/lib/components/expansion-panel/expansion-panel.module.mjs +5 -5
  49. package/esm2022/lib/components/field-auto-focus/field-auto-focus.directive.mjs +4 -4
  50. package/esm2022/lib/components/field-auto-focus/field-auto-focus.module.mjs +5 -5
  51. package/esm2022/lib/components/file-size/file-size.module.mjs +5 -5
  52. package/esm2022/lib/components/file-size/file-size.pipe.mjs +4 -4
  53. package/esm2022/lib/components/filter-sidebar/filter-sidebar.component.mjs +4 -4
  54. package/esm2022/lib/components/filter-sidebar/filter-sidebar.module.mjs +5 -5
  55. package/esm2022/lib/components/form/form.component.mjs +4 -4
  56. package/esm2022/lib/components/form/form.module.mjs +5 -5
  57. package/esm2022/lib/components/form-io/form-io-builder.component.mjs +29 -21
  58. package/esm2022/lib/components/form-io/form-io-builder.utils.mjs +26 -0
  59. package/esm2022/lib/components/form-io/form-io-current-user/form-io-current-user.component.mjs +4 -4
  60. package/esm2022/lib/components/form-io/form-io-iban/iban.component.mjs +4 -4
  61. package/esm2022/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +4 -4
  62. package/esm2022/lib/components/form-io/form-io.component.mjs +15 -13
  63. package/esm2022/lib/components/form-io/form-io.module.mjs +5 -5
  64. package/esm2022/lib/components/form-io/services/form-io-dom.service.mjs +4 -4
  65. package/esm2022/lib/components/form-io/services/form-io-local-storage.service.mjs +4 -4
  66. package/esm2022/lib/components/form-io/services/form-io-state.service.mjs +4 -4
  67. package/esm2022/lib/components/input/input.component.mjs +4 -4
  68. package/esm2022/lib/components/input/input.module.mjs +5 -5
  69. package/esm2022/lib/components/input-label/input-label.component.mjs +4 -4
  70. package/esm2022/lib/components/input-label/input-label.module.mjs +5 -5
  71. package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +4 -4
  72. package/esm2022/lib/components/left-sidebar/left-sidebar.module.mjs +5 -5
  73. package/esm2022/lib/components/list/ListFilterPipe.directive.mjs +4 -4
  74. package/esm2022/lib/components/list/list.component.mjs +4 -4
  75. package/esm2022/lib/components/list/list.module.mjs +5 -5
  76. package/esm2022/lib/components/menu/menu-item-text.component.mjs +4 -4
  77. package/esm2022/lib/components/menu/menu-routing.module.mjs +5 -5
  78. package/esm2022/lib/components/menu/menu.module.mjs +5 -5
  79. package/esm2022/lib/components/menu/menu.service.mjs +4 -4
  80. package/esm2022/lib/components/modal/modal.component.mjs +4 -4
  81. package/esm2022/lib/components/modal/modal.module.mjs +5 -5
  82. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +4 -4
  83. package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +5 -5
  84. package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +4 -4
  85. package/esm2022/lib/components/multi-input-form/multi-input-form.module.mjs +5 -5
  86. package/esm2022/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +4 -4
  87. package/esm2022/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +5 -5
  88. package/esm2022/lib/components/page/page-container/page-container.component.mjs +4 -4
  89. package/esm2022/lib/components/page/page-content/page-content.component.mjs +4 -4
  90. package/esm2022/lib/components/page/page-header/page-header.component.mjs +4 -4
  91. package/esm2022/lib/components/page/page-header-actions/page-header-actions.component.mjs +4 -4
  92. package/esm2022/lib/components/page/page-header-introduction/page-header-introduction.component.mjs +4 -4
  93. package/esm2022/lib/components/page/page.module.mjs +5 -5
  94. package/esm2022/lib/components/page-actions/page-actions.component.mjs +4 -4
  95. package/esm2022/lib/components/page-header/page-header.component.mjs +4 -4
  96. package/esm2022/lib/components/page-header/page-header.module.mjs +5 -5
  97. package/esm2022/lib/components/page-subtitle/page-subtitle.component.mjs +4 -4
  98. package/esm2022/lib/components/page-title/page-title.component.mjs +4 -4
  99. package/esm2022/lib/components/page-title/page-title.module.mjs +5 -5
  100. package/esm2022/lib/components/paragraph/paragraph.component.mjs +4 -4
  101. package/esm2022/lib/components/paragraph/paragraph.module.mjs +5 -5
  102. package/esm2022/lib/components/pending-changes/pending-changes.service.mjs +4 -4
  103. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +4 -4
  104. package/esm2022/lib/components/progress-bar/progress-bar.module.mjs +5 -5
  105. package/esm2022/lib/components/prompt/prompt.component.mjs +4 -4
  106. package/esm2022/lib/components/prompt/prompt.module.mjs +5 -5
  107. package/esm2022/lib/components/radio/radio.component.mjs +4 -4
  108. package/esm2022/lib/components/radio/radio.module.mjs +5 -5
  109. package/esm2022/lib/components/right-sidebar/right-sidebar.component.mjs +4 -4
  110. package/esm2022/lib/components/right-sidebar/right-sidebar.module.mjs +5 -5
  111. package/esm2022/lib/components/search-fields/search-fields.component.mjs +4 -4
  112. package/esm2022/lib/components/search-fields/search-fields.module.mjs +5 -5
  113. package/esm2022/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +4 -4
  114. package/esm2022/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +5 -5
  115. package/esm2022/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +4 -4
  116. package/esm2022/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +5 -5
  117. package/esm2022/lib/components/select/select.component.mjs +4 -4
  118. package/esm2022/lib/components/select/select.module.mjs +5 -5
  119. package/esm2022/lib/components/spinner/spinner.component.mjs +4 -4
  120. package/esm2022/lib/components/spinner/spinner.module.mjs +5 -5
  121. package/esm2022/lib/components/status-selector/status-selector.component.mjs +4 -4
  122. package/esm2022/lib/components/stepper/stepper-container/stepper-container.component.mjs +4 -4
  123. package/esm2022/lib/components/stepper/stepper-content/stepper-content.component.mjs +4 -4
  124. package/esm2022/lib/components/stepper/stepper-footer/stepper-footer.component.mjs +4 -4
  125. package/esm2022/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.mjs +4 -4
  126. package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +4 -4
  127. package/esm2022/lib/components/stepper/stepper-step/stepper-step.component.mjs +4 -4
  128. package/esm2022/lib/components/stepper/stepper.module.mjs +5 -5
  129. package/esm2022/lib/components/table/table.component.mjs +4 -4
  130. package/esm2022/lib/components/table/table.module.mjs +5 -5
  131. package/esm2022/lib/components/timeline/timeline.component.mjs +4 -4
  132. package/esm2022/lib/components/timeline/timeline.module.mjs +5 -5
  133. package/esm2022/lib/components/title/title.component.mjs +4 -4
  134. package/esm2022/lib/components/title/title.module.mjs +5 -5
  135. package/esm2022/lib/components/tooltip-icon/tooltip-icon.component.mjs +4 -4
  136. package/esm2022/lib/components/tooltip-icon/tooltip-icon.module.mjs +5 -5
  137. package/esm2022/lib/components/topbar/topbar.component.mjs +4 -4
  138. package/esm2022/lib/components/topbar/topbar.module.mjs +5 -5
  139. package/esm2022/lib/components/uploader/uploader-drag-drop.directive.mjs +4 -4
  140. package/esm2022/lib/components/uploader/uploader.component.mjs +4 -4
  141. package/esm2022/lib/components/uploader/uploader.module.mjs +5 -5
  142. package/esm2022/lib/components/v-card/card.component.mjs +4 -4
  143. package/esm2022/lib/components/v-card/card.module.mjs +5 -5
  144. package/esm2022/lib/components/v-modal/modal.component.mjs +4 -4
  145. package/esm2022/lib/components/v-modal/modal.module.mjs +5 -5
  146. package/esm2022/lib/components/version/version.service.mjs +4 -4
  147. package/esm2022/lib/components/view-content/type-converters/booleanTypeConverter.mjs +4 -4
  148. package/esm2022/lib/components/view-content/view-content.module.mjs +5 -5
  149. package/esm2022/lib/components/view-content/view-content.service.mjs +4 -4
  150. package/esm2022/lib/components/webcam/webcam.component.mjs +4 -4
  151. package/esm2022/lib/components/webcam/webcam.module.mjs +5 -5
  152. package/esm2022/lib/components/widget/widget.component.mjs +4 -4
  153. package/esm2022/lib/components/widget/widget.module.mjs +5 -5
  154. package/esm2022/lib/directives/command-click/command-click-directive.module.mjs +5 -5
  155. package/esm2022/lib/directives/command-click/command-click.directive.mjs +4 -4
  156. package/esm2022/lib/directives/digit-only/digit-only.directive.mjs +4 -4
  157. package/esm2022/lib/directives/fit-page/fit-page-directive.module.mjs +5 -5
  158. package/esm2022/lib/directives/fit-page/fit-page.directive.mjs +4 -4
  159. package/esm2022/lib/directives/render-in-page-header/render-in-page-header-directive.module.mjs +5 -5
  160. package/esm2022/lib/directives/render-in-page-header/render-in-page-header.directive.mjs +4 -4
  161. package/esm2022/lib/directives/render-page-header/render-page-header-directive.module.mjs +5 -5
  162. package/esm2022/lib/directives/render-page-header/render-page-header.directive.mjs +4 -4
  163. package/esm2022/lib/directives/render-page-subtitle/render-page-subtitle-directive.module.mjs +5 -5
  164. package/esm2022/lib/directives/render-page-subtitle/render-page-subtitle.directive.mjs +4 -4
  165. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +4 -4
  166. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +4 -4
  167. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +5 -5
  168. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.mjs +5 -5
  169. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.mjs +4 -4
  170. package/esm2022/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button-directive.module.mjs +5 -5
  171. package/esm2022/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.mjs +4 -4
  172. package/esm2022/lib/modules/custom-formio-component/custom-tags.service.mjs +4 -4
  173. package/esm2022/lib/pipes/case-count.pipe.mjs +4 -4
  174. package/esm2022/lib/pipes/components-pipes.module.mjs +5 -5
  175. package/esm2022/lib/pipes/is-array.pipe.mjs +4 -4
  176. package/esm2022/lib/pipes/menu-item-translation.pipe.mjs +4 -4
  177. package/esm2022/lib/services/cds-theme.service.mjs +4 -4
  178. package/esm2022/lib/services/choice-field.service.mjs +4 -4
  179. package/esm2022/lib/services/key-generator.service.mjs +4 -4
  180. package/esm2022/lib/services/key-state.service.mjs +4 -4
  181. package/esm2022/lib/services/modal.service.mjs +27 -7
  182. package/esm2022/lib/services/page-header.service.mjs +4 -4
  183. package/esm2022/lib/services/page-subtitle.service.mjs +4 -4
  184. package/esm2022/lib/services/page-title.service.mjs +4 -4
  185. package/esm2022/lib/services/prompt.service.mjs +4 -4
  186. package/esm2022/lib/services/shell.service.mjs +4 -4
  187. package/esm2022/lib/services/stepper.service.mjs +4 -4
  188. package/esm2022/lib/services/user-interface.service.mjs +4 -4
  189. package/esm2022/lib/services/valtimo-modal.service.mjs +4 -4
  190. package/fesm2022/valtimo-components.mjs +703 -652
  191. package/fesm2022/valtimo-components.mjs.map +1 -1
  192. package/lib/components/form-io/form-io-builder.component.d.ts +8 -5
  193. package/lib/components/form-io/form-io-builder.component.d.ts.map +1 -1
  194. package/lib/components/form-io/form-io-builder.utils.d.ts +3 -0
  195. package/lib/components/form-io/form-io-builder.utils.d.ts.map +1 -0
  196. package/lib/components/form-io/form-io.component.d.ts +5 -3
  197. package/lib/components/form-io/form-io.component.d.ts.map +1 -1
  198. package/lib/services/modal.service.d.ts +5 -1
  199. package/lib/services/modal.service.d.ts.map +1 -1
  200. package/package.json +1 -1
@@ -235,13 +235,13 @@ export class MenuService {
235
235
  getAllObjects() {
236
236
  return this.http.get(`${this.configService.config.valtimoApi.endpointUri}v1/object/management/configuration`);
237
237
  }
238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MenuService, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.HttpClient }, { token: i4.KeycloakService }, { token: i5.NGXLogger }, { token: i1.MenuIncludeService }, { token: i6.PendingChangesService }, { token: i7.Router }, { token: i8.UserProviderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
239
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MenuService, providedIn: 'root' }); }
238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.HttpClient }, { token: i4.KeycloakService }, { token: i5.NGXLogger }, { token: i1.MenuIncludeService }, { token: i6.PendingChangesService }, { token: i7.Router }, { token: i8.UserProviderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
239
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, providedIn: 'root' }); }
240
240
  }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MenuService, decorators: [{
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, decorators: [{
242
242
  type: Injectable,
243
243
  args: [{
244
244
  providedIn: 'root',
245
245
  }]
246
246
  }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.HttpClient }, { type: i4.KeycloakService }, { type: i5.NGXLogger }, { type: i1.MenuIncludeService }, { type: i6.PendingChangesService }, { type: i7.Router }, { type: i8.UserProviderService }] });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQU1uRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU1qRCxNQUFNLE9BQU8sV0FBVztJQVV0QixJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsSUFBZ0IsRUFDaEIsZUFBZ0MsRUFDaEMsTUFBaUIsRUFDakIsa0JBQXNDLEVBQ3RDLHFCQUE0QyxFQUM1QyxNQUFjLEVBQ2QsbUJBQXdDO1FBUnhDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixD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LE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvblN0YXJ0LCBSZXNvbHZlRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2UsIE1lbnVDb25maWcsIE1lbnVJbmNsdWRlU2VydmljZSwgTWVudUl0ZW19IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0RvY3VtZW50RGVmaW5pdGlvbnMsIERvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge0tleWNsb2FrU2VydmljZX0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyBpbmNsdWRlRnVuY3Rpb25PYnNlcnZhYmxlczoge1trZXk6IHN0cmluZ106IE9ic2VydmFibGU8Ym9vbGVhbj59ID0ge307XG5cbiAgcHJpdmF0ZSBfbWVudUl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pO1xuICBwcml2YXRlIG1lbnVDb25maWc6IE1lbnVDb25maWc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlQ2FzZUNvdW50ITogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmFibGVPYmplY3RNYW5hZ2VtZW50ITogYm9vbGVhbjtcblxuICBnZXQgYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleWNsb2FrU2VydmljZTogS2V5Y2xvYWtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51SW5jbHVkZVNlcnZpY2U6IE1lbnVJbmNsdWRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdDaGFuZ2VzU2VydmljZTogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1NlcnZpY2U/LmNvbmZpZztcbiAgICB0aGlzLm1lbnVDb25maWcgPSBjb25maWc/Lm1lbnU7XG4gICAgdGhpcy5kaXNhYmxlQ2FzZUNvdW50ID0gY29uZmlnPy5mZWF0dXJlVG9nZ2xlcz8uZGlzYWJsZUNhc2VDb3VudDtcbiAgICB0aGlzLmVuYWJsZU9iamVjdE1hbmFnZW1lbnQgPSBjb25maWc/LmZlYXR1cmVUb2dnbGVzPy5lbmFibGVPYmplY3RNYW5hZ2VtZW50ID8/IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRSb3V0ZSQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoXG4gICAgICBldmVudCA9PlxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kXG4gICAgKSxcbiAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpPy51cmwpLFxuICAgIGZpbHRlcih1cmwgPT4gISF1cmwpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVySXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RzSXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBGaW5kIG91dCB3aGljaCBtZW51IGl0ZW0gc2VxdWVuY2UgbnVtYmVyIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHRoZSBjbG9zZXN0XG4gIHB1YmxpYyBnZXQgY2xvc2VzdFNlcXVlbmNlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLFxuICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQsXG4gICAgICB0aGlzLmN1cnJlbnRSb3V0ZSQsXG4gICAgICB0aGlzLm1lbnVJdGVtcyQsXG4gICAgXSkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5wZW5kaW5nQ2hhbmdlc1NlcnZpY2UucGVuZGluZ0NoYW5nZXMpLFxuICAgICAgZmlsdGVyKFxuICAgICAgICAoW2Rvc3NpZXJJdGVtc0FwcGVuZGVkLCBvYmplY3RzSXRlbXNBcHBlbmRlZF0pID0+XG4gICAgICAgICAgZG9zc2llckl0ZW1zQXBwZW5kZWQgfHwgb2JqZWN0c0l0ZW1zQXBwZW5kZWRcbiAgICAgICksXG4gICAgICBtYXAoKFtfMSwgXzIsIGN1cnJlbnRSb3V0ZSwgbWVudUl0ZW1zXSkgPT4ge1xuICAgICAgICBsZXQgY2xvc2VzdFNlcXVlbmNlID0gJzAnO1xuICAgICAgICBsZXQgaGlnaGVzdERpZmZlcmVuY2UgPSAwO1xuXG4gICAgICAgIC8vIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0byBjaGVjayBob3cgY2xvc2VseSBlYWNoIGl0ZW0gbWF0Y2hlcyB0byB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgY29uc3QgY2hlY2tJdGVtTWF0Y2ggPSAoXG4gICAgICAgICAgc3RyaW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgc2VxdWVuY2U6IHN0cmluZyxcbiAgICAgICAgICBwYXJlbnRTZXF1ZW5jZT86IHN0cmluZ1xuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAvLyBsZW5ndGggb2YgdGhlIGN1cnJlbnQgZnVsbCB1cmxcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGVVcmxMZW5ndGggPSBjdXJyZW50Um91dGUubGVuZ3RoO1xuICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgY3VycmVudCBmdWxsIHVybCB3aXRoIHRoZSBpdGVtJ3MgdXJsIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlU3Vic3RyYWN0TGVuZ3RoID0gY3VycmVudFJvdXRlLnJlcGxhY2Uoc3RyaW5nVXJsLCAnJykubGVuZ3RoO1xuICAgICAgICAgIC8vIHRoZSBhbW91bnQgb2YgY2hhcmFjdGVycyB0aGF0IGNvdWxkIGJlIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnRSb3V0ZVVybExlbmd0aCAtIGN1cnJlbnRSb3V0ZVN1YnN0cmFjdExlbmd0aDtcblxuICAgICAgICAgIC8vIHRoZSBsYXJnZXIgdGhlIGFtb3VudCBvZiBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgc3Vic3RyYWN0ZWQsIHRoZSBtb3JlIGNsb3NlbHkgdGhlIG1lbnUgaXRlbSB1cmwgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgICBpZiAoZGlmZmVyZW5jZSA+IGhpZ2hlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICBoaWdoZXN0RGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gICAgICAgICAgICBjbG9zZXN0U2VxdWVuY2UgPSBzZXF1ZW5jZTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudFNlcXVlbmNlKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KHBhcmVudFNlcXVlbmNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2hlY2sgaG93IGNsb3NlbHkgZWFjaCBtZW51IGl0ZW0gKGFuZCBjaGlsZCBtZW51IGl0ZW0pIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHVzaW5nIGEgcmVjdXJzaXZlIGZ1bmN0aW9uXG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKGl0ZW0ubGluaz8uam9pbignJykgfHwgJycsIGAke2l0ZW0uc2VxdWVuY2V9YCk7XG5cbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkSXRlbSA9PiB7XG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkSXRlbS5saW5rKSkge1xuICAgICAgICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKFxuICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShpdGVtLmxpbmspXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLml0ZW0ubGluaywgLi4uY2hpbGRJdGVtLmxpbmtdLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAgIDogY2hpbGRJdGVtLmxpbmsuam9pbignJyksXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfSR7Y2hpbGRJdGVtLnNlcXVlbmNlfWAsXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHJldHVybnMgdGhlIGNsb3Nlc3Qgc2VxdWVuY2UgbnVtYmVyIChlYWNoIG1lbnUgaXRlbSBoYXMgYSBzZXF1ZW5jZSBudW1iZXIpXG5cbiAgICAgICAgcmV0dXJuIGNsb3Nlc3RTZXF1ZW5jZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVudUl0ZW1zJCgpOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVudSBpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmdldFVzZXJSb2xlcyh0cnVlKTtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5uZXh0KHRoaXMubG9hZE1lbnVJdGVtcyhyb2xlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTWVudUl0ZW1zKHVzZXJSb2xlczogQXJyYXk8c3RyaW5nPik6IE1lbnVJdGVtW10ge1xuICAgIGxldCBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgICB0aGlzLm1lbnVDb25maWcubWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtOiBNZW51SXRlbSkgPT4ge1xuICAgICAgaWYgKG1lbnVJdGVtLmluY2x1ZGVGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZUZ1bmN0aW9uT2JzZXJ2YWJsZXNbbWVudUl0ZW0udGl0bGVdID1cbiAgICAgICAgICB0aGlzLm1lbnVJbmNsdWRlU2VydmljZS5nZXRJbmNsdWRlRnVuY3Rpb24obWVudUl0ZW0uaW5jbHVkZUZ1bmN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgbWVudUl0ZW0uc2hvdyA9IHRydWU7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSB0b3AgbGV2ZWwgbWVudSBpdGVtIHNwZWNpZmllcyByb2xlcyBpdCByZXF1aXJlcy4gSWYgc28sIGNoZWNrIGlmIHRoZSB1c2VyIHJvbGVzIGNvbnRhaW4gYXQgbGVhc3Qgb25lIG9mIHRoZXNlIHJvbGVzXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkobWVudUl0ZW0/LnJvbGVzKVxuICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gbWVudUl0ZW0ucm9sZXMuaW5jbHVkZXModXNlclJvbGUpKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4uIElmIHNvLCBjaGVjayBpZiBjaGlsZHJlbiBzcGVjaWZ5IHJlcXVpcmVkIHJvbGVzLiBJZiBzbywgY2hlY2sgaWYgdGhlIHVzZXIgcm9sZXMgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgdGhlc2Ugcm9sZXNcbiAgICAgICAgY29uc3QgZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVuID1cbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4gJiZcbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4uZmlsdGVyKGNoaWxkTWVudUl0ZW0gPT5cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRNZW51SXRlbT8ucm9sZXMpXG4gICAgICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gY2hpbGRNZW51SXRlbS5yb2xlcy5pbmNsdWRlcyh1c2VyUm9sZSkpXG4gICAgICAgICAgICAgIDogdHJ1ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gaWYgdGhlIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4sIHNldCB0aGUgbWVudSBpdGVtIGNoaWxkcmVuIHRvIGZpbHRlcmVkIG1lbnUgaXRlbSBjaGlsZHJlblxuICAgICAgICBjb25zdCBtZW51SXRlbVdpdGhGaWx0ZXJlZENoaWxkcmVuOiBNZW51SXRlbSA9IHtcbiAgICAgICAgICAuLi5tZW51SXRlbSxcbiAgICAgICAgICAuLi4obWVudUl0ZW0/LmNoaWxkcmVuICYmIHtjaGlsZHJlbjogZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVufSksXG4gICAgICAgIH07XG5cbiAgICAgICAgbWVudUl0ZW1zLnB1c2gobWVudUl0ZW1XaXRoRmlsdGVyZWRDaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbWVudUl0ZW1zID0gdGhpcy5zb3J0TWVudUl0ZW1zKG1lbnVJdGVtcyk7XG4gICAgdGhpcy5hcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4gKG1lbnVJdGVtcyA9IHRoaXMuYXBwbHlNZW51Um9sZVNlY3VyaXR5KHZhbHVlKSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlT2JqZWN0TWFuYWdlbWVudCkge1xuICAgICAgdGhpcy5hcHBlbmRPYmplY3RzU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgICB2YWx1ZSA9PiAobWVudUl0ZW1zID0gdGhpcy5hcHBseU1lbnVSb2xlU2VjdXJpdHkodmFsdWUpKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgc29ydE1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gbWVudUl0ZW1zLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcycpO1xuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0QWxsRGVmaW5pdGlvbnMoKS5zdWJzY3JpYmUoZGVmaW5pdGlvbnMgPT4ge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAuLi5kZWZpbml0aW9ucy5jb250ZW50Lm1hcChkZWZpbml0aW9uID0+XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRDYXNlU2V0dGluZ3MoZGVmaW5pdGlvbj8uaWQ/Lm5hbWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoYWxsQ2FzZVNldHRpbmdzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5Eb2N1bWVudENvdW50TWFwID1cbiAgICAgICAgICAgICAgIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJiB0aGlzLmdldE9wZW5Eb2N1bWVudENvdW50TWFwKGRlZmluaXRpb25zKTtcblxuICAgICAgICAgICAgY29uc3QgZG9zc2llck1lbnVJdGVtczogTWVudUl0ZW1bXSA9IGRlZmluaXRpb25zLmNvbnRlbnQubWFwKChkZWZpbml0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjYXNlU2V0dGluZ3MgPSBhbGxDYXNlU2V0dGluZ3M/LmZpbmQoXG4gICAgICAgICAgICAgICAgc2V0dGluZyA9PiBzZXR0aW5nLm5hbWUgPT09IGRlZmluaXRpb24uaWQubmFtZVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGluazogWycvZG9zc2llcnMvJyArIGRlZmluaXRpb24uaWQubmFtZV0sXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRlZmluaXRpb24uc2NoZW1hLnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi4oIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJlxuICAgICAgICAgICAgICAgICAgY2FzZVNldHRpbmdzPy5jYW5IYXZlQXNzaWduZWUgJiYge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCQ6IG9wZW5Eb2N1bWVudENvdW50TWFwLmdldChkZWZpbml0aW9uLmlkLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0gYXMgTWVudUl0ZW07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBkb3NzaWVyTWVudUl0ZW1zJywgZG9zc2llck1lbnVJdGVtcyk7XG4gICAgICAgICAgICBjb25zdCBtZW51SXRlbUluZGV4ID0gbWVudUl0ZW1zLmZpbmRJbmRleCgoe3RpdGxlfSkgPT4gdGl0bGUgPT09ICdEb3NzaWVycycpO1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRvc3NpZXJNZW51ID0gbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdO1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgZG9zc2llck1lbnUnLCBkb3NzaWVyTWVudSk7XG4gICAgICAgICAgICAgIGRvc3NpZXJNZW51LmNoaWxkcmVuID0gZG9zc2llck1lbnVJdGVtcztcbiAgICAgICAgICAgICAgbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdID0gZG9zc2llck1lbnU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobWVudUl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE9iamVjdHNTdWJNZW51SXRlbXMobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FwcGVuZE9iamVjdE1hbmFnZW1lbnRTdWJNZW51SXRlbXMnKTtcbiAgICAgIHRoaXMuZ2V0QWxsT2JqZWN0cygpLnN1YnNjcmliZShvYmplY3RzID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZU9iamVjdHMgPSBvYmplY3RzLmZpbHRlcihvYmplY3QgPT4gb2JqZWN0Py5zaG93SW5EYXRhTWVudSAhPT0gZmFsc2UpO1xuICAgICAgICBpZiAodmlzaWJsZU9iamVjdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBvYmplY3RzTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gdmlzaWJsZU9iamVjdHMubWFwKFxuICAgICAgICAgICAgKG9iamVjdCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgbGluazogWycvb2JqZWN0cy8nICsgb2JqZWN0LmlkXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogb2JqZWN0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgfSkgYXMgTWVudUl0ZW1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBvYmplY3RzTWVudUl0ZW1zJywgb2JqZWN0c01lbnVJdGVtcyk7XG4gICAgICAgICAgY29uc3QgbWVudUl0ZW1JbmRleCA9IG1lbnVJdGVtcy5maW5kSW5kZXgoKHt0aXRsZX0pID0+IHRpdGxlID09PSAnT2JqZWN0cycpO1xuICAgICAgICAgIGlmIChtZW51SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgb2JqZWN0c01lbnUgPSBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF07XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgb2JqZWN0c01lbnUnLCBvYmplY3RzTWVudSk7XG4gICAgICAgICAgICBvYmplY3RzTWVudS5jaGlsZHJlbiA9IG9iamVjdHNNZW51SXRlbXM7XG4gICAgICAgICAgICBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF0gPSBvYmplY3RzTWVudTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG1lbnVJdGVtcyk7XG4gICAgICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kT2JqZWN0c1N1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkRvY3VtZW50Q291bnRNYXAoZGVmaW5pdGlvbnM6IERvY3VtZW50RGVmaW5pdGlvbnMpOiBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+IHtcbiAgICBjb25zdCBjb3VudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+KCk7XG4gICAgZGVmaW5pdGlvbnMuY29udGVudC5mb3JFYWNoKGRlZmluaXRpb24gPT5cbiAgICAgIGNvdW50TWFwLnNldChkZWZpbml0aW9uLmlkLm5hbWUsIG5ldyBTdWJqZWN0PG51bWJlcj4oKSlcbiAgICApO1xuXG4gICAgdGltZXIoMCwgNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldE9wZW5Eb2N1bWVudENvdW50KCkuc3Vic2NyaWJlKG9wZW5Eb2N1bWVudENvdW50TGlzdCA9PiB7XG4gICAgICAgIG9wZW5Eb2N1bWVudENvdW50TGlzdC5mb3JFYWNoKG9wZW5Eb2N1bWVudENvdW50ID0+IHtcbiAgICAgICAgICBjb25zdCBtYXBFbnRyeSA9IGNvdW50TWFwLmdldChvcGVuRG9jdW1lbnRDb3VudC5kb2N1bWVudERlZmluaXRpb25OYW1lKTtcblxuICAgICAgICAgIGlmIChtYXBFbnRyeSkgbWFwRW50cnkubmV4dChvcGVuRG9jdW1lbnRDb3VudC5vcGVuRG9jdW1lbnRDb3VudCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50TWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1lbnVSb2xlU2VjdXJpdHkobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogTWVudUl0ZW1bXSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldFVzZXJTdWJqZWN0KCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYgKHVzZXIucm9sZXMgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwbHlNZW51Um9sZVNlY3VyaXR5Jyk7XG4gICAgICAgIGNvbnN0IHVzZXJSb2xlcyA9IHVzZXIucm9sZXM7XG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKChtZW51SXRlbTogTWVudUl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBhY2Nlc3MgPSB0aGlzLmRldGVybWluZVJvbGVBY2Nlc3MobWVudUl0ZW0sIHVzZXJSb2xlcyk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IGNoZWNrIHJvbGUgYWNjZXNzJywgbWVudUl0ZW0ucm9sZXMsIGFjY2Vzcyk7XG4gICAgICAgICAgaWYgKG1lbnVJdGVtLnNob3cgIT09IGFjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IENoYW5nZSBhY2Nlc3MnLCBtZW51SXRlbSwgYWNjZXNzKTtcbiAgICAgICAgICAgIG1lbnVJdGVtLnNob3cgPSBhY2Nlc3M7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbWVudUl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVSb2xlQWNjZXNzKG1lbnVJdGVtOiBNZW51SXRlbSwgcm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFtZW51SXRlbS5yb2xlcyB8fCBtZW51SXRlbS5yb2xlcy5zb21lKHJvbGUgPT4gcm9sZXMuaW5jbHVkZXMocm9sZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxPYmplY3RzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnZhbHRpbW9BcGkuZW5kcG9pbnRVcml9djEvb2JqZWN0L21hbmFnZW1lbnQvY29uZmlndXJhdGlvbmBcbiAgICApO1xuICB9XG59XG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQU1uRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU1qRCxNQUFNLE9BQU8sV0FBVztJQVV0QixJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsSUFBZ0IsRUFDaEIsZUFBZ0MsRUFDaEMsTUFBaUIsRUFDakIsa0JBQXNDLEVBQ3RDLHFCQUE0QyxFQUM1QyxNQUFjLEVBQ2QsbUJBQXdDO1FBUnhDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixD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LE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvblN0YXJ0LCBSZXNvbHZlRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2UsIE1lbnVDb25maWcsIE1lbnVJbmNsdWRlU2VydmljZSwgTWVudUl0ZW19IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0RvY3VtZW50RGVmaW5pdGlvbnMsIERvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge0tleWNsb2FrU2VydmljZX0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyBpbmNsdWRlRnVuY3Rpb25PYnNlcnZhYmxlczoge1trZXk6IHN0cmluZ106IE9ic2VydmFibGU8Ym9vbGVhbj59ID0ge307XG5cbiAgcHJpdmF0ZSBfbWVudUl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pO1xuICBwcml2YXRlIG1lbnVDb25maWc6IE1lbnVDb25maWc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlQ2FzZUNvdW50ITogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmFibGVPYmplY3RNYW5hZ2VtZW50ITogYm9vbGVhbjtcblxuICBnZXQgYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleWNsb2FrU2VydmljZTogS2V5Y2xvYWtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51SW5jbHVkZVNlcnZpY2U6IE1lbnVJbmNsdWRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdDaGFuZ2VzU2VydmljZTogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1NlcnZpY2U/LmNvbmZpZztcbiAgICB0aGlzLm1lbnVDb25maWcgPSBjb25maWc/Lm1lbnU7XG4gICAgdGhpcy5kaXNhYmxlQ2FzZUNvdW50ID0gY29uZmlnPy5mZWF0dXJlVG9nZ2xlcz8uZGlzYWJsZUNhc2VDb3VudDtcbiAgICB0aGlzLmVuYWJsZU9iamVjdE1hbmFnZW1lbnQgPSBjb25maWc/LmZlYXR1cmVUb2dnbGVzPy5lbmFibGVPYmplY3RNYW5hZ2VtZW50ID8/IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRSb3V0ZSQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoXG4gICAgICBldmVudCA9PlxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kXG4gICAgKSxcbiAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpPy51cmwpLFxuICAgIGZpbHRlcih1cmwgPT4gISF1cmwpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVySXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RzSXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBGaW5kIG91dCB3aGljaCBtZW51IGl0ZW0gc2VxdWVuY2UgbnVtYmVyIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHRoZSBjbG9zZXN0XG4gIHB1YmxpYyBnZXQgY2xvc2VzdFNlcXVlbmNlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLFxuICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQsXG4gICAgICB0aGlzLmN1cnJlbnRSb3V0ZSQsXG4gICAgICB0aGlzLm1lbnVJdGVtcyQsXG4gICAgXSkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5wZW5kaW5nQ2hhbmdlc1NlcnZpY2UucGVuZGluZ0NoYW5nZXMpLFxuICAgICAgZmlsdGVyKFxuICAgICAgICAoW2Rvc3NpZXJJdGVtc0FwcGVuZGVkLCBvYmplY3RzSXRlbXNBcHBlbmRlZF0pID0+XG4gICAgICAgICAgZG9zc2llckl0ZW1zQXBwZW5kZWQgfHwgb2JqZWN0c0l0ZW1zQXBwZW5kZWRcbiAgICAgICksXG4gICAgICBtYXAoKFtfMSwgXzIsIGN1cnJlbnRSb3V0ZSwgbWVudUl0ZW1zXSkgPT4ge1xuICAgICAgICBsZXQgY2xvc2VzdFNlcXVlbmNlID0gJzAnO1xuICAgICAgICBsZXQgaGlnaGVzdERpZmZlcmVuY2UgPSAwO1xuXG4gICAgICAgIC8vIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0byBjaGVjayBob3cgY2xvc2VseSBlYWNoIGl0ZW0gbWF0Y2hlcyB0byB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgY29uc3QgY2hlY2tJdGVtTWF0Y2ggPSAoXG4gICAgICAgICAgc3RyaW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgc2VxdWVuY2U6IHN0cmluZyxcbiAgICAgICAgICBwYXJlbnRTZXF1ZW5jZT86IHN0cmluZ1xuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAvLyBsZW5ndGggb2YgdGhlIGN1cnJlbnQgZnVsbCB1cmxcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGVVcmxMZW5ndGggPSBjdXJyZW50Um91dGUubGVuZ3RoO1xuICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgY3VycmVudCBmdWxsIHVybCB3aXRoIHRoZSBpdGVtJ3MgdXJsIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlU3Vic3RyYWN0TGVuZ3RoID0gY3VycmVudFJvdXRlLnJlcGxhY2Uoc3RyaW5nVXJsLCAnJykubGVuZ3RoO1xuICAgICAgICAgIC8vIHRoZSBhbW91bnQgb2YgY2hhcmFjdGVycyB0aGF0IGNvdWxkIGJlIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnRSb3V0ZVVybExlbmd0aCAtIGN1cnJlbnRSb3V0ZVN1YnN0cmFjdExlbmd0aDtcblxuICAgICAgICAgIC8vIHRoZSBsYXJnZXIgdGhlIGFtb3VudCBvZiBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgc3Vic3RyYWN0ZWQsIHRoZSBtb3JlIGNsb3NlbHkgdGhlIG1lbnUgaXRlbSB1cmwgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgICBpZiAoZGlmZmVyZW5jZSA+IGhpZ2hlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICBoaWdoZXN0RGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gICAgICAgICAgICBjbG9zZXN0U2VxdWVuY2UgPSBzZXF1ZW5jZTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudFNlcXVlbmNlKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KHBhcmVudFNlcXVlbmNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2hlY2sgaG93IGNsb3NlbHkgZWFjaCBtZW51IGl0ZW0gKGFuZCBjaGlsZCBtZW51IGl0ZW0pIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHVzaW5nIGEgcmVjdXJzaXZlIGZ1bmN0aW9uXG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKGl0ZW0ubGluaz8uam9pbignJykgfHwgJycsIGAke2l0ZW0uc2VxdWVuY2V9YCk7XG5cbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkSXRlbSA9PiB7XG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkSXRlbS5saW5rKSkge1xuICAgICAgICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKFxuICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShpdGVtLmxpbmspXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLml0ZW0ubGluaywgLi4uY2hpbGRJdGVtLmxpbmtdLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAgIDogY2hpbGRJdGVtLmxpbmsuam9pbignJyksXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfSR7Y2hpbGRJdGVtLnNlcXVlbmNlfWAsXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHJldHVybnMgdGhlIGNsb3Nlc3Qgc2VxdWVuY2UgbnVtYmVyIChlYWNoIG1lbnUgaXRlbSBoYXMgYSBzZXF1ZW5jZSBudW1iZXIpXG5cbiAgICAgICAgcmV0dXJuIGNsb3Nlc3RTZXF1ZW5jZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVudUl0ZW1zJCgpOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVudSBpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmdldFVzZXJSb2xlcyh0cnVlKTtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5uZXh0KHRoaXMubG9hZE1lbnVJdGVtcyhyb2xlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTWVudUl0ZW1zKHVzZXJSb2xlczogQXJyYXk8c3RyaW5nPik6IE1lbnVJdGVtW10ge1xuICAgIGxldCBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgICB0aGlzLm1lbnVDb25maWcubWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtOiBNZW51SXRlbSkgPT4ge1xuICAgICAgaWYgKG1lbnVJdGVtLmluY2x1ZGVGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZUZ1bmN0aW9uT2JzZXJ2YWJsZXNbbWVudUl0ZW0udGl0bGVdID1cbiAgICAgICAgICB0aGlzLm1lbnVJbmNsdWRlU2VydmljZS5nZXRJbmNsdWRlRnVuY3Rpb24obWVudUl0ZW0uaW5jbHVkZUZ1bmN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgbWVudUl0ZW0uc2hvdyA9IHRydWU7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSB0b3AgbGV2ZWwgbWVudSBpdGVtIHNwZWNpZmllcyByb2xlcyBpdCByZXF1aXJlcy4gSWYgc28sIGNoZWNrIGlmIHRoZSB1c2VyIHJvbGVzIGNvbnRhaW4gYXQgbGVhc3Qgb25lIG9mIHRoZXNlIHJvbGVzXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkobWVudUl0ZW0/LnJvbGVzKVxuICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gbWVudUl0ZW0ucm9sZXMuaW5jbHVkZXModXNlclJvbGUpKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4uIElmIHNvLCBjaGVjayBpZiBjaGlsZHJlbiBzcGVjaWZ5IHJlcXVpcmVkIHJvbGVzLiBJZiBzbywgY2hlY2sgaWYgdGhlIHVzZXIgcm9sZXMgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgdGhlc2Ugcm9sZXNcbiAgICAgICAgY29uc3QgZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVuID1cbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4gJiZcbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4uZmlsdGVyKGNoaWxkTWVudUl0ZW0gPT5cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRNZW51SXRlbT8ucm9sZXMpXG4gICAgICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gY2hpbGRNZW51SXRlbS5yb2xlcy5pbmNsdWRlcyh1c2VyUm9sZSkpXG4gICAgICAgICAgICAgIDogdHJ1ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gaWYgdGhlIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4sIHNldCB0aGUgbWVudSBpdGVtIGNoaWxkcmVuIHRvIGZpbHRlcmVkIG1lbnUgaXRlbSBjaGlsZHJlblxuICAgICAgICBjb25zdCBtZW51SXRlbVdpdGhGaWx0ZXJlZENoaWxkcmVuOiBNZW51SXRlbSA9IHtcbiAgICAgICAgICAuLi5tZW51SXRlbSxcbiAgICAgICAgICAuLi4obWVudUl0ZW0/LmNoaWxkcmVuICYmIHtjaGlsZHJlbjogZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVufSksXG4gICAgICAgIH07XG5cbiAgICAgICAgbWVudUl0ZW1zLnB1c2gobWVudUl0ZW1XaXRoRmlsdGVyZWRDaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbWVudUl0ZW1zID0gdGhpcy5zb3J0TWVudUl0ZW1zKG1lbnVJdGVtcyk7XG4gICAgdGhpcy5hcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4gKG1lbnVJdGVtcyA9IHRoaXMuYXBwbHlNZW51Um9sZVNlY3VyaXR5KHZhbHVlKSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlT2JqZWN0TWFuYWdlbWVudCkge1xuICAgICAgdGhpcy5hcHBlbmRPYmplY3RzU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgICB2YWx1ZSA9PiAobWVudUl0ZW1zID0gdGhpcy5hcHBseU1lbnVSb2xlU2VjdXJpdHkodmFsdWUpKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgc29ydE1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gbWVudUl0ZW1zLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcycpO1xuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0QWxsRGVmaW5pdGlvbnMoKS5zdWJzY3JpYmUoZGVmaW5pdGlvbnMgPT4ge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAuLi5kZWZpbml0aW9ucy5jb250ZW50Lm1hcChkZWZpbml0aW9uID0+XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRDYXNlU2V0dGluZ3MoZGVmaW5pdGlvbj8uaWQ/Lm5hbWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoYWxsQ2FzZVNldHRpbmdzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5Eb2N1bWVudENvdW50TWFwID1cbiAgICAgICAgICAgICAgIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJiB0aGlzLmdldE9wZW5Eb2N1bWVudENvdW50TWFwKGRlZmluaXRpb25zKTtcblxuICAgICAgICAgICAgY29uc3QgZG9zc2llck1lbnVJdGVtczogTWVudUl0ZW1bXSA9IGRlZmluaXRpb25zLmNvbnRlbnQubWFwKChkZWZpbml0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjYXNlU2V0dGluZ3MgPSBhbGxDYXNlU2V0dGluZ3M/LmZpbmQoXG4gICAgICAgICAgICAgICAgc2V0dGluZyA9PiBzZXR0aW5nLm5hbWUgPT09IGRlZmluaXRpb24uaWQubmFtZVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGluazogWycvZG9zc2llcnMvJyArIGRlZmluaXRpb24uaWQubmFtZV0sXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRlZmluaXRpb24uc2NoZW1hLnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi4oIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJlxuICAgICAgICAgICAgICAgICAgY2FzZVNldHRpbmdzPy5jYW5IYXZlQXNzaWduZWUgJiYge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCQ6IG9wZW5Eb2N1bWVudENvdW50TWFwLmdldChkZWZpbml0aW9uLmlkLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0gYXMgTWVudUl0ZW07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBkb3NzaWVyTWVudUl0ZW1zJywgZG9zc2llck1lbnVJdGVtcyk7XG4gICAgICAgICAgICBjb25zdCBtZW51SXRlbUluZGV4ID0gbWVudUl0ZW1zLmZpbmRJbmRleCgoe3RpdGxlfSkgPT4gdGl0bGUgPT09ICdEb3NzaWVycycpO1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRvc3NpZXJNZW51ID0gbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdO1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgZG9zc2llck1lbnUnLCBkb3NzaWVyTWVudSk7XG4gICAgICAgICAgICAgIGRvc3NpZXJNZW51LmNoaWxkcmVuID0gZG9zc2llck1lbnVJdGVtcztcbiAgICAgICAgICAgICAgbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdID0gZG9zc2llck1lbnU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobWVudUl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE9iamVjdHNTdWJNZW51SXRlbXMobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FwcGVuZE9iamVjdE1hbmFnZW1lbnRTdWJNZW51SXRlbXMnKTtcbiAgICAgIHRoaXMuZ2V0QWxsT2JqZWN0cygpLnN1YnNjcmliZShvYmplY3RzID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZU9iamVjdHMgPSBvYmplY3RzLmZpbHRlcihvYmplY3QgPT4gb2JqZWN0Py5zaG93SW5EYXRhTWVudSAhPT0gZmFsc2UpO1xuICAgICAgICBpZiAodmlzaWJsZU9iamVjdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBvYmplY3RzTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gdmlzaWJsZU9iamVjdHMubWFwKFxuICAgICAgICAgICAgKG9iamVjdCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgbGluazogWycvb2JqZWN0cy8nICsgb2JqZWN0LmlkXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogb2JqZWN0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgfSkgYXMgTWVudUl0ZW1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBvYmplY3RzTWVudUl0ZW1zJywgb2JqZWN0c01lbnVJdGVtcyk7XG4gICAgICAgICAgY29uc3QgbWVudUl0ZW1JbmRleCA9IG1lbnVJdGVtcy5maW5kSW5kZXgoKHt0aXRsZX0pID0+IHRpdGxlID09PSAnT2JqZWN0cycpO1xuICAgICAgICAgIGlmIChtZW51SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgb2JqZWN0c01lbnUgPSBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF07XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgb2JqZWN0c01lbnUnLCBvYmplY3RzTWVudSk7XG4gICAgICAgICAgICBvYmplY3RzTWVudS5jaGlsZHJlbiA9IG9iamVjdHNNZW51SXRlbXM7XG4gICAgICAgICAgICBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF0gPSBvYmplY3RzTWVudTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG1lbnVJdGVtcyk7XG4gICAgICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kT2JqZWN0c1N1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkRvY3VtZW50Q291bnRNYXAoZGVmaW5pdGlvbnM6IERvY3VtZW50RGVmaW5pdGlvbnMpOiBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+IHtcbiAgICBjb25zdCBjb3VudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+KCk7XG4gICAgZGVmaW5pdGlvbnMuY29udGVudC5mb3JFYWNoKGRlZmluaXRpb24gPT5cbiAgICAgIGNvdW50TWFwLnNldChkZWZpbml0aW9uLmlkLm5hbWUsIG5ldyBTdWJqZWN0PG51bWJlcj4oKSlcbiAgICApO1xuXG4gICAgdGltZXIoMCwgNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldE9wZW5Eb2N1bWVudENvdW50KCkuc3Vic2NyaWJlKG9wZW5Eb2N1bWVudENvdW50TGlzdCA9PiB7XG4gICAgICAgIG9wZW5Eb2N1bWVudENvdW50TGlzdC5mb3JFYWNoKG9wZW5Eb2N1bWVudENvdW50ID0+IHtcbiAgICAgICAgICBjb25zdCBtYXBFbnRyeSA9IGNvdW50TWFwLmdldChvcGVuRG9jdW1lbnRDb3VudC5kb2N1bWVudERlZmluaXRpb25OYW1lKTtcblxuICAgICAgICAgIGlmIChtYXBFbnRyeSkgbWFwRW50cnkubmV4dChvcGVuRG9jdW1lbnRDb3VudC5vcGVuRG9jdW1lbnRDb3VudCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50TWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1lbnVSb2xlU2VjdXJpdHkobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogTWVudUl0ZW1bXSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldFVzZXJTdWJqZWN0KCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYgKHVzZXIucm9sZXMgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwbHlNZW51Um9sZVNlY3VyaXR5Jyk7XG4gICAgICAgIGNvbnN0IHVzZXJSb2xlcyA9IHVzZXIucm9sZXM7XG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKChtZW51SXRlbTogTWVudUl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBhY2Nlc3MgPSB0aGlzLmRldGVybWluZVJvbGVBY2Nlc3MobWVudUl0ZW0sIHVzZXJSb2xlcyk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IGNoZWNrIHJvbGUgYWNjZXNzJywgbWVudUl0ZW0ucm9sZXMsIGFjY2Vzcyk7XG4gICAgICAgICAgaWYgKG1lbnVJdGVtLnNob3cgIT09IGFjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IENoYW5nZSBhY2Nlc3MnLCBtZW51SXRlbSwgYWNjZXNzKTtcbiAgICAgICAgICAgIG1lbnVJdGVtLnNob3cgPSBhY2Nlc3M7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbWVudUl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVSb2xlQWNjZXNzKG1lbnVJdGVtOiBNZW51SXRlbSwgcm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFtZW51SXRlbS5yb2xlcyB8fCBtZW51SXRlbS5yb2xlcy5zb21lKHJvbGUgPT4gcm9sZXMuaW5jbHVkZXMocm9sZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxPYmplY3RzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnZhbHRpbW9BcGkuZW5kcG9pbnRVcml9djEvb2JqZWN0L21hbmFnZW1lbnQvY29uZmlndXJhdGlvbmBcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -62,10 +62,10 @@ export class ModalComponent {
62
62
  const config = { attributes: true, childList: false, characterData: false };
63
63
  this.observer.observe(this.scrollModal.nativeElement, config);
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ModalComponent, selector: "valtimo-modal", inputs: { elementId: "elementId", title: "title", subtitle: "subtitle", templateBelowSubtitle: "templateBelowSubtitle", showFooter: "showFooter" }, viewQueries: [{ propertyName: "scrollModal", first: true, predicate: ["scrollModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModalComponent, selector: "valtimo-modal", inputs: { elementId: "elementId", title: "title", subtitle: "subtitle", templateBelowSubtitle: "templateBelowSubtitle", showFooter: "showFooter" }, viewQueries: [{ propertyName: "scrollModal", first: true, predicate: ["scrollModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ModalComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'valtimo-modal', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
71
71
  }], ctorParameters: () => [{ type: i1.ValtimoModalService }], propDecorators: { elementId: [{
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
82
82
  type: ViewChild,
83
83
  args: ['scrollModal']
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBNkIsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBYnJELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTUksQ0FBQztJQUVsRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxRQUFRLEVBQUUsYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN4QyxNQUFNLFlBQVksR0FBSSxRQUFRLEVBQUUsTUFBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQTFEVSxjQUFjO2tHQUFkLGNBQWMscVRDckMzQiw2dERBMENBOzsyRkRMYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGVBQWU7d0ZBS2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsdGltb01vZGFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsdGltby1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciAkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBzdWJ0aXRsZSA9ICcnO1xuICBASW5wdXQoKSB0ZW1wbGF0ZUJlbG93U3VidGl0bGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxNb2RhbCcpIHNjcm9sbE1vZGFsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICByZWFkb25seSBtb2RhbFNob3dpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvYnNlcnZlciE6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgJChgIyR7dGhpcy5lbGVtZW50SWR9YCkubW9kYWwoe3Nob3c6IGZhbHNlfSk7XG4gICAgdGhpcy53YXRjaEZvckNsYXNzQ2hhbmdlcygpO1xuICB9XG5cbiAgc2hvdygpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnc2hvdycpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnaGlkZScpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2Nyb2xsVG9Ub3AkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5zY3JvbGxUbygwLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hGb3JDbGFzc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnM/LmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24/LmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICBjb25zdCBtb2RhbFNob3dpbmcgPSAobXV0YXRpb24/LnRhcmdldCBhcyBhbnkpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdzaG93Jyk7XG4gICAgICAgICAgdGhpcy5tb2RhbFNob3dpbmckLm5leHQobW9kYWxTaG93aW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29uZmlnID0ge2F0dHJpYnV0ZXM6IHRydWUsIGNoaWxkTGlzdDogZmFsc2UsIGNoYXJhY3RlckRhdGE6IGZhbHNlfTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIGN1c3RvbS13aWR0aFwiIFtpZF09XCJlbGVtZW50SWRcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiAjc2Nyb2xsTW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBtb2RhbC1oZWFkZXItY29sb3JlZCBjb2xvcmVkLWhlYWRlci1ncmV5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgICAgIDxoNCBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgICA8aDUgY2xhc3M9XCJzdWJ0aXRsZS10ZXh0XCI+e3sgc3VidGl0bGUgfX08L2g1PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvZHldXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBNkIsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBYnJELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTUksQ0FBQztJQUVsRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxRQUFRLEVBQUUsYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN4QyxNQUFNLFlBQVksR0FBSSxRQUFRLEVBQUUsTUFBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQTFEVSxjQUFjO21HQUFkLGNBQWMscVRDckMzQiw2dERBMENBOzs0RkRMYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGVBQWU7d0ZBS2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsdGltb01vZGFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsdGltby1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciAkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBzdWJ0aXRsZSA9ICcnO1xuICBASW5wdXQoKSB0ZW1wbGF0ZUJlbG93U3VidGl0bGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxNb2RhbCcpIHNjcm9sbE1vZGFsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICByZWFkb25seSBtb2RhbFNob3dpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvYnNlcnZlciE6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgJChgIyR7dGhpcy5lbGVtZW50SWR9YCkubW9kYWwoe3Nob3c6IGZhbHNlfSk7XG4gICAgdGhpcy53YXRjaEZvckNsYXNzQ2hhbmdlcygpO1xuICB9XG5cbiAgc2hvdygpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnc2hvdycpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnaGlkZScpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2Nyb2xsVG9Ub3AkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5zY3JvbGxUbygwLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hGb3JDbGFzc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnM/LmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24/LmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICBjb25zdCBtb2RhbFNob3dpbmcgPSAobXV0YXRpb24/LnRhcmdldCBhcyBhbnkpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdzaG93Jyk7XG4gICAgICAgICAgdGhpcy5tb2RhbFNob3dpbmckLm5leHQobW9kYWxTaG93aW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29uZmlnID0ge2F0dHJpYnV0ZXM6IHRydWUsIGNoaWxkTGlzdDogZmFsc2UsIGNoYXJhY3RlckRhdGE6IGZhbHNlfTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIGN1c3RvbS13aWR0aFwiIFtpZF09XCJlbGVtZW50SWRcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiAjc2Nyb2xsTW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBtb2RhbC1oZWFkZXItY29sb3JlZCBjb2xvcmVkLWhlYWRlci1ncmV5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgICAgIDxoNCBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgICA8aDUgY2xhc3M9XCJzdWJ0aXRsZS10ZXh0XCI+e3sgc3VidGl0bGUgfX08L2g1PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvZHldXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -18,11 +18,11 @@ import { CommonModule } from '@angular/common';
18
18
  import { ModalComponent } from './modal.component';
19
19
  import * as i0 from "@angular/core";
20
20
  export class ModalModule {
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule], exports: [ModalComponent] }); }
23
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ModalModule, imports: [CommonModule] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule], exports: [ModalComponent] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, imports: [CommonModule] }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ModalModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [ModalComponent],
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
30
30
  exports: [ModalComponent],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT2pELE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxpQkFKUCxjQUFjLGFBQ25CLFlBQVksYUFDWixjQUFjOytHQUViLFdBQVcsWUFIWixZQUFZOzsyRkFHWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW01vZGFsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUge31cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT2pELE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxpQkFKUCxjQUFjLGFBQ25CLFlBQVksYUFDWixjQUFjO2dIQUViLFdBQVcsWUFIWixZQUFZOzs0RkFHWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW01vZGFsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUge31cbiJdfQ==
@@ -184,10 +184,10 @@ export class CarbonMultiInputComponent {
184
184
  getArrayOfXLength(length) {
185
185
  return Array(length).fill(0);
186
186
  }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: { name: "name", title: "title", titleTranslationKey: "titleTranslationKey", type: "type", arbitraryValueAmount: "arbitraryValueAmount", arbitraryAmountTitles: "arbitraryAmountTitles", initialAmountOfRows: "initialAmountOfRows", minimumAmountOfRows: "minimumAmountOfRows", maxRows: "maxRows", addRowText: "addRowText", addRowTranslationKey: "addRowTranslationKey", deleteRowText: "deleteRowText", deleteRowTranslationKey: "deleteRowTranslationKey", disabled: "disabled", defaultValues: "defaultValues", margin: "margin", tooltip: "tooltip", required: "required", keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", hideDeleteButton: "hideDeleteButton", hideAddButton: "hideAddButton", dropdownItems: "dropdownItems", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", carbonTheme: "carbonTheme" }, outputs: { valueChange: "valueChange", allValuesValidEvent: "allValuesValidEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate)\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'arbitraryAmount'\">\n <ng-container\n *ngTemplateOutlet=\"arbitraryAmountValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #arbitraryAmountValue let-value=\"value\" let-index=\"index\">\n <div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n *ngFor=\"let _ of amountOfArbitraryValuesArray$ | async; index as i\"\n >\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'arbitrary', i)\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{width:100%}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: { name: "name", title: "title", titleTranslationKey: "titleTranslationKey", type: "type", arbitraryValueAmount: "arbitraryValueAmount", arbitraryAmountTitles: "arbitraryAmountTitles", initialAmountOfRows: "initialAmountOfRows", minimumAmountOfRows: "minimumAmountOfRows", maxRows: "maxRows", addRowText: "addRowText", addRowTranslationKey: "addRowTranslationKey", deleteRowText: "deleteRowText", deleteRowTranslationKey: "deleteRowTranslationKey", disabled: "disabled", defaultValues: "defaultValues", margin: "margin", tooltip: "tooltip", required: "required", keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", hideDeleteButton: "hideDeleteButton", hideAddButton: "hideAddButton", dropdownItems: "dropdownItems", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", carbonTheme: "carbonTheme" }, outputs: { valueChange: "valueChange", allValuesValidEvent: "allValuesValidEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate)\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'arbitraryAmount'\">\n <ng-container\n *ngTemplateOutlet=\"arbitraryAmountValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #arbitraryAmountValue let-value=\"value\" let-index=\"index\">\n <div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n *ngFor=\"let _ of amountOfArbitraryValuesArray$ | async; index as i\"\n >\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'arbitrary', i)\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{width:100%}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
189
189
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputComponent, decorators: [{
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, decorators: [{
191
191
  type: Component,
192
192
  args: [{ selector: 'valtimo-carbon-multi-input', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate)\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'arbitraryAmount'\">\n <ng-container\n *ngTemplateOutlet=\"arbitraryAmountValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #arbitraryAmountValue let-value=\"value\" let-index=\"index\">\n <div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n *ngFor=\"let _ of amountOfArbitraryValuesArray$ | async; index as i\"\n >\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'arbitrary', i)\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{width:100%}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
193
193
  }], propDecorators: { name: [{
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
249
249
  }], allValuesValidEvent: [{
250
250
  type: Output
251
251
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFTeEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU9sQyxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTWtCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFNBQUksR0FBbUIsT0FBTyxDQUFDO1FBTS9CLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUN4Qix3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLDRCQUF1QixH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YUFBYTtzQkFBaEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVyxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLG1CQUFtQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFyYml0cmFyeUlucHV0VGl0bGVzLFxuICBMaXN0SXRlbVdpdGhJZCxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBNdWx0aUlucHV0VHlwZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1jYXJib24tbXVsdGktaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhcmJvbk11bHRpSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVUcmFuc2xhdGlvbktleSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogTXVsdGlJbnB1dFR5cGUgPSAndmFsdWUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFyYml0cmFyeVZhbHVlQW1vdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hbW91bnRPZkFyYml0cmFyeVZhbHVlcyA9IHZhbHVlO1xuICAgIHRoaXMuYW1vdW50T2ZBcmJpdHJhcnlWYWx1ZXNBcnJheSQubmV4dCh0aGlzLmdldEFycmF5T2ZYTGVuZ3RoKHZhbHVlKSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIGFyYml0cmFyeUFtb3VudFRpdGxlcyE6IEFyYml0cmFyeUlucHV0VGl0bGVzO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbEFtb3VudE9mUm93cyA9IDE7XG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5pbXVtQW1vdW50T2ZSb3dzID0gMTtcbiAgQElucHV0KCkgcHVibGljIG1heFJvd3MgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkUm93VGV4dCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkUm93VHJhbnNsYXRpb25LZXkgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZVJvd1RleHQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZVJvd1RyYW5zbGF0aW9uS2V5ID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdFZhbHVlcyE6IE11bHRpSW5wdXRWYWx1ZXM7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXJnaW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXAgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBrZXlDb2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDb2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25Db2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaGlkZURlbGV0ZUJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaGlkZUFkZEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRyb3Bkb3duSXRlbXModmFsdWU6IEFycmF5PExpc3RJdGVtV2l0aElkPikge1xuICAgIHRoaXMuZHJvcGRvd25JdGVtcyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIGRyb3Bkb3duV2lkdGggPSAyNTA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNhcmJvblRoZW1lID0gJ2cxMCc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPE11bHRpSW5wdXRPdXRwdXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIGFsbFZhbHVlc1ZhbGlkRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9hbW91bnRPZkFyYml0cmFyeVZhbHVlcyE6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzQXJyYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTwwPj4oW10pO1xuXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNdWx0aUlucHV0VmFsdWVzPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBtYXBwZWRWYWx1ZXMkOiBPYnNlcnZhYmxlPE11bHRpSW5wdXRPdXRwdXQ+ID0gdGhpcy52YWx1ZXMkLnBpcGUoXG4gICAgbWFwKFxuICAgICAgdmFsdWVzID0+XG4gICAgICAgIHZhbHVlc1xuICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy5nZXRNYXBwZWRWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICBjYXNlICdrZXlWYWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLnZhbHVlIHx8ICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLmtleTtcbiAgICAgICAgICAgICAgY2FzZSAna2V5RHJvcGRvd25WYWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLnZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAodmFsdWUgYXMgTXVsdGlJbnB1dEtleVZhbHVlKS5rZXkgJiZcbiAgICAgICAgICAgICAgICAgICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLmRyb3Bkb3duXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY2FzZSAnYXJiaXRyYXJ5QW1vdW50JzpcbiAgICAgICAgICAgICAgICBjb25zdCBvYmplY3RWYWx1ZXMgPSBPYmplY3QudmFsdWVzKHZhbHVlIGFzIE11bHRpSW5wdXRLZXlWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpdmVWYWx1ZXNBbW91bnQgPSBvYmplY3RWYWx1ZXMuZmlsdGVyKG9iamVjdFZhbHVlID0+ICEhb2JqZWN0VmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFZhbHVlcy5sZW5ndGggPT09IHBvc2l0aXZlVmFsdWVzQW1vdW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSBhcyBNdWx0aUlucHV0T3V0cHV0XG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkUm93RW5hYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBtYXAodmFsdWVzID0+ICEhKHRoaXMubWF4Um93cyA9PT0gbnVsbCB8fCB2YWx1ZXMubGVuZ3RoIDwgdGhpcy5tYXhSb3dzKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZHJvcGRvd25JdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PExpc3RJdGVtV2l0aElkPj4oW10pO1xuXG4gIHByaXZhdGUgX3ZhbHVlc1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMkLm5leHQodGhpcy5nZXRJbml0aWFsUm93cygpKTtcbiAgICB0aGlzLm9wZW5WYWx1ZXNTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUm93KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmFsdWVzJCwgdGhpcy5hZGRSb3dFbmFibGVkJF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3ZhbHVlcywgYWRkUm93RW5hYmxlZF0pID0+IHtcbiAgICAgICAgaWYgKGFkZFJvd0VuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlcyQubmV4dChbLi4udmFsdWVzLCB0aGlzLmdldEVtcHR5VmFsdWUoKV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVSb3codXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IHRoaXMubWluaW11bUFtb3VudE9mUm93cykge1xuICAgICAgICB0aGlzLnZhbHVlcyQubmV4dCh2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnV1aWQgIT09IHV1aWQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IE11bHRpSW5wdXRLZXlWYWx1ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlLnV1aWQgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGdldERyb3Bkb3duSXRlbXNGb3JSb3coaW5kZXg6IG51bWJlcik6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuZHJvcGRvd25JdGVtcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtkcm9wZG93bkl0ZW1zLCB2YWx1ZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbHVlc1tpbmRleF0gfHwgdGhpcy5kZWZhdWx0VmFsdWVzW2luZGV4XTtcblxuICAgICAgICByZXR1cm4gZHJvcGRvd25JdGVtcy5tYXAoZHJvcGRvd25JdGVtID0+ICh7XG4gICAgICAgICAgLi4uZHJvcGRvd25JdGVtLFxuICAgICAgICAgIHNlbGVjdGVkOiBkZWZhdWx0VmFsdWUgPyBkcm9wZG93bkl0ZW0uaWQgPT09IGRlZmF1bHRWYWx1ZS5kcm9wZG93biA6IGZhbHNlLFxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZShcbiAgICB0ZW1wbGF0ZVZhbHVlOiBNdWx0aUlucHV0S2V5VmFsdWUsXG4gICAgaW5wdXRWYWx1ZTogc3RyaW5nLFxuICAgIGNoYW5nZTogJ2tleScgfCAndmFsdWUnIHwgJ2Ryb3Bkb3duJyB8ICdhcmJpdHJhcnknLFxuICAgIGFyYml0cmFyeUluZGV4PzogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xuICAgICAgdGhpcy52YWx1ZXMkLm5leHQoXG4gICAgICAgIHZhbHVlcy5tYXAoc3RhdGVWYWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlVmFsdWUudXVpZCA9PT0gdGVtcGxhdGVWYWx1ZS51dWlkKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgdmFsdWU6IGlucHV0VmFsdWV9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPT09ICdrZXknKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwga2V5OiBpbnB1dFZhbHVlfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlID09PSAnZHJvcGRvd24nKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgZHJvcGRvd246IGlucHV0VmFsdWV9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPT09ICdhcmJpdHJhcnknKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgW2FyYml0cmFyeUluZGV4XTogaW5wdXRWYWx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdGF0ZVZhbHVlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbFJvd3MoKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgY29uc3QgbWluaW11bVJvd3MgPSB0aGlzLm1pbmltdW1BbW91bnRPZlJvd3M7XG4gICAgY29uc3QgaW5pdGlhbFJvd3MgPSB0aGlzLmluaXRpYWxBbW91bnRPZlJvd3M7XG4gICAgY29uc3QgYW1vdW50T2ZJbml0YWxSb3dzID0gTWF0aC5tYXgobWluaW11bVJvd3MsIGluaXRpYWxSb3dzKTtcblxuICAgIGlmICghdGhpcy5kZWZhdWx0VmFsdWVzKSB7XG4gICAgICByZXR1cm4gbmV3IEFycmF5KGFtb3VudE9mSW5pdGFsUm93cykuZmlsbCh0aGlzLmdldEVtcHR5VmFsdWUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlcy5tYXAoZGVmYXVsdFZhbHVlID0+ICh7Li4uZGVmYXVsdFZhbHVlLCB1dWlkOiB1dWlkdjQoKX0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW1wdHlWYWx1ZSgpOiBNdWx0aUlucHV0S2V5VmFsdWUge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhcmJpdHJhcnlBbW91bnQnKSB7XG4gICAgICBjb25zdCBlbXB0eVZhbHVlID0ge1xuICAgICAgICB1dWlkOiB1dWlkdjQoKSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZ2V0QXJyYXlPZlhMZW5ndGgodGhpcy5fYW1vdW50T2ZBcmJpdHJhcnlWYWx1ZXMpLmZvckVhY2goKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIGVtcHR5VmFsdWVbYCR7aW5kZXh9YF0gPSAnJztcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZW1wdHlWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnJyxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHV1aWQ6IHV1aWR2NCgpLFxuICAgICAgZHJvcGRvd246ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldE1hcHBlZFZhbHVlKHZhbHVlVG9NYXA6IE11bHRpSW5wdXRLZXlWYWx1ZSk6IE11bHRpSW5wdXRLZXlWYWx1ZSB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2tleVZhbHVlJykge1xuICAgICAgcmV0dXJuIHtrZXk6IHZhbHVlVG9NYXAua2V5LCB2YWx1ZTogdmFsdWVUb01hcC52YWx1ZX07XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdrZXlEcm9wZG93blZhbHVlJykge1xuICAgICAgcmV0dXJuIHtrZXk6IHZhbHVlVG9NYXAua2V5LCB2YWx1ZTogdmFsdWVUb01hcC52YWx1ZSwgZHJvcGRvd246IHZhbHVlVG9NYXAuZHJvcGRvd259O1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnYXJiaXRyYXJ5QW1vdW50Jykge1xuICAgICAgY29uc3Qgb2JqQ29weSA9IHsuLi52YWx1ZVRvTWFwfTtcbiAgICAgIGRlbGV0ZSBvYmpDb3B5LnV1aWQ7XG4gICAgICByZXR1cm4gb2JqQ29weTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVUb01hcC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZhbHVlc1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZXNTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlcyQsIHRoaXMubWFwcGVkVmFsdWVzJF0pLnN1YnNjcmliZShcbiAgICAgIChbdmFsdWVzLCBtYXBwZWRWYWx1ZXNdKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChtYXBwZWRWYWx1ZXMpO1xuICAgICAgICB0aGlzLmFsbFZhbHVlc1ZhbGlkRXZlbnQuZW1pdCh2YWx1ZXMubGVuZ3RoID09PSBtYXBwZWRWYWx1ZXMubGVuZ3RoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBcnJheU9mWExlbmd0aChsZW5ndGg6IG51bWJlcik6IEFycmF5PDA+IHtcbiAgICByZXR1cm4gQXJyYXkobGVuZ3RoKS5maWxsKDApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgKm5nSWY9XCJ7XG4gICAgYWRkUm93VGV4dDpcbiAgICAgIGFkZFJvd1RleHQgfHwgYWRkUm93VHJhbnNsYXRpb25LZXlcbiAgICAgICAgPyBhZGRSb3dUcmFuc2xhdGlvbktleVxuICAgICAgICAgID8gKGFkZFJvd1RyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogYWRkUm93VGV4dFxuICAgICAgICA6ICgnaW50ZXJmYWNlLmFkZFJvdycgfCB0cmFuc2xhdGUpLFxuICAgIGRlbGV0ZVJvd1RleHQ6XG4gICAgICBkZWxldGVSb3dUZXh0IHx8IGRlbGV0ZVJvd1RyYW5zbGF0aW9uS2V5XG4gICAgICAgID8gZGVsZXRlUm93VHJhbnNsYXRpb25LZXlcbiAgICAgICAgICA/IChkZWxldGVSb3dUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6IGRlbGV0ZVJvd1RleHRcbiAgICAgICAgOiAoJ2ludGVyZmFjZS5kZWxldGVSb3cnIHwgdHJhbnNsYXRlKVxuICB9IGFzIHZhcnNcIlxuICBbbmdDbGFzc109XCJ7J3YtbXVsdGktaW5wdXQtLW1hcmdpbic6IG1hcmdpbiwgJ3YtbXVsdGktaW5wdXQtLW5vLWRlbGV0ZS1idXR0b24nOiBoaWRlRGVsZXRlQnV0dG9ufVwiXG4gIGNsYXNzPVwidi1tdWx0aS1pbnB1dFwiXG4+XG4gIDx2LWlucHV0LWxhYmVsXG4gICAgKm5nSWY9XCJ0aXRsZSB8fCB0aXRsZVRyYW5zbGF0aW9uS2V5XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0aXRsZVRyYW5zbGF0aW9uS2V5XT1cInRpdGxlVHJhbnNsYXRpb25LZXlcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gID5cbiAgPC92LWlucHV0LWxhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19yb3dzXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHZhbHVlcyQgfCBhc3luYyBhcyB2YWx1ZXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgaW5kZXggYXMgaVwiXG4gICAgICBjbGFzcz1cInYtbXVsdGktaW5wdXRfX3Jvd1wiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICd2YWx1ZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpbmdsZVZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAna2V5VmFsdWUnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImtleVZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdrZXlEcm9wZG93blZhbHVlJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJrZXlEcm9wZG93blZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdhcmJpdHJhcnlBbW91bnQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFyYml0cmFyeUFtb3VudFZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFoaWRlRGVsZXRlQnV0dG9uXCJcbiAgICAgICAgY2RzQnV0dG9uPVwiZGFuZ2VyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInZhbHVlcz8ubGVuZ3RoIDw9IHRoaXMubWluaW11bUFtb3VudE9mUm93cyB8fCBkaXNhYmxlZFwiXG4gICAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJvdyh2YWx1ZS51dWlkKVwiXG4gICAgICAgIFt0aXRsZV09XCJ2YXJzLmRlbGV0ZVJvd1RleHRcIlxuICAgICAgPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19hZGQtYnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWhpZGVBZGRCdXR0b25cIlxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIihhZGRSb3dFbmFibGVkJCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwiYWRkUm93KClcIlxuICAgICAgPlxuICAgICAgICB7eyB2YXJzLmFkZFJvd1RleHQgfX1cblxuICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzaW5nbGVWYWx1ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICA8ZGl2IGNsYXNzPVwidi1tdWx0aS1pbnB1dF9faW5wdXRcIiBbbmdDbGFzc109XCJ7Jy0tZnVsbC13aWR0aCc6IGZ1bGxXaWR0aH1cIj5cbiAgICA8aW5wdXRcbiAgICAgIGNkc1RleHRcbiAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWUudmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSh2YWx1ZSwgJGV2ZW50LCAndmFsdWUnKVwiXG4gICAgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2tleVZhbHVlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCIgW25nQ2xhc3NdPVwieyctLWZ1bGwtd2lkdGgnOiBmdWxsV2lkdGh9XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGtleUNvbHVtblRpdGxlICYmIHZhbHVlQ29sdW1uVGl0bGVcIj57e1xuICAgICAga2V5Q29sdW1uVGl0bGVcbiAgICB9fTwvY2RzLWxhYmVsPlxuXG4gICAgPGlucHV0XG4gICAgICBjZHNUZXh0XG4gICAgICBbZGVmYXVsdFZhbHVlXT1cInZhbHVlLmtleVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICdrZXknKVwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19pbnB1dFwiIFtuZ0NsYXNzXT1cInsnLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRofVwiPlxuICAgIDxjZHMtbGFiZWwgKm5nSWY9XCJpbmRleCA9PT0gMCAmJiBrZXlDb2x1bW5UaXRsZSAmJiB2YWx1ZUNvbHVtblRpdGxlXCI+e3tcbiAgICAgIHZhbHVlQ29sdW1uVGl0bGVcbiAgICB9fTwvY2RzLWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS52YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICd2YWx1ZScpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYXJiaXRyYXJ5QW1vdW50VmFsdWUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwieyctLWZ1bGwtd2lkdGgnOiBmdWxsV2lkdGh9XCJcbiAgICAqbmdGb3I9XCJsZXQgXyBvZiBhbW91bnRPZkFyYml0cmFyeVZhbHVlc0FycmF5JCB8IGFzeW5jOyBpbmRleCBhcyBpXCJcbiAgPlxuICAgIDxjZHMtbGFiZWwgKm5nSWY9XCJpbmRleCA9PT0gMFwiPnt7XG4gICAgICBhcmJpdHJhcnlBbW91bnRUaXRsZXMgPyBhcmJpdHJhcnlBbW91bnRUaXRsZXNbaV0gOiAnJ1xuICAgIH19PC9jZHMtbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgIGNkc1RleHRcbiAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWUgPyB2YWx1ZVsnJyArIGldIDogJydcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKHZhbHVlLCAkZXZlbnQudGFyZ2V0LnZhbHVlLCAnYXJiaXRyYXJ5JywgaSlcIlxuICAgIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNrZXlEcm9wZG93blZhbHVlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7Jy0tZnVsbC13aWR0aCc6IGZ1bGxXaWR0aH1cIiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGtleUNvbHVtblRpdGxlXCI+e3sga2V5Q29sdW1uVGl0bGUgfX08L2Nkcy1sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS5rZXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKHZhbHVlLCAkZXZlbnQudGFyZ2V0LnZhbHVlLCAna2V5JylcIlxuICAgIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgW3N0eWxlLm1pbldpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGRyb3Bkb3duQ29sdW1uVGl0bGVcIj57eyBkcm9wZG93bkNvbHVtblRpdGxlIH19PC9jZHMtbGFiZWw+XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAoc2VsZWN0ZWQpPVwib25WYWx1ZUNoYW5nZSh2YWx1ZSwgJGV2ZW50Lml0ZW0uaWQsICdkcm9wZG93bicpXCJcbiAgICAgIFthcHBlbmRJbmxpbmVdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0XG4gICAgICAgIFtpdGVtc109XCJnZXREcm9wZG93bkl0ZW1zRm9yUm93KGluZGV4KSB8IGFzeW5jXCJcbiAgICAgICAgdHlwZT1cIm11bHRpXCJcbiAgICAgID48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRofVwiIGNsYXNzPVwidi1tdWx0aS1pbnB1dF9faW5wdXRcIj5cbiAgICA8Y2RzLWxhYmVsICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgdmFsdWVDb2x1bW5UaXRsZVwiPnt7IHZhbHVlQ29sdW1uVGl0bGUgfX08L2Nkcy1sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS52YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICd2YWx1ZScpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFTeEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU9sQyxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTWtCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFNBQUksR0FBbUIsT0FBTyxDQUFDO1FBTS9CLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUN4Qix3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUl0QixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakUsd0JBQW1CLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHakUsa0NBQTZCLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUNwRCxrQkFBYSxHQUFpQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDN0UsR0FBRyxDQUNELE1BQU0sQ0FBQyxFQUFFLENBQ1AsTUFBTTthQUNILEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2QsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssT0FBTztvQkFDVixPQUFPLEtBQUssQ0FBQztnQkFDZixLQUFLLFVBQVU7b0JBQ2IsT0FBUSxLQUE0QixDQUFDLEtBQUssSUFBSyxLQUE0QixDQUFDLEdBQUcsQ0FBQztnQkFDbEYsS0FBSyxrQkFBa0I7b0JBQ3JCLE9BQU8sQ0FDSixLQUE0QixDQUFDLEtBQUs7d0JBQ2xDLEtBQTRCLENBQUMsR0FBRzt3QkFDaEMsS0FBNEIsQ0FBQyxRQUFRLENBQ3ZDLENBQUM7Z0JBQ0osS0FBSyxpQkFBaUI7b0JBQ3BCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBMkIsQ0FBQyxDQUFDO29CQUNoRSxNQUFNLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBRS9FLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUMsQ0FBcUIsQ0FDM0IsQ0FDRixDQUFDO1FBQ2MsbUJBQWMsR0FBd0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3JFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3pFLENBQUM7UUFFYyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztLQXFJakY7SUF2TUMsSUFBb0Isb0JBQW9CLENBQUMsS0FBYTtRQUNwRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQW1CRCxJQUFvQixhQUFhLENBQUMsS0FBNEI7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQThDTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNO1FBQ1gsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQXlCO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLElBQWMsQ0FBQztJQUM5QixDQUFDO0lBRU0sc0JBQXNCLENBQUMsS0FBYTtRQUN6QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWhFLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLEdBQUcsWUFBWTtnQkFDZixRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUs7YUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLGFBQWEsQ0FDbEIsYUFBaUMsRUFDakMsVUFBa0IsRUFDbEIsTUFBa0QsRUFDbEQsY0FBdUI7UUFFdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzNDLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUN2QixPQUFPLEVBQUMsR0FBRyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBQyxDQUFDO29CQUM1QyxDQUFDO3lCQUFNLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO3dCQUM1QixPQUFPLEVBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBQyxDQUFDO29CQUMxQyxDQUFDO3lCQUFNLElBQUksTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNqQyxPQUFPLEVBQUMsR0FBRyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBQyxDQUFDO29CQUMvQyxDQUFDO3lCQUFNLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUNsQyxPQUFPLEVBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUMsQ0FBQztvQkFDdkQsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUFHO2dCQUNqQixJQUFJLEVBQUUsTUFBTSxFQUFFO2FBQ2YsQ0FBQztZQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pFLFVBQVUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLEVBQUUsRUFBRTtZQUNQLEtBQUssRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNkLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBOEI7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBQyxDQUFDO1FBQ3hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUMsQ0FBQztRQUN2RixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsRUFBQyxHQUFHLFVBQVUsRUFBQyxDQUFDO1lBQ2hDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztZQUNwQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNwRixDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFjO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOytHQTNNVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixpZ0NDbEN0QywrdU1BaU1BOzs0RkQvSmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLDRCQUE0Qjs4QkFLdEIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNjLG9CQUFvQjtzQkFBdkMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsdUJBQXVCO3NCQUF0QyxLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ2MsYUFBYTtzQkFBaEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVyxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLG1CQUFtQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFyYml0cmFyeUlucHV0VGl0bGVzLFxuICBMaXN0SXRlbVdpdGhJZCxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBNdWx0aUlucHV0VHlwZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1jYXJib24tbXVsdGktaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhcmJvbk11bHRpSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVUcmFuc2xhdGlvbktleSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogTXVsdGlJbnB1dFR5cGUgPSAndmFsdWUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFyYml0cmFyeVZhbHVlQW1vdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hbW91bnRPZkFyYml0cmFyeVZhbHVlcyA9IHZhbHVlO1xuICAgIHRoaXMuYW1vdW50T2ZBcmJpdHJhcnlWYWx1ZXNBcnJheSQubmV4dCh0aGlzLmdldEFycmF5T2ZYTGVuZ3RoKHZhbHVlKSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIGFyYml0cmFyeUFtb3VudFRpdGxlcyE6IEFyYml0cmFyeUlucHV0VGl0bGVzO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbEFtb3VudE9mUm93cyA9IDE7XG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5pbXVtQW1vdW50T2ZSb3dzID0gMTtcbiAgQElucHV0KCkgcHVibGljIG1heFJvd3MgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkUm93VGV4dCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkUm93VHJhbnNsYXRpb25LZXkgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZVJvd1RleHQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZVJvd1RyYW5zbGF0aW9uS2V5ID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdFZhbHVlcyE6IE11bHRpSW5wdXRWYWx1ZXM7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXJnaW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXAgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBrZXlDb2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDb2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25Db2x1bW5UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaGlkZURlbGV0ZUJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaGlkZUFkZEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRyb3Bkb3duSXRlbXModmFsdWU6IEFycmF5PExpc3RJdGVtV2l0aElkPikge1xuICAgIHRoaXMuZHJvcGRvd25JdGVtcyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIGRyb3Bkb3duV2lkdGggPSAyNTA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNhcmJvblRoZW1lID0gJ2cxMCc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPE11bHRpSW5wdXRPdXRwdXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIGFsbFZhbHVlc1ZhbGlkRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9hbW91bnRPZkFyYml0cmFyeVZhbHVlcyE6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzQXJyYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTwwPj4oW10pO1xuXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNdWx0aUlucHV0VmFsdWVzPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBtYXBwZWRWYWx1ZXMkOiBPYnNlcnZhYmxlPE11bHRpSW5wdXRPdXRwdXQ+ID0gdGhpcy52YWx1ZXMkLnBpcGUoXG4gICAgbWFwKFxuICAgICAgdmFsdWVzID0+XG4gICAgICAgIHZhbHVlc1xuICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy5nZXRNYXBwZWRWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICBjYXNlICdrZXlWYWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLnZhbHVlIHx8ICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLmtleTtcbiAgICAgICAgICAgICAgY2FzZSAna2V5RHJvcGRvd25WYWx1ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLnZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAodmFsdWUgYXMgTXVsdGlJbnB1dEtleVZhbHVlKS5rZXkgJiZcbiAgICAgICAgICAgICAgICAgICh2YWx1ZSBhcyBNdWx0aUlucHV0S2V5VmFsdWUpLmRyb3Bkb3duXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY2FzZSAnYXJiaXRyYXJ5QW1vdW50JzpcbiAgICAgICAgICAgICAgICBjb25zdCBvYmplY3RWYWx1ZXMgPSBPYmplY3QudmFsdWVzKHZhbHVlIGFzIE11bHRpSW5wdXRLZXlWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpdmVWYWx1ZXNBbW91bnQgPSBvYmplY3RWYWx1ZXMuZmlsdGVyKG9iamVjdFZhbHVlID0+ICEhb2JqZWN0VmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFZhbHVlcy5sZW5ndGggPT09IHBvc2l0aXZlVmFsdWVzQW1vdW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSBhcyBNdWx0aUlucHV0T3V0cHV0XG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkUm93RW5hYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBtYXAodmFsdWVzID0+ICEhKHRoaXMubWF4Um93cyA9PT0gbnVsbCB8fCB2YWx1ZXMubGVuZ3RoIDwgdGhpcy5tYXhSb3dzKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZHJvcGRvd25JdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PExpc3RJdGVtV2l0aElkPj4oW10pO1xuXG4gIHByaXZhdGUgX3ZhbHVlc1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMkLm5leHQodGhpcy5nZXRJbml0aWFsUm93cygpKTtcbiAgICB0aGlzLm9wZW5WYWx1ZXNTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUm93KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmFsdWVzJCwgdGhpcy5hZGRSb3dFbmFibGVkJF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3ZhbHVlcywgYWRkUm93RW5hYmxlZF0pID0+IHtcbiAgICAgICAgaWYgKGFkZFJvd0VuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlcyQubmV4dChbLi4udmFsdWVzLCB0aGlzLmdldEVtcHR5VmFsdWUoKV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVSb3codXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IHRoaXMubWluaW11bUFtb3VudE9mUm93cykge1xuICAgICAgICB0aGlzLnZhbHVlcyQubmV4dCh2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnV1aWQgIT09IHV1aWQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IE11bHRpSW5wdXRLZXlWYWx1ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlLnV1aWQgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGdldERyb3Bkb3duSXRlbXNGb3JSb3coaW5kZXg6IG51bWJlcik6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuZHJvcGRvd25JdGVtcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtkcm9wZG93bkl0ZW1zLCB2YWx1ZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbHVlc1tpbmRleF0gfHwgdGhpcy5kZWZhdWx0VmFsdWVzW2luZGV4XTtcblxuICAgICAgICByZXR1cm4gZHJvcGRvd25JdGVtcy5tYXAoZHJvcGRvd25JdGVtID0+ICh7XG4gICAgICAgICAgLi4uZHJvcGRvd25JdGVtLFxuICAgICAgICAgIHNlbGVjdGVkOiBkZWZhdWx0VmFsdWUgPyBkcm9wZG93bkl0ZW0uaWQgPT09IGRlZmF1bHRWYWx1ZS5kcm9wZG93biA6IGZhbHNlLFxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZShcbiAgICB0ZW1wbGF0ZVZhbHVlOiBNdWx0aUlucHV0S2V5VmFsdWUsXG4gICAgaW5wdXRWYWx1ZTogc3RyaW5nLFxuICAgIGNoYW5nZTogJ2tleScgfCAndmFsdWUnIHwgJ2Ryb3Bkb3duJyB8ICdhcmJpdHJhcnknLFxuICAgIGFyYml0cmFyeUluZGV4PzogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xuICAgICAgdGhpcy52YWx1ZXMkLm5leHQoXG4gICAgICAgIHZhbHVlcy5tYXAoc3RhdGVWYWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlVmFsdWUudXVpZCA9PT0gdGVtcGxhdGVWYWx1ZS51dWlkKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgdmFsdWU6IGlucHV0VmFsdWV9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPT09ICdrZXknKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwga2V5OiBpbnB1dFZhbHVlfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlID09PSAnZHJvcGRvd24nKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgZHJvcGRvd246IGlucHV0VmFsdWV9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UgPT09ICdhcmJpdHJhcnknKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7Li4uc3RhdGVWYWx1ZSwgW2FyYml0cmFyeUluZGV4XTogaW5wdXRWYWx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdGF0ZVZhbHVlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbFJvd3MoKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgY29uc3QgbWluaW11bVJvd3MgPSB0aGlzLm1pbmltdW1BbW91bnRPZlJvd3M7XG4gICAgY29uc3QgaW5pdGlhbFJvd3MgPSB0aGlzLmluaXRpYWxBbW91bnRPZlJvd3M7XG4gICAgY29uc3QgYW1vdW50T2ZJbml0YWxSb3dzID0gTWF0aC5tYXgobWluaW11bVJvd3MsIGluaXRpYWxSb3dzKTtcblxuICAgIGlmICghdGhpcy5kZWZhdWx0VmFsdWVzKSB7XG4gICAgICByZXR1cm4gbmV3IEFycmF5KGFtb3VudE9mSW5pdGFsUm93cykuZmlsbCh0aGlzLmdldEVtcHR5VmFsdWUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlcy5tYXAoZGVmYXVsdFZhbHVlID0+ICh7Li4uZGVmYXVsdFZhbHVlLCB1dWlkOiB1dWlkdjQoKX0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW1wdHlWYWx1ZSgpOiBNdWx0aUlucHV0S2V5VmFsdWUge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhcmJpdHJhcnlBbW91bnQnKSB7XG4gICAgICBjb25zdCBlbXB0eVZhbHVlID0ge1xuICAgICAgICB1dWlkOiB1dWlkdjQoKSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZ2V0QXJyYXlPZlhMZW5ndGgodGhpcy5fYW1vdW50T2ZBcmJpdHJhcnlWYWx1ZXMpLmZvckVhY2goKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIGVtcHR5VmFsdWVbYCR7aW5kZXh9YF0gPSAnJztcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZW1wdHlWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnJyxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHV1aWQ6IHV1aWR2NCgpLFxuICAgICAgZHJvcGRvd246ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldE1hcHBlZFZhbHVlKHZhbHVlVG9NYXA6IE11bHRpSW5wdXRLZXlWYWx1ZSk6IE11bHRpSW5wdXRLZXlWYWx1ZSB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2tleVZhbHVlJykge1xuICAgICAgcmV0dXJuIHtrZXk6IHZhbHVlVG9NYXAua2V5LCB2YWx1ZTogdmFsdWVUb01hcC52YWx1ZX07XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdrZXlEcm9wZG93blZhbHVlJykge1xuICAgICAgcmV0dXJuIHtrZXk6IHZhbHVlVG9NYXAua2V5LCB2YWx1ZTogdmFsdWVUb01hcC52YWx1ZSwgZHJvcGRvd246IHZhbHVlVG9NYXAuZHJvcGRvd259O1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnYXJiaXRyYXJ5QW1vdW50Jykge1xuICAgICAgY29uc3Qgb2JqQ29weSA9IHsuLi52YWx1ZVRvTWFwfTtcbiAgICAgIGRlbGV0ZSBvYmpDb3B5LnV1aWQ7XG4gICAgICByZXR1cm4gb2JqQ29weTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVUb01hcC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZhbHVlc1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZXNTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlcyQsIHRoaXMubWFwcGVkVmFsdWVzJF0pLnN1YnNjcmliZShcbiAgICAgIChbdmFsdWVzLCBtYXBwZWRWYWx1ZXNdKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChtYXBwZWRWYWx1ZXMpO1xuICAgICAgICB0aGlzLmFsbFZhbHVlc1ZhbGlkRXZlbnQuZW1pdCh2YWx1ZXMubGVuZ3RoID09PSBtYXBwZWRWYWx1ZXMubGVuZ3RoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBcnJheU9mWExlbmd0aChsZW5ndGg6IG51bWJlcik6IEFycmF5PDA+IHtcbiAgICByZXR1cm4gQXJyYXkobGVuZ3RoKS5maWxsKDApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgKm5nSWY9XCJ7XG4gICAgYWRkUm93VGV4dDpcbiAgICAgIGFkZFJvd1RleHQgfHwgYWRkUm93VHJhbnNsYXRpb25LZXlcbiAgICAgICAgPyBhZGRSb3dUcmFuc2xhdGlvbktleVxuICAgICAgICAgID8gKGFkZFJvd1RyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogYWRkUm93VGV4dFxuICAgICAgICA6ICgnaW50ZXJmYWNlLmFkZFJvdycgfCB0cmFuc2xhdGUpLFxuICAgIGRlbGV0ZVJvd1RleHQ6XG4gICAgICBkZWxldGVSb3dUZXh0IHx8IGRlbGV0ZVJvd1RyYW5zbGF0aW9uS2V5XG4gICAgICAgID8gZGVsZXRlUm93VHJhbnNsYXRpb25LZXlcbiAgICAgICAgICA/IChkZWxldGVSb3dUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6IGRlbGV0ZVJvd1RleHRcbiAgICAgICAgOiAoJ2ludGVyZmFjZS5kZWxldGVSb3cnIHwgdHJhbnNsYXRlKVxuICB9IGFzIHZhcnNcIlxuICBbbmdDbGFzc109XCJ7J3YtbXVsdGktaW5wdXQtLW1hcmdpbic6IG1hcmdpbiwgJ3YtbXVsdGktaW5wdXQtLW5vLWRlbGV0ZS1idXR0b24nOiBoaWRlRGVsZXRlQnV0dG9ufVwiXG4gIGNsYXNzPVwidi1tdWx0aS1pbnB1dFwiXG4+XG4gIDx2LWlucHV0LWxhYmVsXG4gICAgKm5nSWY9XCJ0aXRsZSB8fCB0aXRsZVRyYW5zbGF0aW9uS2V5XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0aXRsZVRyYW5zbGF0aW9uS2V5XT1cInRpdGxlVHJhbnNsYXRpb25LZXlcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gID5cbiAgPC92LWlucHV0LWxhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19yb3dzXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHZhbHVlcyQgfCBhc3luYyBhcyB2YWx1ZXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgaW5kZXggYXMgaVwiXG4gICAgICBjbGFzcz1cInYtbXVsdGktaW5wdXRfX3Jvd1wiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICd2YWx1ZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpbmdsZVZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAna2V5VmFsdWUnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImtleVZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdrZXlEcm9wZG93blZhbHVlJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJrZXlEcm9wZG93blZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdhcmJpdHJhcnlBbW91bnQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFyYml0cmFyeUFtb3VudFZhbHVlOyBjb250ZXh0OiB7dmFsdWU6IHZhbHVlLCBpbmRleDogaX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFoaWRlRGVsZXRlQnV0dG9uXCJcbiAgICAgICAgY2RzQnV0dG9uPVwiZGFuZ2VyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInZhbHVlcz8ubGVuZ3RoIDw9IHRoaXMubWluaW11bUFtb3VudE9mUm93cyB8fCBkaXNhYmxlZFwiXG4gICAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJvdyh2YWx1ZS51dWlkKVwiXG4gICAgICAgIFt0aXRsZV09XCJ2YXJzLmRlbGV0ZVJvd1RleHRcIlxuICAgICAgPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19hZGQtYnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWhpZGVBZGRCdXR0b25cIlxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIihhZGRSb3dFbmFibGVkJCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwiYWRkUm93KClcIlxuICAgICAgPlxuICAgICAgICB7eyB2YXJzLmFkZFJvd1RleHQgfX1cblxuICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzaW5nbGVWYWx1ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICA8ZGl2IGNsYXNzPVwidi1tdWx0aS1pbnB1dF9faW5wdXRcIiBbbmdDbGFzc109XCJ7Jy0tZnVsbC13aWR0aCc6IGZ1bGxXaWR0aH1cIj5cbiAgICA8aW5wdXRcbiAgICAgIGNkc1RleHRcbiAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWUudmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSh2YWx1ZSwgJGV2ZW50LCAndmFsdWUnKVwiXG4gICAgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2tleVZhbHVlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCIgW25nQ2xhc3NdPVwieyctLWZ1bGwtd2lkdGgnOiBmdWxsV2lkdGh9XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGtleUNvbHVtblRpdGxlICYmIHZhbHVlQ29sdW1uVGl0bGVcIj57e1xuICAgICAga2V5Q29sdW1uVGl0bGVcbiAgICB9fTwvY2RzLWxhYmVsPlxuXG4gICAgPGlucHV0XG4gICAgICBjZHNUZXh0XG4gICAgICBbZGVmYXVsdFZhbHVlXT1cInZhbHVlLmtleVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICdrZXknKVwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19pbnB1dFwiIFtuZ0NsYXNzXT1cInsnLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRofVwiPlxuICAgIDxjZHMtbGFiZWwgKm5nSWY9XCJpbmRleCA9PT0gMCAmJiBrZXlDb2x1bW5UaXRsZSAmJiB2YWx1ZUNvbHVtblRpdGxlXCI+e3tcbiAgICAgIHZhbHVlQ29sdW1uVGl0bGVcbiAgICB9fTwvY2RzLWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS52YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICd2YWx1ZScpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYXJiaXRyYXJ5QW1vdW50VmFsdWUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ2LW11bHRpLWlucHV0X19pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwieyctLWZ1bGwtd2lkdGgnOiBmdWxsV2lkdGh9XCJcbiAgICAqbmdGb3I9XCJsZXQgXyBvZiBhbW91bnRPZkFyYml0cmFyeVZhbHVlc0FycmF5JCB8IGFzeW5jOyBpbmRleCBhcyBpXCJcbiAgPlxuICAgIDxjZHMtbGFiZWwgKm5nSWY9XCJpbmRleCA9PT0gMFwiPnt7XG4gICAgICBhcmJpdHJhcnlBbW91bnRUaXRsZXMgPyBhcmJpdHJhcnlBbW91bnRUaXRsZXNbaV0gOiAnJ1xuICAgIH19PC9jZHMtbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgIGNkc1RleHRcbiAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWUgPyB2YWx1ZVsnJyArIGldIDogJydcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKHZhbHVlLCAkZXZlbnQudGFyZ2V0LnZhbHVlLCAnYXJiaXRyYXJ5JywgaSlcIlxuICAgIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNrZXlEcm9wZG93blZhbHVlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7Jy0tZnVsbC13aWR0aCc6IGZ1bGxXaWR0aH1cIiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGtleUNvbHVtblRpdGxlXCI+e3sga2V5Q29sdW1uVGl0bGUgfX08L2Nkcy1sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS5rZXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKHZhbHVlLCAkZXZlbnQudGFyZ2V0LnZhbHVlLCAna2V5JylcIlxuICAgIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgW3N0eWxlLm1pbldpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIiBjbGFzcz1cInYtbXVsdGktaW5wdXRfX2lucHV0XCI+XG4gICAgPGNkcy1sYWJlbCAqbmdJZj1cImluZGV4ID09PSAwICYmIGRyb3Bkb3duQ29sdW1uVGl0bGVcIj57eyBkcm9wZG93bkNvbHVtblRpdGxlIH19PC9jZHMtbGFiZWw+XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAoc2VsZWN0ZWQpPVwib25WYWx1ZUNoYW5nZSh2YWx1ZSwgJGV2ZW50Lml0ZW0uaWQsICdkcm9wZG93bicpXCJcbiAgICAgIFthcHBlbmRJbmxpbmVdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0XG4gICAgICAgIFtpdGVtc109XCJnZXREcm9wZG93bkl0ZW1zRm9yUm93KGluZGV4KSB8IGFzeW5jXCJcbiAgICAgICAgdHlwZT1cIm11bHRpXCJcbiAgICAgID48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRofVwiIGNsYXNzPVwidi1tdWx0aS1pbnB1dF9faW5wdXRcIj5cbiAgICA8Y2RzLWxhYmVsICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgdmFsdWVDb2x1bW5UaXRsZVwiPnt7IHZhbHVlQ29sdW1uVGl0bGUgfX08L2Nkcy1sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgY2RzVGV4dFxuICAgICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZS52YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UodmFsdWUsICRldmVudC50YXJnZXQudmFsdWUsICd2YWx1ZScpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -23,8 +23,8 @@ import { InputLabelModule } from '../input-label/input-label.module';
23
23
  import { InputModule } from '../input/input.module';
24
24
  import * as i0 from "@angular/core";
25
25
  export class CarbonMultiInputModule {
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputModule, declarations: [CarbonMultiInputComponent], imports: [CommonModule,
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, declarations: [CarbonMultiInputComponent], imports: [CommonModule,
28
28
  InputLabelModule,
29
29
  InputModule,
30
30
  ButtonModule,
@@ -33,7 +33,7 @@ export class CarbonMultiInputModule {
33
33
  IconModule,
34
34
  CarbonInputModule,
35
35
  DropdownModule], exports: [CarbonMultiInputComponent] }); }
36
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputModule, imports: [CommonModule,
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, imports: [CommonModule,
37
37
  InputLabelModule,
38
38
  InputModule,
39
39
  ButtonModule,
@@ -43,7 +43,7 @@ export class CarbonMultiInputModule {
43
43
  CarbonInputModule,
44
44
  DropdownModule] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CarbonMultiInputModule, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, decorators: [{
47
47
  type: NgModule,
48
48
  args: [{
49
49
  declarations: [CarbonMultiInputComponent],
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
61
61
  exports: [CarbonMultiInputComponent],
62
62
  }]
63
63
  }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyYm9uLW11bHRpLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsSUFBSSxpQkFBaUIsR0FDakMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQWlCbEQsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBZGxCLHlCQUF5QixhQUV0QyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWMsYUFFTix5QkFBeUI7K0dBRXhCLHNCQUFzQixZQVovQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWM7OzJGQUlMLHNCQUFzQjtrQkFmbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnR9IGZyb20gJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBCdXR0b25Nb2R1bGUgYXMgQ2FyYm9uQnV0dG9uTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUgYXMgQ2FyYm9uSW5wdXRNb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7SW5wdXRMYWJlbE1vZHVsZX0gZnJvbSAnLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwubW9kdWxlJztcbmltcG9ydCB7SW5wdXRNb2R1bGV9IGZyb20gJy4uL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElucHV0TGFiZWxNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDYXJib25CdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBDYXJib25JbnB1dE1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJib25NdWx0aUlucHV0TW9kdWxlIHt9XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyYm9uLW11bHRpLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvY2FyYm9uLW11bHRpLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsSUFBSSxpQkFBaUIsR0FDakMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQWlCbEQsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBZGxCLHlCQUF5QixhQUV0QyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWMsYUFFTix5QkFBeUI7Z0hBRXhCLHNCQUFzQixZQVovQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWM7OzRGQUlMLHNCQUFzQjtrQkFmbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnR9IGZyb20gJy4vY2FyYm9uLW11bHRpLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBCdXR0b25Nb2R1bGUgYXMgQ2FyYm9uQnV0dG9uTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUgYXMgQ2FyYm9uSW5wdXRNb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7SW5wdXRMYWJlbE1vZHVsZX0gZnJvbSAnLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwubW9kdWxlJztcbmltcG9ydCB7SW5wdXRNb2R1bGV9IGZyb20gJy4uL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElucHV0TGFiZWxNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDYXJib25CdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBDYXJib25JbnB1dE1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NhcmJvbk11bHRpSW5wdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJib25NdWx0aUlucHV0TW9kdWxlIHt9XG4iXX0=