@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
@@ -342,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
342
342
  type: HostListener,
343
343
  args: ['keyup', ['$event']]
344
344
  }] } });
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFcEQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVB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QUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCQUNLU1BBQ0UsIERFTEVURSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFRleHRBcmVhQ29uZmlnIH0gZnJvbSAnLi90ZXh0LWFyZWEuY29uZmlnJztcblxuY29uc3QgVkFMSURfV1JBUF9UWVBFUyA9IFsnaGFyZCcsICdzb2Z0JywgJ29mZiddO1xuXG5leHBvcnQgdHlwZSBXcmFwVHlwZSA9ICdoYXJkJyB8ICdzb2Z0JyB8ICdvZmYnO1xuXG4vKipcbiAqIFRleHRhcmVhIGZpZWxkIGltcGxlbWVudGF0aW9uIHRoYXQgaXMgY29tcGxpYW50IHdpdGggUGxhdGZvcm0ncyBGb3JtR3JvdXAvRm9ybUZpZWxkIGRlc2lnblxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAndGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJ3RleHQtYXJlYS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfRk9STV9GSUVMRF9DT05UUk9MLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRleHRBcmVhQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybUNvbnRyb2xDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVpZ2h0IHRvIHdoaWNoIHRoZSB0ZXh0YXJlYSB3aWxsIGdyb3cgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKiBJZiBib3RoIGBncm93aW5nTWF4TGluZXNgIGFuZCBgaGVpZ2h0YCBhcmUgcHJvdmlkZWQsIGBoZWlnaHRgIHZhbHVlIHRha2VzIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nTWF4TGluZXM6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYGNvbHNgIGF0dHJpYnV0ZSB3cmFwcGVkLSB0aGUgbnVtYmVyIG9mIGxldHRlcnMgdmlzaWJsZSBwZXIgbGluZS5cbiAgICAgKiBJZiB3aWR0aCBpcyBzZXQgdG8gYXV0bywgdGhpcyBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHM6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgd3JhcGAgYXR0cmlidXRlIC0gY2FuIGJlIG9uZSBvZiB0aHJlZTogJ29mZicsICdoYXJkJyBvciAnc29mdCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwVHlwZTogV3JhcFR5cGUgPSAnc29mdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0ZXh0YXJlYSBpcyByZWFkb25seVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCB0byBlbnRlci5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIGBtYXhMZW5ndGhgIGhhcyBuYXRpdmUgdGV4dGFyZWEncyBiZWhhdmlvciBvZiBkaXNhbGxvd2luZyB0eXBpbmcgYmV5b25kIGBtYXhMZW5ndGhgLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyB0cnVlLCB1c2VyIGlzIGFsbG93ZWQgdG8gdHlwZSBiZXlvbmQgYG1heExlbmd0aGAsIGJ1dCBlcnJvciBzdGF0ZXMgYW5kIGNvdW50ZXIgbWVzc2FnZXMgc2hvd2luZ1xuICAgICAqIHRoZSBleGNlZWRlZCBjb3VudCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY291bnRlciBtZXNzYWdlIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIG5vIHN0YXRlIGNoYW5nZXMgb3IgZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiBVc2VyIGlzIHNpbXBseSBub3QgYWxsb3dlZCB0byB0eXBlXG4gICAgICogYmV5b25kIHRoZSBgbWF4TGVuZ3RoYCBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4Y2VlZGVkVGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHRleHRhcmVhIGNhbiBncm93LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhJ3MgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2hlbiBjdXN0b20gdmFsdWUgbm90IHNldCwgd2Ugc2hvdWxkIHNldC9yZXNldCBjb3VudGVyIHRvIG1heGxlbmd0aCB2YWx1ZSB3aGVuIGl0IGJlY29tZXMgdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggPyB0aGlzLm1heExlbmd0aCA6IDA7XG4gICAgICAgICAgICAvLyByZXNldCBzdGF0ZSBieSByZXNldHRpbmcgdmFsdWVcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb3VudGVyJylcbiAgICBfdGV4dGFyZWFDb3VudGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gZXhjZXNzIGNoYXJhY3RlciBjb3VudCAqL1xuICAgIGV4Y2VlZGVkQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIGEgc3RyaW5nIHBsYWNlaG9sZGVyIHRoYXQgdG9nZ2xlcyBiZXR3ZWVuICdyZW1haW5pbmcnIGFuZCAnZXhjZXNzJyBmb3IgdGhlIHNlbGVjdCBJQ1UgZXhwcmVzc2lvbiAqL1xuICAgIGNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9ICdyZW1haW5pbmcnO1xuXG4gICAgLyoqIEBoaWRkZW4gZmxhZyB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbHVlIHNldCAqL1xuICAgIGlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqIHRvIGtlZXAgdHJhY2sgb2YgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1Bhc3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtYWluaW5nVGV4dCA9ICdyZW1haW5pbmcnO1xuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2Vzc1RleHQgPSAnZXhjZXNzJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAc2VlIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbC5leHRyYUNvbnRlbnRIZWlnaHRQeFxuICAgICAqL1xuICAgIGdldCBleHRyYUNvbnRlbnRIZWlnaHRQeCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dGFyZWFDb3VudGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9zaG91bGRUcmFja1RleHRMaW1pdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoID4gMCAmJiAhdGhpcy5zaG93RXhjZWVkZWRUZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3RleHRBcmVhQ29uZmlnOiBUZXh0QXJlYUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBUeXBlIHx8IFZBTElEX1dSQVBfVFlQRVMuaW5kZXhPZih0aGlzLndyYXBUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGV4dGFyZWEgd3JhcCB0eXBlICR7dGhpcy53cmFwVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIG5vdCBjdXN0b20gc2V0LCBzZXQgY291bnRlciB0byBtYXggbGVuZ3RoIHZhbHVlLCBlbHNlIGl0IGNhbGN1bGF0ZXMgcmVtYWluaW5nL2V4Y2VlZGVkIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCBtYXggaGVpZ2h0XG4gICAgICAgIHRoaXMuX3NldE1heEhlaWdodCgpO1xuXG4gICAgICAgIC8vIGRvbid0IHNldCBhbnkgZXJyb3Igc3RhdGUgaWYgd2UgYXJlIG5vdCBzaG93aW5nIGNvdW50ZXIgbWVzc2FnZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldChpbml0aWFsIHZhbHVlIGlzIHByZXNlbnQpLCB0aGUgaGVpZ2h0cyBkb24ndCBnZXRcbiAgICAgICAgLy8gc2V0IHRvIHNob3cgdGhlIGZ1bGwgdGV4dCBpbiB0aGUgbmdBZnRlclZpZXdJbml0IGltbWVkaWF0ZWx5LiB0aGVyZWZvcmUsIHdlIGNhbGwgYXV0b0dyb3dUZXh0QXJlYSBpblxuICAgICAgICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQgYW5kIGRldGVjdCBjaGFuZ2VzIGFnYWluLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmlzVmFsdWVDdXN0b21TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpOyAvLyBpZiBhcHBsaWNhYmxlLCBncm93IHRoZSB0ZXh0YXJlYSB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXRcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiBuZ0FmdGVyVmlld0NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA/PyAnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogd3JpdGVWYWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGUgdGhlIGNvdW50ZXIgbWVzc2FnZSBhbmQgcmVsYXRlZCBpbnRlcmFjdGlvbnMgKi9cbiAgICB1cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaXRlcmF0aW9uLCByZW1vdmUgaWYgaXNzdWUgZm91bmRcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGlmIGV4Y2VlZGVkIG1heGxlbmd0aCB3aGVuIHNldCBhcyBhIHZhbHVlIGluIGNvZGUsIGhpZ2hsaWdodCB0aGUgZXhjZWVkZWQgdGV4dC4gKi9cbiAgICB2YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzUGFzdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5tYXhMZW5ndGgsIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgLSB0aGlzLm1heExlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgZXhjZWVkZWQgbWF4bGVuZ3RoIGNhc2Ugd2hlbiB0ZXh0IGlzIHBhc3RlZCAqL1xuICAgIGhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBXcmFwcGVkIGluIHRpbWVvdXQgdG8gbWFrZSBzZWxlY3RpbmcgcmFuZ2Ugd29ya2luZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGF1dG8gZ3Jvd2luZyBvZiB0ZXh0YXJlYSAqL1xuICAgIGF1dG9Hcm93VGV4dEFyZWEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgY29uc3QgdGV4dGFyZWFUb3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhcnNlSW50KHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0IGFzIHN0cmluZywgMTApO1xuICAgICAgICAgICAgaWYgKG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0YXJlYVRvdGFsSGVpZ2h0IDw9IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gYm91bmQgbWF4IGhlaWdodCwga2VlcCBncm93aW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBsaW5lIGhlaWdodCBvZiB0ZXh0YXJlYVxuICAgICAqL1xuICAgIGdldFRleHRhcmVhTGluZUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAyMDsgLy8gZGVmYXVsdCBsaW5lIGhlaWdodCBpZiBub3RoaW5nIGlzIGRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogd2hlbiBiYWNrcHJlc3Mgb3IgZGVsZXRlIGtleSBpcyBwcmVzc2VkIHdoZW4gc2hvd0V4Y2VlZGVkVGV4dCBmaWVsZCBpcyBub3Qgc2V0LCBzaW1wbHkgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzLFxuICAgIC8qIGVsc2UgaGFuZGxlIGF1dG9ncm93IGNhc2VcbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVCYWNrUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgbm90IHNob3dpbmcgZXhjZWVkZWQgdGV4dCBtZXNzYWdlL2ludGVyYWN0aW9ucyBvciBncm93aW5nLCBhbmQgY3VzdG9tIHZhbHVlIHNldFxuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzZXQgaXQgdG8gZmFsc2UgZmlyc3QgdGltZSBpdCBjb21lcyBoZXJlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0ICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbREVMRVRFLCBCQUNLU1BBQ0VdKSkge1xuICAgICAgICAgICAgLy8gZm9yIHRoZSBjdXN0b20gdmFsdWUgc2V0IGFuZCBzaG93RXhjZWVkZWRUZXh0PWZhbHNlIGNhc2UsIG9uIGFueSBrZXkgcHJlc3MsIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2luY2UgdmFsdWUgaXMgbm93IGNoYW5nZWQsIGl0IGlzIG5vIGxvbmdlciBjdXN0b20gc2V0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRoZSB1cGRhdGVkIHN0YXRlIHdoZW4gY2hhcmFjdGVyIGNvdW50IGJyZWFjaGVzIGBtYXhMZW5ndGhgXG4gICAgICovXG4gICAgZ2V0VXBkYXRlZFN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fZ2V0Q29udGVudExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gdHJ1ZTsgLy8gc2V0IGZsYWcgZm9yIGVycm9yIG1lc3NhZ2UgdG8gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTsgLy8gcmV0dXJuIGFueSBvdGhlciBlcnJvcnMgZm91bmQgYnkgcGFyZW50IGZvcm0gZmllbGRcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBOYXRpdmUgZWxlbWVudCAgKi9cbiAgICBnZXQgX3RhcmdldEVsZW1lbnQoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29udGVudExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGVudExlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLl90YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50TGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgdG90YWwgaGVpZ2h0IGluY2x1ZGluZyBib3JkZXJzIGFuZCBzY3JvbGwgaGVpZ2h0ICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApICtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApO1xuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gc2V0IGluaXRpYWwgbWF4IGhlaWdodCAqKi9cbiAgICBwcml2YXRlIF9zZXRNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcgJiYgdGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmdyb3dpbmdNYXhMaW5lcyAqIHRoaXMuZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4gcm93cyBhdHRyaWJ1dGUgdGFrZXMgY2FyZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgICAjaW5wdXRFbGVtZW50UmVmXG4gICAgZmQtZm9ybS1jb250cm9sXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctY291bnRlcidcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5yb3dzXT1cImdyb3dpbmcgPyAyIDogaGVpZ2h0ID8gMiA6IGdyb3dpbmdNYXhMaW5lc1wiXG4gICAgW2F0dHIuY29sc109XCJjb2xzXCJcbiAgICBbYXR0ci53cmFwXT1cIndyYXBUeXBlXCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwiIXNob3dFeGNlZWRlZFRleHQgPyBtYXhMZW5ndGggOiBudWxsXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc3RhdGVdPVwiZ2V0VXBkYXRlZFN0YXRlKClcIlxuICAgIChwYXN0ZSk9XCJoYW5kbGVQYXN0ZUludGVyYWN0aW9uKClcIlxuICAgIChibHVyKT1cIl9vbkZvY3VzQ2hhbmdlZChmYWxzZSlcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1c0NoYW5nZWQodHJ1ZSlcIlxuPjwvdGV4dGFyZWE+XG48IS0tIElDVSByZWNvbW1lbmRzIGZ1bGwgdGV4dCBpbiBmb3JtYXQgLS0+XG5AaWYgKHNob3dFeGNlZWRlZFRleHQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmQtdGV4dGFyZWEtY291bnRlclwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIFthdHRyLmlkXT1cImlkICsgJy1jb3VudGVyJ1wiICNjb3VudGVyPlxuICAgICAgICA8IS0tIHJlbmRlciBzcGFjZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlIHdoaWxlIHRyYW5zbGF0aW9uIHN0cmluZyBpcyBsb2FkaW5nIGluIG9yZGVyIHRvIGF2b2lkIGNvbnRlbnQganVtcHMgLS0+XG4gICAgICAgIEBpZiAoY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID09PSAnZXhjZXNzJykge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIlxuICAgICAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzT3ZlclRoZUxpbWl0U2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc092ZXJUaGVMaW1pdFBsdXJhbCdcbiAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBleGNlZWRlZENoYXJDb3VudCB9IDogJyZuYnNwOyZuYnNwOydcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgICAgIChleGNlZWRlZENoYXJDb3VudCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nUGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQUVwRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FB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QVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJBQ0tTUEFDRSwgREVMRVRFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IEtleVV0aWwsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZCwgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgVGV4dEFyZWFDb25maWcgfSBmcm9tICcuL3RleHQtYXJlYS5jb25maWcnO1xuXG5jb25zdCBWQUxJRF9XUkFQX1RZUEVTID0gWydoYXJkJywgJ3NvZnQnLCAnb2ZmJ107XG5cbmV4cG9ydCB0eXBlIFdyYXBUeXBlID0gJ2hhcmQnIHwgJ3NvZnQnIHwgJ29mZic7XG5cbi8qKlxuICogVGV4dGFyZWEgZmllbGQgaW1wbGVtZW50YXRpb24gdGhhdCBpcyBjb21wbGlhbnQgd2l0aCBQbGF0Zm9ybSdzIEZvcm1Hcm91cC9Gb3JtRmllbGQgZGVzaWduXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10ZXh0YXJlYScsXG4gICAgdGVtcGxhdGVVcmw6ICd0ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAndGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGV4dEFyZWFDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3JtQ29udHJvbENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFRoZSBoZWlnaHQgdG8gd2hpY2ggdGhlIHRleHRhcmVhIHdpbGwgZ3JvdyB3aGVuIGBncm93aW5nYCBpcyBzZXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoZWlnaHQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCB3aWxsIGJlIHZpc2libGUgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqIElmIGJvdGggYGdyb3dpbmdNYXhMaW5lc2AgYW5kIGBoZWlnaHRgIGFyZSBwcm92aWRlZCwgYGhlaWdodGAgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdyb3dpbmdNYXhMaW5lczogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgY29sc2AgYXR0cmlidXRlIHdyYXBwZWQtIHRoZSBudW1iZXIgb2YgbGV0dGVycyB2aXNpYmxlIHBlciBsaW5lLlxuICAgICAqIElmIHdpZHRoIGlzIHNldCB0byBhdXRvLCB0aGlzIGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sczogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhIGB3cmFwYCBhdHRyaWJ1dGUgLSBjYW4gYmUgb25lIG9mIHRocmVlOiAnb2ZmJywgJ2hhcmQnIG9yICdzb2Z0Jy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHdyYXBUeXBlOiBXcmFwVHlwZSA9ICdzb2Z0JztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRleHRhcmVhIGlzIHJlYWRvbmx5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkIHRvIGVudGVyLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyBmYWxzZSwgYG1heExlbmd0aGAgaGFzIG5hdGl2ZSB0ZXh0YXJlYSdzIGJlaGF2aW9yIG9mIGRpc2FsbG93aW5nIHR5cGluZyBiZXlvbmQgYG1heExlbmd0aGAuXG4gICAgICogSWYgYHNob3dFeGNlZWRlZFRleHRgIGlzIHRydWUsIHVzZXIgaXMgYWxsb3dlZCB0byB0eXBlIGJleW9uZCBgbWF4TGVuZ3RoYCwgYnV0IGVycm9yIHN0YXRlcyBhbmQgY291bnRlciBtZXNzYWdlcyBzaG93aW5nXG4gICAgICogdGhlIGV4Y2VlZGVkIGNvdW50IGlzIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heExlbmd0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBjb3VudGVyIG1lc3NhZ2Ugc2hvdWxkIGJlIHNob3duLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyBmYWxzZSwgbm8gc3RhdGUgY2hhbmdlcyBvciBlcnJvciBtZXNzYWdlcyBhcmUgc2hvd24uIFVzZXIgaXMgc2ltcGx5IG5vdCBhbGxvd2VkIHRvIHR5cGVcbiAgICAgKiBiZXlvbmQgdGhlIGBtYXhMZW5ndGhgIGNoYXJhY3RlcnMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RXhjZWVkZWRUZXh0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgdGV4dGFyZWEgY2FuIGdyb3cuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEncyB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB3aGVuIGN1c3RvbSB2YWx1ZSBub3Qgc2V0LCB3ZSBzaG91bGQgc2V0L3Jlc2V0IGNvdW50ZXIgdG8gbWF4bGVuZ3RoIHZhbHVlIHdoZW4gaXQgYmVjb21lcyB1bmRlZmluZWRcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLm1heExlbmd0aCA/IHRoaXMubWF4TGVuZ3RoIDogMDtcbiAgICAgICAgICAgIC8vIHJlc2V0IHN0YXRlIGJ5IHJlc2V0dGluZyB2YWx1ZVxuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvdW50ZXInKVxuICAgIF90ZXh0YXJlYUNvdW50ZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFzVGV4dEV4Y2VlZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBleGNlc3MgY2hhcmFjdGVyIGNvdW50ICovXG4gICAgZXhjZWVkZWRDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gYSBzdHJpbmcgcGxhY2Vob2xkZXIgdGhhdCB0b2dnbGVzIGJldHdlZW4gJ3JlbWFpbmluZycgYW5kICdleGNlc3MnIGZvciB0aGUgc2VsZWN0IElDVSBleHByZXNzaW9uICovXG4gICAgY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gJ3JlbWFpbmluZyc7XG5cbiAgICAvKiogQGhpZGRlbiBmbGFnIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFuIGluaXRpYWwgdmFsdWUgc2V0ICovXG4gICAgaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICAvKiogdG8ga2VlcCB0cmFjayBvZiBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dGFyZWEgKi9cbiAgICBwcml2YXRlIF90ZXh0QXJlYUNoYXJDb3VudCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUGFzdGVkID0gZmFsc2U7XG5cbiAgICAvKiogZm9yIGkxOG4gY291bnRlciBtZXNzYWdlIHRyYW5zbGF0aW9uICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW1haW5pbmdUZXh0ID0gJ3JlbWFpbmluZyc7XG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhjZXNzVGV4dCA9ICdleGNlc3MnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBzZWUgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLmV4dHJhQ29udGVudEhlaWdodFB4XG4gICAgICovXG4gICAgZ2V0IGV4dHJhQ29udGVudEhlaWdodFB4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0YXJlYUNvdW50ZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3Nob3VsZFRyYWNrVGV4dExpbWl0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhMZW5ndGggPiAwICYmICF0aGlzLnNob3dFeGNlZWRlZFRleHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgIHByb3RlY3RlZCBfdGV4dEFyZWFDb25maWc6IFRleHRBcmVhQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMud3JhcFR5cGUgfHwgVkFMSURfV1JBUF9UWVBFUy5pbmRleE9mKHRoaXMud3JhcFR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZXh0YXJlYSB3cmFwIHR5cGUgJHt0aGlzLndyYXBUeXBlfSBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgbm90IGN1c3RvbSBzZXQsIHNldCBjb3VudGVyIHRvIG1heCBsZW5ndGggdmFsdWUsIGVsc2UgaXQgY2FsY3VsYXRlcyByZW1haW5pbmcvZXhjZWVkZWQgY2hhcmFjdGVycy5cbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0IG1heCBoZWlnaHRcbiAgICAgICAgdGhpcy5fc2V0TWF4SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gZG9uJ3Qgc2V0IGFueSBlcnJvciBzdGF0ZSBpZiB3ZSBhcmUgbm90IHNob3dpbmcgY291bnRlciBtZXNzYWdlXG4gICAgICAgIGlmICghdGhpcy5fc2hvdWxkVHJhY2tUZXh0TGltaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gd2hlbiB2YWx1ZSBpcyBjdXN0b20gc2V0KGluaXRpYWwgdmFsdWUgaXMgcHJlc2VudCksIHRoZSBoZWlnaHRzIGRvbid0IGdldFxuICAgICAgICAvLyBzZXQgdG8gc2hvdyB0aGUgZnVsbCB0ZXh0IGluIHRoZSBuZ0FmdGVyVmlld0luaXQgaW1tZWRpYXRlbHkuIHRoZXJlZm9yZSwgd2UgY2FsbCBhdXRvR3Jvd1RleHRBcmVhIGluXG4gICAgICAgIC8vIG5nQWZ0ZXJWaWV3Q2hlY2tlZCBhbmQgZGV0ZWN0IGNoYW5nZXMgYWdhaW4uXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvR3Jvd1RleHRBcmVhKCk7IC8vIGlmIGFwcGxpY2FibGUsIGdyb3cgdGhlIHRleHRhcmVhIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldFxuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndGV4dGFyZWE6IG5nQWZ0ZXJWaWV3Q2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIHdyaXRlIHZhbHVlIGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlID8/ICcnKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiB3cml0ZVZhbHVlJyk7XG4gICAgfVxuXG4gICAgLyoqIHVwZGF0ZSB0aGUgY291bnRlciBtZXNzYWdlIGFuZCByZWxhdGVkIGludGVyYWN0aW9ucyAqL1xuICAgIHVwZGF0ZUNvdW50ZXJJbnRlcmFjdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID0gdGhpcy52YWx1ZT8ubGVuZ3RoID8/IDA7XG5cbiAgICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBuZXdseSBhZGRlZCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBpdGVyYXRpb24sIHJlbW92ZSBpZiBpc3N1ZSBmb3VuZFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogaWYgZXhjZWVkZWQgbWF4bGVuZ3RoIHdoZW4gc2V0IGFzIGEgdmFsdWUgaW4gY29kZSwgaGlnaGxpZ2h0IHRoZSBleGNlZWRlZCB0ZXh0LiAqL1xuICAgIHZhbGlkYXRlTGVuZ3RoT25DdXN0b21TZXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNQYXN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLm1heExlbmd0aCwgdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMuZXhjZXNzVGV4dDtcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCAtIHRoaXMubWF4TGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLnJlbWFpbmluZ1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggLSB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIGhhbmRsZSBleGNlZWRlZCBtYXhsZW5ndGggY2FzZSB3aGVuIHRleHQgaXMgcGFzdGVkICovXG4gICAgaGFuZGxlUGFzdGVJbnRlcmFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNQYXN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIFdyYXBwZWQgaW4gdGltZW91dCB0byBtYWtlIHNlbGVjdGluZyByYW5nZSB3b3JraW5nXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCkpO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgYXV0byBncm93aW5nIG9mIHRleHRhcmVhICovXG4gICAgYXV0b0dyb3dUZXh0QXJlYSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZykge1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnaW5oZXJpdCc7XG4gICAgICAgICAgICBjb25zdCB0ZXh0YXJlYVRvdGFsSGVpZ2h0ID0gdGhpcy5fZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpO1xuICAgICAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gcGFyc2VJbnQodGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgYXMgc3RyaW5nLCAxMCk7XG4gICAgICAgICAgICBpZiAobWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRleHRhcmVhVG90YWxIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWFUb3RhbEhlaWdodCArICdweCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXhIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBubyBib3VuZCBtYXggaGVpZ2h0LCBrZWVwIGdyb3dpbmdcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IGxpbmUgaGVpZ2h0IG9mIHRleHRhcmVhXG4gICAgICovXG4gICAgZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcHV0ZWQgc3R5bGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDIwOyAvLyBkZWZhdWx0IGxpbmUgaGVpZ2h0IGlmIG5vdGhpbmcgaXMgZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiB3aGVuIGJhY2twcmVzcyBvciBkZWxldGUga2V5IGlzIHByZXNzZWQgd2hlbiBzaG93RXhjZWVkZWRUZXh0IGZpZWxkIGlzIG5vdCBzZXQsIHNpbXBseSByZW1vdmUgZXhjZXNzIGNoYXJhY3RlcnMsXG4gICAgLyogZWxzZSBoYW5kbGUgYXV0b2dyb3cgY2FzZVxuICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUJhY2tQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBpZiBub3Qgc2hvd2luZyBleGNlZWRlZCB0ZXh0IG1lc3NhZ2UvaW50ZXJhY3Rpb25zIG9yIGdyb3dpbmcsIGFuZCBjdXN0b20gdmFsdWUgc2V0XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpO1xuICAgICAgICAgICAgdGhpcy5pc1ZhbHVlQ3VzdG9tU2V0ID0gZmFsc2U7IC8vIHNldCBpdCB0byBmYWxzZSBmaXJzdCB0aW1lIGl0IGNvbWVzIGhlcmVcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJhY2tUZXh0TGltaXQgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtERUxFVEUsIEJBQ0tTUEFDRV0pKSB7XG4gICAgICAgICAgICAvLyBmb3IgdGhlIGN1c3RvbSB2YWx1ZSBzZXQgYW5kIHNob3dFeGNlZWRlZFRleHQ9ZmFsc2UgY2FzZSwgb24gYW55IGtleSBwcmVzcywgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnN1YnN0cmluZygwLCB0aGlzLm1heExlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzaW5jZSB2YWx1ZSBpcyBub3cgY2hhbmdlZCwgaXQgaXMgbm8gbG9uZ2VyIGN1c3RvbSBzZXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgdGhlIHVwZGF0ZWQgc3RhdGUgd2hlbiBjaGFyYWN0ZXIgY291bnQgYnJlYWNoZXMgYG1heExlbmd0aGBcbiAgICAgKi9cbiAgICBnZXRVcGRhdGVkU3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLl9nZXRDb250ZW50TGVuZ3RoKCkgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5oYXNUZXh0RXhjZWVkZWQgPSB0cnVlOyAvLyBzZXQgZmxhZyBmb3IgZXJyb3IgbWVzc2FnZSB0byBhbHNvIGNoYW5nZSBhY2NvcmRpbmdseVxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlOyAvLyByZXR1cm4gYW55IG90aGVyIGVycm9ycyBmb3VuZCBieSBwYXJlbnQgZm9ybSBmaWVsZFxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE5hdGl2ZSBlbGVtZW50ICAqL1xuICAgIGdldCBfdGFyZ2V0RWxlbWVudCgpOiBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZ2V0IHRoZSBsZW5ndGggb2YgdGhlIHRleHRhcmVhIGNvbnRlbnQgKi9cbiAgICBwcml2YXRlIF9nZXRDb250ZW50TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBjb250ZW50TGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMuX3RhcmdldEVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRMZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZ2V0IHRoZSB0b3RhbCBoZWlnaHQgaW5jbHVkaW5nIGJvcmRlcnMgYW5kIHNjcm9sbCBoZWlnaHQgKi9cbiAgICBwcml2YXRlIF9nZXRUZXh0YXJlYVRvdGFsSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcHV0ZWQgc3R5bGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX3RhcmdldEVsZW1lbnQpO1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGhlaWdodFxuICAgICAgICBjb25zdCBoZWlnaHQgPVxuICAgICAgICAgICAgcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLCAxMCkgK1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zY3JvbGxIZWlnaHQgK1xuICAgICAgICAgICAgcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLCAxMCk7XG5cbiAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBzZXQgaW5pdGlhbCBtYXggaGVpZ2h0ICoqL1xuICAgIHByaXZhdGUgX3NldE1heEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZyAmJiB0aGlzLl90YXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ncm93aW5nTWF4TGluZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLm1heEhlaWdodCA9IHRoaXMuZ3Jvd2luZ01heExpbmVzICogdGhpcy5nZXRUZXh0YXJlYUxpbmVIZWlnaHQoKSArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLm1heEhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgLy8gbm90aGluZyB0byBkbyBoZXJlLiByb3dzIGF0dHJpYnV0ZSB0YWtlcyBjYXJlLlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0ZXh0YXJlYVxuICAgICNpbnB1dEVsZW1lbnRSZWZcbiAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLnJvd3NdPVwiZ3Jvd2luZyA/IDIgOiBoZWlnaHQgPyAyIDogZ3Jvd2luZ01heExpbmVzXCJcbiAgICBbYXR0ci5jb2xzXT1cImNvbHNcIlxuICAgIFthdHRyLndyYXBdPVwid3JhcFR5cGVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCIhc2hvd0V4Y2VlZGVkVGV4dCA/IG1heExlbmd0aCA6IG51bGxcIlxuICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtzdGF0ZV09XCJnZXRVcGRhdGVkU3RhdGUoKVwiXG4gICAgKHBhc3RlKT1cImhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKVwiXG4gICAgKGJsdXIpPVwiX29uRm9jdXNDaGFuZ2VkKGZhbHNlKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzQ2hhbmdlZCh0cnVlKVwiXG4+PC90ZXh0YXJlYT5cbjwhLS0gSUNVIHJlY29tbWVuZHMgZnVsbCB0ZXh0IGluIGZvcm1hdCAtLT5cbkBpZiAoc2hvd0V4Y2VlZGVkVGV4dCkge1xuICAgIDxkaXYgY2xhc3M9XCJmZC10ZXh0YXJlYS1jb3VudGVyXCIgYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgW2F0dHIuaWRdPVwiaWQgKyAnLWNvdW50ZXInXCIgI2NvdW50ZXI+XG4gICAgICAgIDwhLS0gcmVuZGVyIHNwYWNlcyBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdmFsdWUgd2hpbGUgdHJhbnNsYXRpb24gc3RyaW5nIGlzIGxvYWRpbmcgaW4gb3JkZXIgdG8gYXZvaWQgY29udGVudCBqdW1wcyAtLT5cbiAgICAgICAgQGlmIChjb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPT09ICdleGNlc3MnKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgICAgIChleGNlZWRlZENoYXJDb3VudCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzT3ZlclRoZUxpbWl0UGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc1JlbWFpbmluZ1Npbmd1bGFyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdQbHVyYWwnXG4gICAgICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZTogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfSA6ICcmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
18
18
  type: Injectable,
