@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.21

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 (684) hide show
  1. package/approval-flow/helpers/index.d.ts +1 -1
  2. package/approval-flow/index.d.ts +2 -2
  3. package/approval-flow/interfaces/approval-process.d.ts +1 -1
  4. package/approval-flow/interfaces/index.d.ts +1 -1
  5. package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
  6. package/button/button.component.d.ts +4 -1
  7. package/button/index.d.ts +1 -1
  8. package/dynamic-page/index.d.ts +5 -5
  9. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
  10. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
  11. package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
  12. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
  13. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
  14. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  15. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
  16. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  17. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
  18. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
  19. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
  20. package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
  21. package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
  22. package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
  23. package/esm2022/approval-flow/helpers/index.mjs +1 -1
  24. package/esm2022/approval-flow/index.mjs +3 -3
  25. package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
  26. package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
  27. package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
  28. package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
  29. package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
  30. package/esm2022/approval-flow/interfaces/index.mjs +2 -2
  31. package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
  32. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
  33. package/esm2022/button/button.component.mjs +8 -3
  34. package/esm2022/button/button.module.mjs +1 -1
  35. package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
  36. package/esm2022/button/index.mjs +2 -2
  37. package/esm2022/dynamic-page/constants.mjs +1 -1
  38. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
  39. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
  40. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
  41. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
  42. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
  43. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
  44. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
  45. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  46. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
  47. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
  48. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
  49. package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
  50. package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
  51. package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
  52. package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
  53. package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
  54. package/esm2022/dynamic-page/index.mjs +6 -6
  55. package/esm2022/dynamic-page/utils.mjs +1 -1
  56. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  57. package/esm2022/feed-input/feed-input.module.mjs +1 -1
  58. package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
  59. package/esm2022/feed-input/index.mjs +2 -2
  60. package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
  61. package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
  62. package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
  63. package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
  64. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
  65. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
  66. package/esm2022/form/combobox/combobox/combobox.component.mjs +13 -4
  67. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
  68. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
  69. package/esm2022/form/combobox/combobox.config.mjs +2 -2
  70. package/esm2022/form/combobox/combobox.interface.mjs +1 -1
  71. package/esm2022/form/combobox/combobox.module.mjs +1 -1
  72. package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
  73. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
  74. package/esm2022/form/combobox/index.mjs +1 -1
  75. package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
  76. package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
  77. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
  78. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
  79. package/esm2022/form/datetime-picker/errors.mjs +1 -1
  80. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
  81. package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
  82. package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
  83. package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
  84. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
  85. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
  86. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
  87. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
  88. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
  89. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
  90. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
  91. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
  92. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
  93. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
  94. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
  95. package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
  96. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
  97. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
  98. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
  99. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
  100. package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
  101. package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
  102. package/esm2022/form/form-generator/helpers.mjs +1 -1
  103. package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
  104. package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
  105. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  106. package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
  107. package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
  108. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
  109. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
  110. package/esm2022/form/form-generator/providers/providers.mjs +1 -1
  111. package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
  112. package/esm2022/form/form-group/constants.mjs +1 -1
  113. package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
  114. package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
  115. package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
  116. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
  117. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
  118. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
  119. package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
  120. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
  121. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
  122. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  123. package/esm2022/form/form-group/form-group.component.mjs +1 -1
  124. package/esm2022/form/form-group/helpers.mjs +1 -1
  125. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
  126. package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
  127. package/esm2022/form/form-helpers.mjs +3 -3
  128. package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
  129. package/esm2022/form/helpers.mjs +1 -1
  130. package/esm2022/form/index.mjs +1 -1
  131. package/esm2022/form/input/fdp-input.module.mjs +1 -1
  132. package/esm2022/form/input/input.component.mjs +1 -1
  133. package/esm2022/form/input-group/addon-body.component.mjs +2 -2
  134. package/esm2022/form/input-group/addon.component.mjs +2 -2
  135. package/esm2022/form/input-group/constants.mjs +1 -1
  136. package/esm2022/form/input-group/input-group.component.mjs +1 -1
  137. package/esm2022/form/input-group/input-group.config.mjs +1 -1
  138. package/esm2022/form/input-group/input-group.module.mjs +3 -3
  139. package/esm2022/form/input-group/input.component.mjs +2 -2
  140. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
  141. package/esm2022/form/models/field.model.mjs +1 -1
  142. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
  143. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
  144. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
  145. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
  146. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
  147. package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
  148. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
  149. package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
  150. package/esm2022/form/multi-input/index.mjs +2 -2
  151. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  152. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
  153. package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
  154. package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
  155. package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
  156. package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
  157. package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
  158. package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
  159. package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
  160. package/esm2022/form/select/commons/base-select.mjs +7 -2
  161. package/esm2022/form/select/models/select.models.mjs +1 -1
  162. package/esm2022/form/select/select/select.component.mjs +3 -3
  163. package/esm2022/form/select/select.config.mjs +1 -1
  164. package/esm2022/form/select/select.module.mjs +1 -1
  165. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  166. package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
  167. package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
  168. package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
  169. package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
  170. package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
  171. package/esm2022/form/step-input/step-input.config.mjs +1 -1
  172. package/esm2022/form/step-input/step-input.module.mjs +3 -3
  173. package/esm2022/form/step-input/step-input.util.mjs +1 -1
  174. package/esm2022/form/switch/switch/index.mjs +1 -1
  175. package/esm2022/form/switch/switch/switch.component.mjs +1 -1
  176. package/esm2022/form/switch/switch/switch.config.mjs +1 -1
  177. package/esm2022/form/switch/switch.module.mjs +1 -1
  178. package/esm2022/form/text-area/text-area.component.mjs +1 -1
  179. package/esm2022/form/text-area/text-area.config.mjs +1 -1
  180. package/esm2022/form/text-area/text-area.module.mjs +1 -1
  181. package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
  182. package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
  183. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
  184. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
  185. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
  186. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
  187. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
  188. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  189. package/esm2022/icon-tab-bar/components/index.mjs +1 -1
  190. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
  191. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
  192. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
  193. package/esm2022/icon-tab-bar/constants.mjs +1 -1
  194. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
  195. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
  196. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
  197. package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
  198. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
  199. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
  200. package/esm2022/icon-tab-bar/index.mjs +8 -8
  201. package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
  202. package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
  203. package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
  204. package/esm2022/icon-tab-bar/types.mjs +1 -1
  205. package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
  206. package/esm2022/info-label/index.mjs +1 -1
  207. package/esm2022/info-label/info-label.component.mjs +1 -1
  208. package/esm2022/info-label/info-label.module.mjs +1 -1
  209. package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
  210. package/esm2022/link/index.mjs +1 -1
  211. package/esm2022/link/link.component.mjs +3 -3
  212. package/esm2022/link/link.module.mjs +1 -1
  213. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  214. package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
  215. package/esm2022/list/base-list-item.mjs +2 -2
  216. package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
  217. package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
  218. package/esm2022/list/fdpListComponent.token.mjs +1 -1
  219. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
  220. package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
  221. package/esm2022/list/index.mjs +13 -13
  222. package/esm2022/list/list-group-footer.component.mjs +3 -3
  223. package/esm2022/list/list-group-header.component.mjs +5 -5
  224. package/esm2022/list/list.component.mjs +5 -5
  225. package/esm2022/list/list.config.mjs +1 -1
  226. package/esm2022/list/list.module.mjs +1 -1
  227. package/esm2022/list/load-more-content.directive.mjs +1 -1
  228. package/esm2022/list/models/list.mjs +1 -1
  229. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
  230. package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
  231. package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
  232. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
  233. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
  234. package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
  235. package/esm2022/menu/index.mjs +3 -3
  236. package/esm2022/menu/menu-item.component.mjs +1 -1
  237. package/esm2022/menu/menu-trigger.directive.mjs +1 -1
  238. package/esm2022/menu/menu.component.mjs +1 -1
  239. package/esm2022/menu/menu.module.mjs +1 -1
  240. package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
  241. package/esm2022/menu-button/index.mjs +2 -2
  242. package/esm2022/menu-button/menu-button.component.mjs +8 -3
  243. package/esm2022/menu-button/menu-button.module.mjs +1 -1
  244. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
  245. package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
  246. package/esm2022/message-popover/default-config.mjs +1 -1
  247. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
  248. package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
  249. package/esm2022/message-popover/index.mjs +5 -5
  250. package/esm2022/message-popover/message-popover.component.mjs +2 -2
  251. package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
  252. package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
  253. package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
  254. package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
  255. package/esm2022/message-popover/utils.mjs +1 -1
  256. package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
  257. package/esm2022/object-attribute/index.mjs +1 -1
  258. package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
  259. package/esm2022/object-marker/index.mjs +1 -1
  260. package/esm2022/object-marker/object-marker.component.mjs +8 -3
  261. package/esm2022/object-marker/object-marker.module.mjs +1 -1
  262. package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
  263. package/esm2022/object-status/index.mjs +1 -1
  264. package/esm2022/object-status/object-status.component.mjs +8 -3
  265. package/esm2022/object-status/object-status.module.mjs +1 -1
  266. package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
  267. package/esm2022/page-footer/index.mjs +1 -1
  268. package/esm2022/page-footer/page-footer.component.mjs +1 -1
  269. package/esm2022/page-footer/page-footer.module.mjs +1 -1
  270. package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
  271. package/esm2022/panel/index.mjs +3 -3
  272. package/esm2022/panel/panel-actions.component.mjs +1 -1
  273. package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
  274. package/esm2022/panel/panel.component.mjs +1 -1
  275. package/esm2022/panel/panel.config.mjs +1 -1
  276. package/esm2022/panel/panel.module.mjs +1 -1
  277. package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
  278. package/esm2022/search-field/index.mjs +2 -2
  279. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
  280. package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
  281. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
  282. package/esm2022/search-field/search-field.component.mjs +2 -2
  283. package/esm2022/search-field/search-field.module.mjs +1 -1
  284. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
  285. package/esm2022/settings-generator/default-config.mjs +1 -1
  286. package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
  287. package/esm2022/settings-generator/index.mjs +5 -5
  288. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
  289. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
  290. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  291. package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
  292. package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
  293. package/esm2022/settings-generator/models/settings.model.mjs +1 -1
  294. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  295. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
  296. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
  297. package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
  298. package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
  299. package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
  300. package/esm2022/settings-generator/tokens.mjs +1 -1
  301. package/esm2022/shared/base.mjs +1 -1
  302. package/esm2022/shared/domain/array-data-source.mjs +2 -2
  303. package/esm2022/shared/domain/base-data-provider.mjs +3 -3
  304. package/esm2022/shared/domain/data-model.mjs +1 -1
  305. package/esm2022/shared/domain/data-source.mjs +1 -1
  306. package/esm2022/shared/domain/observable-data-source.mjs +2 -2
  307. package/esm2022/shared/form/base.input.mjs +1 -1
  308. package/esm2022/shared/form/collection-base.input.mjs +4 -4
  309. package/esm2022/shared/form/form-error.mjs +1 -1
  310. package/esm2022/shared/form/form-field.mjs +1 -1
  311. package/esm2022/shared/form/form-options.mjs +1 -1
  312. package/esm2022/shared/form/hint-options.mjs +1 -1
  313. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
  314. package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
  315. package/esm2022/shared/index.mjs +4 -4
  316. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
  317. package/esm2022/shared/pipes/pipe.module.mjs +1 -1
  318. package/esm2022/shared/platform.config.mjs +1 -1
  319. package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
  320. package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
  321. package/esm2022/shared/testing/event-objects.mjs +1 -1
  322. package/esm2022/shared/utils/lang.mjs +1 -1
  323. package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
  324. package/esm2022/slider/index.mjs +1 -1
  325. package/esm2022/slider/slider.component.mjs +2 -2
  326. package/esm2022/slider/slider.module.mjs +1 -1
  327. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
  328. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
  329. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
  330. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
  331. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  332. package/esm2022/smart-filter-bar/constants.mjs +1 -1
  333. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
  334. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
  335. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
  336. package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  337. package/esm2022/smart-filter-bar/helpers.mjs +1 -1
  338. package/esm2022/smart-filter-bar/index.mjs +8 -8
  339. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
  340. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
  341. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
  342. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
  343. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
  344. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
  345. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
  346. package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
  347. package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
  348. package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
  349. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
  350. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
  351. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
  352. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
  353. package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
  354. package/esm2022/split-menu-button/index.mjs +1 -1
  355. package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
  356. package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
  357. package/esm2022/table/components/index.mjs +9 -9
  358. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
  359. package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
  360. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
  361. package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
  362. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
  363. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
  364. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
  365. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
  366. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
  367. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
  368. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
  369. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
  370. package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
  371. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
  372. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  373. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
  374. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
  375. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
  376. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
  377. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
  378. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
  379. package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
  380. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
  381. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
  382. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
  383. package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
  384. package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
  385. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
  386. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  387. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  388. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
  389. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
  390. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  391. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
  392. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  393. package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
  394. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  395. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
  396. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
  397. package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
  398. package/esm2022/table/index.mjs +15 -15
  399. package/esm2022/table/table.component.mjs +14 -10
  400. package/esm2022/table/table.module.mjs +1 -1
  401. package/esm2022/table-helpers/constants/index.mjs +1 -1
  402. package/esm2022/table-helpers/constants/tokens.mjs +1 -1
  403. package/esm2022/table-helpers/directives/index.mjs +7 -7
  404. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
  405. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
  406. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
  407. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
  408. package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
  409. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
  410. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
  411. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
  412. package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
  413. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
  414. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  415. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
  416. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
  417. package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
  418. package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
  419. package/esm2022/table-helpers/domain/index.mjs +4 -4
  420. package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
  421. package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
  422. package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
  423. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
  424. package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
  425. package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
  426. package/esm2022/table-helpers/enums/index.mjs +4 -4
  427. package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
  428. package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
  429. package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
  430. package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
  431. package/esm2022/table-helpers/helpers.mjs +6 -3
  432. package/esm2022/table-helpers/index.mjs +9 -9
  433. package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
  434. package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
  435. package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
  436. package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
  437. package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
  438. package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
  439. package/esm2022/table-helpers/interfaces/index.mjs +3 -4
  440. package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
  441. package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
  442. package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
  443. package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
  444. package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
  445. package/esm2022/table-helpers/models/directives.mjs +1 -1
  446. package/esm2022/table-helpers/models/dnd.mjs +1 -1
  447. package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
  448. package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
  449. package/esm2022/table-helpers/models/index.mjs +15 -15
  450. package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
  451. package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
  452. package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
  453. package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
  454. package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
  455. package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
  456. package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
  457. package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
  458. package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
  459. package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
  460. package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
  461. package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
  462. package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
  463. package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
  464. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
  465. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
  466. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
  467. package/esm2022/table-helpers/pipes/index.mjs +1 -1
  468. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
  469. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
  470. package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
  471. package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
  472. package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
  473. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
  474. package/esm2022/table-helpers/services/table.service.mjs +1 -1
  475. package/esm2022/table-helpers/table-cell.class.mjs +1 -1
  476. package/esm2022/table-helpers/table-column.mjs +1 -1
  477. package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
  478. package/esm2022/table-helpers/table.mjs +1 -1
  479. package/esm2022/table-helpers/utils.mjs +1 -1
  480. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
  481. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
  482. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
  483. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
  484. package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
  485. package/esm2022/value-help-dialog/constans/index.mjs +1 -1
  486. package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
  487. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
  488. package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
  489. package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
  490. package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  491. package/esm2022/value-help-dialog/index.mjs +4 -3
  492. package/esm2022/value-help-dialog/models/index.mjs +2 -2
  493. package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
  494. package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
  495. package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
  496. package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
  497. package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
  498. package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
  499. package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
  500. package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
  501. package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
  502. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
  503. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
  504. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
  505. package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
  506. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
  507. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
  508. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
  509. package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
  510. package/esm2022/variant-management/index.mjs +4 -4
  511. package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
  512. package/esm2022/variant-management/models/variant-management.mjs +1 -1
  513. package/esm2022/variant-management/models/variant.interface.mjs +1 -1
  514. package/esm2022/variant-management/tokens.mjs +1 -1
  515. package/esm2022/variant-management/variant-item.class.mjs +1 -1
  516. package/esm2022/variant-management/variant-management.component.mjs +2 -2
  517. package/esm2022/variant-management/variant-management.module.mjs +1 -1
  518. package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
  519. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
  520. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
  521. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
  522. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
  523. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
  524. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
  525. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
  526. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
  527. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
  528. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
  529. package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
  530. package/esm2022/wizard-generator/index.mjs +10 -10
  531. package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
  532. package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
  533. package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
  534. package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
  535. package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
  536. package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
  537. package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
  538. package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
  539. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
  540. package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
  541. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  542. package/feed-input/index.d.ts +1 -1
  543. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +889 -889
  544. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  545. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -3
  546. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  547. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  548. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
  549. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  550. package/fesm2022/fundamental-ngx-platform-form.mjs +2729 -2716
  551. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  552. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
  553. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  554. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  555. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  556. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  557. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
  558. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  559. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -3
  560. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  561. package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
  562. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  563. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
  564. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  565. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
  566. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
  567. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  568. package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
  569. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  570. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  571. package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
  572. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  573. package/fesm2022/fundamental-ngx-platform-search-field.mjs +13 -13
  574. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  575. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  576. package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
  577. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  578. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  579. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +20 -20
  580. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  581. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
  582. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  583. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
  584. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  585. package/fesm2022/fundamental-ngx-platform-table.mjs +365 -360
  586. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  587. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +182 -98
  588. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  589. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +177 -177
  590. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  591. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +41 -41
  592. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  593. package/form/combobox/combobox.config.d.ts +1 -1
  594. package/form/date-picker/date-picker.component.d.ts +5 -5
  595. package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
  596. package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
  597. package/form/form-generator/form-generator.service.d.ts +2 -2
  598. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  599. package/form/form-group/services/form-field-layout.service.d.ts +1 -1
  600. package/form/form-helpers.d.ts +1 -1
  601. package/form/input-group/addon.component.d.ts +1 -1
  602. package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
  603. package/form/multi-input/index.d.ts +1 -1
  604. package/form/multi-input/multi-input.config.d.ts +1 -1
  605. package/form/select/commons/base-select.d.ts +4 -1
  606. package/form/step-input/base.step-input.d.ts +4 -5
  607. package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
  608. package/icon-tab-bar/index.d.ts +7 -7
  609. package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
  610. package/list/index.d.ts +12 -12
  611. package/menu/index.d.ts +2 -2
  612. package/menu-button/index.d.ts +1 -1
  613. package/menu-button/menu-button.component.d.ts +5 -2
  614. package/message-popover/index.d.ts +4 -4
  615. package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
  616. package/message-popover/models/message-popover.interface.d.ts +1 -1
  617. package/message-popover/utils.d.ts +1 -1
  618. package/object-marker/object-marker.component.d.ts +4 -1
  619. package/object-status/object-status.component.d.ts +4 -1
  620. package/package.json +4 -4
  621. package/panel/index.d.ts +2 -2
  622. package/schematics/ng-add/index.js +1 -1
  623. package/search-field/index.d.ts +1 -1
  624. package/settings-generator/index.d.ts +4 -4
  625. package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
  626. package/settings-generator/settings-generator.service.d.ts +2 -2
  627. package/shared/domain/array-data-source.d.ts +0 -3
  628. package/shared/form/collection-base.input.d.ts +1 -1
  629. package/shared/form/form-field.d.ts +2 -2
  630. package/shared/form/hint-options.d.ts +2 -2
  631. package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
  632. package/shared/index.d.ts +3 -3
  633. package/smart-filter-bar/index.d.ts +7 -7
  634. package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
  635. package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
  636. package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
  637. package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
  638. package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
  639. package/split-menu-button/split-menu-button.component.d.ts +5 -2
  640. package/table/components/index.d.ts +8 -8
  641. package/table/components/table-view-settings-dialog/index.d.ts +2 -2
  642. package/table/index.d.ts +14 -14
  643. package/table/table.component.d.ts +4 -0
  644. package/table-helpers/constants/index.d.ts +1 -1
  645. package/table-helpers/directives/index.d.ts +6 -6
  646. package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
  647. package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
  648. package/table-helpers/domain/array-data-source.d.ts +3 -3
  649. package/table-helpers/domain/index.d.ts +3 -3
  650. package/table-helpers/domain/observable-data-source.d.ts +3 -3
  651. package/table-helpers/enums/index.d.ts +3 -3
  652. package/table-helpers/helpers.d.ts +1 -1
  653. package/table-helpers/index.d.ts +8 -8
  654. package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
  655. package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
  656. package/table-helpers/interfaces/index.d.ts +2 -3
  657. package/table-helpers/models/filter-change-event.model.d.ts +1 -1
  658. package/table-helpers/models/group-change-event.model.d.ts +1 -1
  659. package/table-helpers/models/index.d.ts +14 -14
  660. package/table-helpers/models/sort-change-event.model.d.ts +1 -1
  661. package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
  662. package/table-helpers/table.d.ts +1 -0
  663. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
  664. package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
  665. package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
  666. package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
  667. package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
  668. package/value-help-dialog/index.d.ts +3 -2
  669. package/value-help-dialog/models/index.d.ts +1 -1
  670. package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
  671. package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
  672. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
  673. package/variant-management/index.d.ts +3 -3
  674. package/variant-management/models/variant-management.d.ts +1 -1
  675. package/wizard-generator/base-wizard-generator.d.ts +1 -1
  676. package/wizard-generator/index.d.ts +9 -9
  677. package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
  678. package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
  679. package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
  680. package/wizard-generator/wizard-generator.service.d.ts +1 -1
  681. package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
  682. package/schematics/ng-add/index.ts +0 -64
  683. package/schematics/ng-add/schema.ts +0 -3
  684. package/schematics/utils/package-utils.ts +0 -104