19
19
  args: [{ providedIn: 'root' }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFNdkI7O09BRUc7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBNEI7UUFDckQsTUFBTSxVQUFVLEdBQUcsR0FBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDOzhHQVpRLGNBQWM7a0hBQWQsY0FBYyxjQURELE1BQU07OzJGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29udGVudERlbnNpdHkgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbi8qKlxuICogRGVmYXVsdCBvcHRpb25zIGZvciBwbGF0Zm9ybSBUZXh0IEFyZWFcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogQ29udGVudCBEZW5zaXR5IG9mIGVsZW1lbnQuICdjb3p5JyB8ICdjb21wYWN0J1xuICAgICAqL1xuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBQcm92aWRlciBmYWN0b3J5IGZ1bmN0aW9uXG4gICAgICovXG4gICAgc3RhdGljIGNyZWF0ZVByb3ZpZGVyRmFjdG9yeShvYmo6IFBhcnRpYWw8VGV4dEFyZWFDb25maWc+KTogKCkgPT4gVGV4dEFyZWFDb25maWcge1xuICAgICAgICBjb25zdCB1c2VGYWN0b3J5ID0gKCk6IFRleHRBcmVhQ29uZmlnID0+IE9iamVjdC5hc3NpZ24obmV3IFRleHRBcmVhQ29uZmlnKCksIG9iaik7XG4gICAgICAgIHJldHVybiB1c2VGYWN0b3J5O1xuICAgIH1cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBTXZCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQTRCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLEdBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEYsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzs4R0FaUSxjQUFjO2tIQUFkLGNBQWMsY0FERCxNQUFNOzsyRkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG4vKipcbiAqIERlZmF1bHQgb3B0aW9ucyBmb3IgcGxhdGZvcm0gVGV4dCBBcmVhXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb25maWcge1xuICAgIC8qKlxuICAgICAqIENvbnRlbnQgRGVuc2l0eSBvZiBlbGVtZW50LiAnY296eScgfCAnY29tcGFjdCdcbiAgICAgKi9cbiAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgUHJvdmlkZXIgZmFjdG9yeSBmdW5jdGlvblxuICAgICAqL1xuICAgIHN0YXRpYyBjcmVhdGVQcm92aWRlckZhY3Rvcnkob2JqOiBQYXJ0aWFsPFRleHRBcmVhQ29uZmlnPik6ICgpID0+IFRleHRBcmVhQ29uZmlnIHtcbiAgICAgICAgY29uc3QgdXNlRmFjdG9yeSA9ICgpOiBUZXh0QXJlYUNvbmZpZyA9PiBPYmplY3QuYXNzaWduKG5ldyBUZXh0QXJlYUNvbmZpZygpLCBvYmopO1xuICAgICAgICByZXR1cm4gdXNlRmFjdG9yeTtcbiAgICB9XG59XG4iXX0=
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
13
13
  exports: [TextAreaComponent]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCLFlBSHJCLGlCQUFpQixhQUNqQixpQkFBaUI7K0dBRWxCLHNCQUFzQixZQUhyQixpQkFBaUI7OzJGQUdsQixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1RleHRBcmVhQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVGV4dEFyZWFDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtVGV4dEFyZWFNb2R1bGUge31cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS90ZXh0LWFyZWEvdGV4dC1hcmVhLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixZQUhyQixpQkFBaUIsYUFDakIsaUJBQWlCOytHQUVsQixzQkFBc0IsWUFIckIsaUJBQWlCOzsyRkFHbEIsc0JBQXNCO2tCQUpsQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYXJlYS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUZXh0QXJlYUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1RleHRBcmVhQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVRleHRBcmVhTW9kdWxlIHt9XG4iXX0=
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
181
181
  type: ViewChild,
182
182
  args: [TimePickerComponent]
183
183
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFFOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQVUxRyxNQUFNLE9BQU8sMkJBQStCLFNBQVEsU0FBUztJQUN6RDs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWU7UUFDckIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIs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dCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpbWUtcGlja2VyJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGltZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RpbWVQaWNrZXJDb21wb25lbnQsIEZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnQ8RD4gZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQElucHV0IGRhdGUgdGltZSBvYmplY3QgcmVwcmVzZW50YXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogRCB8IG51bGwge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgZGF0ZSB0aW1lIG9iamVjdCByZXByZXNlbnRhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGltZTogRDtcblxuICAgIC8qKiBASW5wdXQgV2hldGhlciB0byBzaG93IHNwaW5uZXIgYnV0dG9ucyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3Bpbm5lckJ1dHRvbnMgPSB0cnVlO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkXG4gICAgICogTWVyaWRpYW4gaXMgZGVwcmVjYXRlZC4gVXNlIGRpc3BsYXlGb3JtYXQgYW5kIHBhcnNlRm9ybWF0IGlucHV0cyBvclxuICAgICAqIERhdGVUaW1lRm9ybWF0cy5kaXNwbGF5LnRpbWVJbnB1dCBhbmQgRGF0ZVRpbWVGb3JtYXRzLnBhcnNlLnRpbWVJbnB1dCBpbnN0ZWFkLlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgdXNlcyB0aGUgMjQgaG91ciBjbG9jayAoaG91cnMgcmFuZ2luZyBmcm9tIDAgdG8gMjMpLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBtZXJpZGlhbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdQcm9wZXJ0eSBtZXJpZGlhbiBpcyBkZXByZWNhdGVkLicgK1xuICAgICAgICAgICAgICAgICcgVXNlIE1lcmlkaWFuIGlzIGRlcHJlY2F0ZWQuJyArXG4gICAgICAgICAgICAgICAgJyBVc2UgZGlzcGxheUZvcm1hdCBhbmQgcGFyc2VGb3JtYXQgaW5wdXRzIG9yIERhdGVUaW1lRm9ybWF0cy5kaXNwbGF5LnRpbWVJbnB1dCBhbmQgRGF0ZVRpbWVGb3JtYXRzLnBhcnNlLnRpbWVJbnB1dCBpbnN0ZWFkLiBpbnN0ZWFkLidcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbWVyaWRpYW4gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgbWVyaWRpYW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tZXJpZGlhbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBpbnB1dCBmb3Igc2Vjb25kcy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlTZWNvbmRzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQElucHV0IFdoZW4gc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgaW5wdXQgZm9yIG1pbnV0ZXMuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUgZm9ybWF0IG9wdGlvblxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TWludXRlczogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIGlucHV0IGZvciBob3Vycy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlIb3VyczogYm9vbGVhbjtcblxuICAgIC8qKiBASW5wdXQgRGVmYXVsdCB0aW1lIHBpY2tlciBwbGFjZWhvbGRlciB3aGljaCBpcyBzZXQgZGVwZW5kYW50IG9uIHRoZSBob3VycywgbWludXRlcyBhbmQgc2Vjb25kcy5cbiAgICAgKiBPdGhlcndpc2UgSXQgY2FuIGJlIHNldCB0byBhIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIHRpbWUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGltZVBpY2tlcklucHV0TGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkKHN1Y2Nlc3MpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBEZWZpbmVzIGlmIHRpbWUgY29tcG9uZW50IHNob3VsZCBiZSB1c2VkIHdpdGggdGFibGV0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYmxldCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpOiBGb3JtU3RhdGVzIHtcbiAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlckNvbXBvbmVudCAmJiB0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQuX2lzSW52YWxpZFRpbWVJbnB1dCkge1xuICAgICAgICAgICAgLy8gaWYgYW55IG90aGVyIGVycm9yIGZyb20gY29yZSB0aW1lUGlja2VyXG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBBZGRPbiBCdXR0b24gc2hvdWxkIGJlIGZvY3VzYWJsZVxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGJ1dHRvbkZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgdGltZSBwaWNrZXIgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICB1c2VWYWxpZGF0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCB3aGVuIHNldCB0byB0cnVlLCB0aW1lIGlucHV0cyB3b24ndCBhbGxvdyB0byBoYXZlIDEgZGlnaXRcbiAgICAgKiBmb3IgZXhhbXBsZSA5IHdpbGwgYmVjb21lIDA5XG4gICAgICogYnV0IDEyIHdpbGwgYmUga2VwdCBhcyAxMi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGtlZXBUd29EaWdpdHNUaW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IGZvcm1hdCBvcHRpb24gdG8gY3VzdG9taXplIHRpbWUgZm9ybWF0IGluIGlucHV0IGNvbnRyb2wuXG4gICAgICogTXVzdCBiZSBhIGZvcm1hdCBvcHRpb24gdGhhdCBpcyB1bmRlcnN0YW5kYWJsZSBieSBEYXRldGltZUFkYXB0ZXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5Rm9ybWF0OiB1bmtub3duO1xuXG4gICAgLyoqXG4gICAgICogUGFyc2UgZm9ybWF0IG9wdGlvbiB0byBjdXN0b21pemUgdGltZSBmb3JtYXQgaW4gaW5wdXQgY29udHJvbC5cbiAgICAgKiBNdXN0IGJlIGEgZm9ybWF0IG9wdGlvbiB0aGF0IGlzIHVuZGVyc3RhbmRhYmxlIGJ5IERhdGV0aW1lQWRhcHRlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhcnNlRm9ybWF0OiB1bmtub3duO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc3RhdGUgb2YgdGhlIGlzT3BlbiBwcm9wZXJ0eSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGlzT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUaW1lUGlja2VyQ29tcG9uZW50KVxuICAgIHRpbWVQaWNrZXJDb21wb25lbnQ6IFRpbWVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lcmlkaWFuOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2dpYyB0byBoYW5kbGUgdmFsaWRhdGlvbiBmcm9tIGJvdGggcGxhdGZvcm0gZm9ybXMgYW5kIGNvcmUgZGF0ZXRpaW1lcGlja2VyXG4gICAgICogQHBhcmFtIHZhbHVlIGlucHV0dGVkXG4gICAgICovXG4gICAgaGFuZGxlVGltZUNoYW5nZSh2YWx1ZTogRCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyQ29tcG9uZW50Ll9pc0ludmFsaWRUaW1lSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICF0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQudGltZSAmJiAhdGhpcy5hbGxvd051bGwgPyAnZXJyb3InIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndGltZSBwaWNrZXI6IGhhbmRsZVRpbWVJbnB1dENoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxufVxuIiwiPGZkLXRpbWUtcGlja2VyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdGltZV09XCJ0aW1lXCJcbiAgICBbbWVyaWRpYW5dPVwibWVyaWRpYW5cIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3NwaW5uZXJCdXR0b25zXT1cInNwaW5uZXJCdXR0b25zXCJcbiAgICBbZGlzcGxheVNlY29uZHNdPVwiZGlzcGxheVNlY29uZHNcIlxuICAgIFtkaXNwbGF5TWludXRlc109XCJkaXNwbGF5TWludXRlc1wiXG4gICAgW2Rpc3BsYXlIb3Vyc109XCJkaXNwbGF5SG91cnNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3RpbWVQaWNrZXJJbnB1dExhYmVsXT1cInRpbWVQaWNrZXJJbnB1dExhYmVsXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW3RhYmxldF09XCJ0YWJsZXRcIlxuICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICBbcGFyc2VGb3JtYXRdPVwicGFyc2VGb3JtYXRcIlxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW2J1dHRvbkZvY3VzYWJsZV09XCJidXR0b25Gb2N1c2FibGVcIlxuICAgIFt1c2VWYWxpZGF0aW9uXT1cInVzZVZhbGlkYXRpb25cIlxuICAgIFtrZWVwVHdvRGlnaXRzVGltZV09XCJrZWVwVHdvRGlnaXRzVGltZVwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJoYW5kbGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mZC10aW1lLXBpY2tlcj5cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBVTFHLE1BQU0sT0FBTywyQkFBK0IsU0FBUSxTQUFTO0lBQ3pEOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBZTtRQUNyQixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBWUQ7Ozs7O09B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dGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGltZS1waWNrZXInO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZCwgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgdXNlRXhpc3Rpbmc6IFBsYXRmb3JtVGltZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGltZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtVGltZVBpY2tlckNvbXBvbmVudDxEPiBleHRlbmRzIEJhc2VJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBASW5wdXQgZGF0ZSB0aW1lIG9iamVjdCByZXByZXNlbnRhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBkYXRlIHRpbWUgb2JqZWN0IHJlcHJlc2VudGF0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0aW1lOiBEO1xuXG4gICAgLyoqIEBJbnB1dCBXaGV0aGVyIHRvIHNob3cgc3Bpbm5lciBidXR0b25zICovXG4gICAgQElucHV0KClcbiAgICBzcGlubmVyQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWRcbiAgICAgKiBNZXJpZGlhbiBpcyBkZXByZWNhdGVkLiBVc2UgZGlzcGxheUZvcm1hdCBhbmQgcGFyc2VGb3JtYXQgaW5wdXRzIG9yXG4gICAgICogRGF0ZVRpbWVGb3JtYXRzLmRpc3BsYXkudGltZUlucHV0IGFuZCBEYXRlVGltZUZvcm1hdHMucGFyc2UudGltZUlucHV0IGluc3RlYWQuXG4gICAgICogQElucHV0IFdoZW4gc2V0IHRvIGZhbHNlLCB1c2VzIHRoZSAyNCBob3VyIGNsb2NrIChob3VycyByYW5naW5nIGZyb20gMCB0byAyMykuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUgZm9ybWF0IG9wdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1lcmlkaWFuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgJ1Byb3BlcnR5IG1lcmlkaWFuIGlzIGRlcHJlY2F0ZWQuJyArXG4gICAgICAgICAgICAgICAgJyBVc2UgTWVyaWRpYW4gaXMgZGVwcmVjYXRlZC4nICtcbiAgICAgICAgICAgICAgICAnIFVzZSBkaXNwbGF5Rm9ybWF0IGFuZCBwYXJzZUZvcm1hdCBpbnB1dHMgb3IgRGF0ZVRpbWVGb3JtYXRzLmRpc3BsYXkudGltZUlucHV0IGFuZCBEYXRlVGltZUZvcm1hdHMucGFyc2UudGltZUlucHV0IGluc3RlYWQuIGluc3RlYWQuJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9tZXJpZGlhbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBtZXJpZGlhbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lcmlkaWFuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIGlucHV0IGZvciBzZWNvbmRzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVNlY29uZHM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBpbnB1dCBmb3IgbWludXRlcy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlNaW51dGVzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQElucHV0IFdoZW4gc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgaW5wdXQgZm9yIGhvdXJzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUhvdXJzOiBib29sZWFuO1xuXG4gICAgLyoqIEBJbnB1dCBEZWZhdWx0IHRpbWUgcGlja2VyIHBsYWNlaG9sZGVyIHdoaWNoIGlzIHNldCBkZXBlbmRhbnQgb24gdGhlIGhvdXJzLCBtaW51dGVzIGFuZCBzZWNvbmRzLlxuICAgICAqIE90aGVyd2lzZSBJdCBjYW4gYmUgc2V0IHRvIGEgZGVmYXVsdCB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgdGltZSBwaWNrZXIgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICB0aW1lUGlja2VySW5wdXRMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgYSBudWxsIGlucHV0IGlzIGNvbnNpZGVyZWQgdmFsaWQoc3VjY2VzcykuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd051bGwgPSB0cnVlO1xuXG4gICAgLyoqIERlZmluZXMgaWYgdGltZSBjb21wb25lbnQgc2hvdWxkIGJlIHVzZWQgd2l0aCB0YWJsZXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFibGV0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHBsYWNlbWVudCBvZiB0aGUgcG9wb3Zlci4gSXQgY2FuIGJlIG9uZSBvZjogdG9wLCB0b3Atc3RhcnQsIHRvcC1lbmQsIGJvdHRvbSxcbiAgICAgKiAgYm90dG9tLXN0YXJ0LCBib3R0b20tZW5kLCByaWdodCwgcmlnaHQtc3RhcnQsIHJpZ2h0LWVuZCwgbGVmdCwgbGVmdC1zdGFydCwgbGVmdC1lbmQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiAgQ2FuIGJlIGBzdWNjZXNzYCwgYGVycm9yYCwgYHdhcm5pbmdgLCBgaW5mb3JtYXRpb25gIG9yIGJsYW5rIGZvciBkZWZhdWx0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHN1cGVyLnN0YXRlID0gc3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyQ29tcG9uZW50ICYmIHRoaXMudGltZVBpY2tlckNvbXBvbmVudC5faXNJbnZhbGlkVGltZUlucHV0KSB7XG4gICAgICAgICAgICAvLyBpZiBhbnkgb3RoZXIgZXJyb3IgZnJvbSBjb3JlIHRpbWVQaWNrZXJcbiAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHZhbGlkYXRlIHRoZSB0aW1lIHBpY2tlciBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZVZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQElucHV0IHdoZW4gc2V0IHRvIHRydWUsIHRpbWUgaW5wdXRzIHdvbid0IGFsbG93IHRvIGhhdmUgMSBkaWdpdFxuICAgICAqIGZvciBleGFtcGxlIDkgd2lsbCBiZWNvbWUgMDlcbiAgICAgKiBidXQgMTIgd2lsbCBiZSBrZXB0IGFzIDEyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAga2VlcFR3b0RpZ2l0c1RpbWUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgZm9ybWF0IG9wdGlvbiB0byBjdXN0b21pemUgdGltZSBmb3JtYXQgaW4gaW5wdXQgY29udHJvbC5cbiAgICAgKiBNdXN0IGJlIGEgZm9ybWF0IG9wdGlvbiB0aGF0IGlzIHVuZGVyc3RhbmRhYmxlIGJ5IERhdGV0aW1lQWRhcHRlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlGb3JtYXQ6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZSBmb3JtYXQgb3B0aW9uIHRvIGN1c3RvbWl6ZSB0aW1lIGZvcm1hdCBpbiBpbnB1dCBjb250cm9sLlxuICAgICAqIE11c3QgYmUgYSBmb3JtYXQgb3B0aW9uIHRoYXQgaXMgdW5kZXJzdGFuZGFibGUgYnkgRGF0ZXRpbWVBZGFwdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGFyc2VGb3JtYXQ6IHVua25vd247XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgaXNPcGVuIHByb3BlcnR5IGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFRpbWVQaWNrZXJDb21wb25lbnQpXG4gICAgdGltZVBpY2tlckNvbXBvbmVudDogVGltZVBpY2tlckNvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWVyaWRpYW46IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIHdoZW4gcG9wb3ZlciBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgICAqL1xuICAgIGhhbmRsZU9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvZ2ljIHRvIGhhbmRsZSB2YWxpZGF0aW9uIGZyb20gYm90aCBwbGF0Zm9ybSBmb3JtcyBhbmQgY29yZSBkYXRldGlpbWVwaWNrZXJcbiAgICAgKiBAcGFyYW0gdmFsdWUgaW5wdXR0ZWRcbiAgICAgKi9cbiAgICBoYW5kbGVUaW1lQ2hhbmdlKHZhbHVlOiBEKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQuX2lzSW52YWxpZFRpbWVJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gIXRoaXMudGltZVBpY2tlckNvbXBvbmVudC50aW1lICYmICF0aGlzLmFsbG93TnVsbCA/ICdlcnJvcicgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0aW1lIHBpY2tlcjogaGFuZGxlVGltZUlucHV0Q2hhbmdlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG59XG4iLCI8ZmQtdGltZS1waWNrZXJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWFEZXNjcmliZWRCeV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgIFtpbnB1dElkXT1cImlkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0aW1lXT1cInRpbWVcIlxuICAgIFttZXJpZGlhbl09XCJtZXJpZGlhblwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICBbc3Bpbm5lckJ1dHRvbnNdPVwic3Bpbm5lckJ1dHRvbnNcIlxuICAgIFtkaXNwbGF5U2Vjb25kc109XCJkaXNwbGF5U2Vjb25kc1wiXG4gICAgW2Rpc3BsYXlNaW51dGVzXT1cImRpc3BsYXlNaW51dGVzXCJcbiAgICBbZGlzcGxheUhvdXJzXT1cImRpc3BsYXlIb3Vyc1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdGltZVBpY2tlcklucHV0TGFiZWxdPVwidGltZVBpY2tlcklucHV0TGFiZWxcIlxuICAgIFthbGxvd051bGxdPVwiYWxsb3dOdWxsXCJcbiAgICBbdGFibGV0XT1cInRhYmxldFwiXG4gICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgIFtwYXJzZUZvcm1hdF09XCJwYXJzZUZvcm1hdFwiXG4gICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICBbYnV0dG9uRm9jdXNhYmxlXT1cImJ1dHRvbkZvY3VzYWJsZVwiXG4gICAgW3VzZVZhbGlkYXRpb25dPVwidXNlVmFsaWRhdGlvblwiXG4gICAgW2tlZXBUd29EaWdpdHNUaW1lXT1cImtlZXBUd29EaWdpdHNUaW1lXCJcbiAgICAoaXNPcGVuQ2hhbmdlKT1cImhhbmRsZU9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlVGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLXRpbWUtcGlja2VyPlxuIl19
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
13
13
  exports: [PlatformTimePickerComponent]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTXRFLE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLFlBSHZCLDJCQUEyQixhQUMzQiwyQkFBMkI7K0dBRTVCLHdCQUF3QixZQUh2QiwyQkFBMkI7OzJGQUc1Qix3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1BsYXRmb3JtVGltZVBpY2tlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1BsYXRmb3JtVGltZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1UaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU10RSxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUh2QiwyQkFBMkIsYUFDM0IsMkJBQTJCOytHQUU1Qix3QkFBd0IsWUFIdkIsMkJBQTJCOzsyRkFHNUIsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1UaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtVGltZVBpY2tlck1vZHVsZSB7fVxuIl19
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
74
74
  }], propDecorators: { closeTab: [{
75
75
  type: Output
76
76
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2FibGUtaWNvbi10YWItYmFyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2Nsb3NhYmxlLWljb24tdGFiLWJhci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHM0QsTUFBTSxPQUFnQixrQkFBbUIsU0FBUSxjQUFjO0lBRC9EOztRQUVJOztXQUVHO1FBRUgsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0tBcUVqRDtJQW5FRyxjQUFjO0lBQ2QsU0FBUyxDQUFDLFNBQWlCO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUNkLE9BQU87U0FDVjtRQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxFQUN0RCxDQUFDLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLFdBQVcsQ0FBQyxHQUFxQixFQUFFLFNBQWtCLEVBQUUsWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN4RixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLG9CQUFvQixHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLDBCQUEwQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUM5RDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDM0U7WUFDRCxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyx1QkFBdUIsQ0FDN0IsR0FBVyxFQUNYLE1BQWEsSUFBSSxDQUFDLEtBQUs7UUFFdkIsSUFBSSxNQUFxRSxDQUFDO1FBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFO2dCQUNsQixNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsTUFBTTthQUNUO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsTUFBTTtpQkFDVDthQUNKO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQXpFaUIsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRHZDLFNBQVM7OEJBTU4sUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVU5JUVVFX0tFWV9TRVBBUkFUT1IgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFzZSB9IGZyb20gJy4vaWNvbi10YWItYmFyLWJhc2UuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbG9zYWJsZUljb25UYWJCYXIgZXh0ZW5kcyBJY29uVGFiQmFyQmFzZSB7XG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHMgd2hlbiB1c2VyIGNsaWNrcyBvbiB4IGJ1dHRvbiBpbiB0YWIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2VUYWIgPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2xvc2VUYWIoaXRlbUluZGV4OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFiID0gdGhpcy5fZ2V0VGFiSW5mb0Zyb21NYWluTGlzdChpdGVtSW5kZXgpO1xuXG4gICAgICAgIGlmICghdGFiPy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhYi5wYXJlbnQuc3BsaWNlKFxuICAgICAgICAgICAgdGFiLnBhcmVudC5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udUlkID09PSBpdGVtSW5kZXgpLFxuICAgICAgICAgICAgMVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3RhYnMgPSB0aGlzLl91cGRhdGVUYWJzKHRoaXMuX3RhYnMpO1xuXG4gICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuY2xvc2VUYWIuZW1pdCh0YWIudGFiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGFyclxuICAgICAqIEBwYXJhbSBwYXJlbnRVaWRcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIGluZGV4ZXMsIHVJZHMsIHN0eWxlcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZVRhYnMoYXJyOiBJY29uVGFiQmFySXRlbVtdLCBwYXJlbnRVaWQ/OiBzdHJpbmcsIGZsYXRJbmRleFJlZiA9IHsgdmFsdWU6IDAgfSk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICByZXR1cm4gYXJyLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGl0ZW0udUlkID0gcGFyZW50VWlkID8gYCR7cGFyZW50VWlkfSR7VU5JUVVFX0tFWV9TRVBBUkFUT1J9JHtpbmRleH1gIDogYCR7aW5kZXh9YDtcbiAgICAgICAgICAgIGl0ZW0uZmxhdEluZGV4ID0gZmxhdEluZGV4UmVmLnZhbHVlKys7XG4gICAgICAgICAgICBpdGVtLnBhcmVudFVJZCA9IHBhcmVudFVpZDtcbiAgICAgICAgICAgIGlmICghcGFyZW50VWlkICYmIGl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtpdGVtLmNvbG9yfWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5zdWJJdGVtcykpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnN1Ykl0ZW1zID0gdGhpcy5fdXBkYXRlVGFicyhpdGVtLnN1Ykl0ZW1zLCBpdGVtLnVJZCwgZmxhdEluZGV4UmVmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSB1aWRcbiAgICAgKiBAcGFyYW0gYXJyXG4gICAgICogQHJldHVybnMge3BhcmVudCwgdGFifVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgdGFiIHJlZmVyZW5jZSBpbnNpZGUgbWFpbiB0YWIgYXJyYXkgYW5kICByZWZlcmVuY2UgdG8gcGFyZW50IGFycmF5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZ2V0VGFiSW5mb0Zyb21NYWluTGlzdChcbiAgICAgICAgdWlkOiBzdHJpbmcsXG4gICAgICAgIGFycjogYW55W10gPSB0aGlzLl90YWJzXG4gICAgKTogeyBwYXJlbnQ6IEljb25UYWJCYXJJdGVtW107IHRhYjogSWNvblRhYkJhckl0ZW0gfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCByZXN1bHQ6IHsgcGFyZW50OiBJY29uVGFiQmFySXRlbVtdOyB0YWI6IEljb25UYWJCYXJJdGVtIH0gfCB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gYXJyW2ldO1xuICAgICAgICAgICAgaWYgKGl0ZW0udUlkID09PSB1aWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB7IHBhcmVudDogYXJyLCB0YWI6IGl0ZW0gfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtLnN1Ykl0ZW1zKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMuX2dldFRhYkluZm9Gcm9tTWFpbkxpc3QodWlkLCBpdGVtLnN1Ykl0ZW1zKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2FibGUtaWNvbi10YWItYmFyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzNELE1BQU0sT0FBZ0Isa0JBQW1CLFNBQVEsY0FBYztJQUQvRDs7UUFFSTs7V0FFRztRQUVILGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztLQXFFakQ7SUFuRUcsY0FBYztJQUNkLFNBQVMsQ0FBQyxTQUFpQjtRQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDYixHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsRUFDdEQsQ0FBQyxDQUNKLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxXQUFXLENBQUMsR0FBcUIsRUFBRSxTQUFrQixFQUFFLFlBQVksR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDeEYsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQywwQkFBMEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDOUQ7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzNFO1lBQ0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sdUJBQXVCLENBQzdCLEdBQVcsRUFDWCxNQUFhLElBQUksQ0FBQyxLQUFLO1FBRXZCLElBQUksTUFBcUUsQ0FBQztRQUMxRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU07YUFDVDtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFELElBQUksTUFBTSxFQUFFO29CQUNSLE1BQU07aUJBQ1Q7YUFDSjtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs4R0F6RWlCLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTOzhCQU1OLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVOSVFVRV9LRVlfU0VQQVJBVE9SIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuL2ljb24tdGFiLWJhci1iYXNlLmNsYXNzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvc2FibGVJY29uVGFiQmFyIGV4dGVuZHMgSWNvblRhYkJhckJhc2Uge1xuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXRzIHdoZW4gdXNlciBjbGlja3Mgb24geCBidXR0b24gaW4gdGFiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlVGFiID0gbmV3IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nsb3NlVGFiKGl0ZW1JbmRleDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYiA9IHRoaXMuX2dldFRhYkluZm9Gcm9tTWFpbkxpc3QoaXRlbUluZGV4KTtcblxuICAgICAgICBpZiAoIXRhYj8ucGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0YWIucGFyZW50LnNwbGljZShcbiAgICAgICAgICAgIHRhYi5wYXJlbnQuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnVJZCA9PT0gaXRlbUluZGV4KSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl90YWJzID0gdGhpcy5fdXBkYXRlVGFicyh0aGlzLl90YWJzKTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICB0aGlzLmNsb3NlVGFiLmVtaXQodGFiLnRhYik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBhcnJcbiAgICAgKiBAcGFyYW0gcGFyZW50VWlkXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBpbmRleGVzLCB1SWRzLCBzdHlsZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF91cGRhdGVUYWJzKGFycjogSWNvblRhYkJhckl0ZW1bXSwgcGFyZW50VWlkPzogc3RyaW5nLCBmbGF0SW5kZXhSZWYgPSB7IHZhbHVlOiAwIH0pOiBJY29uVGFiQmFySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGFyci5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBpdGVtLnVJZCA9IHBhcmVudFVpZCA/IGAke3BhcmVudFVpZH0ke1VOSVFVRV9LRVlfU0VQQVJBVE9SfSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XG4gICAgICAgICAgICBpdGVtLmZsYXRJbmRleCA9IGZsYXRJbmRleFJlZi52YWx1ZSsrO1xuICAgICAgICAgICAgaXRlbS5wYXJlbnRVSWQgPSBwYXJlbnRVaWQ7XG4gICAgICAgICAgICBpZiAoIXBhcmVudFVpZCAmJiBpdGVtLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7aXRlbS5jb2xvcn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uc3ViSXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zdWJJdGVtcyA9IHRoaXMuX3VwZGF0ZVRhYnMoaXRlbS5zdWJJdGVtcywgaXRlbS51SWQsIGZsYXRJbmRleFJlZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gdWlkXG4gICAgICogQHBhcmFtIGFyclxuICAgICAqIEByZXR1cm5zIHtwYXJlbnQsIHRhYn1cbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IHRhYiByZWZlcmVuY2UgaW5zaWRlIG1haW4gdGFiIGFycmF5IGFuZCAgcmVmZXJlbmNlIHRvIHBhcmVudCBhcnJheS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2dldFRhYkluZm9Gcm9tTWFpbkxpc3QoXG4gICAgICAgIHVpZDogc3RyaW5nLFxuICAgICAgICBhcnI6IGFueVtdID0gdGhpcy5fdGFic1xuICAgICk6IHsgcGFyZW50OiBJY29uVGFiQmFySXRlbVtdOyB0YWI6IEljb25UYWJCYXJJdGVtIH0gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgcmVzdWx0OiB7IHBhcmVudDogSWNvblRhYkJhckl0ZW1bXTsgdGFiOiBJY29uVGFiQmFySXRlbSB9IHwgdW5kZWZpbmVkO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFycltpXTtcbiAgICAgICAgICAgIGlmIChpdGVtLnVJZCA9PT0gdWlkKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0geyBwYXJlbnQ6IGFyciwgdGFiOiBpdGVtIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5zdWJJdGVtcykpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLl9nZXRUYWJJbmZvRnJvbU1haW5MaXN0KHVpZCwgaXRlbS5zdWJJdGVtcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
@@ -268,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
268
268
  type: ViewChild,
269
269
  args: [OverflowListDirective]
270
270
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWJhc2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWJhc2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUlOLE1BQU0sRUFHTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFRaEYsTUFBTSxPQUFnQixjQUFjO0lBNEJoQzs7T0FFRztJQUNILElBQ0ksV0FBVyxDQUFDLEtBQXFCO1FBQ2pDLDBEQUEwRDtRQUMxRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBbUNELGNBQWM7SUFDZCxZQUNjLEdBQXNCLEVBQ3RCLE9B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QUFvQixHQUFHLEtBQUssRUFBRTtnQkFDbkQsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFFO2dCQUMvQixTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQUc7YUFDeEIsQ0FBQztZQUNGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RELE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQ2pGO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXJUaUIsY0FBYztrR0FBZCxjQUFjLDBPQWlEckIscUJBQXFCOzsyRkFqRGQsY0FBYztrQkFEbkMsU0FBUzsyR0FjTixVQUFVO3NCQURULEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQVFOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPRixXQUFXO3NCQURkLEtBQUs7Z0JBYU4sUUFBUTtzQkFEUCxNQUFNO2dCQU9QLGlCQUFpQjtzQkFEaEIsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS2V5VXRpbCwgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FLCBVTklRVUVfS0VZX1NFUEFSQVRPUiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbG9yQXNzb2NpYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWItY29sb3ItYXNzb2NpYXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkRlc3RpbnlNb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWNvblRhYkJhclBvcG92ZXJCYXNlIH0gZnJvbSAnLi9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci1iYXNlLmNsYXNzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWNvblRhYkJhckJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdCBvZiB0YWIgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMuXG4gICAgICogVGhlcmUncyBhIHNlcGFyYXRlIG1hcHBpbmcgZnVuY3Rpb24gdG8gZ2V0IGFjdHVhbCBodG1sIGVsZW1lbnQ6IGBfZ2V0VGFiVUlFbGVtZW50Rm9jdXNhYmxlYFxuICAgICAqL1xuICAgIGFic3RyYWN0IF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8dW5rbm93bj47XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhYnN0cmFjdCBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJCYXNlO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIHRhYiBiYXIgY29uZmlndXJhdGlvbiB0aGF0IHN0b3JlcyB0aGUgc3RhdGUgb2YgZWFjaCB0YWIuIEJhc2VkIG9uIHRoaXMgY29uZmlndXJhdGlvbiwgYSB0YWIgYmFyIGlzIHJlcHJlc2VudGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYnNDb25maWc6IFRhYkNvbmZpZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmxhZyByZXByZXNlbnRpbmcgcnRsIG1vZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0aW9ucyBmb3IgY29sb3JzIG9mIHRoZSB0YWJzLlxuICAgICAqIElmIGFueSBvZiB0aGUgY29sb3IgYXNzb2NpYXRpb25zIHByb3ZpZGVkLCB0aGV5J2xsIGJlIHJlYWQgYnkgc2NyZWVucmVhZGVyIGluc3RlYWQgb2YgdGhlIGFjdHVhbCBjb2xvclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sb3JBc3NvY2lhdGlvbnM6IFRhYkNvbG9yQXNzb2NpYXRpb25zO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGRlbnNpdHlNb2RlIHNldHRlciB0cmlnZ2VycyB0YWJzIHRvIHJlLWNhbGN1bGF0aW9uIG92ZXJmbG93ZWQgdGFic1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlbnNpdHlNb2RlKHZhbHVlOiBUYWJEZXN0aW55TW9kZSkge1xuICAgICAgICAvLyBTa2lwIGZpcnN0IHZhbHVlICYmIHZhbHVlIGRvZXNuJ3QgZXF1YWwgdG8gcHJldmlvdXMgb25lXG4gICAgICAgIGlmICh0aGlzLl9kZW5zaXR5TW9kZSAmJiB2YWx1ZSAhPT0gdGhpcy5fZGVuc2l0eU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGVuc2l0eU1vZGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBzb21lIHRhYiBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIHRvIE92ZXJmbG93TGlzdERpcmVjdGl2ZVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoT3ZlcmZsb3dMaXN0RGlyZWN0aXZlKVxuICAgIG92ZXJmbG93RGlyZWN0aXZlOiBPdmVyZmxvd0xpc3REaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RlZFVpZD86IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2V4dHJhVGFiczogSWNvblRhYkJhckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbGFzdFZpc2libGVUYWJJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFiczogSWNvblRhYkJhckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZW5zaXR5TW9kZTogVGFiRGVzdGlueU1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnRhYnNDb25maWcgJiYgIWNoYW5nZXMudGFic0NvbmZpZy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdFRhYnMoKTtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuaXNSdGwgJiYgIWNoYW5nZXMuaXNSdGwuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0VGFicygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZEl0ZW1cbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBfc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtLCBldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZEl0ZW0udUlkO1xuICAgICAgICBzZWxlY3RlZEl0ZW0uYmFkZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5RG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRhYjogSWNvblRhYkJhckl0ZW0gfCB1bmRlZmluZWQsIGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0YWIgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtTUEFDRSwgRU5URVJdKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0odGFiKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1JJR0hUX0FSUk9XLCBET1dOX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID8gdGhpcy5fZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4KSA6IHRoaXMuX2ZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFVQX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID8gdGhpcy5fZm9jdXNOZXh0SXRlbShjdXJyZW50SW5kZXgpIDogdGhpcy5fZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZvY3VzZXMgbmV4dCB0YWIgKi9cbiAgICBfZm9jdXNOZXh0SXRlbShjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPT09IHRoaXMuX3RhYnMubGVuZ3RoIC0gMSA/IDAgOiBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICB0aGlzLl9mb2N1c0l0ZW0obmV4dEluZGV4KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBmb2N1c2VzIHByZXZpb3VzIHRhYiAqL1xuICAgIF9mb2N1c1ByZXZpb3VzSXRlbShjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAvLyBpZiBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCBpcyBmaXJzdCwgZm9jdXMgdGhlIGxhc3Qgb25lLiBJZiB0YWJzIGFyZSBvdmVyZmxvd2VkLCBmb2N1cyB0aGUgbGFzdCB0YWIgaW4gdGhlIHBvcG92ZXJcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbSh0aGlzLl90YWJzLmxlbmd0aCAtIDEsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtKGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSB0YWJJbmRleCBpbmRleCBvZiB0aGUgdGFiIHRvIGFwcGx5IGZvY3VzXG4gICAgICogQHBhcmFtIGZvY3VzTGFzdCB3aGV0aGVyIHRvIGZvY3VzIGZpcnN0IG9yIGxhc3QgaXRlbSBpbiB0aGUgcG9wb3ZlclxuICAgICAqL1xuICAgIF9mb2N1c0l0ZW0odGFiSW5kZXg6IG51bWJlciwgZm9jdXNMYXN0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRhYkluZGV4ID4gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fdGFiQmFyUG9wb3Zlci5fb3BlblBvcG92ZXIoZm9jdXNMYXN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZSh0aGlzLl90YWJVSUVsZW1lbnRzLmdldCh0YWJJbmRleCkpPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZEl0ZW1cbiAgICAgKiBAZGVzY3JpcHRpb24gc2VsZWN0IGV4dHJhIGl0ZW0gaW5zaWRlIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfc2VsZWN0RXh0cmFJdGVtKHNlbGVjdGVkSXRlbTogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVsZXRlZEl0ZW0gPSB0aGlzLl90YWJzLnNwbGljZSh0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4LCAxLCBzZWxlY3RlZEl0ZW0pWzBdIGFzIEljb25UYWJCYXJJdGVtO1xuICAgICAgICB0aGlzLl90YWJzLnNwbGljZShzZWxlY3RlZEl0ZW0uaW5kZXgsIDEsIGRlbGV0ZWRJdGVtKTtcblxuICAgICAgICBkZWxldGVkSXRlbS5pbmRleCA9IHNlbGVjdGVkSXRlbS5pbmRleDtcbiAgICAgICAgZGVsZXRlZEl0ZW0udUlkID0gYCR7ZGVsZXRlZEl0ZW0uaW5kZXh9YDtcbiAgICAgICAgY29uc3QgaXRlbVRvUG9wb3ZlciA9IGNsb25lRGVlcChkZWxldGVkSXRlbSk7XG4gICAgICAgIGRlbGV0ZWRJdGVtLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIGRlbGV0ZWRJdGVtLmNzc0NsYXNzZXMucHVzaChJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG5cbiAgICAgICAgbGV0IGluZGV4SW5FeHRyYUl0ZW1zO1xuICAgICAgICB0aGlzLl9leHRyYVRhYnMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmluZGV4ID09PSBzZWxlY3RlZEl0ZW0uaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpbmRleEluRXh0cmFJdGVtcyA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzZWxlY3RlZEl0ZW0uaW5kZXggPSB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4O1xuICAgICAgICBzZWxlY3RlZEl0ZW0udUlkID0gYCR7c2VsZWN0ZWRJdGVtLmluZGV4fWA7XG4gICAgICAgIHNlbGVjdGVkSXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5jb2xvcikge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtzZWxlY3RlZEl0ZW0uY29sb3J9YF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0cmFUYWJzLnNwbGljZShpbmRleEluRXh0cmFJdGVtcywgMSwgaXRlbVRvUG9wb3Zlcik7XG4gICAgICAgIHRoaXMuX2V4dHJhVGFicyA9IFsuLi50aGlzLl9leHRyYVRhYnNdO1xuXG4gICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNJdGVtKHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZXh0cmFJdGVtc1xuICAgICAqIEBkZXNjcmlwdGlvbiByZWNhbGN1bGF0ZSBfbmV4dFN0ZXBzIGFuZCBfcHJldlN0ZXBzIGFycmF5IGlmIHdlIGhhdmUgZXh0cmEgaXRlbXNcbiAgICAgKi9cbiAgICBfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoZXh0cmFJdGVtczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXggPSB0aGlzLl90YWJzLmxlbmd0aCAtIDEgLSBleHRyYUl0ZW1zO1xuICAgICAgICB0aGlzLl90YWJzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmNzc0NsYXNzZXMgPSBpdGVtLmNzc0NsYXNzZXMuZmlsdGVyKChjc3NDbGFzcykgPT4gY3NzQ2xhc3MgIT09IElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2V4dHJhVGFicyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ICsgMTsgaSA8IHRoaXMuX3RhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRoaXMuX3RhYnNbaV07XG4gICAgICAgICAgICB0aGlzLl9leHRyYVRhYnMucHVzaChjbG9uZURlZXAodGFiKSk7XG4gICAgICAgICAgICB0YWIuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRhYi5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNYXBwaW5nIGZ1bmN0aW9uIHRvIHJlc29sdmUgVUkgdGFiIGVsZW1lbnQgdG8gaXQncyBmb2N1c2FibGUgcGFydC9kZXNjZW5kYW50XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9nZXRUYWJVSUVsZW1lbnRGb2N1c2FibGUodGFiVUlFbGVtZW50OiB1bmtub3duKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHRhYlVJRWxlbWVudCAmJiB0eXBlb2YgdGFiVUlFbGVtZW50ID09PSAnb2JqZWN0JyAmJiAnbmF0aXZlRWxlbWVudCcgaW4gdGFiVUlFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoKDxFbGVtZW50UmVmPnRhYlVJRWxlbWVudCkubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICg8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+dGFiVUlFbGVtZW50KS5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZ2V0IGZvY3VzYWJsZSB0YWIgZWxlbWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gdHJpZ2dlciByZWNhbGN1bGF0aW9uIGl0ZW1zLCBuZWVkIHRvIGRvIGl0IGFzeW5jaHJvbm91c2x5IGFmdGVyIGRvbSB3YXMgcmVyZW5kZXJlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmZsb3dEaXJlY3RpdmUgJiYgIXRoaXMuX2Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhID0gdGhpcy5vdmVyZmxvd0RpcmVjdGl2ZS5nZXRBbW91bnRPZkV4dHJhSXRlbXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcyhleHRyYSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIGluaXRpYWxpemUgc3RhdGUgb2YgdGFic1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfaW5pdFRhYnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYnMgPSB0aGlzLl9nZW5lcmF0ZVRhYkJhckl0ZW1zKHRoaXMudGFic0NvbmZpZyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuX3RhYnMuZmluZCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFVpZCA9IHNlbGVjdGVkSXRlbT8udUlkO1xuICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ID0gdGhpcy5fdGFicy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gZ2VuZXJhdGUgSWNvblRhYkl0ZW1zIGZyb20gVGFiQ29uZmlnIGFycmF5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJCYXJJdGVtcyhjb25maWc6IFRhYkNvbmZpZ1tdKTogSWNvblRhYkJhckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGZsYXRJbmRleFJlZjogRmxhdEluZGV4ID0geyB2YWx1ZTogMCB9O1xuICAgICAgICByZXR1cm4gY29uZmlnLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogSWNvblRhYkJhckl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICBjc3NDbGFzc2VzOiBbXSxcbiAgICAgICAgICAgICAgICB1SWQ6IGluZGV4LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzdWJJdGVtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGZsYXRJbmRleDogZmxhdEluZGV4UmVmLnZhbHVlKytcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7aXRlbS5jb2xvcn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5zdWJJdGVtcyA9IGl0ZW0uc3ViSXRlbXM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gdGhpcy5fZ2VuZXJhdGVTdWJJdGVtcyhpdGVtLnN1Ykl0ZW1zLCByZXN1bHQsIGZsYXRJbmRleFJlZilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVTdWJJdGVtcyhcbiAgICAgICAgc3ViSXRlbXM6IFRhYkNvbmZpZ1tdLFxuICAgICAgICBwYXJlbnQ6IEljb25UYWJCYXJJdGVtLFxuICAgICAgICBmbGF0SW5kZXhSZWY6IEZsYXRJbmRleFxuICAgICk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICByZXR1cm4gc3ViSXRlbXM/Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogSWNvblRhYkJhckl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICB1SWQ6IGAke3BhcmVudC51SWR9JHtVTklRVUVfS0VZX1NFUEFSQVRPUn0ke2luZGV4fWAsXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3NlczogW10sXG4gICAgICAgICAgICAgICAgc3ViSXRlbXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBmbGF0SW5kZXg6IGZsYXRJbmRleFJlZi52YWx1ZSsrLFxuICAgICAgICAgICAgICAgIHBhcmVudFVJZDogcGFyZW50LnVJZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uc3ViSXRlbXMpICYmIGl0ZW0uc3ViSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnN1Ykl0ZW1zID0gdGhpcy5fZ2VuZXJhdGVTdWJJdGVtcyhpdGVtLnN1Ykl0ZW1zLCByZXN1bHQsIGZsYXRJbmRleFJlZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuIGhlbHBlciBvYmplY3QgdGhhdCBpcyB1c2VkIGluIHRhYiBnZW5lcmF0aW9uIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgdGhlaXIgaW5kZXhlcyBub3QgZGVwZW5kaW5nIG9uIGxldmVsIG9mIG5lc3RpbmcgKi9cbmludGVyZmFjZSBGbGF0SW5kZXgge1xuICAgIHZhbHVlOiBudW1iZXI7XG59XG4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWJhc2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFJTixNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBUWhGLE1BQU0sT0FBZ0IsY0FBYztJQTRCaEM7O09BRUc7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFxQjtRQUNqQywwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xELElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQW1DRCxjQUFjO0lBQ2QsWUFDYyxHQUFzQixFQUN0QixPQUFlO1FBRGYs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RyxLQUFLLEVBQUU7Z0JBQ25ELFVBQVUsRUFBRSxFQUFFO2dCQUNkLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2FBQ3hCLENBQUM7WUFDRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUN0RCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNqRjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FyVGlCLGNBQWM7a0dBQWQsY0FBYywwT0FpRHJCLHFCQUFxQjs7MkZBakRkLGNBQWM7a0JBRG5DLFNBQVM7MkdBY04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLEtBQUs7c0JBREosS0FBSztnQkFRTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT0YsV0FBVztzQkFEZCxLQUFLO2dCQWFOLFFBQVE7c0JBRFAsTUFBTTtnQkFPUCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBpc0Rldk1vZGUsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgU1BBQ0UsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEtleVV0aWwsIE92ZXJmbG93TGlzdERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSwgVU5JUVVFX0tFWV9TRVBBUkFUT1IgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJDb2xvckFzc29jaWF0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGFiLWNvbG9yLWFzc29jaWF0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWItY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJEZXN0aW55TW9kZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQmFzZSB9IGZyb20gJy4vcG9wb3ZlcnMvaWNvbi10YWItYmFyLXBvcG92ZXItYmFzZS5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEljb25UYWJCYXJCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgdGFiIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzLlxuICAgICAqIFRoZXJlJ3MgYSBzZXBhcmF0ZSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGdldCBhY3R1YWwgaHRtbCBlbGVtZW50OiBgX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZWBcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBfdGFiVUlFbGVtZW50czogUXVlcnlMaXN0PHVua25vd24+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWJzdHJhY3QgX3RhYkJhclBvcG92ZXI6IEljb25UYWJCYXJQb3BvdmVyQmFzZTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSB0YWIgYmFyIGNvbmZpZ3VyYXRpb24gdGhhdCBzdG9yZXMgdGhlIHN0YXRlIG9mIGVhY2ggdGFiLiBCYXNlZCBvbiB0aGlzIGNvbmZpZ3VyYXRpb24sIGEgdGFiIGJhciBpcyByZXByZXNlbnRpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0YWJzQ29uZmlnOiBUYWJDb25maWdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZsYWcgcmVwcmVzZW50aW5nIHJ0bCBtb2RlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1J0bDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGlvbnMgZm9yIGNvbG9ycyBvZiB0aGUgdGFicy5cbiAgICAgKiBJZiBhbnkgb2YgdGhlIGNvbG9yIGFzc29jaWF0aW9ucyBwcm92aWRlZCwgdGhleSdsbCBiZSByZWFkIGJ5IHNjcmVlbnJlYWRlciBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgY29sb3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbG9yQXNzb2NpYXRpb25zOiBUYWJDb2xvckFzc29jaWF0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBkZW5zaXR5TW9kZSBzZXR0ZXIgdHJpZ2dlcnMgdGFicyB0byByZS1jYWxjdWxhdGlvbiBvdmVyZmxvd2VkIHRhYnNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkZW5zaXR5TW9kZSh2YWx1ZTogVGFiRGVzdGlueU1vZGUpIHtcbiAgICAgICAgLy8gU2tpcCBmaXJzdCB2YWx1ZSAmJiB2YWx1ZSBkb2Vzbid0IGVxdWFsIHRvIHByZXZpb3VzIG9uZVxuICAgICAgICBpZiAodGhpcy5fZGVuc2l0eU1vZGUgJiYgdmFsdWUgIT09IHRoaXMuX2RlbnNpdHlNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RlbnNpdHlNb2RlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gc29tZSB0YWIgaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jZSB0byBPdmVyZmxvd0xpc3REaXJlY3RpdmVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE92ZXJmbG93TGlzdERpcmVjdGl2ZSlcbiAgICBvdmVyZmxvd0RpcmVjdGl2ZTogT3ZlcmZsb3dMaXN0RGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0ZWRVaWQ/OiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9leHRyYVRhYnM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2xhc3RWaXNpYmxlVGFiSW5kZXg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYnM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVuc2l0eU1vZGU6IFRhYkRlc3RpbnlNb2RlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveWVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9uZ1pvbmU6IE5nWm9uZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy50YWJzQ29uZmlnICYmICFjaGFuZ2VzLnRhYnNDb25maWcuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRUYWJzKCk7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzUnRsICYmICFjaGFuZ2VzLmlzUnRsLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdFRhYnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVWlkID0gc2VsZWN0ZWRJdGVtLnVJZDtcbiAgICAgICAgc2VsZWN0ZWRJdGVtLmJhZGdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2tleURvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB0YWI6IEljb25UYWJCYXJJdGVtIHwgdW5kZWZpbmVkLCBjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGFiICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHRhYik7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtSSUdIVF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5pc1J0bCA/IHRoaXMuX2ZvY3VzUHJldmlvdXNJdGVtKGN1cnJlbnRJbmRleCkgOiB0aGlzLl9mb2N1c05leHRJdGVtKGN1cnJlbnRJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtMRUZUX0FSUk9XLCBVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5pc1J0bCA/IHRoaXMuX2ZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4KSA6IHRoaXMuX2ZvY3VzUHJldmlvdXNJdGVtKGN1cnJlbnRJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBmb2N1c2VzIG5leHQgdGFiICovXG4gICAgX2ZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gY3VycmVudEluZGV4ID09PSB0aGlzLl90YWJzLmxlbmd0aCAtIDEgPyAwIDogY3VycmVudEluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5fZm9jdXNJdGVtKG5leHRJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZm9jdXNlcyBwcmV2aW91cyB0YWIgKi9cbiAgICBfZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gaWYgY3VycmVudCBmb2N1c2VkIGVsZW1lbnQgaXMgZmlyc3QsIGZvY3VzIHRoZSBsYXN0IG9uZS4gSWYgdGFicyBhcmUgb3ZlcmZsb3dlZCwgZm9jdXMgdGhlIGxhc3QgdGFiIGluIHRoZSBwb3BvdmVyXG4gICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW0odGhpcy5fdGFicy5sZW5ndGggLSAxLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbShjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gdGFiSW5kZXggaW5kZXggb2YgdGhlIHRhYiB0byBhcHBseSBmb2N1c1xuICAgICAqIEBwYXJhbSBmb2N1c0xhc3Qgd2hldGhlciB0byBmb2N1cyBmaXJzdCBvciBsYXN0IGl0ZW0gaW4gdGhlIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfZm9jdXNJdGVtKHRhYkluZGV4OiBudW1iZXIsIGZvY3VzTGFzdCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0YWJJbmRleCA+IHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYkJhclBvcG92ZXIuX29wZW5Qb3BvdmVyKGZvY3VzTGFzdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRUYWJVSUVsZW1lbnRGb2N1c2FibGUodGhpcy5fdGFiVUlFbGVtZW50cy5nZXQodGFiSW5kZXgpKT8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQGRlc2NyaXB0aW9uIHNlbGVjdCBleHRyYSBpdGVtIGluc2lkZSBwb3BvdmVyXG4gICAgICovXG4gICAgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRJdGVtID0gdGhpcy5fdGFicy5zcGxpY2UodGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCwgMSwgc2VsZWN0ZWRJdGVtKVswXSBhcyBJY29uVGFiQmFySXRlbTtcbiAgICAgICAgdGhpcy5fdGFicy5zcGxpY2Uoc2VsZWN0ZWRJdGVtLmluZGV4LCAxLCBkZWxldGVkSXRlbSk7XG5cbiAgICAgICAgZGVsZXRlZEl0ZW0uaW5kZXggPSBzZWxlY3RlZEl0ZW0uaW5kZXg7XG4gICAgICAgIGRlbGV0ZWRJdGVtLnVJZCA9IGAke2RlbGV0ZWRJdGVtLmluZGV4fWA7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub1BvcG92ZXIgPSBjbG9uZURlZXAoZGVsZXRlZEl0ZW0pO1xuICAgICAgICBkZWxldGVkSXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICBkZWxldGVkSXRlbS5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuXG4gICAgICAgIGxldCBpbmRleEluRXh0cmFJdGVtcztcbiAgICAgICAgdGhpcy5fZXh0cmFUYWJzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pbmRleCA9PT0gc2VsZWN0ZWRJdGVtLmluZGV4KSB7XG4gICAgICAgICAgICAgICAgaW5kZXhJbkV4dHJhSXRlbXMgPSBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2VsZWN0ZWRJdGVtLmluZGV4ID0gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleDtcbiAgICAgICAgc2VsZWN0ZWRJdGVtLnVJZCA9IGAke3NlbGVjdGVkSXRlbS5pbmRleH1gO1xuICAgICAgICBzZWxlY3RlZEl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7c2VsZWN0ZWRJdGVtLmNvbG9yfWBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4dHJhVGFicy5zcGxpY2UoaW5kZXhJbkV4dHJhSXRlbXMsIDEsIGl0ZW1Ub1BvcG92ZXIpO1xuICAgICAgICB0aGlzLl9leHRyYVRhYnMgPSBbLi4udGhpcy5fZXh0cmFUYWJzXTtcblxuICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuX2ZvY3VzSXRlbSh0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGV4dHJhSXRlbXNcbiAgICAgKiBAZGVzY3JpcHRpb24gcmVjYWxjdWxhdGUgX25leHRTdGVwcyBhbmQgX3ByZXZTdGVwcyBhcnJheSBpZiB3ZSBoYXZlIGV4dHJhIGl0ZW1zXG4gICAgICovXG4gICAgX3JlY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKGV4dHJhSXRlbXM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ID0gdGhpcy5fdGFicy5sZW5ndGggLSAxIC0gZXh0cmFJdGVtcztcbiAgICAgICAgdGhpcy5fdGFicy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5jc3NDbGFzc2VzID0gaXRlbS5jc3NDbGFzc2VzLmZpbHRlcigoY3NzQ2xhc3MpID0+IGNzc0NsYXNzICE9PSBJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9leHRyYVRhYnMgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCArIDE7IGkgPCB0aGlzLl90YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0YWIgPSB0aGlzLl90YWJzW2ldO1xuICAgICAgICAgICAgdGhpcy5fZXh0cmFUYWJzLnB1c2goY2xvbmVEZWVwKHRhYikpO1xuICAgICAgICAgICAgdGFiLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB0YWIuY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWFwcGluZyBmdW5jdGlvbiB0byByZXNvbHZlIFVJIHRhYiBlbGVtZW50IHRvIGl0J3MgZm9jdXNhYmxlIHBhcnQvZGVzY2VuZGFudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZ2V0VGFiVUlFbGVtZW50Rm9jdXNhYmxlKHRhYlVJRWxlbWVudDogdW5rbm93bik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGlmICh0YWJVSUVsZW1lbnQgJiYgdHlwZW9mIHRhYlVJRWxlbWVudCA9PT0gJ29iamVjdCcgJiYgJ25hdGl2ZUVsZW1lbnQnIGluIHRhYlVJRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKCg8RWxlbWVudFJlZj50YWJVSUVsZW1lbnQpLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PnRhYlVJRWxlbWVudCkubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGdldCBmb2N1c2FibGUgdGFiIGVsZW1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIHRyaWdnZXIgcmVjYWxjdWxhdGlvbiBpdGVtcywgbmVlZCB0byBkbyBpdCBhc3luY2hyb25vdXNseSBhZnRlciBkb20gd2FzIHJlcmVuZGVyZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RGlyZWN0aXZlICYmICF0aGlzLl9kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRyYSA9IHRoaXMub3ZlcmZsb3dEaXJlY3RpdmUuZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoZXh0cmEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBpbml0aWFsaXplIHN0YXRlIG9mIHRhYnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRUYWJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJzID0gdGhpcy5fZ2VuZXJhdGVUYWJCYXJJdGVtcyh0aGlzLnRhYnNDb25maWcpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl90YWJzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZEl0ZW0/LnVJZDtcbiAgICAgICAgdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCA9IHRoaXMuX3RhYnMubGVuZ3RoIC0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYXRlIEljb25UYWJJdGVtcyBmcm9tIFRhYkNvbmZpZyBhcnJheVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlVGFiQmFySXRlbXMoY29uZmlnOiBUYWJDb25maWdbXSk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBmbGF0SW5kZXhSZWY6IEZsYXRJbmRleCA9IHsgdmFsdWU6IDAgfTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IEljb25UYWJCYXJJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3NlczogW10sXG4gICAgICAgICAgICAgICAgdUlkOiBpbmRleC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3ViSXRlbXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBmbGF0SW5kZXg6IGZsYXRJbmRleFJlZi52YWx1ZSsrXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuY3NzQ2xhc3NlcyA9IFtgZmQtaWNvbi10YWItYmFyX19pdGVtLS0ke2l0ZW0uY29sb3J9YF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQuc3ViSXRlbXMgPSBpdGVtLnN1Ykl0ZW1zPy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuX2dlbmVyYXRlU3ViSXRlbXMoaXRlbS5zdWJJdGVtcywgcmVzdWx0LCBmbGF0SW5kZXhSZWYpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlU3ViSXRlbXMoXG4gICAgICAgIHN1Ykl0ZW1zOiBUYWJDb25maWdbXSxcbiAgICAgICAgcGFyZW50OiBJY29uVGFiQmFySXRlbSxcbiAgICAgICAgZmxhdEluZGV4UmVmOiBGbGF0SW5kZXhcbiAgICApOiBJY29uVGFiQmFySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHN1Ykl0ZW1zPy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IEljb25UYWJCYXJJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgdUlkOiBgJHtwYXJlbnQudUlkfSR7VU5JUVVFX0tFWV9TRVBBUkFUT1J9JHtpbmRleH1gLFxuICAgICAgICAgICAgICAgIGNzc0NsYXNzZXM6IFtdLFxuICAgICAgICAgICAgICAgIHN1Ykl0ZW1zOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZmxhdEluZGV4OiBmbGF0SW5kZXhSZWYudmFsdWUrKyxcbiAgICAgICAgICAgICAgICBwYXJlbnRVSWQ6IHBhcmVudC51SWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLnN1Ykl0ZW1zKSAmJiBpdGVtLnN1Ykl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5zdWJJdGVtcyA9IHRoaXMuX2dlbmVyYXRlU3ViSXRlbXMoaXRlbS5zdWJJdGVtcywgcmVzdWx0LCBmbGF0SW5kZXhSZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKiogQGhpZGRlbiBoZWxwZXIgb2JqZWN0IHRoYXQgaXMgdXNlZCBpbiB0YWIgZ2VuZXJhdGlvbiBmdW5jdGlvbnMgdG8gY2FsY3VsYXRlIHRoZWlyIGluZGV4ZXMgbm90IGRlcGVuZGluZyBvbiBsZXZlbCBvZiBuZXN0aW5nICovXG5pbnRlcmZhY2UgRmxhdEluZGV4IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xufVxuIl19
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
44
44
  }], showTotalTab: [{
45
45
  type: Input
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUvaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUvaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOztBQWU3RyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBYnJFOztRQW9CSTs7V0FFRztRQUVILGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBYXZCO0lBUkc7OztPQUdHO0lBQ08sU0FBUztRQUNmLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNuRSxDQUFDOzhHQXZCUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixrTEFLM0IsMEJBQTBCLHNKQzNCekMsMGtIQXVGQSw0Q0R6RVEscUJBQXFCLHNKQUNyQix5QkFBeUIsa0VBQ3pCLGFBQWEsMElBQ2IsMEJBQTBCLGdIQUMxQixTQUFTLDhDQUNULGVBQWU7OzJGQUdWLDZCQUE2QjtrQkFiekMsU0FBUzsrQkFDSSw4QkFBOEIsY0FFNUIsSUFBSSxXQUNQO3dCQUNMLHFCQUFxQjt3QkFDckIseUJBQXlCO3dCQUN6QixhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsU0FBUzt3QkFDVCxlQUFlO3FCQUNsQjs4QkFJd0IsY0FBYztzQkFBdEMsWUFBWTt1QkFBQyxTQUFTO2dCQUdnQixjQUFjO3NCQUFwRCxTQUFTO3VCQUFDLDBCQUEwQjtnQkFNckMsWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJmbG93TGlzdERpcmVjdGl2ZSwgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xvc2FibGVJY29uVGFiQmFyIH0gZnJvbSAnLi4vY2xvc2FibGUtaWNvbi10YWItYmFyLmNsYXNzJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3ZlcnMvaWNvbi10YWItYmFyLXBvcG92ZXIvaWNvbi10YWItYmFyLXBvcG92ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLFxuICAgICAgICBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgU2xpY2VQaXBlLFxuICAgICAgICBCdXR0b25Db21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgdG8gc2hvdyB0b3RhbCB0YWJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb3RhbFRhYiA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90b3RhbFRhYj86IEljb25UYWJCYXJJdGVtO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBpbml0aWFsaXplIHN0YXRlIG9mIHRhYnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRUYWJzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5faW5pdFRhYnMoKTtcbiAgICAgICAgdGhpcy5fdG90YWxUYWIgPSB0aGlzLnNob3dUb3RhbFRhYiA/IHRoaXMuX3RhYnNbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIiwiPHVsXG4gICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2hlYWRlclwiXG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgIGZka092ZXJmbG93TGlzdFxuICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgW292ZXJmbG93T2Zmc2V0XT1cIjEwMFwiXG4gICAgKG92ZXJmbG93Q2hhbmdlZCk9XCJfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoJGV2ZW50KVwiXG4+XG4gICAgQGlmIChzaG93VG90YWxUYWIpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtXCIgcm9sZT1cInByZXNlbnRhdGlvblwiIGZka092ZXJmbG93TGlzdEl0ZW0+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfdG90YWxUYWIgJiYgX3NlbGVjdEl0ZW0oX3RvdGFsVGFiKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgX3RvdGFsVGFiLCAwKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfdG90YWxUYWI/LnVJZCA9PT0gX3NlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyIGZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyLS1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChfdG90YWxUYWI/LmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19maWx0ZXItY291bnRlclwiPnt7IF90b3RhbFRhYj8uY291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fZmlsdGVyLWxhYmVsXCI+e3sgX3RvdGFsVGFiPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGZvciAoaXRlbSBvZiBfdGFicyB8IHNsaWNlOiAxOyB0cmFjayBpdGVtLnVJZDsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICA8bGlcbiAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNzc0NsYXNzZXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2l0ZW1cIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBmZGtPdmVyZmxvd0xpc3RJdGVtXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmhpZGRlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0udUlkID09PSBfc2VsZWN0ZWRVaWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWJcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwic2hvd1RvdGFsVGFiID8gLTEgOiBpZHggPiAwID8gLTEgOiAwXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfa2V5RG93bkhhbmRsZXIoJGV2ZW50LCBpdGVtLCBpZHggKyAoc2hvd1RvdGFsVGFiID8gMSA6IDApKVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiaXRlbS5pY29uXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY291bnRlclwiPnt7IGl0ZW0uY291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2xhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChjb2xvckFzc29jaWF0aW9ucyAmJiBjb2xvckFzc29jaWF0aW9uc1tpdGVtLmNvbG9yXSkgfHwgaXRlbS5jb2xvciB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19idXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2V4dHJhVGFicy5sZW5ndGgpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbSBmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLW92ZXJmbG93XCI+XG4gICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgICAgICAgICBbZXh0cmFUYWJzXT1cIl9leHRyYVRhYnNcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkRXh0cmFJdGVtKT1cIl9zZWxlY3RFeHRyYUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzRmlyc3RWaXNpYmxlSXRlbSk9XCJfZm9jdXNJdGVtKDApXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNMYXN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbShfbGFzdFZpc2libGVUYWJJbmRleClcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvdWw+XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUVBQWlFLENBQUM7O0FBZTdHLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFickU7O1FBb0JJOztXQUVHO1FBRUgsaUJBQVksR0FBRyxJQUFJLENBQUM7S0FhdkI7SUFSRzs7O09BR0c7SUFDTyxTQUFTO1FBQ2YsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ25FLENBQUM7OEdBdkJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtMQUszQiwwQkFBMEIsc0pDM0J6Qywwa0hBdUZBLDRDRHpFUSxxQkFBcUIsc0pBQ3JCLHlCQUF5QixrRUFDekIsYUFBYSwwSUFDYiwwQkFBMEIsZ0hBQzFCLFNBQVMsOENBQ1QsZUFBZTs7MkZBR1YsNkJBQTZCO2tCQWJ6QyxTQUFTOytCQUNJLDhCQUE4QixjQUU1QixJQUFJLFdBQ1A7d0JBQ0wscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsMEJBQTBCO3dCQUMxQixTQUFTO3dCQUNULGVBQWU7cUJBQ2xCOzhCQUl3QixjQUFjO3NCQUF0QyxZQUFZO3VCQUFDLFNBQVM7Z0JBR2dCLGNBQWM7c0JBQXBELFNBQVM7dUJBQUMsMEJBQTBCO2dCQU1yQyxZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTbGljZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLCBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci9pY29uLXRhYi1iYXItcG9wb3Zlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBTbGljZVBpcGUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQgZXh0ZW5kcyBDbG9zYWJsZUljb25UYWJCYXIge1xuICAgIC8qKiBAaGlkZGVuIGxpc3Qgb2YgdGFiIGh0bWwgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMgKi9cbiAgICBAVmlld0NoaWxkcmVuKCd0YWJJdGVtJykgX3RhYlVJRWxlbWVudHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQpIF90YWJCYXJQb3BvdmVyOiBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB0byBzaG93IHRvdGFsIHRhYlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RvdGFsVGFiID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvdGFsVGFiPzogSWNvblRhYkJhckl0ZW07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIGluaXRpYWxpemUgc3RhdGUgb2YgdGFic1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfaW5pdFRhYnMoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLl9pbml0VGFicygpO1xuICAgICAgICB0aGlzLl90b3RhbFRhYiA9IHRoaXMuc2hvd1RvdGFsVGFiID8gdGhpcy5fdGFic1swXSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iLCI8dWxcbiAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faGVhZGVyXCJcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgZmRrT3ZlcmZsb3dMaXN0XG4gICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICBbb3ZlcmZsb3dPZmZzZXRdPVwiMTAwXCJcbiAgICAob3ZlcmZsb3dDaGFuZ2VkKT1cIl9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcygkZXZlbnQpXCJcbj5cbiAgICBAaWYgKHNob3dUb3RhbFRhYikge1xuICAgICAgICA8bGkgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2l0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCIgZmRrT3ZlcmZsb3dMaXN0SXRlbT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl90b3RhbFRhYiAmJiBfc2VsZWN0SXRlbShfdG90YWxUYWIpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfa2V5RG93bkhhbmRsZXIoJGV2ZW50LCBfdG90YWxUYWIsIDApXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIl90b3RhbFRhYj8udUlkID09PSBfc2VsZWN0ZWRVaWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWJcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgI3RhYkl0ZW1cbiAgICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb250YWluZXIgZmQtaWNvbi10YWItYmFyX19jb250YWluZXItLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKF90b3RhbFRhYj8uY291bnRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2ZpbHRlci1jb3VudGVyXCI+e3sgX3RvdGFsVGFiPy5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19maWx0ZXItbGFiZWxcIj57eyBfdG90YWxUYWI/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIF90YWJzIHwgc2xpY2U6IDE7IHRyYWNrIGl0ZW0udUlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS51SWQgPT09IF9zZWxlY3RlZFVpZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYlwiXG4gICAgICAgICAgICAgICAgI3RhYkl0ZW1cbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJzaG93VG90YWxUYWIgPyAtMSA6IGlkeCA+IDAgPyAtMSA6IDBcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeCArIChzaG93VG90YWxUYWIgPyAxIDogMCkpXCJcbiAgICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2ljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJpdGVtLmljb25cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JlZW5yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKGNvbG9yQXNzb2NpYXRpb25zICYmIGNvbG9yQXNzb2NpYXRpb25zW2l0ZW0uY29sb3JdKSB8fCBpdGVtLmNvbG9yIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5jbG9zYWJsZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfY2xvc2VUYWIoaXRlbS51SWQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmIChfZXh0cmFUYWJzLmxlbmd0aCkge1xuICAgICAgICA8bGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3dcIj5cbiAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX2V4dHJhVGFic1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRFeHRyYUl0ZW0pPVwiX3NlbGVjdEV4dHJhSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNGaXJzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oMClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0xhc3RWaXNpYmxlSXRlbSk9XCJfZm9jdXNJdGVtKF9sYXN0VmlzaWJsZVRhYkluZGV4KVwiXG4gICAgICAgICAgICA+PC9mZHAtaWNvbi10YWItYmFyLXBvcG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuPC91bD5cbiJdfQ==
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
29
29
  }], showLabel: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWljb24tdHlwZS9pY29uLXRhYi1iYXItaWNvbi10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pY29uLXRhYi1iYXIvY29tcG9uZW50cy9pY29uLXRhYi1iYXItaWNvbi10eXBlL2ljb24tdGFiLWJhci1pY29uLXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUVBQWlFLENBQUM7O0FBZTdHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7OEdBQXRELDJCQUEyQjtrR0FBM0IsMkJBQTJCLDBLQUt6QiwwQkFBMEIsc0pDMUJ6QyxzaEdBMEVBLDRDRDdEUSxxQkFBcUIsc0pBQ3JCLHlCQUF5QixrRUFDekIsT0FBTyxvRkFDUCxhQUFhLDBJQUNiLGVBQWUsd0hBQ2YsMEJBQTBCOzsyRkFHckIsMkJBQTJCO2tCQWJ2QyxTQUFTOytCQUNJLDRCQUE0QixjQUUxQixJQUFJLFdBQ1A7d0JBQ0wscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDBCQUEwQjtxQkFDN0I7OEJBSXdCLGNBQWM7c0JBQXRDLFlBQVk7dUJBQUMsU0FBUztnQkFHZ0IsY0FBYztzQkFBcEQsU0FBUzt1QkFBQywwQkFBMEI7Z0JBSXJDLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLCBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgQ2xvc2FibGVJY29uVGFiQmFyIH0gZnJvbSAnLi4vY2xvc2FibGUtaWNvbi10YWItYmFyLmNsYXNzJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3ZlcnMvaWNvbi10YWItYmFyLXBvcG92ZXIvaWNvbi10YWItYmFyLXBvcG92ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyLWljb24tdHlwZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci1pY29uLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJJY29uVHlwZUNvbXBvbmVudCBleHRlbmRzIENsb3NhYmxlSWNvblRhYkJhciB7XG4gICAgLyoqIEBoaWRkZW4gbGlzdCBvZiB0YWIgaHRtbCBlbGVtZW50cywgdGhhdCBjYW4gcmVjZWl2ZSBmb2N1cyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oJ3RhYkl0ZW0nKSBfdGFiVUlFbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCkgX3RhYkJhclBvcG92ZXI6IEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBsYWJlbHMgZm9yIHRhYiBpdGVtcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xhYmVsOiBib29sZWFuO1xufVxuIiwiPHVsXG4gICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2hlYWRlclwiXG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgIGZka092ZXJmbG93TGlzdFxuICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgW292ZXJmbG93T2Zmc2V0XT1cIjEwMFwiXG4gICAgKG92ZXJmbG93Q2hhbmdlZCk9XCJfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoJGV2ZW50KVwiXG4+XG4gICAgQGZvciAoaXRlbSBvZiBfdGFiczsgdHJhY2sgaXRlbS51SWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNzc0NsYXNzZXNcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9faXRlbS0tY2xvc2FibGVdPVwiaXRlbS5jbG9zYWJsZVwiXG4gICAgICAgICAgICBmZGtPdmVyZmxvd0xpc3RJdGVtXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmhpZGRlblwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlkeCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnVJZCA9PT0gX3NlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIml0ZW0uaWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY291bnRlciAmJiAoIWl0ZW0ubGFiZWwgfHwgIXNob3dMYWJlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChzaG93TGFiZWwgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY291bnRlclwiPnt7IGl0ZW0uY291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcmVlbnJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAoY29sb3JBc3NvY2lhdGlvbnMgJiYgY29sb3JBc3NvY2lhdGlvbnNbaXRlbS5jb2xvcl0pIHx8IGl0ZW0uY29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChpdGVtLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9jbG9zZVRhYihpdGVtLnVJZClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cImRlY2xpbmVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKF9leHRyYVRhYnMubGVuZ3RoKSB7XG4gICAgICAgIDxsaSByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2l0ZW0gZmQtaWNvbi10YWItYmFyX19pdGVtLS1vdmVyZmxvd1wiPlxuICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItcG9wb3ZlclxuICAgICAgICAgICAgICAgIFtzaG93SXRlbUxhYmVsXT1cInNob3dMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgICAgICAgICBbZXh0cmFUYWJzXT1cIl9leHRyYVRhYnNcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkRXh0cmFJdGVtKT1cIl9zZWxlY3RFeHRyYUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzRmlyc3RWaXNpYmxlSXRlbSk9XCJfZm9jdXNJdGVtKDApXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNMYXN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbShfbGFzdFZpc2libGVUYWJJbmRleClcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvdWw+XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFlN0csTUFBTSxPQUFPLDJCQUE0QixTQUFRLGtCQUFrQjs4R0FBdEQsMkJBQTJCO2tHQUEzQiwyQkFBMkIsMEtBS3pCLDBCQUEwQixzSkMxQnpDLHNoR0EwRUEsNENEN0RRLHFCQUFxQixzSkFDckIseUJBQXlCLGtFQUN6QixPQUFPLG9GQUNQLGFBQWEsMElBQ2IsZUFBZSx3SEFDZiwwQkFBMEI7OzJGQUdyQiwyQkFBMkI7a0JBYnZDLFNBQVM7K0JBQ0ksNEJBQTRCLGNBRTFCLElBQUksV0FDUDt3QkFDTCxxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsMEJBQTBCO3FCQUM3Qjs4QkFJd0IsY0FBYztzQkFBdEMsWUFBWTt1QkFBQyxTQUFTO2dCQUdnQixjQUFjO3NCQUFwRCxTQUFTO3VCQUFDLDBCQUEwQjtnQkFJckMsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci9pY29uLXRhYi1iYXItcG9wb3Zlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1pY29uLXRhYi1iYXItaWNvbi10eXBlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE92ZXJmbG93TGlzdERpcmVjdGl2ZSxcbiAgICAgICAgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogV2hldGhlciB0byBkaXNwbGF5IGxhYmVscyBmb3IgdGFiIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBzaG93TGFiZWw6IGJvb2xlYW47XG59XG4iLCI8dWxcbiAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faGVhZGVyXCJcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgZmRrT3ZlcmZsb3dMaXN0XG4gICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICBbb3ZlcmZsb3dPZmZzZXRdPVwiMTAwXCJcbiAgICAob3ZlcmZsb3dDaGFuZ2VkKT1cIl9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcygkZXZlbnQpXCJcbj5cbiAgICBAZm9yIChpdGVtIG9mIF90YWJzOyB0cmFjayBpdGVtLnVJZDsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICA8bGlcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBbY2xhc3MuZmQtaWNvbi10YWItYmFyX19pdGVtLS1jbG9zYWJsZV09XCJpdGVtLmNsb3NhYmxlXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtXCJcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWJcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaWR4ID09PSAwID8gMCA6IC0xXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0udUlkID09PSBfc2VsZWN0ZWRVaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgaXRlbSwgaWR4KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiaXRlbS5pY29uXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb3VudGVyICYmICghaXRlbS5sYWJlbCB8fCAhc2hvd0xhYmVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvdW50ZXJcIj57eyBpdGVtLmNvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKHNob3dMYWJlbCAmJiBpdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2RldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2xhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChjb2xvckFzc29jaWF0aW9ucyAmJiBjb2xvckFzc29jaWF0aW9uc1tpdGVtLmNvbG9yXSkgfHwgaXRlbS5jb2xvciB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19idXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2V4dHJhVGFicy5sZW5ndGgpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbSBmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLW92ZXJmbG93XCI+XG4gICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgW3Nob3dJdGVtTGFiZWxdPVwic2hvd0xhYmVsXCJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX2V4dHJhVGFic1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRFeHRyYUl0ZW0pPVwiX3NlbGVjdEV4dHJhSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNGaXJzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oMClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0xhc3RWaXNpYmxlSXRlbSk9XCJfZm9jdXNJdGVtKF9sYXN0VmlzaWJsZVRhYkluZGV4KVwiXG4gICAgICAgICAgICA+PC9mZHAtaWNvbi10YWItYmFyLXBvcG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuPC91bD5cbiJdfQ==