@@ -155,7 +155,7 @@ export class VariantManagementComponent {
155
155
  provide: FDP_VARIANT_MANAGEMENT,
156
156
  useExisting: VariantManagementComponent
157
157
  }
158
- ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
+ ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n >\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged) {\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n [ngTemplateOutlet]=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n }\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n}\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "iconFont", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
159
159
  }
160
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: VariantManagementComponent, decorators: [{
161
161
  type: Component,
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
210
210
  type: HostBinding,
211
211
  args: ['class']
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi92YXJpYW50LW1hbmFnZW1lbnQvdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi92YXJpYW50LW1hbmFnZW1lbnQvdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUNILFlBQVksRUFDWixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDckIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JILE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRTFCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUs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O3NCQUQ3QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlclN0cmluZ3NQaXBlLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQmFyQ29tcG9uZW50LFxuICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICBCdXR0b25CYXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbUNvbXBvbmVudCwgTGlzdExpbmtEaXJlY3RpdmUsIExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcbmltcG9ydCB7XG4gICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgUG9wb3ZlckJvZHlGb290ZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckJvZHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICBUcmlnZ2VyQ29uZmlnXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEhlYWRlclNpemVzLCBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgTWVudUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbWVudS1idXR0b24nO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRDb21wb25lbnQsIFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hbmFnZVZhcmlhbnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS12YXJpYW50LWl0ZW0vbWFuYWdlLXZhcmlhbnQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFuYWdlVmFyaWFudHNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFyaWFudC1tYW5hZ2VtZW50LWRpcnR5LWxhYmVsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTYXZlRGlhbG9nQ29udGV4dCB9IGZyb20gJy4vbW9kZWxzL3NhdmUtZGlhbG9nLm1vZGVsJztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50IH0gZnJvbSAnLi9tb2RlbHMvdmFyaWFudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IE5ld1ZhcmlhbnQsIFZhcmlhbnQgfSBmcm9tICcuL21vZGVscy92YXJpYW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGRFBfVkFSSUFOVF9NQU5BR0VNRU5UIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHsgVmFyaWFudEl0ZW0gfSBmcm9tICcuL3ZhcmlhbnQtaXRlbS5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXZhcmlhbnQtbWFuYWdlbWVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX1ZBUklBTlRfTUFOQUdFTUVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBNZW51QnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQm9keUNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckJvZHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgIEJhckNvbXBvbmVudCxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgU2VhcmNoRmllbGRDb21wb25lbnQsXG4gICAgICAgIExpc3RDb21wb25lbnQsXG4gICAgICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBMaXN0TGlua0RpcmVjdGl2ZSxcbiAgICAgICAgTGlzdFRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBQb3BvdmVyQm9keUZvb3RlckRpcmVjdGl2ZSxcbiAgICAgICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBGaWx0ZXJTdHJpbmdzUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBWYXJpYW50TWFuYWdlbWVudDxUPiB7XG4gICAgLyoqIEluaXRpYWwgdmFyaWFudHMgYXJyYXkuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFyaWFudHMoaXRlbXM6IFZhcmlhbnQ8VD5bXSkge1xuICAgICAgICB0aGlzLl92YXJpYW50cyA9IHRoaXMuX3RyYW5zZm9ybVZhcmlhbnRzKGl0ZW1zKTtcblxuICAgICAgICBsZXQgY3VycmVudFZhcmlhbnRJbmRleCA9IHRoaXMuX3ZhcmlhbnRzLmZpbmRJbmRleCgodmFyaWFudCkgPT4gdmFyaWFudC5pc0RlZmF1bHQpO1xuICAgICAgICBjdXJyZW50VmFyaWFudEluZGV4ID0gY3VycmVudFZhcmlhbnRJbmRleCA+IC0xID8gY3VycmVudFZhcmlhbnRJbmRleCA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYXJpYW50ID0gdGhpcy5fdmFyaWFudHNbY3VycmVudFZhcmlhbnRJbmRleF07XG4gICAgICAgIHRoaXMuc2VsZWN0VmFyaWFudChjdXJyZW50VmFyaWFudCBhcyBWYXJpYW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEhlYWRlciBzaXplLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGVyU2l6ZTogSGVhZGVyU2l6ZXMgPSA0O1xuXG4gICAgLyoqIFBvcG92ZXIgdHJpZ2dlciBldmVudHMuICovXG4gICAgQElucHV0KClcbiAgICBwb3BvdmVyVHJpZ2dlcnM6IChzdHJpbmcgfCBUcmlnZ2VyQ29uZmlnKVtdID0gW1xuICAgICAgICB7IHRyaWdnZXI6ICdjbGljaycsIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZSwgY2xvc2VBY3Rpb246IHRydWUsIG9wZW5BY3Rpb246IHRydWUgfVxuICAgIF07XG5cbiAgICAvKiogVXNlcidzIG5hbWUgd2hpY2ggd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBuZXcgdmFyaWFudHMgdXNlciBjcmVhdGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlck5hbWU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgc2VhcmNoIGZpZWxkIGZvciB2YXJpYW50cyBsaXN0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVNlYXJjaCA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB2YXJpYW50cyBkYXRhIGhhcyBiZWVuIHVwZGF0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdmFyaWFudHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZhcmlhbnQ8VD5bXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gbmV3IHZhcmlhbnQgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFyaWFudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPj4oKTtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgaW50ZXJuYWxseSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHdyYXBwZXIgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGFjdGl2ZVZhcmlhbnRDaGFuZ2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYXJpYW50PFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gZGlydHkgbGFiZWwgZGlyZWN0aXZlLlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlKVxuICAgIGRpcnR5TGFiZWw6IFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgncG9wb3ZlcicpXG4gICAgX3BvcG92ZXI6IFBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFNlbGVjdGVkIHZhcmlhbnQuICovXG4gICAgYWN0aXZlVmFyaWFudCE6IFZhcmlhbnRJdGVtPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFyaWFudHM6IFZhcmlhbnRJdGVtPFQ+W10gPSBbXTtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX2ZpbHRlclBocmFzZTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxDbGFzcyA9ICdmZC12YXJpYW50LW1hbmFnZW1lbnQnO1xuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQ6IFZhcmlhbnRJdGVtPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIE1hbnVhbGx5IHNlbGVjdCB2YXJpYW50LlxuICAgICAqIEBwYXJhbSB2YXJpYW50IFZhcmlhbnQgdG8gc2VsZWN0LlxuICAgICAqL1xuICAgIHNlbGVjdFZhcmlhbnQodmFyaWFudDogVmFyaWFudEl0ZW08VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50ID0gdmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdmFyaWFudC5jbG9uZSh7fSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2UuZW1pdCh2YXJpYW50KTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50Q2hhbmdlU3ViamVjdC5uZXh0KHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIG9yaWdpbmFsIHZhcmlhbnQgZGF0YS4gKi9cbiAgICBnZXRPcmlnaW5hbEFjdGl2ZVZhcmlhbnREYXRhKCk6IFZhcmlhbnQ8VD5bJ2RhdGEnXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQuZGF0YTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBjdXJyZW50IGFjdGl2ZSB2YXJpYW50IGRhdGEgd2l0aCBhcHBsaWVkIGNoYW5nZXMuICovXG4gICAgZ2V0QWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGN1cnJlbnQgdmFyaWFudCB3aXRoIGl0cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNhdmVDdXJyZW50VmFyaWFudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnRJbmRleCA9IHRoaXMuX3ZhcmlhbnRzLmZpbmRJbmRleCgodmFyaWFudCkgPT4gdmFyaWFudC5pZCA9PT0gdGhpcy5hY3RpdmVWYXJpYW50LmlkKTtcbiAgICAgICAgdGhpcy5fdmFyaWFudHNbY3VycmVudFZhcmlhbnRJbmRleF0gPSB0aGlzLmFjdGl2ZVZhcmlhbnQ7XG4gICAgICAgIHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudCA9IHRoaXMuYWN0aXZlVmFyaWFudC5jbG9uZSh7fSwgZmFsc2UpO1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhcmlhbnRzQ2hhbmdlLmVtaXQodGhpcy5fdmFyaWFudHMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29wZW5TYXZlRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyPy5jbG9zZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbjxTYXZlRGlhbG9nQ29udGV4dD4oTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1ZhcmlhbnROYW1lczogdGhpcy5fdmFyaWFudHMubWFwKCh2YXJpYW50KSA9PiB2YXJpYW50Lm5hbWUpLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRWYXJpYW50TmFtZTogdGhpcy5hY3RpdmVWYXJpYW50Lm5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlc3VsdDogTmV3VmFyaWFudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhcmlhbnQgPSB0aGlzLmFjdGl2ZVZhcmlhbnQuY2xvbmUoeyAuLi5yZXN1bHQsIC4uLnsgY3JlYXRlZEJ5OiB0aGlzLnVzZXJOYW1lIH0gfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFudHMucHVzaChuZXdWYXJpYW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhcmlhbnRzQ2hhbmdlLmVtaXQodGhpcy5fdmFyaWFudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudCA9IG5ld1ZhcmlhbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7fVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGN1cnJlbnQgYWN0aXZlIHByZXNldCB3aXRoIG5ldyBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBwcmVzZXQgUHJlc2V0IGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIGNvbXBvbmVudE5hbWUgY29tcG9uZW50IHRvIHdoaWNoIHRoaXMgcHJlc2V0IGJlbG9uZ3MgdG8uXG4gICAgICovXG4gICAgdXBkYXRlQWN0aXZlUHJlc2V0KHByZXNldDogVCwgY29tcG9uZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVZhcmlhbnREYXRhID0gdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50LmRhdGFbY29tcG9uZW50TmFtZV07XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gYWN0aXZlVmFyaWFudERhdGEgJiYgIWVxdWFsKHByZXNldCwgYWN0aXZlVmFyaWFudERhdGEpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQuZGF0YVtjb21wb25lbnROYW1lXSA9IHByZXNldDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vcGVuTWFuYWdlRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyPy5jbG9zZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbjxWYXJpYW50SXRlbVtdPihNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogdGhpcy5fdmFyaWFudHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAodmFyaWFudHM6IFZhcmlhbnRJdGVtW10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50cyA9IHZhcmlhbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU2VhcmNoU3VibWl0KHNlYXJjaDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyUGhyYXNlID0gc2VhcmNoLnRleHQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBudWxsO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgaXRlbTogVmFyaWFudEl0ZW08VD4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zZm9ybVZhcmlhbnRzKGl0ZW1zOiBWYXJpYW50PFQ+W10pOiBWYXJpYW50SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgodmFyaWFudCkgPT4gbmV3IFZhcmlhbnRJdGVtKHZhcmlhbnQpKTtcbiAgICB9XG59XG4iLCJAaWYgKGFjdGl2ZVZhcmlhbnQpIHtcbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBbbm9BcnJvd109XCJmYWxzZVwiXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19wb3BvdmVyLWJvZHlcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwicG9wb3ZlclRyaWdnZXJzXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8aDQgZmQtdGl0bGUgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3RpdGxlXCIgW2hlYWRlclNpemVdPVwiaGVhZGVyU2l6ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVWYXJpYW50Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIEBpZiAoX3ZhcmlhbnRDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZGlydHktaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC12YXJpYW50LW1hbmFnZW1lbnRfX2RpcnR5LWluZGljYXRvci0tY3VzdG9tXT1cIiEhZGlydHlMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERpcnR5SW5kaWNhdG9yPio8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGlydHlMYWJlbCA/IGRpcnR5TGFiZWwudGVtcGxhdGVSZWYgOiBkZWZhdWx0RGlydHlJbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGZkcC1tZW51LWJ1dHRvbiB0eXBlPVwidHJhbnNwYXJlbnRcIj4gPC9mZHAtbWVudS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCJkaXNwbGF5U2VhcmNoID8gJ2hlYWRlci13aXRoLXN1YmhlYWRlcicgOiAnaGVhZGVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBmZC10aXRsZT57eyAncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5teVZpZXdzJyB8IGZkVHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNlYXJjaCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoU3VibWl0KT1cIl9vblNlYXJjaFN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxTZWFyY2gpPVwiX2NhbmNlbFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVmcmVzaF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQgb2YgX3ZhcmlhbnRzIHwgZmRGaWx0ZXJTdHJpbmdzOiB7IHNlYXJjaFRlcm06IF9maWx0ZXJQaHJhc2UsIGtleTogJ25hbWUnIH07XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIHZhcmlhbnQuaWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAoY2xpY2spPVwic2VsZWN0VmFyaWFudCh2YXJpYW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1saW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgdmFyaWFudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghYWN0aXZlVmFyaWFudC5yZWFkb25seSAmJiBfdmFyaWFudENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNhdmUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUN1cnJlbnRWYXJpYW50KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYWN0aXZlVmFyaWFudC5yZWFkb25seSB8fCAhX3ZhcmlhbnRDaGFuZ2VkID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNhdmVBcycgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuU2F2ZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5tYW5hZ2UnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb3Blbk1hbmFnZURpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbn1cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3ZhcmlhbnQtbWFuYWdlbWVudC92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckgsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFFMUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFD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QUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyU3RyaW5nc1BpcGUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCYXJDb21wb25lbnQsXG4gICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgIEJ1dHRvbkJhckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RJdGVtQ29tcG9uZW50LCBMaXN0TGlua0RpcmVjdGl2ZSwgTGlzdFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBQb3BvdmVyQm9keUNvbXBvbmVudCxcbiAgICBQb3BvdmVyQm9keUZvb3RlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQm9keUhlYWRlckRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFBvcG92ZXJDb250cm9sQ29tcG9uZW50LFxuICAgIFRyaWdnZXJDb25maWdcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgSGVhZGVyU2l6ZXMsIFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBNZW51QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9tZW51LWJ1dHRvbic7XG5pbXBvcnQgeyBTZWFyY2hGaWVsZENvbXBvbmVudCwgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnQtaXRlbS9tYW5hZ2UtdmFyaWFudC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YXJpYW50LW1hbmFnZW1lbnQtZGlydHktbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNhdmVEaWFsb2dDb250ZXh0IH0gZnJvbSAnLi9tb2RlbHMvc2F2ZS1kaWFsb2cubW9kZWwnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnQgfSBmcm9tICcuL21vZGVscy92YXJpYW50LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgTmV3VmFyaWFudCwgVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzL3ZhcmlhbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZEUF9WQVJJQU5UX01BTkFHRU1FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQgeyBWYXJpYW50SXRlbSB9IGZyb20gJy4vdmFyaWFudC1pdGVtLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdmFyaWFudC1tYW5hZ2VtZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfVkFSSUFOVF9NQU5BR0VNRU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRNYW5hZ2VtZW50Q29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE1lbnVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBQb3BvdmVyQm9keUhlYWRlckRpcmVjdGl2ZSxcbiAgICAgICAgQmFyQ29tcG9uZW50LFxuICAgICAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgICAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBTZWFyY2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgTGlzdENvbXBvbmVudCxcbiAgICAgICAgTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIExpc3RMaW5rRGlyZWN0aXZlLFxuICAgICAgICBMaXN0VGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIFBvcG92ZXJCb2R5Rm9vdGVyRGlyZWN0aXZlLFxuICAgICAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uQmFyQ29tcG9uZW50LFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIEZpbHRlclN0cmluZ3NQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIFZhcmlhbnRNYW5hZ2VtZW50PFQ+IHtcbiAgICAvKiogSW5pdGlhbCB2YXJpYW50cyBhcnJheS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYW50cyhpdGVtczogVmFyaWFudDxUPltdKSB7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5fdHJhbnNmb3JtVmFyaWFudHMoaXRlbXMpO1xuXG4gICAgICAgIGxldCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlzRGVmYXVsdCk7XG4gICAgICAgIGN1cnJlbnRWYXJpYW50SW5kZXggPSBjdXJyZW50VmFyaWFudEluZGV4ID4gLTEgPyBjdXJyZW50VmFyaWFudEluZGV4IDogMDtcbiAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XTtcbiAgICAgICAgdGhpcy5zZWxlY3RWYXJpYW50KGN1cnJlbnRWYXJpYW50IGFzIFZhcmlhbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogSGVhZGVyIHNpemUuICovXG4gICAgQElucHV0KClcbiAgICBoZWFkZXJTaXplOiBIZWFkZXJTaXplcyA9IDQ7XG5cbiAgICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUcmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHsgdHJpZ2dlcjogJ2NsaWNrJywgc3RvcFByb3BhZ2F0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogdHJ1ZSwgb3BlbkFjdGlvbjogdHJ1ZSB9XG4gICAgXTtcblxuICAgIC8qKiBVc2VyJ3MgbmFtZSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyB2YXJpYW50cyB1c2VyIGNyZWF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBzZWFyY2ggZmllbGQgZm9yIHZhcmlhbnRzIGxpc3QuICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U2VhcmNoID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHZhcmlhbnRzIGRhdGEgaGFzIGJlZW4gdXBkYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB2YXJpYW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPltdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBuZXcgdmFyaWFudCBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBhY3RpdmVWYXJpYW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWYXJpYW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCBpbnRlcm5hbGx5IGZvciBjb21tdW5pY2F0aW5nIHdpdGggd3JhcHBlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgYWN0aXZlVmFyaWFudENoYW5nZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhcmlhbnQ8VD4gfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBkaXJ0eSBsYWJlbCBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUpXG4gICAgZGlydHlMYWJlbDogVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAvKiogU2VsZWN0ZWQgdmFyaWFudC4gKi9cbiAgICBhY3RpdmVWYXJpYW50ITogVmFyaWFudEl0ZW08VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF92YXJpYW50czogVmFyaWFudEl0ZW08VD5bXSA9IFtdO1xuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfZmlsdGVyUGhyYXNlOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudCc7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29yaWdpbmFsQWN0aXZlVmFyaWFudDogVmFyaWFudEl0ZW08VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgc2VsZWN0IHZhcmlhbnQuXG4gICAgICogQHBhcmFtIHZhcmlhbnQgVmFyaWFudCB0byBzZWxlY3QuXG4gICAgICovXG4gICAgc2VsZWN0VmFyaWFudCh2YXJpYW50OiBWYXJpYW50SXRlbTxUPik6IHZvaWQge1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50O1xuICAgICAgICB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQgPSB2YXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudENoYW5nZS5lbWl0KHZhcmlhbnQpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2VTdWJqZWN0Lm5leHQodmFyaWFudCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgb3JpZ2luYWwgdmFyaWFudCBkYXRhLiAqL1xuICAgIGdldE9yaWdpbmFsQWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgYWN0aXZlIHZhcmlhbnQgZGF0YSB3aXRoIGFwcGxpZWQgY2hhbmdlcy4gKi9cbiAgICBnZXRBY3RpdmVWYXJpYW50RGF0YSgpOiBWYXJpYW50PFQ+WydkYXRhJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVWYXJpYW50LmRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgY3VycmVudCB2YXJpYW50IHdpdGggaXRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc2F2ZUN1cnJlbnRWYXJpYW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlkID09PSB0aGlzLmFjdGl2ZVZhcmlhbnQuaWQpO1xuICAgICAgICB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XSA9IHRoaXMuYWN0aXZlVmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3BlblNhdmVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXI/LmNsb3NlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPFNhdmVEaWFsb2dDb250ZXh0PihNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nVmFyaWFudE5hbWVzOiB0aGlzLl92YXJpYW50cy5tYXAoKHZhcmlhbnQpID0+IHZhcmlhbnQubmFtZSksXG4gICAgICAgICAgICAgICAgY3VycmVudFZhcmlhbnROYW1lOiB0aGlzLmFjdGl2ZVZhcmlhbnQubmFtZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzdWx0OiBOZXdWYXJpYW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFyaWFudCA9IHRoaXMuYWN0aXZlVmFyaWFudC5jbG9uZSh7IC4uLnJlc3VsdCwgLi4ueyBjcmVhdGVkQnk6IHRoaXMudXNlck5hbWUgfSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50cy5wdXNoKG5ld1ZhcmlhbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50ID0gbmV3VmFyaWFudDtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgY3VycmVudCBhY3RpdmUgcHJlc2V0IHdpdGggbmV3IGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIHByZXNldCBQcmVzZXQgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gY29tcG9uZW50TmFtZSBjb21wb25lbnQgdG8gd2hpY2ggdGhpcyBwcmVzZXQgYmVsb25ncyB0by5cbiAgICAgKi9cbiAgICB1cGRhdGVBY3RpdmVQcmVzZXQocHJlc2V0OiBULCBjb21wb25lbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aXZlVmFyaWFudERhdGEgPSB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQuZGF0YVtjb21wb25lbnROYW1lXTtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBhY3RpdmVWYXJpYW50RGF0YSAmJiAhZXF1YWwocHJlc2V0LCBhY3RpdmVWYXJpYW50RGF0YSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmFyaWFudC5kYXRhW2NvbXBvbmVudE5hbWVdID0gcHJlc2V0O1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29wZW5NYW5hZ2VEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXI/LmNsb3NlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPFZhcmlhbnRJdGVtW10+KE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB0aGlzLl92YXJpYW50c1xuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YXJpYW50czogVmFyaWFudEl0ZW1bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdmFyaWFudHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hTdWJtaXQoc2VhcmNoOiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBzZWFyY2gudGV4dDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5jZWxTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclBocmFzZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfdHJhY2tGbihpbmRleDogbnVtYmVyLCBpdGVtOiBWYXJpYW50SXRlbTxUPik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtVmFyaWFudHMoaXRlbXM6IFZhcmlhbnQ8VD5bXSk6IFZhcmlhbnRJdGVtW10ge1xuICAgICAgICByZXR1cm4gaXRlbXMubWFwKCh2YXJpYW50KSA9PiBuZXcgVmFyaWFudEl0ZW0odmFyaWFudCkpO1xuICAgIH1cbn1cbiIsIkBpZiAoYWN0aXZlVmFyaWFudCkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIFtub0Fycm93XT1cImZhbHNlXCJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3BvcG92ZXItYm9keVwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJwb3BvdmVyVHJpZ2dlcnNcIlxuICAgID5cbiAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxoNCBmZC10aXRsZSBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGVcIiBbaGVhZGVyU2l6ZV09XCJoZWFkZXJTaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZVZhcmlhbnQubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgQGlmIChfdmFyaWFudENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19kaXJ0eS1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZGlydHktaW5kaWNhdG9yLS1jdXN0b21dPVwiISFkaXJ0eUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RGlydHlJbmRpY2F0b3I+KjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkaXJ0eUxhYmVsID8gZGlydHlMYWJlbC50ZW1wbGF0ZVJlZiA6IGRlZmF1bHREaXJ0eUluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZmRwLW1lbnUtYnV0dG9uIHR5cGU9XCJ0cmFuc3BhcmVudFwiPiA8L2ZkcC1tZW51LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cImRpc3BsYXlTZWFyY2ggPyAnaGVhZGVyLXdpdGgtc3ViaGVhZGVyJyA6ICdoZWFkZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlPnt7ICdwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50Lm15Vmlld3MnIHwgZmRUcmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2VhcmNoJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwiX29uU2VhcmNoU3VibWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJfY2FuY2VsU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVSZWZyZXNoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudCBvZiBfdmFyaWFudHMgfCBmZEZpbHRlclN0cmluZ3M6IHsgc2VhcmNoVGVybTogX2ZpbHRlclBocmFzZSwga2V5OiAnbmFtZScgfTtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sgdmFyaWFudC5pZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIChjbGljayk9XCJzZWxlY3RWYXJpYW50KHZhcmlhbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyB2YXJpYW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY3RpdmVWYXJpYW50LnJlYWRvbmx5ICYmIF92YXJpYW50Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ3VycmVudFZhcmlhbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJhY3RpdmVWYXJpYW50LnJlYWRvbmx5IHx8ICFfdmFyaWFudENoYW5nZWQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZUFzJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX29wZW5TYXZlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50Lm1hbmFnZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuTWFuYWdlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxufVxuIl19
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
39
39
  ]
40
40
  }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi92YXJpYW50LW1hbmFnZW1lbnQvdmFyaWFudC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWtCNUUsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsWUFkNUIsMEJBQTBCO1lBQzFCLG9DQUFvQztZQUNwQywwQkFBMEI7WUFDMUIsaUNBQWlDO1lBQ2pDLDZCQUE2QixhQUc3QiwwQkFBMEI7WUFDMUIsb0NBQW9DO1lBQ3BDLDBCQUEwQjtZQUMxQixpQ0FBaUM7WUFDakMsNkJBQTZCOytHQUd4Qix1QkFBdUIsWUFkNUIsMEJBQTBCO1lBRTFCLDBCQUEwQjtZQUUxQiw2QkFBNkI7OzJGQVV4Qix1QkFBdUI7a0JBaEJuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwwQkFBMEI7d0JBQzFCLG9DQUFvQzt3QkFDcEMsMEJBQTBCO3dCQUMxQixpQ0FBaUM7d0JBQ2pDLDZCQUE2QjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLDBCQUEwQjt3QkFDMUIsb0NBQW9DO3dCQUNwQywwQkFBMEI7d0JBQzFCLGlDQUFpQzt3QkFDakMsNkJBQTZCO3FCQUNoQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudC1pdGVtL21hbmFnZS12YXJpYW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS12YXJpYW50cy1kaWFsb2cvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtbWFuYWdlbWVudC13cmFwcGVyL3ZhcmlhbnQtbWFuYWdlbWVudC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFyaWFudC1tYW5hZ2VtZW50LWRpcnR5LWxhYmVsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudCB9IGZyb20gJy4vdmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudCxcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlLFxuICAgICAgICBNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCxcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudCxcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlLFxuICAgICAgICBNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCxcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVmFyaWFudE1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFrQjVFLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLFlBZDVCLDBCQUEwQjtZQUMxQixvQ0FBb0M7WUFDcEMsMEJBQTBCO1lBQzFCLGlDQUFpQztZQUNqQyw2QkFBNkIsYUFHN0IsMEJBQTBCO1lBQzFCLG9DQUFvQztZQUNwQywwQkFBMEI7WUFDMUIsaUNBQWlDO1lBQ2pDLDZCQUE2QjsrR0FHeEIsdUJBQXVCLFlBZDVCLDBCQUEwQjtZQUUxQiwwQkFBMEI7WUFFMUIsNkJBQTZCOzsyRkFVeEIsdUJBQXVCO2tCQWhCbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsMEJBQTBCO3dCQUMxQixvQ0FBb0M7d0JBQ3BDLDBCQUEwQjt3QkFDMUIsaUNBQWlDO3dCQUNqQyw2QkFBNkI7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDTCwwQkFBMEI7d0JBQzFCLG9DQUFvQzt3QkFDcEMsMEJBQTBCO3dCQUMxQixpQ0FBaUM7d0JBQ2pDLDZCQUE2QjtxQkFDaEM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnQtaXRlbS9tYW5hZ2UtdmFyaWFudC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LW1hbmFnZW1lbnQtd3JhcHBlci92YXJpYW50LW1hbmFnZW1lbnQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhcmlhbnQtbWFuYWdlbWVudC1kaXJ0eS1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZSxcbiAgICAgICAgTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQsXG4gICAgICAgIFZhcmlhbnRNYW5hZ2VtZW50V3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgTWFuYWdlVmFyaWFudHNEaWFsb2dDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFZhcmlhbnRNYW5hZ2VtZW50RGlydHlMYWJlbERpcmVjdGl2ZSxcbiAgICAgICAgTWFuYWdlVmFyaWFudEl0ZW1Db21wb25lbnQsXG4gICAgICAgIFZhcmlhbnRNYW5hZ2VtZW50V3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgTWFuYWdlVmFyaWFudHNEaWFsb2dDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFZhcmlhbnRNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, Directive, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { debounceTime, finalize, takeUntil } from 'rxjs/operators';
4
- import { WizardGeneratorService } from './wizard-generator.service';
5
4
  import { ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
+ import { WizardGeneratorService } from './wizard-generator.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./wizard-generator.service";
8
8
  /**
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
335
335
  }], wizardFinished: [{
336
336
  type: Output
337
337
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS13aXphcmQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3dpemFyZC1nZW5lcmF0b3IvYmFzZS13aXphcmQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1uRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRzNFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQXNDO0lBQ2hGLE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxlQUFlO1FBQ3RCLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1FBQzFDLElBQUksRUFBRSxPQUFPO0tBQ2hCO0lBQ0QsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLFdBQVc7UUFDbEIsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDckI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsUUFBUTtRQUNmLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1FBQzFDLElBQUksRUFBRSxPQUFPO0tBQ2hCO0lBQ0QsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLFFBQVE7UUFDZixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELE1BQU0sRUFBRTtRQUNK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QUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUU5QyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxnQkFBZ0I7UUFDMUIsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBaFdRLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixTQUFTOzJIQU1OLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPRixzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLO2dCQXlCRixjQUFjO3NCQURqQixLQUFLO2dCQVdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFRTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFPTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFdpemFyZFN0ZXBTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvd2l6YXJkJztcbmltcG9ydCB7IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbSwgV2l6YXJkR2VuZXJhdG9ySXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1uYXZpZ2F0aW9uLWJ1dHRvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU1vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWUsIFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgYnV0dG9uIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0laQVJEX05BVklHQVRJT05fQlVUVE9OUzogUmVxdWlyZWQ8V2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnM+ID0ge1xuICAgIGdvQmFjazoge1xuICAgICAgICBsYWJlbDogJ1ByZXZpb3VzIFN0ZXAnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGdvTmV4dDoge1xuICAgICAgICBsYWJlbDogJ05leHQgU3RlcCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICBjYW5jZWw6IHtcbiAgICAgICAgbGFiZWw6ICdDYW5jZWwnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGZpbmlzaDoge1xuICAgICAgICBsYWJlbDogJ0ZpbmlzaCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICByZXZpZXc6IHtcbiAgICAgICAgbGFiZWw6ICdSZXZpZXcnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdlbXBoYXNpemVkJ1xuICAgIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgV2l6YXJkIEdlbmVyYXRvciBjb21wb25lbnQgd2l0aCBuZWNlc3NhcnkgaW5wdXRzIGFuZCBtZXRob2RzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlV2l6YXJkR2VuZXJhdG9yIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgYXBwbHkgcmVzcG9uc2l2ZSBwYWRkaW5ncyBzdHlsaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVzcG9uc2l2ZVBhZGRpbmdzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdXR0b24gbGFiZWxzIHRvIGJlIHVzZWQgaW4gV2l6YXJkIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKHZhbHVlOiBXaXphcmROYXZpZ2F0aW9uQnV0dG9ucykge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TLCB2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKCk6IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25CdXR0b25MYWJlbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpdGVtcyhpdGVtczogV2l6YXJkR2VuZXJhdG9ySXRlbVtdKSB7XG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmNsZWFyV2l6YXJkU3RlcENvbXBvbmVudHMoKTtcblxuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnByZXBhcmVXaXphcmRJdGVtcyhpdGVtcykudGhlbigobmV3SXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gbmV3SXRlbXM7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBuZXdJdGVtcztcbiAgICAgICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKTogV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXBwZW5kVG9XaXphcmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRPcmlnaW5hbEFwcGVuZFRvV2l6YXJkU3RhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBhcHBlbmRUb1dpemFyZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZFRvV2l6YXJkO1xuICAgIH1cblxuICAgIC8qKiBJZiBuYXZpZ2F0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gaGVpZ2h0IHRvIHVzZSBmb3IgdGhlIHdpemFyZCdzIGNvbnRlbnQgcGFuZS4gQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBjYWxjKDEwMHZoIC0gMTQ0cHgpLCB3aGVyZSAxNDRweFxuICAgICAqIGlzIHRoZSBjb21iaW5lZCBoZWlnaHQgb2YgdGhlIHNoZWxsYmFyLCB3aXphcmQgaGVhZGVyIGFuZCB3aXphcmQgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudEhlaWdodDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc3BsYXkgU3VtbWFyeSBzdGVwIGluIFdpemFyZCBwcm9ncmVzcyBiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aXphcmQgdmFsdWUgd2hlbiBpdCdzIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB3aXphcmRGaW5pc2hlZDogRXZlbnRFbWl0dGVyPFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgd2l6YXJkIGlzIHJlYWR5IHRvIGJlIHNob3duXG4gICAgICovXG4gICAgd2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElzIGN1cnJlbnQgc3RlcCBpcyBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzU3VtbWFyeVN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1tjdXJyZW50SW5kZXhdPy5zdW1tYXJ5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBcnJheSBvZiB2aXNpYmxlIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSkge1xuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICB9XG4gICAgZ2V0IHZpc2libGVJdGVtcygpOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXMgfHwgdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGZpcnN0IHN0ZXBcbiAgICAgKi9cbiAgICBnZXQgaXNGaXJzdFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1swXT8uc3RhdHVzID09PSAnY3VycmVudCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcFxuICAgICAqL1xuICAgIGdldCBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBsYXN0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gbGFzdFN0ZXA/LnN0YXR1cyA9PT0gJ2N1cnJlbnQnICYmICFsYXN0U3RlcC5icmFuY2hpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBjdXJyZW50IHN0ZXAgaXMgYSBicmFuY2hpbmcgc3RlcC5cbiAgICAgKi9cbiAgICBnZXQgaXNCcmFuY2hpbmdTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUl0ZW1zW2N1cnJlbnRJbmRleF0/LmJyYW5jaGluZyA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBuZXh0IHN0ZXAgaXMgYSBTdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzTmV4dFN0ZXBTdW1tYXJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZXh0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMuX25leHRTdGVwSW5kZXhdO1xuICAgICAgICByZXR1cm4gbmV4dFN0ZXA/LnN1bW1hcnkgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgc3RlcCBpcyBjb21wbGV0ZWQgKi9cbiAgICBnZXQgaXNDdXJyZW50U3RlcENvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXNbY3VycmVudEluZGV4XT8uY29tcGxldGVkID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdmlzaWJsZUl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbmV4dFN0ZXBJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwZW5kVG9XaXphcmQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtUGVuZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzOiBSZXF1aXJlZDxXaXphcmROYXZpZ2F0aW9uQnV0dG9ucz4gPSBERUZBVUxUX1dJWkFSRF9OQVZJR0FUSU9OX0JVVFRPTlM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfd2l6YXJkR2VuZXJhdG9yU2VydmljZTogV2l6YXJkR2VuZXJhdG9yU2VydmljZSwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaXNpYmxlU3RlcHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmlzaWJsZVN0ZXBzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSB2aXNpYmxlU3RlcHM7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrU3RlcHNDb21wb25lbnRzKClcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHN0ZXBzQ29tcG9uZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdGVwc0NvbXBvbmVudHMuc2l6ZSA9PT0gdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldFZpc2libGVTdGVwcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC50cmFja0FwcGVuZFRvV2l6YXJkU3RhdGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRUb1dpemFyZCA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrU3RlcHNPcmRlcigpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChuZXdOZXh0U3RlcCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX25leHRTdGVwSW5kZXggPSBuZXdOZXh0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGVwc09yZGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tOZXh0U3RlcEluZGV4KClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZlcnRzIFdpemFyZCBwcm9ncmVzcyBvbmUgc3RlcCBiYWNrLlxuICAgICAqL1xuICAgIGdvQmFjaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1N0ZXBJbmRleCA9IGN1cnJlbnRTdGVwSW5kZXggLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLnZpc2libGVJdGVtc1twcmV2aW91c1N0ZXBJbmRleF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnZpc2libGVJdGVtc1tjdXJyZW50U3RlcEluZGV4XS5zdGF0dXMgPSAndXBjb21pbmcnO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtc1twcmV2aW91c1N0ZXBJbmRleF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnNldFZpc2libGVTdGVwcyh0aGlzLnZpc2libGVJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXROZXh0U3RlcEluZGV4KGN1cnJlbnRTdGVwSW5kZXgpO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvZ3Jlc3NlcyB0aGUgV2l6YXJkIG9uZSBzdGVwIGZ1cnRoZXIuXG4gICAgICovXG4gICAgYXN5bmMgZ29OZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fZm9ybVBlbmRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICAgICAgY29uc3QgbmV4dFN0ZXBJbmRleCA9IHRoaXMuX25leHRTdGVwSW5kZXg7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnZhbGlkYXRlU3RlcEZvcm1zKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXRWaXNpYmxlU3RlcHMoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gdGhpcy52aXNpYmxlSXRlbXM7XG5cbiAgICAgICAgICAgICAgICBpZiAoc3RlcHNbbmV4dFN0ZXBJbmRleF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHN0ZXBzW2N1cnJlbnRTdGVwSW5kZXhdLnN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICAgICAgICAgIHN0ZXBzW2N1cnJlbnRTdGVwSW5kZXhdLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc3RlcHNbbmV4dFN0ZXBJbmRleF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRWaXNpYmxlU3RlcHMoc3RlcHMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXROZXh0U3RlcEluZGV4KG5leHRTdGVwSW5kZXggKyAxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdWJtaXRzIHN0ZXAgZm9ybXMuXG4gICAgICogQHBhcmFtIGN1cnJlbnRTdGVwSW5kZXggY3VycmVudCBzdGVwIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB8IG51bGw+fSBPYnNlcnZhYmxlIHdpdGggZm9ybSB2YWx1ZXMuXG4gICAgICovXG4gICAgc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSW5kZXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB8IG51bGw+IHtcbiAgICAgICAgdGhpcy5fZm9ybVBlbmRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcEluZGV4KS5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZXMgdGhlIHdpemFyZCBhbmQgZW1pdHMgaXQncyBmb3JtYXR0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgYXN5bmMgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1bW1hcnlTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMud2l6YXJkRmluaXNoZWQuZW1pdCh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnZhbGlkYXRlU3RlcEZvcm1zKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcblxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkRmluaXNoZWQuZW1pdCh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHRvIHVwZGF0ZSBzdGVwcyBzdGF0dXMuXG4gICAgICogQHBhcmFtIHN0ZXBOdW1iZXIgU3RlcCBJRCB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgTmV3IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIHN0ZXBTdGF0dXNDaGFuZ2VkKHN0ZXBJZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RlcEluZGV4ID0gdGhpcy5fdmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXNbc3RlcEluZGV4XS5zdGF0dXMgPSBzdGF0dXM7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VmlzaWJsZVN0ZXBzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlZnJlc2hTdGVwVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS13aXphcmQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2Jhc2Utd2l6YXJkLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFLM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVwRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFzQztJQUNoRixNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsZUFBZTtRQUN0QixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsT0FBTztLQUNoQjtJQUNELE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxXQUFXO1FBQ2xCLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1FBQzFDLElBQUksRUFBRSxZQUFZO0tBQ3JCO0lBQ0QsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLFFBQVE7UUFDZixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsT0FBTztLQUNoQjtJQUNELE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxRQUFRO1FBQ2YsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLFlBQVk7S0FDckI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVB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LEdBQUcsTUFBTSxDQUFDO1FBRTlDLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUMxQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0FuV1EsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7MkhBTU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9GLHNCQUFzQjtzQkFEekIsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBeUJGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV04saUJBQWlCO3NCQURoQixLQUFLO2dCQVFOLGFBQWE7c0JBRFosS0FBSztnQkFPTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBXaXphcmRTdGVwU3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3dpemFyZCc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlLCBXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1mb3Jtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtLCBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1nZW5lcmF0b3ItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLW5hdmlnYXRpb24tYnV0dG9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmYXVsdCBidXR0b24gbGFiZWxzLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TOiBSZXF1aXJlZDxXaXphcmROYXZpZ2F0aW9uQnV0dG9ucz4gPSB7XG4gICAgZ29CYWNrOiB7XG4gICAgICAgIGxhYmVsOiAnUHJldmlvdXMgU3RlcCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2dob3N0J1xuICAgIH0sXG4gICAgZ29OZXh0OiB7XG4gICAgICAgIGxhYmVsOiAnTmV4dCBTdGVwJyxcbiAgICAgICAgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNULFxuICAgICAgICB0eXBlOiAnZW1waGFzaXplZCdcbiAgICB9LFxuICAgIGNhbmNlbDoge1xuICAgICAgICBsYWJlbDogJ0NhbmNlbCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2dob3N0J1xuICAgIH0sXG4gICAgZmluaXNoOiB7XG4gICAgICAgIGxhYmVsOiAnRmluaXNoJyxcbiAgICAgICAgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNULFxuICAgICAgICB0eXBlOiAnZW1waGFzaXplZCdcbiAgICB9LFxuICAgIHJldmlldzoge1xuICAgICAgICBsYWJlbDogJ1JldmlldycsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfVxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBXaXphcmQgR2VuZXJhdG9yIGNvbXBvbmVudCB3aXRoIG5lY2Vzc2FyeSBpbnB1dHMgYW5kIG1ldGhvZHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VXaXphcmRHZW5lcmF0b3IgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIG9yIG5vdCBhcHBseSByZXNwb25zaXZlIHBhZGRpbmdzIHN0eWxpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZXNwb25zaXZlUGFkZGluZ3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1dHRvbiBsYWJlbHMgdG8gYmUgdXNlZCBpbiBXaXphcmQgbmF2aWdhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG5hdmlnYXRpb25CdXR0b25MYWJlbHModmFsdWU6IFdpemFyZE5hdmlnYXRpb25CdXR0b25zKSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25CdXR0b25MYWJlbHMgPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1dJWkFSRF9OQVZJR0FUSU9OX0JVVFRPTlMsIHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IG5hdmlnYXRpb25CdXR0b25MYWJlbHMoKTogV2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvbkJ1dHRvbkxhYmVscztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgV2l6YXJkIFN0ZXBzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGl0ZW1zKGl0ZW1zOiBXaXphcmRHZW5lcmF0b3JJdGVtW10pIHtcbiAgICAgICAgdGhpcy53aXphcmRDcmVhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuY2xlYXJXaXphcmRTdGVwQ29tcG9uZW50cygpO1xuXG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UucHJlcGFyZVdpemFyZEl0ZW1zKGl0ZW1zKS50aGVuKChuZXdJdGVtcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMgPSBuZXdJdGVtcztcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVJdGVtcyA9IG5ld0l0ZW1zO1xuICAgICAgICAgICAgdGhpcy53aXphcmRDcmVhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBpdGVtcygpOiBXaXphcmRHZW5lcmF0b3JJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhcHBlbmQgdGhlIHN0ZXAgdG8gdGhlIHdpemFyZC4gSWYgZmFsc2UsIGVhY2ggc3RlcCB3aWxsIGJlIGRpc3BsYXllZCBvbiBhIGRpZmZlcmVudCBwYWdlLlxuICAgICAqIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhcHBlbmRUb1dpemFyZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnNldE9yaWdpbmFsQXBwZW5kVG9XaXphcmRTdGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGFwcGVuZFRvV2l6YXJkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwZW5kVG9XaXphcmQ7XG4gICAgfVxuXG4gICAgLyoqIElmIG5hdmlnYXRpb24gYnV0dG9ucyBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRpb25CdXR0b25zID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBoZWlnaHQgdG8gdXNlIGZvciB0aGUgd2l6YXJkJ3MgY29udGVudCBwYW5lLiBCeSBkZWZhdWx0LCB0aGlzIHZhbHVlIGlzIGNhbGMoMTAwdmggLSAxNDRweCksIHdoZXJlIDE0NHB4XG4gICAgICogaXMgdGhlIGNvbWJpbmVkIGhlaWdodCBvZiB0aGUgc2hlbGxiYXIsIHdpemFyZCBoZWFkZXIgYW5kIHdpemFyZCBmb290ZXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50SGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZGlzcGxheSBTdW1tYXJ5IHN0ZXAgaW4gV2l6YXJkIHByb2dyZXNzIGJhci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlTdW1tYXJ5U3RlcCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgYWxsIGZvcm0gaXRlbXMgc2hvdWxkIGhhdmUgaWRlbnRpY2FsIGxheW91dCBwcm92aWRlZCBmb3IgZm9ybSBncm91cC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaWZpZWRMYXlvdXQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHdpemFyZCB2YWx1ZSB3aGVuIGl0J3MgY29tcGxldGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHdpemFyZEZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8V2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgdGhhdCB3aXphcmQgaXMgcmVhZHkgdG8gYmUgc2hvd25cbiAgICAgKi9cbiAgICB3aXphcmRDcmVhdGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSXMgY3VycmVudCBzdGVwIGlzIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBnZXQgaXNTdW1tYXJ5U3RlcCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUl0ZW1zW2N1cnJlbnRJbmRleF0/LnN1bW1hcnkgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIHZpc2libGUgV2l6YXJkIFN0ZXBzLlxuICAgICAqL1xuICAgIHNldCB2aXNpYmxlSXRlbXMoaXRlbXM6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGVJdGVtcyA9IGl0ZW1zO1xuICAgIH1cbiAgICBnZXQgdmlzaWJsZUl0ZW1zKCk6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtcyB8fCB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgV2l6YXJkIGlzIGN1cnJlbnRseSBvbiB0aGUgZmlyc3Qgc3RlcFxuICAgICAqL1xuICAgIGdldCBpc0ZpcnN0U3RlcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUl0ZW1zWzBdPy5zdGF0dXMgPT09ICdjdXJyZW50JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgV2l6YXJkIGlzIGN1cnJlbnRseSBvbiB0aGUgbGFzdCBzdGVwXG4gICAgICovXG4gICAgZ2V0IGlzTGFzdFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGxhc3RTdGVwID0gdGhpcy52aXNpYmxlSXRlbXNbdGhpcy52aXNpYmxlSXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBsYXN0U3RlcD8uc3RhdHVzID09PSAnY3VycmVudCcgJiYgIWxhc3RTdGVwLmJyYW5jaGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGN1cnJlbnQgc3RlcCBpcyBhIGJyYW5jaGluZyBzdGVwLlxuICAgICAqL1xuICAgIGdldCBpc0JyYW5jaGluZ1N0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXNbY3VycmVudEluZGV4XT8uYnJhbmNoaW5nID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG5leHQgc3RlcCBpcyBhIFN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBnZXQgaXNOZXh0U3RlcFN1bW1hcnkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG5leHRTdGVwID0gdGhpcy52aXNpYmxlSXRlbXNbdGhpcy5fbmV4dFN0ZXBJbmRleF07XG4gICAgICAgIHJldHVybiBuZXh0U3RlcD8uc3VtbWFyeSA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGVwIGlzIGNvbXBsZXRlZCAqL1xuICAgIGdldCBpc0N1cnJlbnRTdGVwQ29tcGxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtc1tjdXJyZW50SW5kZXhdPy5jb21wbGV0ZWQgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF92aXNpYmxlSXRlbXM6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9uZXh0U3RlcEluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdGVwc09yZGVyQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2l0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBlbmRUb1dpemFyZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1QZW5kaW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX25hdmlnYXRpb25CdXR0b25MYWJlbHM6IFJlcXVpcmVkPFdpemFyZE5hdmlnYXRpb25CdXR0b25zPiA9IERFRkFVTFRfV0laQVJEX05BVklHQVRJT05fQlVUVE9OUztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfd2l6YXJkR2VuZXJhdG9yU2VydmljZTogV2l6YXJkR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaXNpYmxlU3RlcHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmlzaWJsZVN0ZXBzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSB2aXNpYmxlU3RlcHM7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrU3RlcHNDb21wb25lbnRzKClcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHN0ZXBzQ29tcG9uZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdGVwc0NvbXBvbmVudHMuc2l6ZSA9PT0gdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldFZpc2libGVTdGVwcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC50cmFja0FwcGVuZFRvV2l6YXJkU3RhdGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRUb1dpemFyZCA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrU3RlcHNPcmRlcigpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChuZXdOZXh0U3RlcCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX25leHRTdGVwSW5kZXggPSBuZXdOZXh0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGVwc09yZGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tOZXh0U3RlcEluZGV4KClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZlcnRzIFdpemFyZCBwcm9ncmVzcyBvbmUgc3RlcCBiYWNrLlxuICAgICAqL1xuICAgIGdvQmFjaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1N0ZXBJbmRleCA9IGN1cnJlbnRTdGVwSW5kZXggLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLnZpc2libGVJdGVtc1twcmV2aW91c1N0ZXBJbmRleF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnZpc2libGVJdGVtc1tjdXJyZW50U3RlcEluZGV4XS5zdGF0dXMgPSAndXBjb21pbmcnO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtc1twcmV2aW91c1N0ZXBJbmRleF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnNldFZpc2libGVTdGVwcyh0aGlzLnZpc2libGVJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXROZXh0U3RlcEluZGV4KGN1cnJlbnRTdGVwSW5kZXgpO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvZ3Jlc3NlcyB0aGUgV2l6YXJkIG9uZSBzdGVwIGZ1cnRoZXIuXG4gICAgICovXG4gICAgYXN5bmMgZ29OZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fZm9ybVBlbmRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICAgICAgY29uc3QgbmV4dFN0ZXBJbmRleCA9IHRoaXMuX25leHRTdGVwSW5kZXg7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnZhbGlkYXRlU3RlcEZvcm1zKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXRWaXNpYmxlU3RlcHMoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gdGhpcy52aXNpYmxlSXRlbXM7XG5cbiAgICAgICAgICAgICAgICBpZiAoc3RlcHNbbmV4dFN0ZXBJbmRleF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHN0ZXBzW2N1cnJlbnRTdGVwSW5kZXhdLnN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICAgICAgICAgIHN0ZXBzW2N1cnJlbnRTdGVwSW5kZXhdLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc3RlcHNbbmV4dFN0ZXBJbmRleF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRWaXNpYmxlU3RlcHMoc3RlcHMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXROZXh0U3RlcEluZGV4KG5leHRTdGVwSW5kZXggKyAxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdWJtaXRzIHN0ZXAgZm9ybXMuXG4gICAgICogQHBhcmFtIGN1cnJlbnRTdGVwSW5kZXggY3VycmVudCBzdGVwIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB8IG51bGw+fSBPYnNlcnZhYmxlIHdpdGggZm9ybSB2YWx1ZXMuXG4gICAgICovXG4gICAgc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSW5kZXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB8IG51bGw+IHtcbiAgICAgICAgdGhpcy5fZm9ybVBlbmRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcEluZGV4KS5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZXMgdGhlIHdpemFyZCBhbmQgZW1pdHMgaXQncyBmb3JtYXR0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgYXN5bmMgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1bW1hcnlTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMud2l6YXJkRmluaXNoZWQuZW1pdCh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnZhbGlkYXRlU3RlcEZvcm1zKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcblxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkRmluaXNoZWQuZW1pdCh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHRvIHVwZGF0ZSBzdGVwcyBzdGF0dXMuXG4gICAgICogQHBhcmFtIHN0ZXBOdW1iZXIgU3RlcCBJRCB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgTmV3IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIHN0ZXBTdGF0dXNDaGFuZ2VkKHN0ZXBJZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RlcEluZGV4ID0gdGhpcy5fdmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXNbc3RlcEluZGV4XS5zdGF0dXMgPSBzdGF0dXM7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VmlzaWJsZVN0ZXBzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlZnJlc2hTdGVwVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -123,7 +123,7 @@ export class DialogWizardGeneratorComponent extends BaseWizardGenerator {
123
123
  });
124
124
  }
125
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i0.ChangeDetectorRef }, { token: i2.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: DialogWizardGeneratorComponent, isStandalone: true, selector: "fdp-dialog-wizard-generator", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: "defaultConfirmationDialogTemplate", first: true, predicate: ["defaultConfirmationDialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n @if (wizardCreated) {\n <div fd-bar barDesign=\"floating-footer\" [class.fd-bar--responsive-paddings]=\"responsivePaddings\">\n <div fd-bar-right>\n @if (!isFirstStep) {\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n }\n @if (!isLastStep) {\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n @if (\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n ) {\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n }\n }\n @if (isLastStep) {\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n }\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </div>\n </div>\n }\n </fd-dialog-body>\n</fd-dialog>\n<ng-template\n [fdMessageBoxTemplate]\n let-messageBox\n let-messageBoxConfig=\"messageBoxConfig\"\n #defaultConfirmationDialogTemplate\n>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i2.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: WizardBodyComponent, selector: "fdp-wizard-body", inputs: ["responsivePaddings", "navigationButtonLabels", "appendToWizard", "contentHeight", "isFirstStep", "isLastStep", "isNextStepSummary", "displaySummaryStep", "goNextButtonTemplate", "finishButtonTemplate", "customSummaryStepTemplate", "reviewButtonTemplate", "isSummaryStep", "navigationButtons", "unifiedLayout", "isBranchingStep", "isCurrentStepCompleted", "stepsOrderChanged"], outputs: ["statusChange", "goNext", "finish"] }, { kind: "ngmodule", type: BarModule }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MessageBoxModule }, { kind: "component", type: i5.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i5.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i5.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i5.MessageBoxTemplateDirective, selector: "[fdMessageBoxTemplate]", inputs: ["fdMessageBoxTemplateConfig"] }, { kind: "directive", type: i6.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: DialogWizardGeneratorComponent, isStandalone: true, selector: "fdp-dialog-wizard-generator", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: "defaultConfirmationDialogTemplate", first: true, predicate: ["defaultConfirmationDialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n @if (wizardCreated) {\n <div fd-bar barDesign=\"floating-footer\" [class.fd-bar--responsive-paddings]=\"responsivePaddings\">\n <div fd-bar-right>\n @if (!isFirstStep) {\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n }\n @if (!isLastStep) {\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n @if (\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n ) {\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n }\n }\n @if (isLastStep) {\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n }\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </div>\n </div>\n }\n </fd-dialog-body>\n</fd-dialog>\n<ng-template\n [fdMessageBoxTemplate]\n let-messageBox\n let-messageBoxConfig=\"messageBoxConfig\"\n #defaultConfirmationDialogTemplate\n>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i2.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: WizardBodyComponent, selector: "fdp-wizard-body", inputs: ["responsivePaddings", "navigationButtonLabels", "appendToWizard", "contentHeight", "isFirstStep", "isLastStep", "isNextStepSummary", "displaySummaryStep", "goNextButtonTemplate", "finishButtonTemplate", "customSummaryStepTemplate", "reviewButtonTemplate", "isSummaryStep", "navigationButtons", "unifiedLayout", "isBranchingStep", "isCurrentStepCompleted", "stepsOrderChanged"], outputs: ["statusChange", "goNext", "finish"] }, { kind: "ngmodule", type: BarModule }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "glyphFont", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MessageBoxModule }, { kind: "component", type: i5.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i5.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i5.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i5.MessageBoxTemplateDirective, selector: "[fdMessageBoxTemplate]", inputs: ["fdMessageBoxTemplateConfig"] }, { kind: "directive", type: i6.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
127
127
  }
128
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{
129
129
  type: Component,
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
144
144
  type: ViewChild,
145
145
  args: ['defaultConfirmationDialogTemplate']
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvd2l6YXJkLWdlbmVyYXRvci9jb21wb25lbnRzL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFF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R0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7OEdBbkpRLDhCQUE4QjtrR0FBOUIsOEJBQThCLDBFQWhCNUIsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyx5TUNqQzdELHk2TUE2SEEsMkNEekZRLFlBQVksczNCQUlaLG1CQUFtQiw2ZUFDbkIsU0FBUywrQkFDVCxlQUFlLDRRQUNmLHVCQUF1QixvZEFDdkIsZ0JBQWdCLG1KQUNoQixnQkFBZ0I7OzJGQUlYLDhCQUE4QjtrQkFyQjFDLFNBQVM7K0JBQ0ksNkJBQTZCLGlCQUV4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsY0FDN0MsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3FCQUN4QjttSkFJK0MsaUNBQWlDO3NCQUFoRixTQUFTO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlLCBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IE1lc3NhZ2VCb3hNb2R1bGUsIE1lc3NhZ2VCb3hTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lc3NhZ2UtYm94JztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9idXR0b24nO1xuaW1wb3J0IHsgQmFzZVdpemFyZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uL2Jhc2Utd2l6YXJkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBXaXphcmREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZFRpdGxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtdGl0bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi93aXphcmQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2l6YXJkQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL3dpemFyZC1ib2R5L3dpemFyZC1ib2R5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWRpYWxvZy13aXphcmQtZ2VuZXJhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbV2l6YXJkR2VuZXJhdG9yU2VydmljZSwgRm9ybUdlbmVyYXRvclNlcnZpY2VdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBEaWFsb2dNb2R1bGUsXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEJvZHlDb21wb25lbnQsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlV2l6YXJkR2VuZXJhdG9yIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZScpIGRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdpemFyZHMgZGlhbG9nIHRpdGxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgdGl0bGU6IFdpemFyZFRpdGxlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbiBtZXNzYWdlIHdoZW4gd2l6YXJkIGRpYWxvZyBjbG9zZSBidXR0b24gaGFzIGJlZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dUZXh0ID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHlvdXIgcHJvZ3Jlc3M/JztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybSBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSAnQ29uZmlybSc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbmNlbCBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0ID0gJ0NhbmNlbCc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gTmV4dFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnb05leHRCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBCYWNrXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGdvQmFja0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkZpbmlzaFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBmaW5pc2hCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJDYW5jZWxcIiBidXR0b24uXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIGNhbmNlbGxhdGlvbiBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgc3VtbWFyeVN0ZXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiUmV2aWV3XCIgYnV0dG9uICovXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2VCb3hTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VCb3hTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlOiBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZjxXaXphcmREaWFsb2dEYXRhPlxuICAgICkge1xuICAgICAgICBzdXBlcihfd2l6YXJkR2VuZXJhdG9yU2VydmljZSwgX2NkKTtcblxuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuaXRlbXM7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS50aXRsZTtcbiAgICAgICAgdGhpcy5hcHBlbmRUb1dpemFyZCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmFwcGVuZFRvV2l6YXJkO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID8/IHt9O1xuICAgICAgICB0aGlzLmNvbnRlbnRIZWlnaHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb250ZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLnJlc3BvbnNpdmVQYWRkaW5ncyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnJlc3BvbnNpdmVQYWRkaW5ncztcbiAgICAgICAgdGhpcy5nb05leHRCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmdvTmV4dEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmdvQmFja0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29CYWNrQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZmluaXNoQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5maW5pc2hCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNhbmNlbEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZGlzcGxheVN1bW1hcnlTdGVwID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZGlzcGxheVN1bW1hcnlTdGVwIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLnN1bW1hcnlTdGVwVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5zdW1tYXJ5U3RlcFRlbXBsYXRlO1xuICAgICAgICB0aGlzLnJldmlld0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmV2aWV3QnV0dG9uVGVtcGxhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnVuaWZpZWRMYXlvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy51bmlmaWVkTGF5b3V0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEubmF2aWdhdGlvbkJ1dHRvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZXh0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FuY2VscyBXaXphcmQgcHJvZ3Jlc3MgYW5kIGNsb3NlcyB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuaXNTdGVwc1VudG91Y2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZUJveFJlZiA9IHRoaXMuX21lc3NhZ2VCb3hTZXJ2aWNlLm9wZW4odGVtcGxhdGUsIHsgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUgfSk7XG5cbiAgICAgICAgbWVzc2FnZUJveFJlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChyZXN1bHQpID0+IHJlc3VsdCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlcyBXaXphcmQgcHJvY2VzcywgZW1pdHMgV2l6YXJkIHJlc3VsdCBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgYXN5bmMgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1bW1hcnlTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJZCgpO1xuICAgICAgICB0aGlzLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcElkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdCkuc29tZSgocikgPT4gIXIuc3VjY2VzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb0JhY2tGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuZ29CYWNrKCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb05leHRGbjogKCkgPT4gUHJvbWlzZTx2b2lkPiA9ICgpID0+IHRoaXMuZ29OZXh0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2ZpbmlzaEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5maW5pc2goKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfY2FuY2VsRm46ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmNhbmNlbCgpO1xufVxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGgyIGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cInRpdGxlLnNpemVcIj57eyB0aXRsZS50ZXh0IH19PC9oMj5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmRwLXdpemFyZC1ib2R5XG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc3BsYXlTdW1tYXJ5U3RlcF09XCJkaXNwbGF5U3VtbWFyeVN0ZXBcIlxuICAgICAgICAgICAgW3Jlc3BvbnNpdmVQYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICAgICAgW25hdmlnYXRpb25CdXR0b25MYWJlbHNdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHNcIlxuICAgICAgICAgICAgW2N1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGVdPVwic3VtbWFyeVN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbcmV2aWV3QnV0dG9uVGVtcGxhdGVdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2hpZGRlbl09XCIhd2l6YXJkQ3JlYXRlZFwiXG4gICAgICAgICAgICBbYXBwZW5kVG9XaXphcmRdPVwiYXBwZW5kVG9XaXphcmRcIlxuICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICBbY29udGVudEhlaWdodF09XCJjb250ZW50SGVpZ2h0XCJcbiAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwic3RlcFN0YXR1c0NoYW5nZWQoJGV2ZW50LmlkLCAkZXZlbnQuc3RhdHVzKVwiXG4gICAgICAgID48L2ZkcC13aXphcmQtYm9keT5cbiAgICAgICAgQGlmICh3aXphcmRDcmVhdGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmbG9hdGluZy1mb290ZXJcIiBbY2xhc3MuZmQtYmFyLS1yZXNwb25zaXZlLXBhZGRpbmdzXT1cInJlc3BvbnNpdmVQYWRkaW5nc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFpc0ZpcnN0U3RlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R29CYWNrQnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2suY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2sudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ29CYWNrQnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdEdvQmFja0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb0JhY2s6IF9nb0JhY2tGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWlzTGFzdFN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEdvTmV4dEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29OZXh0LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29OZXh0LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29OZXh0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzQnJhbmNoaW5nU3RlcCAmJiAoIWlzQ3VycmVudFN0ZXBDb21wbGV0ZWQgfHwgX3N0ZXBzT3JkZXJDaGFuZ2VkKSkgfHwgIWlzTmV4dFN0ZXBTdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ29OZXh0QnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdEdvTmV4dEJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29OZXh0OiBfZ29OZXh0Rm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29OZXh0OiBfZ29OZXh0Rm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpc0xhc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaW5pc2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaW5pc2hCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0RmluaXNoQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGZpbmlzaDogX2ZpbmlzaEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2FuY2VsQnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuY2FuY2VsLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW5jZWxCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0Q2FuY2VsQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY2FuY2VsOiBfY2FuY2VsRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuPC9mZC1kaWFsb2c+XG48bmctdGVtcGxhdGVcbiAgICBbZmRNZXNzYWdlQm94VGVtcGxhdGVdXG4gICAgbGV0LW1lc3NhZ2VCb3hcbiAgICBsZXQtbWVzc2FnZUJveENvbmZpZz1cIm1lc3NhZ2VCb3hDb25maWdcIlxuICAgICNkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGVcbj5cbiAgICA8ZmQtbWVzc2FnZS1ib3ggW21lc3NhZ2VCb3hDb25maWddPVwibWVzc2FnZUJveENvbmZpZ1wiIFttZXNzYWdlQm94UmVmXT1cIm1lc3NhZ2VCb3hcIj5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWJvZHk+XG4gICAgICAgICAgICB7eyBjb25maXJtYXRpb25EaWFsb2dUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lc3NhZ2VCb3guY2xvc2UodHJ1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgZmRrSW5pdGlhbEZvY3VzIFtsYWJlbF09XCJjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0XCIgKGNsaWNrKT1cIm1lc3NhZ2VCb3guZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgIDwvZmQtbWVzc2FnZS1ib3g+XG48L25nLXRlbXBsYXRlPlxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztBQXVCM0UsTUFBTSxPQUFPLDhCQUErQixTQUFRLG1CQUFtQjtJQTBEbkUsY0FBYztJQUNkLFlBQ0ksdUJBQStDLEVBQy9DLEdBQXNCLEVBQ2QsVUFBdUM7UUFFL0MsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRjVCLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBckRuRDs7V0FFRztRQUNILDJCQUFzQixHQUFHLGlEQUFpRCxDQUFDO1FBQzNFOztXQUVHO1FBQ0gsZ0NBQTJCLEdBQUcsU0FBUyxDQUFDO1FBQ3hDOztXQUVHO1FBQ0gsaUNBQTRCLEdBQUcsUUFBUSxDQUFDO1FBbUN4QyxjQUFjO1FBQ0csdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUE2RmhFOztXQUVHO1FBQ0gsY0FBUyxHQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1Qzs7V0FFRztRQUNILGNBQVMsR0FBd0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXJEOztXQUVHO1FBQ0gsY0FBUyxHQUF3QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxjQUFTLEdBQWUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBcEd4QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDdEUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1FBQ2xGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7UUFDM0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUV0RSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDM0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDbkU7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztTQUM3RTtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDbkQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDO1NBQ3pGO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNsRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUM7U0FDdkY7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRTFCLE9BQU87U0FDVjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsaUNBQWlDLENBQUM7UUFFM0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFGLGFBQWEsQ0FBQyxXQUFXO2FBQ3BCLElBQUksQ0FDRCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDUixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsT0FBTztTQUNWO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7YUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3pELE9BQU87YUFDVjtZQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FuSlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMEVBaEI1QixDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLHlNQ2pDN0QseTZNQTZIQSwyQ0R6RlEsWUFBWSxzM0JBSVosbUJBQW1CLDZlQUNuQixTQUFTLCtCQUNULGVBQWUseVJBQ2YsdUJBQXVCLG9kQUN2QixnQkFBZ0IsbUpBQ2hCLGdCQUFnQjs7MkZBSVgsOEJBQThCO2tCQXJCMUMsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyxjQUM3QyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCO21KQUkrQyxpQ0FBaUM7c0JBQWhGLFNBQVM7dUJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCYXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUsIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTWVzc2FnZUJveE1vZHVsZSwgTWVzc2FnZUJveFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1ib3gnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2J1dHRvbic7XG5pbXBvcnQgeyBCYXNlV2l6YXJkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vYmFzZS13aXphcmQtZ2VuZXJhdG9yJztcbmltcG9ydCB7IFdpemFyZERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC1kaWFsb2ctZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkVGl0bGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC10aXRsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBXaXphcmRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGlhbG9nLXdpemFyZC1nZW5lcmF0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLCBGb3JtR2VuZXJhdG9yU2VydmljZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIFNjcm9sbGJhckRpcmVjdGl2ZSxcbiAgICAgICAgV2l6YXJkQm9keUNvbXBvbmVudCxcbiAgICAgICAgQmFyTW9kdWxlLFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIENvbnRlbnREZW5zaXR5RGlyZWN0aXZlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBNZXNzYWdlQm94TW9kdWxlLFxuICAgICAgICBJbml0aWFsRm9jdXNEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ1dpemFyZEdlbmVyYXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VXaXphcmRHZW5lcmF0b3Ige1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdENvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlJykgZGVmYXVsdENvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2l6YXJkcyBkaWFsb2cgdGl0bGUgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICB0aXRsZTogV2l6YXJkVGl0bGU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9uIG1lc3NhZ2Ugd2hlbiB3aXphcmQgZGlhbG9nIGNsb3NlIGJ1dHRvbiBoYXMgYmVlbiBjbGlja2VkLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2NhcmQgeW91ciBwcm9ncmVzcz8nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtIGJ1dHRvbiB0ZXh0IGZvciBjbG9zZSBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCA9ICdDb25maXJtJztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FuY2VsIGJ1dHRvbiB0ZXh0IGZvciBjbG9zZSBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQgPSAnQ2FuY2VsJztcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBOZXh0XCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGdvTmV4dEJ1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkdvIEJhY2tcIiBidXR0b24uXG4gICAgICovXG4gICAgZ29CYWNrQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiRmluaXNoXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGZpbmlzaEJ1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBjYW5jZWxCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgY2FuY2VsbGF0aW9uIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBzdW1tYXJ5U3RlcFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJSZXZpZXdcIiBidXR0b24gKi9cbiAgICByZXZpZXdCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZUJveFNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZUJveFNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX3dpemFyZEdlbmVyYXRvclNlcnZpY2U6IFdpemFyZEdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogRGlhbG9nUmVmPFdpemFyZERpYWxvZ0RhdGE+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLCBfY2QpO1xuXG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5pdGVtcztcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnRpdGxlO1xuICAgICAgICB0aGlzLmFwcGVuZFRvV2l6YXJkID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuYXBwZW5kVG9XaXphcmQ7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbkxhYmVscyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPz8ge307XG4gICAgICAgIHRoaXMuY29udGVudEhlaWdodCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZVBhZGRpbmdzID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmVzcG9uc2l2ZVBhZGRpbmdzO1xuICAgICAgICB0aGlzLmdvTmV4dEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29OZXh0QnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZ29CYWNrQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5nb0JhY2tCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5maW5pc2hCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmZpbmlzaEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNhbmNlbEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY2FuY2VsQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U3VtbWFyeVN0ZXAgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5kaXNwbGF5U3VtbWFyeVN0ZXAgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuc3VtbWFyeVN0ZXBUZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnN1bW1hcnlTdGVwVGVtcGxhdGU7XG4gICAgICAgIHRoaXMucmV2aWV3QnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5yZXZpZXdCdXR0b25UZW1wbGF0ZTtcblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuaWZpZWRMYXlvdXQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS51bmlmaWVkTGF5b3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWxzIFdpemFyZCBwcm9ncmVzcyBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5pc1N0ZXBzVW50b3VjaGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZSB8fCB0aGlzLmRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlQm94UmVmID0gdGhpcy5fbWVzc2FnZUJveFNlcnZpY2Uub3Blbih0ZW1wbGF0ZSwgeyByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSB9KTtcblxuICAgICAgICBtZXNzYWdlQm94UmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHJlc3VsdCkgPT4gcmVzdWx0KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGVzIFdpemFyZCBwcm9jZXNzLCBlbWl0cyBXaXphcmQgcmVzdWx0IGFuZCBjbG9zZXMgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBhc3luYyBmaW5pc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3VtbWFyeVN0ZXApIHtcbiAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50U3RlcElkID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcElkKCk7XG4gICAgICAgIHRoaXMuc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIE9iamVjdC52YWx1ZXMocmVzdWx0KS5zb21lKChyKSA9PiAhci5zdWNjZXNzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvQmFja0ZuOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy5nb0JhY2soKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvTmV4dEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5nb05leHQoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZmluaXNoRm46ICgpID0+IFByb21pc2U8dm9pZD4gPSAoKSA9PiB0aGlzLmZpbmlzaCgpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9jYW5jZWxGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuY2FuY2VsKCk7XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDIgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwidGl0bGUuc2l6ZVwiPnt7IHRpdGxlLnRleHQgfX08L2gyPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZHAtd2l6YXJkLWJvZHlcbiAgICAgICAgICAgIFtuYXZpZ2F0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbZGlzcGxheVN1bW1hcnlTdGVwXT1cImRpc3BsYXlTdW1tYXJ5U3RlcFwiXG4gICAgICAgICAgICBbcmVzcG9uc2l2ZVBhZGRpbmdzXT1cInJlc3BvbnNpdmVQYWRkaW5nc1wiXG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc109XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc1wiXG4gICAgICAgICAgICBbY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZV09XCJzdW1tYXJ5U3RlcFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtyZXZpZXdCdXR0b25UZW1wbGF0ZV09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiF3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgICAgIFthcHBlbmRUb1dpemFyZF09XCJhcHBlbmRUb1dpemFyZFwiXG4gICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgICAgIFtjb250ZW50SGVpZ2h0XT1cImNvbnRlbnRIZWlnaHRcIlxuICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJzdGVwU3RhdHVzQ2hhbmdlZCgkZXZlbnQuaWQsICRldmVudC5zdGF0dXMpXCJcbiAgICAgICAgPjwvZmRwLXdpemFyZC1ib2R5PlxuICAgICAgICBAaWYgKHdpemFyZENyZWF0ZWQpIHtcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZsb2F0aW5nLWZvb3RlclwiIFtjbGFzcy5mZC1iYXItLXJlc3BvbnNpdmUtcGFkZGluZ3NdPVwicmVzcG9uc2l2ZVBhZGRpbmdzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWlzRmlyc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnb0JhY2tCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0R29CYWNrQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdvQmFjazogX2dvQmFja0ZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICghaXNMYXN0U3RlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNCcmFuY2hpbmdTdGVwICYmICghaXNDdXJyZW50U3RlcENvbXBsZXRlZCB8fCBfc3RlcHNPcmRlckNoYW5nZWQpKSB8fCAhaXNOZXh0U3RlcFN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnb05leHRCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzTGFzdFN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpbmlzaEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbmlzaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbmlzaEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZmluaXNoOiBfZmluaXNoRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDYW5jZWxCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuY2FuY2VsLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbmNlbEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRDYW5jZWxCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjYW5jZWw6IF9jYW5jZWxGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XG48L2ZkLWRpYWxvZz5cbjxuZy10ZW1wbGF0ZVxuICAgIFtmZE1lc3NhZ2VCb3hUZW1wbGF0ZV1cbiAgICBsZXQtbWVzc2FnZUJveFxuICAgIGxldC1tZXNzYWdlQm94Q29uZmlnPVwibWVzc2FnZUJveENvbmZpZ1wiXG4gICAgI2RlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZVxuPlxuICAgIDxmZC1tZXNzYWdlLWJveCBbbWVzc2FnZUJveENvbmZpZ109XCJtZXNzYWdlQm94Q29uZmlnXCIgW21lc3NhZ2VCb3hSZWZdPVwibWVzc2FnZUJveFwiPlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgICAgIHt7IGNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgfX1cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1ib2R5PlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVzc2FnZUJveC5jbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBmZGtJbml0aWFsRm9jdXMgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHRcIiAoY2xpY2spPVwibWVzc2FnZUJveC5kaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1mb290ZXI+XG4gICAgPC9mZC1tZXNzYWdlLWJveD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=