@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
@@ -677,4 +677,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
677
677
  type: ContentChildren,
678
678
  args: [FDP_COMBOBOX_ITEM_DEF]
679
679
  }] } });
680
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21ib2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2NvbWJvYm94L2NvbW1vbnMvYmFzZS1jb21ib2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsR0FBRyxFQUNILFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsS0FBSyxFQUNMLEdBQUcsRUFDSCxRQUFRLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBd0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FB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QkFBeEIsTUFBTTtnQkFJRyxjQUFjO3NCQUF2QixNQUFNO2dCQUlQLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxhQUFhO2dCQUtQLGdCQUFnQjtzQkFEaEMsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBS2pCLGNBQWM7c0JBRDlCLGVBQWU7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBTFQsXG4gICAgQkFDS1NQQUNFLFxuICAgIENPTlRST0wsXG4gICAgRE9XTl9BUlJPVyxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgTEVGVF9BUlJPVyxcbiAgICBOVU1QQURfRUlHSFQsXG4gICAgTlVNUEFEX0ZJVkUsXG4gICAgTlVNUEFEX0ZPVVIsXG4gICAgTlVNUEFEX05JTkUsXG4gICAgTlVNUEFEX09ORSxcbiAgICBOVU1QQURfU0VWRU4sXG4gICAgTlVNUEFEX1NJWCxcbiAgICBOVU1QQURfVEhSRUUsXG4gICAgTlVNUEFEX1RXTyxcbiAgICBOVU1QQURfWkVSTyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBTSElGVCxcbiAgICBUQUIsXG4gICAgVVBfQVJST1dcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgRm9jdXNFc2NhcGVEaXJlY3Rpb24sIEtleVV0aWwsIFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBQb3BvdmVyRmlsbE1vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7XG4gICAgQXJyYXlDb21ib0JveERhdGFTb3VyY2UsXG4gICAgQ29sbGVjdGlvbkJhc2VJbnB1dCxcbiAgICBDb21ib0JveERhdGFTb3VyY2UsXG4gICAgTWF0Y2hpbmdCeSxcbiAgICBNYXRjaGluZ1N0cmF0ZWd5LFxuICAgIE9ic2VydmFibGVDb21ib0JveERhdGFTb3VyY2UsXG4gICAgT3B0aW9uSXRlbSxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgY29lcmNlQXJyYXlTYWZlLFxuICAgIGlzRGF0YVNvdXJjZSxcbiAgICBpc0Z1bmN0aW9uLFxuICAgIGlzSnNPYmplY3QsXG4gICAgaXNPcHRpb25JdGVtLFxuICAgIGlzU3RyaW5nXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MLCBTaW5nbGVEcm9wZG93blZhbHVlQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUV2ZW50IH0gZnJvbSAnLi4vLi4vYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21ib2JveENvbmZpZyB9IGZyb20gJy4uL2NvbWJvYm94LmNvbmZpZyc7XG5pbXBvcnQgeyBGRFBfQ09NQk9CT1hfSVRFTV9ERUYsIEZkcENvbWJvYm94SXRlbURlZiB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY29tYm9ib3gtaXRlbS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgdHlwZSBUZXh0QWxpZ25tZW50ID0gJ2xlZnQnIHwgJ3JpZ2h0JztcbmV4cG9ydCB0eXBlIEZkcENvbWJvQm94RGF0YVNvdXJjZTxUPiA9IENvbWJvQm94RGF0YVNvdXJjZTxUPiB8IE9ic2VydmFibGU8VFtdPiB8IFRbXTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbWJvYm94XG4gICAgZXh0ZW5kcyBDb2xsZWN0aW9uQmFzZUlucHV0XG4gICAgaW1wbGVtZW50cyBTaW5nbGVEcm9wZG93blZhbHVlQ29udHJvbCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvIGVtaXQgY2hhbmdlIGV2ZW50ICovXG4gICAgYWJzdHJhY3QgZW1pdENoYW5nZUV2ZW50PEs+KHZhbHVlOiBLKTogdm9pZDtcblxuICAgIC8qKiBAaGlkZGVuIERlZmluZSBpcyB0aGlzIGl0ZW0gc2VsZWN0ZWQgKi9cbiAgICBhYnN0cmFjdCBpc1NlbGVjdGVkT3B0aW9uSXRlbShzZWxlY3RlZEl0ZW06IE9wdGlvbkl0ZW0pOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gRW1pdCBzZWxlY3QgT3B0aW9uSXRlbSAqL1xuICAgIGFic3RyYWN0IHNlbGVjdE9wdGlvbkl0ZW0oaXRlbTogT3B0aW9uSXRlbSk6IHZvaWQ7XG5cbiAgICAvKiogQGhpZGRlbiBEZWZpbmUgdmFsdWUgYXMgc2VsZWN0ZWQgKi9cbiAgICBhYnN0cmFjdCBzZXRBc1NlbGVjdGVkKGl0ZW06IE9wdGlvbkl0ZW1bXSk6IHZvaWQ7XG4gICAgLyoqIFByb3ZpZGVzIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgb3B0aW9uUGFuZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heEhlaWdodCA9ICcyNTBweCc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgYXV0b2NvbXBsZXRlIHNob3VsZCBiZSBlbmFibGVkOyBFbmFibGVkIGJ5IGRlZmF1bHQgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9Db21wbGV0ZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUb2RvOiBOYW1lIG9mIHRoZSBlbnRpdHkgZm9yIHdoaWNoIERhdGFQcm92aWRlciB3aWxsIGJlIGxvYWRlZC4gWW91IGNhbiBlaXRoZXIgcGFzcyBsaXN0IG9mXG4gICAgICogaXRlbXMgb3IgdXNlIHRoaXMgZW50aXR5Q2xhc3MgYW5kIGludGVybmFsbHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gbG9va3VwIHRvIHNvbWUgcmVnaXN0cnlcbiAgICAgKiBhbmQgcmV0cmlldmUgdGhlIGJlc3QgbWF0Y2hpbmcgRGF0YVByb3ZpZGVyIHRoYXQgaXMgc2V0IG9uIGFwcGxpY2F0aW9uIGxldmVsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBlbnRpdHlDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbWJvYm94IHNob3VsZCBiZSBidWlsdCBvbiBtb2JpbGUgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlID0gZmFsc2U7XG5cbiAgICAvKiogTXVsdGkgSW5wdXQgTW9iaWxlIENvbmZpZ3VyYXRpb24sIGl0J3MgYXBwbGllZCBvbmx5LCB3aGVuIG1vYmlsZSBpcyBlbmFibGVkICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogVGVsbHMgdGhlIGNvbWJvIGlmIHdlIG5lZWQgdG8gZ3JvdXAgaXRlbXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGdyb3VwID0gZmFsc2U7XG5cbiAgICAvKiogQSBmaWVsZCBuYW1lIHRvIHVzZSB0byBncm91cCBkYXRhIGJ5IChzdXBwb3J0IGRvdHRlZCBub3RhdGlvbikgKi9cbiAgICBASW5wdXQoKVxuICAgIGdyb3VwS2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzaG93IGRhdGEgaW4gc2Vjb25kYXJ5IGNvbHVtbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2Vjb25kYXJ5S2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqIFNob3cgdGhlIHNlY29uZCBjb2x1bW4gKEFwcGxpY2FibGUgZm9yIHR3byBjb2x1bW5zIGxheW91dCkgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dTZWNvbmRhcnlUZXh0ID0gZmFsc2U7XG5cbiAgICAvKiogSG9yaXpvbnRhbGx5IGFsaWduIHRleHQgaW5zaWRlIHRoZSBzZWNvbmQgY29sdW1uIChBcHBsaWNhYmxlIGZvciB0d28gY29sdW1ucyBsYXlvdXQpICovXG4gICAgQElucHV0KClcbiAgICBzZWNvbmRhcnlUZXh0QWxpZ25tZW50OiBUZXh0QWxpZ25tZW50O1xuXG4gICAgLyoqIFR1cm5zIG9uL29mZiBBZGp1c3RhYmxlIFdpZHRoIGZlYXR1cmUgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9SZXNpemUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgU2VsZWN0IGJvZHkgd2lkdGgsIHdoYXRldmVyIGlzIGNob3NlbiwgdGhlIGJvZHkgaGFzIGEgNjAwcHggbGltaXQuXG4gICAgICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC4gLSBEZWZhdWx0XG4gICAgICogYGVxdWFsYCB3aWxsIGFwcGx5IGEgd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuXG4gICAgICogJ2ZpdC1jb250ZW50JyB3aWxsIGFwcGx5IHdpZHRoIG5lZWRlZCB0byBwcm9wZXJseSBkaXNwbGF5IGl0ZW1zIGluc2lkZSwgaW5kZXBlbmRlbnQgb2YgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogUG9wb3ZlckZpbGxNb2RlID0gJ2F0LWxlYXN0JztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0cmlnZ2VyIGV2ZW50cyB0aGF0IHdpbGwgb3Blbi9jbG9zZSB0aGUgb3B0aW9ucyBwb3BvdmVyLlxuICAgICAqIEFjY2VwdHMgYW55IFtIVE1MIERPTSBFdmVudHNdKGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvZG9tX29ial9ldmVudC5hc3ApLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJpZ2dlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29tYm9ib3ggc2hvdWxkIGNsb3NlLCB3aGVuIGEgY2xpY2sgaXMgcGVyZm9ybWVkIG91dHNpZGUgaXRzIGJvdW5kYXJpZXMuIFRydWUgYnkgZGVmYXVsdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gb3B0aW9ucyBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYnlsaW5lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnlsaW5lID0gZmFsc2U7XG5cbiAgICAvKiogRGF0YXNvdXJjZSBmb3Igc3VnZ2VzdGlvbiBsaXN0ICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZGF0YVNvdXJjZSh2YWx1ZTogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplRGF0YVNvdXJjZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZGF0YVNvdXJjZSgpOiBGZHBDb21ib0JveERhdGFTb3VyY2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICAgIH1cblxuICAgIC8qKiBWYWx1ZSBvZiB0aGUgY29tYm9ib3ggKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBjb2VyY2VBcnJheVNhZmUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldEFzU2VsZWN0ZWQodGhpcy5fY29udmVydFRvT3B0aW9uSXRlbXMoc2VsZWN0ZWRJdGVtcykpO1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0byBwZXJmb3JtIHdoZW4gdXNlciBzaGlmdHMgZm9jdXMgZnJvbSB0aGUgZHJvcGRvd24uXG4gICAgICogLSBgY2xvc2VgIHdpbGwgY2xvc2UgdGhlIGRyb3Bkb3duIHByZXNlcnZpbmcgcHJldmlvdXNseSBzZWxlY3RlZCB2YWx1ZS5cbiAgICAgKiAtIGBjbG9zZUFuZFNlbGVjdGAgd2lsbCBjbG9zZSB0aGUgZHJvcGRvd24gYW5kIHNlbGVjdCBsYXN0IGZvY3VzZWQgZHJvcGRvd24gaXRlbS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYk91dFN0cmF0ZWd5OiAnY2xvc2UnIHwgJ2Nsb3NlQW5kU2VsZWN0JyA9ICdjbG9zZUFuZFNlbGVjdCc7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRhdGEgbG9hZGluZyBpcyBzdGFydGVkLiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIEBPdXRwdXQoKSBvbkRhdGFSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRhdGEgbG9hZGluZyBpcyBmaW5pc2hlZC4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBAT3V0cHV0KCkgb25EYXRhUmVjZWl2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoTGlzdENvbXBvbmVudClcbiAgICBsaXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbVRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRFBfQ09NQk9CT1hfSVRFTV9ERUYpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tSXRlbURlZjogUXVlcnlMaXN0PEZkcENvbWJvYm94SXRlbURlZj47XG5cbiAgICAvKiogQGhpZGRlbiBDdXN0b20gT3B0aW9uIGl0ZW0gVGVtcGxhdGUgKi9cbiAgICBvcHRpb25JdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBDdXN0b20gR3JvdXAgSGVhZGVyIGl0ZW0gVGVtcGxhdGUgKi9cbiAgICBncm91cEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuIEN1c3RvbSBTZWNvbmRhcnkgaXRlbSBUZW1wbGF0ZSAqL1xuICAgIHNlY29uZGFyeUl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuIEN1c3RvbSBTZWxlY3RlZCBvcHRpb24gaXRlbSBUZW1wbGF0ZSAqL1xuICAgIHNlbGVjdGVkSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZWFyY2hJbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHkgPSB0aGlzLmNvbWJvYm94Q29uZmlnLmNvbnRlbnREZW5zaXR5O1xuXG4gICAgLyoqIElucHV0IHRleHQgb2YgdGhlIGlucHV0LiAqL1xuICAgIHNldCBpbnB1dFRleHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pbnB1dFRleHRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0VGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRUZXh0VmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbWJvYm94IGlzIG9wZW5lZC4gKi9cbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGEgY29tYm9ib3ggY2FuIGJlIGNsb3NlZCAqL1xuICAgIGdldCBjYW5DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEodGhpcy5tb2JpbGUgJiYgdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIExpc3Qgb2YgbWF0Y2hlZCBzdWdnZXN0aW9ucyAqL1xuICAgIF9zdWdnZXN0aW9uczogT3B0aW9uSXRlbVtdO1xuXG4gICAgLyoqIEBoaWRkZW4gTWF4IHdpZHRoIG9mIGxpc3QgY29udGFpbmVyICovXG4gICAgbWF4V2lkdGg/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiBNaW4gd2lkdGggb2YgbGlzdCBjb250YWluZXIgKi9cbiAgICBtaW5XaWR0aD86IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuIE5lZWQgZm9yIG9wZW5pbmcgbW9iaWxlIHZlcnNpb24gKi9cbiAgICBvcGVuQ2hhbmdlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGlzR3JvdXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXBLZXkpO1xuICAgIH1cblxuICAgIC8qKiBJcyBzdWdnZXN0aW9ucyBsaXN0IGVtcHR5ICovXG4gICAgZ2V0IGlzU3VnZ2VzdGlvbnNMaXN0RW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWdnZXN0aW9ucy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZmxhdFN1Z2dlc3Rpb25zOiBPcHRpb25JdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kYXRhU291cmNlOiBGZHBDb21ib0JveERhdGFTb3VyY2U8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5wdXRUZXh0VmFsdWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWF0Y2hpbmdTdHJhdGVneTogTWF0Y2hpbmdTdHJhdGVneSA9IHRoaXMuY29tYm9ib3hDb25maWcubWF0Y2hpbmdTdHJhdGVneTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZHNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvKiogS2V5cywgdGhhdCB3b24ndCB0cmlnZ2VyIHRoZSBwb3BvdmVyJ3Mgb3BlbiBzdGF0ZSwgd2hlbiBkaXNwYXRjaGVkIG9uIHNlYXJjaCBpbnB1dCAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25vbk9wZW5pbmdLZXlzOiBudW1iZXJbXSA9IFtcbiAgICAgICAgRVNDQVBFLFxuICAgICAgICBFTlRFUixcbiAgICAgICAgQ09OVFJPTCxcbiAgICAgICAgVEFCLFxuICAgICAgICBTSElGVCxcbiAgICAgICAgVVBfQVJST1csXG4gICAgICAgIFJJR0hUX0FSUk9XLFxuICAgICAgICBET1dOX0FSUk9XLFxuICAgICAgICBMRUZUX0FSUk9XLFxuICAgICAgICBBTFRcbiAgICBdO1xuXG4gICAgLyoqIEtleXMsIHRoYXQgYXJlIG51bWJlcnMgZnJvbSBudW1iZXIga2V5cGFkICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbnVtYmVyUGFkTnVtYmVyS2V5czogbnVtYmVyW10gPSBbXG4gICAgICAgIE5VTVBBRF9aRVJPLFxuICAgICAgICBOVU1QQURfT05FLFxuICAgICAgICBOVU1QQURfVFdPLFxuICAgICAgICBOVU1QQURfVEhSRUUsXG4gICAgICAgIE5VTVBBRF9GT1VSLFxuICAgICAgICBOVU1QQURfRklWRSxcbiAgICAgICAgTlVNUEFEX1NJWCxcbiAgICAgICAgTlVNUEFEX1NFVkVOLFxuICAgICAgICBOVU1QQURfU0VWRU4sXG4gICAgICAgIE5VTVBBRF9FSUdIVCxcbiAgICAgICAgTlVNUEFEX05JTkVcbiAgICBdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcmVhZG9ubHkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSByZWFkb25seSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgIHByb3RlY3RlZCBjb21ib2JveENvbmZpZzogQ29tYm9ib3hDb25maWcsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRXaW5kb3dSZXNpemUoKTtcbiAgICAgICAgdGhpcy5fYXNzaWduQ3VzdG9tVGVtcGxhdGVzKCk7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UpKSB7XG4gICAgICAgICAgICAodGhpcy5kYXRhU291cmNlIGFzIENvbWJvQm94RGF0YVNvdXJjZTxhbnk+KS5jbG9zZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIElzIGVtcHR5IHNlYXJjaCBmaWVsZCAqL1xuICAgIGdldCBpc0VtcHR5VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0VGV4dC50cmltKCkubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGNvZXJjZUFycmF5U2FmZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0QXNTZWxlY3RlZCh0aGlzLl9jb252ZXJ0VG9PcHRpb25JdGVtcyhzZWxlY3RlZEl0ZW1zKSk7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2VhcmNoVGVybUNoYW5nZWQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VGV4dCA9PT0gdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdGV4dDtcblxuICAgICAgICBjb25zdCBxdWVyeU1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgcXVlcnlNYXAuc2V0KCdxdWVyeScsIHRleHQpO1xuICAgICAgICBxdWVyeU1hcC5zZXQoJ2xpbWl0JywgMTIpO1xuXG4gICAgICAgIHRoaXMuZHMubWF0Y2gocXVlcnlNYXApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXNPcGVuQ2hhbmdlSGFuZGxlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4gPT09IGlzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc09wZW4gPSBpc09wZW47XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMub3BlbkNoYW5nZS5uZXh0KGlzT3Blbik7XG4gICAgICAgIHRoaXMuX29uT3BlbkNoYW5nZSh0aGlzLmlzT3Blbik7XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25PcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1NZXNzYWdlLl9wb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtTWVzc2FnZS5fcG9wb3Zlci5zZXRJZ25vcmVUcmlnZ2Vycyhpc09wZW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlT3B0aW9uSXRlbSh2YWx1ZTogT3B0aW9uSXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uSXRlbSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVQcmVzc0VudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB2YWx1ZTogT3B0aW9uSXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFTlRFUikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFuZGxlT3B0aW9uSXRlbSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIENsaWNrIG9uIEJ1dHRvblxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBvblByaW1hcnlCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgaXQncyBtb2JpbGUgbW9kZSBpZ25vcmUgdGhpcyBjbGlja1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKCF0aGlzLmlzT3Blbik7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGNsaWNrIG9uIGlucHV0IGdyb3VwIGluIG1vYmlsZSBtb2RlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG9wZW5Jbk1vYmlsZU1vZGUoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIGl0J3MgYWxyZWFkeSBvcGVuZWQganVzdCBpZ25vcmUgdGhpcyBjbGlja1xuICAgICAgICAvLyBpZiBpdCdzIG5vdCBtb2JpbGUgbW9kZSBqdXN0IGlnbm9yZSB0aGlzIGNsaWNrXG4gICAgICAgIGlmICh0aGlzLmlzT3BlbiB8fCAhdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG90aGVyd2lzZSBzaG93IG9wdGlvbnNcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2VIYW5kbGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIEtleWRvd24gb24gSW5wdXRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgb25JbnB1dEtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFRBQikpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2VIYW5kbGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLmxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hvb3NlT3RoZXJJdGVtKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Nob29zZU90aGVySXRlbSgtMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZUhhbmRsZShmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50LmN0cmxLZXkgJiYgIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9ub25PcGVuaW5nS2V5cykpIHtcbiAgICAgICAgICAgIGlmICghS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIHRoaXMuX251bWJlclBhZE51bWJlcktleXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2VIYW5kbGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhY2NlcHRlZEtleXMgPVxuICAgICAgICAgICAgICAgICFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgQkFDS1NQQUNFKSAmJlxuICAgICAgICAgICAgICAgICFLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ2FscGhhYmV0aWNhbCcpICYmXG4gICAgICAgICAgICAgICAgIUtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnbnVtZXJpYycpICYmXG4gICAgICAgICAgICAgICAgIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9udW1iZXJQYWROdW1iZXJLZXlzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eVZhbHVlICYmIGFjY2VwdGVkS2V5cykge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudD8uc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgcGFzc2VkIHRvIGxpc3QgY29tcG9uZW50ICovXG4gICAgaGFuZGxlTGlzdEZvY3VzRXNjYXBlKGRpcmVjdGlvbjogRm9jdXNFc2NhcGVEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Db21wbGV0ZVRlcm0oZXZlbnQ6IEF1dG9Db21wbGV0ZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5mb3JjZUNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdGlvbkJ5SW5wdXRUZXh0KGV2ZW50LnRlcm0pO1xuICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2VIYW5kbGUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0b2dnbGVTZWxlY3Rpb25CeUlucHV0VGV4dCh0ZXh0ID0gdGhpcy5pbnB1dFRleHQpOiB2b2lkIHtcbiAgICAgICAgbGV0IG9wdGlvbkl0ZW0gPSB0aGlzLl9nZXRTZWxlY3RJdGVtQnlJbnB1dFZhbHVlKHRleHQpO1xuICAgICAgICBpZiAoIW9wdGlvbkl0ZW0pIHtcbiAgICAgICAgICAgIG9wdGlvbkl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRleHQsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbkl0ZW0ob3B0aW9uSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRhYk91dFN0cmF0ZWd5ID09PSAnY2xvc2VBbmRTZWxlY3QnKSB7XG4gICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMubGlzdENvbXBvbmVudC5nZXRBY3RpdmVJdGVtKCk7XG4gICAgICAgICAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU9wdGlvbkl0ZW0oZm9jdXNlZEl0ZW0udmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMudmFsdWUgPyB0aGlzLmlucHV0VGV4dCA6ICcnO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2dldFNlbGVjdEl0ZW1CeUlucHV0VmFsdWUoZGlzcGxheVZhbHVlOiBzdHJpbmcpOiBPcHRpb25JdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZsYXRTdWdnZXN0aW9ucy5maW5kKCh2YWx1ZSkgPT4gdmFsdWUubGFiZWwgPT09IGRpc3BsYXlWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGRzKCk6IENvbWJvQm94RGF0YVNvdXJjZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZSBhcyBDb21ib0JveERhdGFTb3VyY2U8YW55PjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNYXAgZ3JvdXBlZCB2YWx1ZXMgdG8gYXJyYXkuICovXG4gICAgcHJvdGVjdGVkIF9mbGF0R3JvdXBzKGl0ZW1zOiBPcHRpb25JdGVtW10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICByZXR1cm4gaXRlbXMucmVkdWNlKChyZXN1bHQ6IE9wdGlvbkl0ZW1bXSwgaXRlbTogT3B0aW9uSXRlbSkgPT4gcmVzdWx0LmNvbmNhdChpdGVtLmNoaWxkcmVuID8/IFtdKSwgW10pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlzcGxheUZuID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4gdGhpcy5kaXNwbGF5VmFsdWUodmFsdWUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWNvbmRhcnlGbiA9ICh2YWx1ZTogYW55KTogc3RyaW5nID0+IHtcbiAgICAgICAgaWYgKGlzT3B0aW9uSXRlbSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zZWNvbmRhcnlUZXh0ID8/ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSnNPYmplY3QodmFsdWUpICYmIHRoaXMuc2Vjb25kYXJ5S2V5KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMub2JqZWN0R2V0KHZhbHVlLCB0aGlzLnNlY29uZGFyeUtleSk7XG5cbiAgICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1cnJlbnRJdGVtKSA/IGN1cnJlbnRJdGVtKCkgOiBjdXJyZW50SXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IHBpY2tzIG90aGVyIHZhbHVlIG1vdmVkIGZyb20gY3VycmVudCBvbmUgYnkgb2Zmc2V0LCBjYWxsZWQgb25seSB3aGVuIGNvbWJvYm94IGlzIGNsb3NlZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2Nob29zZU90aGVySXRlbShvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBhY3RpdmVWYWx1ZSA9IHRoaXMuX2dldFNlbGVjdEl0ZW1CeVZhbHVlKHRoaXMuaW5wdXRUZXh0KTtcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX3N1Z2dlc3Rpb25zLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSBhY3RpdmVWYWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3N1Z2dlc3Rpb25zW2luZGV4ICsgb2Zmc2V0XSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPcHRpb25JdGVtKHRoaXMuX3N1Z2dlc3Rpb25zW2luZGV4ICsgb2Zmc2V0XSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFNlbGVjdEl0ZW1CeVZhbHVlKGRpc3BsYXlWYWx1ZTogc3RyaW5nKTogT3B0aW9uSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWdnZXN0aW9ucy5maW5kKCh2YWx1ZSkgPT4gdmFsdWUubGFiZWwgPT09IGRpc3BsYXlWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9pbml0aWFsaXplRGF0YVNvdXJjZShkczogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnMgPSBbXTtcblxuICAgICAgICBpZiAoaXNEYXRhU291cmNlKHRoaXMuZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICh0aGlzLmRhdGFTb3VyY2UgYXMgQ29tYm9Cb3hEYXRhU291cmNlPGFueT4pLmNsb3NlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9kc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0aWFsaXppbmcgZGF0YSBzb3VyY2UgaW4gdGhlIHNlcGVyYXRlIG1pY3JvdGFzayB0byBsZXQgYWxsIGNvbmZpZyBvcHRpb25zIHRvIGJlIHNldCBiZWZvcmUgaXRcbiAgICAgICAgLy8gZm9yIGV4YW1wbGUsIFwiaXNHcm91cFwiIGlucHV0IGlzIG5lZWRlZCBmb3IgaW5pdGlhbGl6YXRpb24gbG9naWMgYW5kIGl0IG1pZ2h0IG5vdCBiZSBzZXQgYXQgdGhpcyBwb2ludFxuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgLy8gQ29udmVydCB3aGF0ZXZlciBjb21lcyBpbiBhcyBEYXRhU291cmNlIHNvIHdlIGNhbiB3b3JrIHdpdGggaXQgaWRlbnRpY2FsbHlcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IHRoaXMuX29wZW5EYXRhU3RyZWFtKGRzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29wZW5EYXRhU3RyZWFtKGRzOiBGZHBDb21ib0JveERhdGFTb3VyY2U8YW55Pik6IENvbWJvQm94RGF0YVNvdXJjZTxhbnk+IHtcbiAgICAgICAgY29uc3QgaW5pdERhdGFTb3VyY2UgPSB0aGlzLl90b0RhdGFTdHJlYW0oZHMpO1xuXG4gICAgICAgIGlmIChpbml0RGF0YVNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtkYXRhU291cmNlXSBzb3VyY2UgZGlkIG5vdCBtYXRjaCBhbiBhcnJheSwgT2JzZXJ2YWJsZSwgb3IgRGF0YVNvdXJjZWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhpcyBpcyBzaW5nbGUgcG9pbnQgb2YgZGF0YSBlbnRyeSB0byB0aGUgY29tcG9uZW50LiBXZSBkb250IHdhbnQgdG8gc2V0IGRhdGEgb24gZGlmZmVyZW50XG4gICAgICAgICAqIHBsYWNlcy4gSWYgYW55IG5ldyBkYXRhIGNvbWVzIGluIGVpdGhlciB5b3UgZG8gYSBzZWFyY2ggYW5kIHlvdSB3YW50IHRvIHBhc3MgaW5pdGlhbCBkYXRhXG4gICAgICAgICAqIGl0cyBoZXJlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZHNTdWIgPSBpbml0RGF0YVNvdXJjZVxuICAgICAgICAgICAgLm9wZW4oKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnMgPSB0aGlzLl9jb252ZXJ0VG9PcHRpb25JdGVtcyhkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mbGF0U3VnZ2VzdGlvbnMgPSB0aGlzLmlzR3JvdXAgPyB0aGlzLl9mbGF0R3JvdXBzKHRoaXMuX3N1Z2dlc3Rpb25zKSA6IHRoaXMuX3N1Z2dlc3Rpb25zO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnaW5pdERhdGFTb3VyY2Uub3BlbigpLicpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi5hZGQoZHNTdWIpO1xuXG4gICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uLmFkZChpbml0RGF0YVNvdXJjZS5vbkRhdGFSZXF1ZXN0ZWQoKS5zdWJzY3JpYmUodGhpcy5vbkRhdGFSZXF1ZXN0ZWQpKTtcbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24uYWRkKGluaXREYXRhU291cmNlLm9uRGF0YVJlY2VpdmVkKCkuc3Vic2NyaWJlKHRoaXMub25EYXRhUmVjZWl2ZWQpKTtcblxuICAgICAgICBpbml0RGF0YVNvdXJjZS5kYXRhUHJvdmlkZXIuc2V0TG9va3VwS2V5KHRoaXMubG9va3VwS2V5KTtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSA9IHtcbiAgICAgICAgICAgIGZpcnN0Qnk6IHRoaXMuX2Rpc3BsYXlGblxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgbWF0Y2hpbmdCeS5zZWNvbmRhcnlCeSA9IHRoaXMuX3NlY29uZGFyeUZuO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5pdERhdGFTb3VyY2UuZGF0YVByb3ZpZGVyLnNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeSk7XG4gICAgICAgIGluaXREYXRhU291cmNlLmRhdGFQcm92aWRlci5zZXRNYXRjaGluZ1N0cmF0ZWd5KHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kpO1xuXG4gICAgICAgIC8vIGluaXRpYWwgZGF0YSBmZXRjaFxuICAgICAgICBjb25zdCBxdWVyeU1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgcXVlcnlNYXAuc2V0KCdxdWVyeScsICcqJyk7XG4gICAgICAgIHF1ZXJ5TWFwLnNldCgnbGltaXQnLCAxMik7XG4gICAgICAgIGluaXREYXRhU291cmNlLm1hdGNoKHF1ZXJ5TWFwKTtcblxuICAgICAgICByZXR1cm4gaW5pdERhdGFTb3VyY2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90b0RhdGFTdHJlYW0oc291cmNlOiBGZHBDb21ib0JveERhdGFTb3VyY2U8YW55Pik6IENvbWJvQm94RGF0YVNvdXJjZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZShzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlIGFzIENvbWJvQm94RGF0YVNvdXJjZTxhbnk+O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICAgICAgLy8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0byB3b3JrIG9uIHRvcCBvZiBhcnJheXNcbiAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlDb21ib0JveERhdGFTb3VyY2U8YW55Pihzb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVDb21ib0JveERhdGFTb3VyY2U8YW55Pihzb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRXaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dldE9wdGlvbnNMaXN0V2lkdGgoKTtcblxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9nZXRPcHRpb25zTGlzdFdpZHRoKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0T3B0aW9uc0xpc3RXaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZ2FwID0gNTtcbiAgICAgICAgY29uc3QgeyBvZmZzZXRXaWR0aCwgY2xpZW50V2lkdGggfSA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGxlZnQgfSA9ICh0aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZkLWlucHV0LWdyb3VwJykgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBzY3JvbGxCYXJXaWR0aCA9IG9mZnNldFdpZHRoIC0gY2xpZW50V2lkdGg7XG5cbiAgICAgICAgdGhpcy5tYXhXaWR0aCA9IHRoaXMuYXV0b1Jlc2l6ZSA/IHdpbmRvdy5pbm5lcldpZHRoIC0gc2Nyb2xsQmFyV2lkdGggLSBsZWZ0IC0gZ2FwIDogdGhpcy5taW5XaWR0aDtcbiAgICAgICAgdGhpcy5taW5XaWR0aCA9IHdpZHRoIC0gMjtcblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBvcmlnaW5hbCBkYXRhIHRvIE9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9PcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbMF07XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGVJc09wdGlvbkl0ZW0gPSBpc09wdGlvbkl0ZW0oaXRlbSk7XG4gICAgICAgIGlmIChlbGVtZW50VHlwZUlzT3B0aW9uSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zIGFzIE9wdGlvbkl0ZW1bXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRUeXBlSXNPYmplY3QgPSBpc0pzT2JqZWN0KGl0ZW0pO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGVJc09iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRPYmplY3RzVG9PcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50VHlwZUlzU3RyaW5nID0gaXNTdHJpbmcoaXRlbSk7XG4gICAgICAgIGlmIChlbGVtZW50VHlwZUlzU3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydFByaW1pdGl2ZVRvT3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgZGF0YSB0byBPcHRpb25JdGVtcyBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udmVydE9iamVjdHNUb09wdGlvbkl0ZW1zKGl0ZW1zOiBhbnlbXSk6IE9wdGlvbkl0ZW1bXSB7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXBLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvR3JvdXBPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93U2Vjb25kYXJ5VGV4dCAmJiB0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRPYmplY3RzVG9TZWNvbmRhcnlPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydE9iamVjdHNUb0RlZmF1bHRPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IG9iamVjdFtdIGRhdGEgdG8gR3JvdXAgT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRPYmplY3RzVG9Hcm91cE9wdGlvbkl0ZW1zPEs+KGl0ZW1zOiBLW10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICBjb25zdCBncm91cDogeyBba2V5OiBzdHJpbmddOiBLW10gfSA9IHt9O1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGtleVZhbHVlID0gdGhpcy5ncm91cEtleSAmJiBpdGVtW3RoaXMuZ3JvdXBLZXldO1xuICAgICAgICAgICAgaWYgKCFrZXlWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWdyb3VwW2tleVZhbHVlXSkge1xuICAgICAgICAgICAgICAgIGdyb3VwW2tleVZhbHVlXSA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBncm91cFtrZXlWYWx1ZV0ucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhncm91cCkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEl0ZW06IE9wdGlvbkl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiB0cnVlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSBncm91cFtrZXldO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zaG93U2Vjb25kYXJ5VGV4dCAmJiB0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0uY2hpbGRyZW4gPSB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXMoY3VycmVudEdyb3VwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0SXRlbS5jaGlsZHJlbiA9IHRoaXMuX2NvbnZlcnRPYmplY3RzVG9EZWZhdWx0T3B0aW9uSXRlbXMoY3VycmVudEdyb3VwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgb2JqZWN0W10gZGF0YSB0byBTZWNvbmRhcnkgT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRPYmplY3RzVG9TZWNvbmRhcnlPcHRpb25JdGVtczxLPihpdGVtczogS1tdKTogT3B0aW9uSXRlbVtdIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbXNbaV07XG4gICAgICAgICAgICBzZWxlY3RJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5kaXNwbGF5VmFsdWUodmFsdWUpLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IHRoaXMub2JqZWN0R2V0KHZhbHVlLCB0aGlzLnNlY29uZGFyeUtleSksXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgUHJpbWl0aXZlIGRhdGEoQm9vbGVhbiwgU3RyaW5nLCBOdW1iZXIpIHRvIE9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0UHJpbWl0aXZlVG9PcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICBjb25zdCBzZWxlY3RJdGVtczogT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIHNlbGVjdEl0ZW1zLnB1c2goeyBsYWJlbDogdmFsdWUsIHZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgb2JqZWN0W10gdG8gT3B0aW9uSXRlbXMgSW50ZXJmYWNlIChEZWZhdWx0KVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0T2JqZWN0c1RvRGVmYXVsdE9wdGlvbkl0ZW1zKGl0ZW1zOiBhbnlbXSk6IE9wdGlvbkl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEl0ZW1zOiBPcHRpb25JdGVtW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgc2VsZWN0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGlzcGxheVZhbHVlKHZhbHVlKSxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VsZWN0SXRlbXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQXNzaWduIGN1c3RvbSB0ZW1wbGF0ZXMgKi9cbiAgICBwcml2YXRlIF9hc3NpZ25DdXN0b21UZW1wbGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2N1c3RvbVRlbXBsYXRlcy5jaGFuZ2VzLCB0aGlzLl9jdXN0b21JdGVtRGVmLmNoYW5nZXNdKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21JdGVtRGVmLmxlbmd0aCA+IDAgPyB0aGlzLl9jdXN0b21JdGVtRGVmLnRvQXJyYXkoKSA6IHRoaXMuX2N1c3RvbVRlbXBsYXRlcy50b0FycmF5KClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgZGF0YS5mb3JFYWNoKCh0ZW1wbGF0ZTogRmRwQ29tYm9ib3hJdGVtRGVmIHwgVGVtcGxhdGVEaXJlY3RpdmUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0ZW1wbGF0ZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdvcHRpb25JdGVtVGVtcGxhdGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uSXRlbVRlbXBsYXRlID0gdGVtcGxhdGUudGVtcGxhdGVSZWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdncm91cEl0ZW1UZW1wbGF0ZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cEl0ZW1UZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kYXJ5SXRlbVRlbXBsYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlY29uZGFyeUl0ZW1UZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VsZWN0ZWRJdGVtVGVtcGxhdGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtVGVtcGxhdGUgPSB0ZW1wbGF0ZS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
680
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21ib2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9jb21ib2JveC9jb21tb25zL2Jhc2UtY29tYm9ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLEtBQUssRUFDTCxHQUFHLEVBQ0gsUUFBUSxFQUNYLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUVILGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFFUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQXdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFP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QU07Z0JBSUcsY0FBYztzQkFBdkIsTUFBTTtnQkFJUCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsYUFBYTtnQkFLUCxnQkFBZ0I7c0JBRGhDLGVBQWU7dUJBQUMsaUJBQWlCO2dCQUtqQixjQUFjO3NCQUQ5QixlQUFlO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQUxULFxuICAgIEJBQ0tTUEFDRSxcbiAgICBDT05UUk9MLFxuICAgIERPV05fQVJST1csXG4gICAgRU5URVIsXG4gICAgRVNDQVBFLFxuICAgIExFRlRfQVJST1csXG4gICAgTlVNUEFEX0VJR0hULFxuICAgIE5VTVBBRF9GSVZFLFxuICAgIE5VTVBBRF9GT1VSLFxuICAgIE5VTVBBRF9OSU5FLFxuICAgIE5VTVBBRF9PTkUsXG4gICAgTlVNUEFEX1NFVkVOLFxuICAgIE5VTVBBRF9TSVgsXG4gICAgTlVNUEFEX1RIUkVFLFxuICAgIE5VTVBBRF9UV08sXG4gICAgTlVNUEFEX1pFUk8sXG4gICAgUklHSFRfQVJST1csXG4gICAgU0hJRlQsXG4gICAgVEFCLFxuICAgIFVQX0FSUk9XXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIEZvY3VzRXNjYXBlRGlyZWN0aW9uLCBLZXlVdGlsLCBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcbmltcG9ydCB7IE1vYmlsZU1vZGVDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuaW1wb3J0IHsgUG9wb3ZlckZpbGxNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIEFycmF5Q29tYm9Cb3hEYXRhU291cmNlLFxuICAgIENvbGxlY3Rpb25CYXNlSW5wdXQsXG4gICAgQ29tYm9Cb3hEYXRhU291cmNlLFxuICAgIE1hdGNoaW5nQnksXG4gICAgTWF0Y2hpbmdTdHJhdGVneSxcbiAgICBPYnNlcnZhYmxlQ29tYm9Cb3hEYXRhU291cmNlLFxuICAgIE9wdGlvbkl0ZW0sXG4gICAgUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgIGNvZXJjZUFycmF5U2FmZSxcbiAgICBpc0RhdGFTb3VyY2UsXG4gICAgaXNGdW5jdGlvbixcbiAgICBpc0pzT2JqZWN0LFxuICAgIGlzT3B0aW9uSXRlbSxcbiAgICBpc1N0cmluZ1xufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgU2luZ2xlRHJvcGRvd25WYWx1ZUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVFdmVudCB9IGZyb20gJy4uLy4uL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb25maWcgfSBmcm9tICcuLi9jb21ib2JveC5jb25maWcnO1xuaW1wb3J0IHsgRkRQX0NPTUJPQk9YX0lURU1fREVGLCBGZHBDb21ib2JveEl0ZW1EZWYgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NvbWJvYm94LWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWdubWVudCA9ICdsZWZ0JyB8ICdyaWdodCc7XG5leHBvcnQgdHlwZSBGZHBDb21ib0JveERhdGFTb3VyY2U8VD4gPSBDb21ib0JveERhdGFTb3VyY2U8VD4gfCBPYnNlcnZhYmxlPFRbXT4gfCBUW107XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21ib2JveFxuICAgIGV4dGVuZHMgQ29sbGVjdGlvbkJhc2VJbnB1dFxuICAgIGltcGxlbWVudHMgU2luZ2xlRHJvcGRvd25WYWx1ZUNvbnRyb2wsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIC8qKiBAaGlkZGVuIE1ldGhvZCB0byBlbWl0IGNoYW5nZSBldmVudCAqL1xuICAgIGFic3RyYWN0IGVtaXRDaGFuZ2VFdmVudDxLPih2YWx1ZTogSyk6IHZvaWQ7XG5cbiAgICAvKiogQGhpZGRlbiBEZWZpbmUgaXMgdGhpcyBpdGVtIHNlbGVjdGVkICovXG4gICAgYWJzdHJhY3QgaXNTZWxlY3RlZE9wdGlvbkl0ZW0oc2VsZWN0ZWRJdGVtOiBPcHRpb25JdGVtKTogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuIEVtaXQgc2VsZWN0IE9wdGlvbkl0ZW0gKi9cbiAgICBhYnN0cmFjdCBzZWxlY3RPcHRpb25JdGVtKGl0ZW06IE9wdGlvbkl0ZW0pOiB2b2lkO1xuXG4gICAgLyoqIEBoaWRkZW4gRGVmaW5lIHZhbHVlIGFzIHNlbGVjdGVkICovXG4gICAgYWJzdHJhY3Qgc2V0QXNTZWxlY3RlZChpdGVtOiBPcHRpb25JdGVtW10pOiB2b2lkO1xuICAgIC8qKiBQcm92aWRlcyBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIG9wdGlvblBhbmVsICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQgPSAnMjUwcHgnO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgYmUgZW5hYmxlZDsgRW5hYmxlZCBieSBkZWZhdWx0ICovXG4gICAgQElucHV0KClcbiAgICBhdXRvQ29tcGxldGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogVG9kbzogTmFtZSBvZiB0aGUgZW50aXR5IGZvciB3aGljaCBEYXRhUHJvdmlkZXIgd2lsbCBiZSBsb2FkZWQuIFlvdSBjYW4gZWl0aGVyIHBhc3MgbGlzdCBvZlxuICAgICAqIGl0ZW1zIG9yIHVzZSB0aGlzIGVudGl0eUNsYXNzIGFuZCBpbnRlcm5hbGx5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIGxvb2t1cCB0byBzb21lIHJlZ2lzdHJ5XG4gICAgICogYW5kIHJldHJpZXZlIHRoZSBiZXN0IG1hdGNoaW5nIERhdGFQcm92aWRlciB0aGF0IGlzIHNldCBvbiBhcHBsaWNhdGlvbiBsZXZlbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW50aXR5Q2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21ib2JveCBzaG91bGQgYmUgYnVpbHQgb24gbW9iaWxlIG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE11bHRpIElucHV0IE1vYmlsZSBDb25maWd1cmF0aW9uLCBpdCdzIGFwcGxpZWQgb25seSwgd2hlbiBtb2JpbGUgaXMgZW5hYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnO1xuXG4gICAgLyoqIFRlbGxzIHRoZSBjb21ibyBpZiB3ZSBuZWVkIHRvIGdyb3VwIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBncm91cCA9IGZhbHNlO1xuXG4gICAgLyoqIEEgZmllbGQgbmFtZSB0byB1c2UgdG8gZ3JvdXAgZGF0YSBieSAoc3VwcG9ydCBkb3R0ZWQgbm90YXRpb24pICovXG4gICAgQElucHV0KClcbiAgICBncm91cEtleT86IHN0cmluZztcblxuICAgIC8qKiBUaGUgZmllbGQgdG8gc2hvdyBkYXRhIGluIHNlY29uZGFyeSBjb2x1bW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlY29uZGFyeUtleT86IHN0cmluZztcblxuICAgIC8qKiBTaG93IHRoZSBzZWNvbmQgY29sdW1uIChBcHBsaWNhYmxlIGZvciB0d28gY29sdW1ucyBsYXlvdXQpICovXG4gICAgQElucHV0KClcbiAgICBzaG93U2Vjb25kYXJ5VGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqIEhvcml6b250YWxseSBhbGlnbiB0ZXh0IGluc2lkZSB0aGUgc2Vjb25kIGNvbHVtbiAoQXBwbGljYWJsZSBmb3IgdHdvIGNvbHVtbnMgbGF5b3V0KSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2Vjb25kYXJ5VGV4dEFsaWdubWVudDogVGV4dEFsaWdubWVudDtcblxuICAgIC8qKiBUdXJucyBvbi9vZmYgQWRqdXN0YWJsZSBXaWR0aCBmZWF0dXJlICovXG4gICAgQElucHV0KClcbiAgICBhdXRvUmVzaXplID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQcmVzZXQgb3B0aW9ucyBmb3IgdGhlIFNlbGVjdCBib2R5IHdpZHRoLCB3aGF0ZXZlciBpcyBjaG9zZW4sIHRoZSBib2R5IGhhcyBhIDYwMHB4IGxpbWl0LlxuICAgICAqIGBhdC1sZWFzdGAgd2lsbCBhcHBseSBhIG1pbmltdW0gd2lkdGggdG8gdGhlIGJvZHkgZXF1aXZhbGVudCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbnRyb2wuIC0gRGVmYXVsdFxuICAgICAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICdmaXQtY29udGVudCcgd2lsbCBhcHBseSB3aWR0aCBuZWVkZWQgdG8gcHJvcGVybHkgZGlzcGxheSBpdGVtcyBpbnNpZGUsIGluZGVwZW5kZW50IG9mIGNvbnRyb2wuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWxsQ29udHJvbE1vZGU6IFBvcG92ZXJGaWxsTW9kZSA9ICdhdC1sZWFzdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdHJpZ2dlciBldmVudHMgdGhhdCB3aWxsIG9wZW4vY2xvc2UgdGhlIG9wdGlvbnMgcG9wb3Zlci5cbiAgICAgKiBBY2NlcHRzIGFueSBbSFRNTCBET00gRXZlbnRzXShodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2pzcmVmL2RvbV9vYmpfZXZlbnQuYXNwKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRyaWdnZXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbWJvYm94IHNob3VsZCBjbG9zZSwgd2hlbiBhIGNsaWNrIGlzIHBlcmZvcm1lZCBvdXRzaWRlIGl0cyBib3VuZGFyaWVzLiBUcnVlIGJ5IGRlZmF1bHQgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIG9wdGlvbnMgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGJ5bGluZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGJ5bGluZSA9IGZhbHNlO1xuXG4gICAgLyoqIERhdGFzb3VyY2UgZm9yIHN1Z2dlc3Rpb24gbGlzdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IEZkcENvbWJvQm94RGF0YVNvdXJjZTxhbnk+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZURhdGFTb3VyY2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRhdGFTb3VyY2UoKTogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICAvKiogVmFsdWUgb2YgdGhlIGNvbWJvYm94ICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gY29lcmNlQXJyYXlTYWZlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRBc1NlbGVjdGVkKHRoaXMuX2NvbnZlcnRUb09wdGlvbkl0ZW1zKHNlbGVjdGVkSXRlbXMpKTtcbiAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb24gdG8gcGVyZm9ybSB3aGVuIHVzZXIgc2hpZnRzIGZvY3VzIGZyb20gdGhlIGRyb3Bkb3duLlxuICAgICAqIC0gYGNsb3NlYCB3aWxsIGNsb3NlIHRoZSBkcm9wZG93biBwcmVzZXJ2aW5nIHByZXZpb3VzbHkgc2VsZWN0ZWQgdmFsdWUuXG4gICAgICogLSBgY2xvc2VBbmRTZWxlY3RgIHdpbGwgY2xvc2UgdGhlIGRyb3Bkb3duIGFuZCBzZWxlY3QgbGFzdCBmb2N1c2VkIGRyb3Bkb3duIGl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0YWJPdXRTdHJhdGVneTogJ2Nsb3NlJyB8ICdjbG9zZUFuZFNlbGVjdCcgPSAnY2xvc2VBbmRTZWxlY3QnO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBkYXRhIGxvYWRpbmcgaXMgc3RhcnRlZC4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBAT3V0cHV0KCkgb25EYXRhUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBkYXRhIGxvYWRpbmcgaXMgZmluaXNoZWQuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgQE91dHB1dCgpIG9uRGF0YVJlY2VpdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKExpc3RDb21wb25lbnQpXG4gICAgbGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRQX0NPTUJPQk9YX0lURU1fREVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUl0ZW1EZWY6IFF1ZXJ5TGlzdDxGZHBDb21ib2JveEl0ZW1EZWY+O1xuXG4gICAgLyoqIEBoaWRkZW4gQ3VzdG9tIE9wdGlvbiBpdGVtIFRlbXBsYXRlICovXG4gICAgb3B0aW9uSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gQ3VzdG9tIEdyb3VwIEhlYWRlciBpdGVtIFRlbXBsYXRlICovXG4gICAgZ3JvdXBJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBDdXN0b20gU2Vjb25kYXJ5IGl0ZW0gVGVtcGxhdGUgKi9cbiAgICBzZWNvbmRhcnlJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBDdXN0b20gU2VsZWN0ZWQgb3B0aW9uIGl0ZW0gVGVtcGxhdGUgKi9cbiAgICBzZWxlY3RlZEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2VhcmNoSW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5ID0gdGhpcy5jb21ib2JveENvbmZpZy5jb250ZW50RGVuc2l0eTtcblxuICAgIC8qKiBJbnB1dCB0ZXh0IG9mIHRoZSBpbnB1dC4gKi9cbiAgICBzZXQgaW5wdXRUZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faW5wdXRUZXh0VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0VGV4dFZhbHVlIHx8ICcnO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21ib2JveCBpcyBvcGVuZWQuICovXG4gICAgaXNPcGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBhIGNvbWJvYm94IGNhbiBiZSBjbG9zZWQgKi9cbiAgICBnZXQgY2FuQ2xvc2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMubW9iaWxlICYmIHRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMaXN0IG9mIG1hdGNoZWQgc3VnZ2VzdGlvbnMgKi9cbiAgICBfc3VnZ2VzdGlvbnM6IE9wdGlvbkl0ZW1bXTtcblxuICAgIC8qKiBAaGlkZGVuIE1heCB3aWR0aCBvZiBsaXN0IGNvbnRhaW5lciAqL1xuICAgIG1heFdpZHRoPzogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gTWluIHdpZHRoIG9mIGxpc3QgY29udGFpbmVyICovXG4gICAgbWluV2lkdGg/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiBOZWVkIGZvciBvcGVuaW5nIG1vYmlsZSB2ZXJzaW9uICovXG4gICAgb3BlbkNoYW5nZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBpc0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwS2V5KTtcbiAgICB9XG5cbiAgICAvKiogSXMgc3VnZ2VzdGlvbnMgbGlzdCBlbXB0eSAqL1xuICAgIGdldCBpc1N1Z2dlc3Rpb25zTGlzdEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZsYXRTdWdnZXN0aW9uczogT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGF0YVNvdXJjZTogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lucHV0VGV4dFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPSB0aGlzLmNvbWJvYm94Q29uZmlnLm1hdGNoaW5nU3RyYXRlZ3k7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLyoqIEtleXMsIHRoYXQgd29uJ3QgdHJpZ2dlciB0aGUgcG9wb3ZlcidzIG9wZW4gc3RhdGUsIHdoZW4gZGlzcGF0Y2hlZCBvbiBzZWFyY2ggaW5wdXQgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ub25PcGVuaW5nS2V5czogbnVtYmVyW10gPSBbXG4gICAgICAgIEVTQ0FQRSxcbiAgICAgICAgRU5URVIsXG4gICAgICAgIENPTlRST0wsXG4gICAgICAgIFRBQixcbiAgICAgICAgU0hJRlQsXG4gICAgICAgIFVQX0FSUk9XLFxuICAgICAgICBSSUdIVF9BUlJPVyxcbiAgICAgICAgRE9XTl9BUlJPVyxcbiAgICAgICAgTEVGVF9BUlJPVyxcbiAgICAgICAgQUxUXG4gICAgXTtcblxuICAgIC8qKiBLZXlzLCB0aGF0IGFyZSBudW1iZXJzIGZyb20gbnVtYmVyIGtleXBhZCAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX251bWJlclBhZE51bWJlcktleXM6IG51bWJlcltdID0gW1xuICAgICAgICBOVU1QQURfWkVSTyxcbiAgICAgICAgTlVNUEFEX09ORSxcbiAgICAgICAgTlVNUEFEX1RXTyxcbiAgICAgICAgTlVNUEFEX1RIUkVFLFxuICAgICAgICBOVU1QQURfRk9VUixcbiAgICAgICAgTlVNUEFEX0ZJVkUsXG4gICAgICAgIE5VTVBBRF9TSVgsXG4gICAgICAgIE5VTVBBRF9TRVZFTixcbiAgICAgICAgTlVNUEFEX1NFVkVOLFxuICAgICAgICBOVU1QQURfRUlHSFQsXG4gICAgICAgIE5VTVBBRF9OSU5FXG4gICAgXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnLFxuICAgICAgICBwcm90ZWN0ZWQgY29tYm9ib3hDb25maWc6IENvbWJvYm94Q29uZmlnLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0V2luZG93UmVzaXplKCk7XG4gICAgICAgIHRoaXMuX2Fzc2lnbkN1c3RvbVRlbXBsYXRlcygpO1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuXG4gICAgICAgIGlmIChpc0RhdGFTb3VyY2UodGhpcy5kYXRhU291cmNlKSkge1xuICAgICAgICAgICAgKHRoaXMuZGF0YVNvdXJjZSBhcyBDb21ib0JveERhdGFTb3VyY2U8YW55PikuY2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBJcyBlbXB0eSBzZWFyY2ggZmllbGQgKi9cbiAgICBnZXQgaXNFbXB0eVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFRleHQudHJpbSgpLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKiogd3JpdGUgdmFsdWUgZm9yIENvbnRyb2xWYWx1ZUFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBjb2VyY2VBcnJheVNhZmUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldEFzU2VsZWN0ZWQodGhpcy5fY29udmVydFRvT3B0aW9uSXRlbXMoc2VsZWN0ZWRJdGVtcykpO1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlYXJjaFRlcm1DaGFuZ2VkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dFRleHQgPT09IHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHRleHQ7XG5cbiAgICAgICAgY29uc3QgcXVlcnlNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHF1ZXJ5TWFwLnNldCgncXVlcnknLCB0ZXh0KTtcbiAgICAgICAgcXVlcnlNYXAuc2V0KCdsaW1pdCcsIDEyKTtcblxuICAgICAgICB0aGlzLmRzLm1hdGNoKHF1ZXJ5TWFwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGlzT3BlbkNoYW5nZUhhbmRsZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuID09PSBpc09wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNPcGVuID0gaXNPcGVuO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm9wZW5DaGFuZ2UubmV4dChpc09wZW4pO1xuICAgICAgICB0aGlzLl9vbk9wZW5DaGFuZ2UodGhpcy5pc09wZW4pO1xuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5mb3JtTWVzc2FnZS5fcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybU1lc3NhZ2UuX3BvcG92ZXIuc2V0SWdub3JlVHJpZ2dlcnMoaXNPcGVuKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZU9wdGlvbkl0ZW0odmFsdWU6IE9wdGlvbkl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbkl0ZW0odmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlUHJlc3NFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCwgdmFsdWU6IE9wdGlvbkl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRU5URVIpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZU9wdGlvbkl0ZW0odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBDbGljayBvbiBCdXR0b25cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgb25QcmltYXJ5QnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIGl0J3MgbW9iaWxlIG1vZGUgaWdub3JlIHRoaXMgY2xpY2tcbiAgICAgICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZUhhbmRsZSghdGhpcy5pc09wZW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBjbGljayBvbiBpbnB1dCBncm91cCBpbiBtb2JpbGUgbW9kZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBvcGVuSW5Nb2JpbGVNb2RlKCk6IHZvaWQge1xuICAgICAgICAvLyBpZiBpdCdzIGFscmVhZHkgb3BlbmVkIGp1c3QgaWdub3JlIHRoaXMgY2xpY2tcbiAgICAgICAgLy8gaWYgaXQncyBub3QgbW9iaWxlIG1vZGUganVzdCBpZ25vcmUgdGhpcyBjbGlja1xuICAgICAgICBpZiAodGhpcy5pc09wZW4gfHwgIXRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBvdGhlcndpc2Ugc2hvdyBvcHRpb25zXG4gICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBLZXlkb3duIG9uIElucHV0XG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG9uSW5wdXRLZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBUQUIpKSB7XG4gICAgICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5saXN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnNldEl0ZW1BY3RpdmUoMCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nob29zZU90aGVySXRlbSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVVBfQVJST1cpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICB0aGlzLl9jaG9vc2VPdGhlckl0ZW0oLTEpO1xuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2VIYW5kbGUoZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKCFldmVudC5jdHJsS2V5ICYmICFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgdGhpcy5fbm9uT3BlbmluZ0tleXMpKSB7XG4gICAgICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9udW1iZXJQYWROdW1iZXJLZXlzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWNjZXB0ZWRLZXlzID1cbiAgICAgICAgICAgICAgICAhS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEJBQ0tTUEFDRSkgJiZcbiAgICAgICAgICAgICAgICAhS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdhbHBoYWJldGljYWwnKSAmJlxuICAgICAgICAgICAgICAgICFLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ251bWVyaWMnKSAmJlxuICAgICAgICAgICAgICAgICFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgdGhpcy5fbnVtYmVyUGFkTnVtYmVyS2V5cyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHlWYWx1ZSAmJiBhY2NlcHRlZEtleXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQ/LnNldEl0ZW1BY3RpdmUoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHBhc3NlZCB0byBsaXN0IGNvbXBvbmVudCAqL1xuICAgIGhhbmRsZUxpc3RGb2N1c0VzY2FwZShkaXJlY3Rpb246IEZvY3VzRXNjYXBlRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQ29tcGxldGVUZXJtKGV2ZW50OiBBdXRvQ29tcGxldGVFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuZm9yY2VDbG9zZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3Rpb25CeUlucHV0VGV4dChldmVudC50ZXJtKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdG9nZ2xlU2VsZWN0aW9uQnlJbnB1dFRleHQodGV4dCA9IHRoaXMuaW5wdXRUZXh0KTogdm9pZCB7XG4gICAgICAgIGxldCBvcHRpb25JdGVtID0gdGhpcy5fZ2V0U2VsZWN0SXRlbUJ5SW5wdXRWYWx1ZSh0ZXh0KTtcbiAgICAgICAgaWYgKCFvcHRpb25JdGVtKSB7XG4gICAgICAgICAgICBvcHRpb25JdGVtID0ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0ZXh0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZXh0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb25JdGVtKG9wdGlvbkl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50YWJPdXRTdHJhdGVneSA9PT0gJ2Nsb3NlQW5kU2VsZWN0Jykge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmxpc3RDb21wb25lbnQuZ2V0QWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgaWYgKGZvY3VzZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVPcHRpb25JdGVtKGZvY3VzZWRJdGVtLnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnZhbHVlID8gdGhpcy5pbnB1dFRleHQgOiAnJztcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZUhhbmRsZShmYWxzZSk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9nZXRTZWxlY3RJdGVtQnlJbnB1dFZhbHVlKGRpc3BsYXlWYWx1ZTogc3RyaW5nKTogT3B0aW9uSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mbGF0U3VnZ2VzdGlvbnMuZmluZCgodmFsdWUpID0+IHZhbHVlLmxhYmVsID09PSBkaXNwbGF5VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldCBkcygpOiBDb21ib0JveERhdGFTb3VyY2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UgYXMgQ29tYm9Cb3hEYXRhU291cmNlPGFueT47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWFwIGdyb3VwZWQgdmFsdWVzIHRvIGFycmF5LiAqL1xuICAgIHByb3RlY3RlZCBfZmxhdEdyb3VwcyhpdGVtczogT3B0aW9uSXRlbVtdKTogT3B0aW9uSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgocmVzdWx0OiBPcHRpb25JdGVtW10sIGl0ZW06IE9wdGlvbkl0ZW0pID0+IHJlc3VsdC5jb25jYXQoaXRlbS5jaGlsZHJlbiA/PyBbXSksIFtdKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rpc3BsYXlGbiA9ICh2YWx1ZTogYW55KTogc3RyaW5nID0+IHRoaXMuZGlzcGxheVZhbHVlKHZhbHVlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2Vjb25kYXJ5Rm4gPSAodmFsdWU6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmIChpc09wdGlvbkl0ZW0odmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuc2Vjb25kYXJ5VGV4dCA/PyAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0pzT2JqZWN0KHZhbHVlKSAmJiB0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLm9iamVjdEdldCh2YWx1ZSwgdGhpcy5zZWNvbmRhcnlLZXkpO1xuXG4gICAgICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihjdXJyZW50SXRlbSkgPyBjdXJyZW50SXRlbSgpIDogY3VycmVudEl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdGhhdCBwaWNrcyBvdGhlciB2YWx1ZSBtb3ZlZCBmcm9tIGN1cnJlbnQgb25lIGJ5IG9mZnNldCwgY2FsbGVkIG9ubHkgd2hlbiBjb21ib2JveCBpcyBjbG9zZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9jaG9vc2VPdGhlckl0ZW0ob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aXZlVmFsdWUgPSB0aGlzLl9nZXRTZWxlY3RJdGVtQnlWYWx1ZSh0aGlzLmlucHV0VGV4dCk7XG4gICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLl9zdWdnZXN0aW9ucy5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gYWN0aXZlVmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9zdWdnZXN0aW9uc1tpbmRleCArIG9mZnNldF0pIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlT3B0aW9uSXRlbSh0aGlzLl9zdWdnZXN0aW9uc1tpbmRleCArIG9mZnNldF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRTZWxlY3RJdGVtQnlWYWx1ZShkaXNwbGF5VmFsdWU6IHN0cmluZyk6IE9wdGlvbkl0ZW0gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnMuZmluZCgodmFsdWUpID0+IHZhbHVlLmxhYmVsID09PSBkaXNwbGF5VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfaW5pdGlhbGl6ZURhdGFTb3VyY2UoZHM6IEZkcENvbWJvQm94RGF0YVNvdXJjZTxhbnk+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gW107XG5cbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UpKSB7XG4gICAgICAgICAgICAodGhpcy5kYXRhU291cmNlIGFzIENvbWJvQm94RGF0YVNvdXJjZTxhbnk+KS5jbG9zZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fZHNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6aW5nIGRhdGEgc291cmNlIGluIHRoZSBzZXBlcmF0ZSBtaWNyb3Rhc2sgdG8gbGV0IGFsbCBjb25maWcgb3B0aW9ucyB0byBiZSBzZXQgYmVmb3JlIGl0XG4gICAgICAgIC8vIGZvciBleGFtcGxlLCBcImlzR3JvdXBcIiBpbnB1dCBpcyBuZWVkZWQgZm9yIGluaXRpYWxpemF0aW9uIGxvZ2ljIGFuZCBpdCBtaWdodCBub3QgYmUgc2V0IGF0IHRoaXMgcG9pbnRcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIC8vIENvbnZlcnQgd2hhdGV2ZXIgY29tZXMgaW4gYXMgRGF0YVNvdXJjZSBzbyB3ZSBjYW4gd29yayB3aXRoIGl0IGlkZW50aWNhbGx5XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB0aGlzLl9vcGVuRGF0YVN0cmVhbShkcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vcGVuRGF0YVN0cmVhbShkczogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT4pOiBDb21ib0JveERhdGFTb3VyY2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGluaXREYXRhU291cmNlID0gdGhpcy5fdG9EYXRhU3RyZWFtKGRzKTtcblxuICAgICAgICBpZiAoaW5pdERhdGFTb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbZGF0YVNvdXJjZV0gc291cmNlIGRpZCBub3QgbWF0Y2ggYW4gYXJyYXksIE9ic2VydmFibGUsIG9yIERhdGFTb3VyY2VgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgaXMgc2luZ2xlIHBvaW50IG9mIGRhdGEgZW50cnkgdG8gdGhlIGNvbXBvbmVudC4gV2UgZG9udCB3YW50IHRvIHNldCBkYXRhIG9uIGRpZmZlcmVudFxuICAgICAgICAgKiBwbGFjZXMuIElmIGFueSBuZXcgZGF0YSBjb21lcyBpbiBlaXRoZXIgeW91IGRvIGEgc2VhcmNoIGFuZCB5b3Ugd2FudCB0byBwYXNzIGluaXRpYWwgZGF0YVxuICAgICAgICAgKiBpdHMgaGVyZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGRzU3ViID0gaW5pdERhdGFTb3VyY2VcbiAgICAgICAgICAgIC5vcGVuKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gdGhpcy5fY29udmVydFRvT3B0aW9uSXRlbXMoZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmxhdFN1Z2dlc3Rpb25zID0gdGhpcy5pc0dyb3VwID8gdGhpcy5fZmxhdEdyb3Vwcyh0aGlzLl9zdWdnZXN0aW9ucykgOiB0aGlzLl9zdWdnZXN0aW9ucztcblxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ2luaXREYXRhU291cmNlLm9wZW4oKS4nKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24uYWRkKGRzU3ViKTtcblxuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi5hZGQoaW5pdERhdGFTb3VyY2Uub25EYXRhUmVxdWVzdGVkKCkuc3Vic2NyaWJlKHRoaXMub25EYXRhUmVxdWVzdGVkKSk7XG4gICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uLmFkZChpbml0RGF0YVNvdXJjZS5vbkRhdGFSZWNlaXZlZCgpLnN1YnNjcmliZSh0aGlzLm9uRGF0YVJlY2VpdmVkKSk7XG5cbiAgICAgICAgaW5pdERhdGFTb3VyY2UuZGF0YVByb3ZpZGVyLnNldExvb2t1cEtleSh0aGlzLmxvb2t1cEtleSk7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nQnk6IE1hdGNoaW5nQnkgPSB7XG4gICAgICAgICAgICBmaXJzdEJ5OiB0aGlzLl9kaXNwbGF5Rm5cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgIG1hdGNoaW5nQnkuc2Vjb25kYXJ5QnkgPSB0aGlzLl9zZWNvbmRhcnlGbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGluaXREYXRhU291cmNlLmRhdGFQcm92aWRlci5zZXRNYXRjaGluZ0J5KG1hdGNoaW5nQnkpO1xuICAgICAgICBpbml0RGF0YVNvdXJjZS5kYXRhUHJvdmlkZXIuc2V0TWF0Y2hpbmdTdHJhdGVneSh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5KTtcblxuICAgICAgICAvLyBpbml0aWFsIGRhdGEgZmV0Y2hcbiAgICAgICAgY29uc3QgcXVlcnlNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHF1ZXJ5TWFwLnNldCgncXVlcnknLCAnKicpO1xuICAgICAgICBxdWVyeU1hcC5zZXQoJ2xpbWl0JywgMTIpO1xuICAgICAgICBpbml0RGF0YVNvdXJjZS5tYXRjaChxdWVyeU1hcCk7XG5cbiAgICAgICAgcmV0dXJuIGluaXREYXRhU291cmNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdG9EYXRhU3RyZWFtKHNvdXJjZTogRmRwQ29tYm9Cb3hEYXRhU291cmNlPGFueT4pOiBDb21ib0JveERhdGFTb3VyY2U8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0RhdGFTb3VyY2Uoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBDb21ib0JveERhdGFTb3VyY2U8YW55PjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gdG8gd29yayBvbiB0b3Agb2YgYXJyYXlzXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5Q29tYm9Cb3hEYXRhU291cmNlPGFueT4oc291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc09ic2VydmFibGUoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlQ29tYm9Cb3hEYXRhU291cmNlPGFueT4oc291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0V2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRPcHRpb25zTGlzdFdpZHRoKCk7XG5cbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZ2V0T3B0aW9uc0xpc3RXaWR0aCgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9wdGlvbnNMaXN0V2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdhcCA9IDU7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0V2lkdGgsIGNsaWVudFdpZHRoIH0gPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBsZWZ0IH0gPSAodGhpcy5fZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmZC1pbnB1dC1ncm91cCcpIGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQmFyV2lkdGggPSBvZmZzZXRXaWR0aCAtIGNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMubWF4V2lkdGggPSB0aGlzLmF1dG9SZXNpemUgPyB3aW5kb3cuaW5uZXJXaWR0aCAtIHNjcm9sbEJhcldpZHRoIC0gbGVmdCAtIGdhcCA6IHRoaXMubWluV2lkdGg7XG4gICAgICAgIHRoaXMubWluV2lkdGggPSB3aWR0aCAtIDI7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgb3JpZ2luYWwgZGF0YSB0byBPcHRpb25JdGVtcyBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udmVydFRvT3B0aW9uSXRlbXMoaXRlbXM6IGFueVtdKTogT3B0aW9uSXRlbVtdIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zWzBdO1xuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRUeXBlSXNPcHRpb25JdGVtID0gaXNPcHRpb25JdGVtKGl0ZW0pO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGVJc09wdGlvbkl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcyBhcyBPcHRpb25JdGVtW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50VHlwZUlzT2JqZWN0ID0gaXNKc09iamVjdChpdGVtKTtcbiAgICAgICAgaWYgKGVsZW1lbnRUeXBlSXNPYmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvT3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGVJc1N0cmluZyA9IGlzU3RyaW5nKGl0ZW0pO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGVJc1N0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRQcmltaXRpdmVUb09wdGlvbkl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGRhdGEgdG8gT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRPYmplY3RzVG9PcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydE9iamVjdHNUb0dyb3VwT3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2hvd1NlY29uZGFyeVRleHQgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRPYmplY3RzVG9EZWZhdWx0T3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBvYmplY3RbXSBkYXRhIHRvIEdyb3VwIE9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0T2JqZWN0c1RvR3JvdXBPcHRpb25JdGVtczxLPihpdGVtczogS1tdKTogT3B0aW9uSXRlbVtdIHtcbiAgICAgICAgY29uc3QgZ3JvdXA6IHsgW2tleTogc3RyaW5nXTogS1tdIH0gPSB7fTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaV07XG4gICAgICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IHRoaXMuZ3JvdXBLZXkgJiYgaXRlbVt0aGlzLmdyb3VwS2V5XTtcbiAgICAgICAgICAgIGlmICgha2V5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFncm91cFtrZXlWYWx1ZV0pIHtcbiAgICAgICAgICAgICAgICBncm91cFtrZXlWYWx1ZV0gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ3JvdXBba2V5VmFsdWVdLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZ3JvdXApLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RJdGVtOiBPcHRpb25JdGVtID0ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBrZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogdHJ1ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gZ3JvdXBba2V5XTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1NlY29uZGFyeVRleHQgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RJdGVtLmNoaWxkcmVuID0gdGhpcy5fY29udmVydE9iamVjdHNUb1NlY29uZGFyeU9wdGlvbkl0ZW1zKGN1cnJlbnRHcm91cCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0uY2hpbGRyZW4gPSB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvRGVmYXVsdE9wdGlvbkl0ZW1zKGN1cnJlbnRHcm91cCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RJdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IG9iamVjdFtdIGRhdGEgdG8gU2Vjb25kYXJ5IE9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXM8Sz4oaXRlbXM6IEtbXSk6IE9wdGlvbkl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEl0ZW1zOiBPcHRpb25JdGVtW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgc2VsZWN0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGlzcGxheVZhbHVlKHZhbHVlKSxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiB0aGlzLm9iamVjdEdldCh2YWx1ZSwgdGhpcy5zZWNvbmRhcnlLZXkpLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZWxlY3RJdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFByaW1pdGl2ZSBkYXRhKEJvb2xlYW4sIFN0cmluZywgTnVtYmVyKSB0byBPcHRpb25JdGVtcyBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udmVydFByaW1pdGl2ZVRvT3B0aW9uSXRlbXMoaXRlbXM6IGFueVtdKTogT3B0aW9uSXRlbVtdIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbXNbaV07XG4gICAgICAgICAgICBzZWxlY3RJdGVtcy5wdXNoKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZWxlY3RJdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IG9iamVjdFtdIHRvIE9wdGlvbkl0ZW1zIEludGVyZmFjZSAoRGVmYXVsdClcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udmVydE9iamVjdHNUb0RlZmF1bHRPcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBPcHRpb25JdGVtW10ge1xuICAgICAgICBjb25zdCBzZWxlY3RJdGVtczogT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIHNlbGVjdEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmRpc3BsYXlWYWx1ZSh2YWx1ZSksXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEFzc2lnbiBjdXN0b20gdGVtcGxhdGVzICovXG4gICAgcHJpdmF0ZSBfYXNzaWduQ3VzdG9tVGVtcGxhdGVzKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9jdXN0b21UZW1wbGF0ZXMuY2hhbmdlcywgdGhpcy5fY3VzdG9tSXRlbURlZi5jaGFuZ2VzXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tSXRlbURlZi5sZW5ndGggPiAwID8gdGhpcy5fY3VzdG9tSXRlbURlZi50b0FycmF5KCkgOiB0aGlzLl9jdXN0b21UZW1wbGF0ZXMudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEuZm9yRWFjaCgodGVtcGxhdGU6IEZkcENvbWJvYm94SXRlbURlZiB8IFRlbXBsYXRlRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGVtcGxhdGUubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnb3B0aW9uSXRlbVRlbXBsYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbkl0ZW1UZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JvdXBJdGVtVGVtcGxhdGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBJdGVtVGVtcGxhdGUgPSB0ZW1wbGF0ZS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlY29uZGFyeUl0ZW1UZW1wbGF0ZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRhcnlJdGVtVGVtcGxhdGUgPSB0ZW1wbGF0ZS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlbGVjdGVkSXRlbVRlbXBsYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbVRlbXBsYXRlID0gdGVtcGxhdGUudGVtcGxhdGVSZWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
145
145
  type: Input,
146
146
  args: ['fdpComboboxSecondaryItemUse']
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9jb21ib2JveC9kaXJlY3RpdmVzL2NvbWJvYm94LWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV0RixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsMkJBQTJCLENBQUMsQ0FBQztBQVN6RyxNQUFNLE9BQWdCLGtCQUFrQjtJQUR4QztRQUlJLGNBQWM7UUFDZCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFdBQWMsQ0FBQSxDQUFDLENBQUM7S0FDeEM7OEdBTHFCLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTOztBQWtCVixNQUFNLE9BQU8scUJBQW1DLFNBQVEsa0JBQW1EO0lBVjNHOztRQWVJLGNBQWM7UUFDZCxTQUFJLEdBQTJCLG9CQUFvQixDQUFDO0tBU3ZEO0lBUEcsY0FBYztJQUNkLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDekIsR0FBNkIsRUFDN0IsR0FBb0M7UUFFcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FkUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwwSEFQbkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixXQUFXLEVBQUUscUJBQXFCO2FBQ3JDO1NBQ0o7OzJGQUVRLHFCQUFxQjtrQkFWakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsdUJBQXVCO3lCQUNyQztxQkFDSjtpQkFDSjs4QkFLRyxRQUFRO3NCQURQLEtBQUs7dUJBQUMsb0JBQW9COztBQXdCL0IsTUFBTSxPQUFPLDZCQUEyQyxTQUFRLGtCQUFtRDtJQVZuSDs7UUFlSSxjQUFjO1FBQ2QsU0FBSSxHQUEyQixzQkFBc0IsQ0FBQztLQVN6RDtJQVBHLGNBQWM7SUFDZCxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLEdBQXFDLEVBQ3JDLEdBQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBZFEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsMElBUDNCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLDZCQUE2QjthQUM3QztTQUNKOzsyRkFFUSw2QkFBNkI7a0JBVnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLCtCQUErQjt5QkFDN0M7cUJBQ0o7aUJBQ0o7OEJBS0csUUFBUTtzQkFEUCxLQUFLO3VCQUFDLDRCQUE0Qjs7QUF3QnZDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxrQkFBb0Q7SUFWcEc7O1FBV0ksY0FBYztRQUNkLFNBQUksR0FBMkIsbUJBQW1CLENBQUM7S0FTdEQ7SUFQRyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUErQixFQUMvQixHQUFxQztRQUVyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQVZRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlFQVB4QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSwwQkFBMEI7YUFDMUM7U0FDSjs7MkZBRVEsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyw0QkFBNEI7eUJBQzFDO3FCQUNKO2lCQUNKOztBQXdCRCxNQUFNLE9BQU8sOEJBQTRDLFNBQVEsa0JBQW9DO0lBVnJHOztRQWdCSSxjQUFjO1FBQ2QsU0FBSSxHQUEyQix1QkFBdUIsQ0FBQztLQVMxRDtJQVBHLGNBQWM7SUFDZCxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLEdBQXFDLEVBQ3JDLEdBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBZlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsNElBUDVCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLDhCQUE4QjthQUM5QztTQUNKOzsyRkFFUSw4QkFBOEI7a0JBVjFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLGdDQUFnQzt5QkFDOUM7cUJBQ0o7aUJBQ0o7OEJBS0csUUFBUTtzQkFEUCxLQUFLO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGRFBfQ09NQk9CT1hfSVRFTV9ERUYgPSBuZXcgSW5qZWN0aW9uVG9rZW48RmRwQ29tYm9ib3hJdGVtRGVmPignRmRwQ29tYm9ib3hJdGVtRGVmaW5pdGlvbicpO1xuXG5leHBvcnQgdHlwZSBGZG9Db21ib2JveEl0ZW1EZWZUeXBlID1cbiAgICB8ICdvcHRpb25JdGVtVGVtcGxhdGUnXG4gICAgfCAnZ3JvdXBJdGVtVGVtcGxhdGUnXG4gICAgfCAnc2Vjb25kYXJ5SXRlbVRlbXBsYXRlJ1xuICAgIHwgJ3NlbGVjdGVkSXRlbVRlbXBsYXRlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmRwQ29tYm9ib3hJdGVtRGVmPFQgPSB1bmtub3duPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhYnN0cmFjdCBuYW1lOiBGZG9Db21ib2JveEl0ZW1EZWZUeXBlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8VD4pO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBDb21ib2JveEl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfQ09NQk9CT1hfSVRFTV9ERUYsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hJdGVtRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94SXRlbURpcmVjdGl2ZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBGZHBDb21ib2JveEl0ZW1EZWY8eyAkaW1wbGljaXQ6IFQ7IGluZGV4OiBudW1iZXIgfT4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2ZkcENvbWJvYm94SXRlbVVzZScpXG4gICAgdXNlTW9kZWw6IFQ7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuYW1lOiBGZG9Db21ib2JveEl0ZW1EZWZUeXBlID0gJ29wdGlvbkl0ZW1UZW1wbGF0ZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgICAgICBkaXI6IENvbWJvYm94SXRlbURpcmVjdGl2ZTxUPixcbiAgICAgICAgY3R4OiB7ICRpbXBsaWNpdDogVDsgaW5kZXg6IG51bWJlciB9XG4gICAgKTogY3R4IGlzIHsgJGltcGxpY2l0OiBUOyBpbmRleDogbnVtYmVyIH0ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcENvbWJvYm94U2VsZWN0ZWRJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX0NPTUJPQk9YX0lURU1fREVGLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94U2VsZWN0ZWRJdGVtRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94U2VsZWN0ZWRJdGVtRGlyZWN0aXZlPFQgPSB1bmtub3duPiBleHRlbmRzIEZkcENvbWJvYm94SXRlbURlZjx7ICRpbXBsaWNpdDogVDsgaW5kZXg6IG51bWJlciB9PiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZmRwQ29tYm9ib3hTZWxlY3RlZEl0ZW1Vc2UnKVxuICAgIHVzZU1vZGVsOiBUO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmFtZTogRmRvQ29tYm9ib3hJdGVtRGVmVHlwZSA9ICdzZWxlY3RlZEl0ZW1UZW1wbGF0ZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgICAgICBkaXI6IENvbWJvYm94U2VsZWN0ZWRJdGVtRGlyZWN0aXZlPFQ+LFxuICAgICAgICBjdHg6IHsgJGltcGxpY2l0OiBUOyBpbmRleDogbnVtYmVyIH1cbiAgICApOiBjdHggaXMgeyAkaW1wbGljaXQ6IFQ7IGluZGV4OiBudW1iZXIgfSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwQ29tYm9ib3hHcm91cF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9DT01CT0JPWF9JVEVNX0RFRixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDb21ib2JveEl0ZW1Hcm91cERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEl0ZW1Hcm91cERpcmVjdGl2ZSBleHRlbmRzIEZkcENvbWJvYm94SXRlbURlZjx7ICRpbXBsaWNpdDogeyBsYWJlbDogc3RyaW5nIH0gfT4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmFtZTogRmRvQ29tYm9ib3hJdGVtRGVmVHlwZSA9ICdncm91cEl0ZW1UZW1wbGF0ZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgICAgICBkaXI6IENvbWJvYm94SXRlbUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICBjdHg6IHsgJGltcGxpY2l0OiB7IGxhYmVsOiBzdHJpbmcgfSB9XG4gICAgKTogY3R4IGlzIHsgJGltcGxpY2l0OiB7IGxhYmVsOiBzdHJpbmcgfSB9IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBDb21ib2JveFNlY29uZGFyeUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfQ09NQk9CT1hfSVRFTV9ERUYsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hTZWNvbmRhcnlJdGVtRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94U2Vjb25kYXJ5SXRlbURpcmVjdGl2ZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBGZHBDb21ib2JveEl0ZW1EZWY8eyAkaW1wbGljaXQ6IFQgfT4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2ZkcENvbWJvYm94U2Vjb25kYXJ5SXRlbVVzZScpXG4gICAgdXNlTW9kZWw6IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5hbWU6IEZkb0NvbWJvYm94SXRlbURlZlR5cGUgPSAnc2Vjb25kYXJ5SXRlbVRlbXBsYXRlJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgICAgIGRpcjogQ29tYm9ib3hTZWxlY3RlZEl0ZW1EaXJlY3RpdmU8VD4sXG4gICAgICAgIGN0eDogeyAkaW1wbGljaXQ6IFQgfVxuICAgICk6IGN0eCBpcyB7ICRpbXBsaWNpdDogVCB9IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vY29tYm9ib3gvZGlyZWN0aXZlcy9jb21ib2JveC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdEYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFCLDJCQUEyQixDQUFDLENBQUM7QUFTekcsTUFBTSxPQUFnQixrQkFBa0I7SUFEeEM7UUFJSSxjQUFjO1FBQ2QsZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxXQUFjLENBQUEsQ0FBQyxDQUFDO0tBQ3hDOzhHQUxxQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUzs7QUFrQlYsTUFBTSxPQUFPLHFCQUFtQyxTQUFRLGtCQUFtRDtJQVYzRzs7UUFlSSxjQUFjO1FBQ2QsU0FBSSxHQUEyQixvQkFBb0IsQ0FBQztLQVN2RDtJQVBHLGNBQWM7SUFDZCxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLEdBQTZCLEVBQzdCLEdBQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OEdBZFEscUJBQXFCO2tHQUFyQixxQkFBcUIsMEhBUG5CO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLHFCQUFxQjthQUNyQztTQUNKOzsyRkFFUSxxQkFBcUI7a0JBVmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHVCQUF1Qjt5QkFDckM7cUJBQ0o7aUJBQ0o7OEJBS0csUUFBUTtzQkFEUCxLQUFLO3VCQUFDLG9CQUFvQjs7QUF3Qi9CLE1BQU0sT0FBTyw2QkFBMkMsU0FBUSxrQkFBbUQ7SUFWbkg7O1FBZUksY0FBYztRQUNkLFNBQUksR0FBMkIsc0JBQXNCLENBQUM7S0FTekQ7SUFQRyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUFxQyxFQUNyQyxHQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQWRRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDBJQVAzQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSw2QkFBNkI7YUFDN0M7U0FDSjs7MkZBRVEsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVywrQkFBK0I7eUJBQzdDO3FCQUNKO2lCQUNKOzhCQUtHLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyw0QkFBNEI7O0FBd0J2QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsa0JBQW9EO0lBVnBHOztRQVdJLGNBQWM7UUFDZCxTQUFJLEdBQTJCLG1CQUFtQixDQUFDO0tBU3REO0lBUEcsY0FBYztJQUNkLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDekIsR0FBK0IsRUFDL0IsR0FBcUM7UUFFckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FWUSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpRUFQeEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixXQUFXLEVBQUUsMEJBQTBCO2FBQzFDO1NBQ0o7OzJGQUVRLDBCQUEwQjtrQkFWdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsNEJBQTRCO3lCQUMxQztxQkFDSjtpQkFDSjs7QUF3QkQsTUFBTSxPQUFPLDhCQUE0QyxTQUFRLGtCQUFvQztJQVZyRzs7UUFnQkksY0FBYztRQUNkLFNBQUksR0FBMkIsdUJBQXVCLENBQUM7S0FTMUQ7SUFQRyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUFxQyxFQUNyQyxHQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQWZRLDhCQUE4QjtrR0FBOUIsOEJBQThCLDRJQVA1QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSw4QkFBOEI7YUFDOUM7U0FDSjs7MkZBRVEsOEJBQThCO2tCQVYxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyxnQ0FBZ0M7eUJBQzlDO3FCQUNKO2lCQUNKOzhCQUtHLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBJbnB1dCwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRQX0NPTUJPQk9YX0lURU1fREVGID0gbmV3IEluamVjdGlvblRva2VuPEZkcENvbWJvYm94SXRlbURlZj4oJ0ZkcENvbWJvYm94SXRlbURlZmluaXRpb24nKTtcblxuZXhwb3J0IHR5cGUgRmRvQ29tYm9ib3hJdGVtRGVmVHlwZSA9XG4gICAgfCAnb3B0aW9uSXRlbVRlbXBsYXRlJ1xuICAgIHwgJ2dyb3VwSXRlbVRlbXBsYXRlJ1xuICAgIHwgJ3NlY29uZGFyeUl0ZW1UZW1wbGF0ZSdcbiAgICB8ICdzZWxlY3RlZEl0ZW1UZW1wbGF0ZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkcENvbWJvYm94SXRlbURlZjxUID0gdW5rbm93bj4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWJzdHJhY3QgbmFtZTogRmRvQ29tYm9ib3hJdGVtRGVmVHlwZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFQ+KTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwQ29tYm9ib3hJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX0NPTUJPQk9YX0lURU1fREVGLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94SXRlbURpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEl0ZW1EaXJlY3RpdmU8VCA9IHVua25vd24+IGV4dGVuZHMgRmRwQ29tYm9ib3hJdGVtRGVmPHsgJGltcGxpY2l0OiBUOyBpbmRleDogbnVtYmVyIH0+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdmZHBDb21ib2JveEl0ZW1Vc2UnKVxuICAgIHVzZU1vZGVsOiBUO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmFtZTogRmRvQ29tYm9ib3hJdGVtRGVmVHlwZSA9ICdvcHRpb25JdGVtVGVtcGxhdGUnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxUPihcbiAgICAgICAgZGlyOiBDb21ib2JveEl0ZW1EaXJlY3RpdmU8VD4sXG4gICAgICAgIGN0eDogeyAkaW1wbGljaXQ6IFQ7IGluZGV4OiBudW1iZXIgfVxuICAgICk6IGN0eCBpcyB7ICRpbXBsaWNpdDogVDsgaW5kZXg6IG51bWJlciB9IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBDb21ib2JveFNlbGVjdGVkSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9DT01CT0JPWF9JVEVNX0RFRixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDb21ib2JveFNlbGVjdGVkSXRlbURpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveFNlbGVjdGVkSXRlbURpcmVjdGl2ZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBGZHBDb21ib2JveEl0ZW1EZWY8eyAkaW1wbGljaXQ6IFQ7IGluZGV4OiBudW1iZXIgfT4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2ZkcENvbWJvYm94U2VsZWN0ZWRJdGVtVXNlJylcbiAgICB1c2VNb2RlbDogVDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5hbWU6IEZkb0NvbWJvYm94SXRlbURlZlR5cGUgPSAnc2VsZWN0ZWRJdGVtVGVtcGxhdGUnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxUPihcbiAgICAgICAgZGlyOiBDb21ib2JveFNlbGVjdGVkSXRlbURpcmVjdGl2ZTxUPixcbiAgICAgICAgY3R4OiB7ICRpbXBsaWNpdDogVDsgaW5kZXg6IG51bWJlciB9XG4gICAgKTogY3R4IGlzIHsgJGltcGxpY2l0OiBUOyBpbmRleDogbnVtYmVyIH0ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcENvbWJvYm94R3JvdXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfQ09NQk9CT1hfSVRFTV9ERUYsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hJdGVtR3JvdXBEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hJdGVtR3JvdXBEaXJlY3RpdmUgZXh0ZW5kcyBGZHBDb21ib2JveEl0ZW1EZWY8eyAkaW1wbGljaXQ6IHsgbGFiZWw6IHN0cmluZyB9IH0+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5hbWU6IEZkb0NvbWJvYm94SXRlbURlZlR5cGUgPSAnZ3JvdXBJdGVtVGVtcGxhdGUnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICAgICAgZGlyOiBDb21ib2JveEl0ZW1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgY3R4OiB7ICRpbXBsaWNpdDogeyBsYWJlbDogc3RyaW5nIH0gfVxuICAgICk6IGN0eCBpcyB7ICRpbXBsaWNpdDogeyBsYWJlbDogc3RyaW5nIH0gfSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwQ29tYm9ib3hTZWNvbmRhcnlJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX0NPTUJPQk9YX0lURU1fREVGLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94U2Vjb25kYXJ5SXRlbURpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveFNlY29uZGFyeUl0ZW1EaXJlY3RpdmU8VCA9IHVua25vd24+IGV4dGVuZHMgRmRwQ29tYm9ib3hJdGVtRGVmPHsgJGltcGxpY2l0OiBUIH0+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdmZHBDb21ib2JveFNlY29uZGFyeUl0ZW1Vc2UnKVxuICAgIHVzZU1vZGVsOiBUO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuYW1lOiBGZG9Db21ib2JveEl0ZW1EZWZUeXBlID0gJ3NlY29uZGFyeUl0ZW1UZW1wbGF0ZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgICAgICBkaXI6IENvbWJvYm94U2VsZWN0ZWRJdGVtRGlyZWN0aXZlPFQ+LFxuICAgICAgICBjdHg6IHsgJGltcGxpY2l0OiBUIH1cbiAgICApOiBjdHggaXMgeyAkaW1wbGljaXQ6IFQgfSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -6,4 +6,4 @@ export * from './combobox.module';
6
6
  export * from './combobox/combobox.component';
7
7
  export * from './commons/base-combobox';
8
8
  export * from './directives/combobox-item.directive';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9jb21ib2JveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC1tb2JpbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gtbW9iaWxlL2NvbWJvYm94L2NvbWJvYm94LW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb25zL2Jhc2UtY29tYm9ib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2NvbWJvYm94LWl0ZW0uZGlyZWN0aXZlJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vY29tYm9ib3gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC1tb2JpbGUvY29tYm9ib3gtbW9iaWxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbWJvYm94LW1vYmlsZS9jb21ib2JveC9jb21ib2JveC1tb2JpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3guY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3guaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9ucy9iYXNlLWNvbWJvYm94JztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb21ib2JveC1pdGVtLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,11 +1,10 @@
1
- import { ControlContainer, NgControl, NgForm, FormsModule } from '@angular/forms';
2
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Host, Inject, Input, Optional, Output, Self, SkipSelf, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { ControlContainer, FormsModule, NgControl, NgForm } from '@angular/forms';
3
3
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
4
4
  import { DateRange } from '@fundamental-ngx/core/calendar';
5
+ import { DatePickerComponent, DatePickerComponent as FdDatePickerComponent } from '@fundamental-ngx/core/date-picker';
5
6
  import { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';
6
- import { DatePickerComponent as FdDatePickerComponent } from '@fundamental-ngx/core/date-picker';
7
- import { PlatformFormFieldControl, BaseInput, PlatformFormField } from '@fundamental-ngx/platform/shared';
8
- import { DatePickerComponent } from '@fundamental-ngx/core/date-picker';
7
+ import { BaseInput, PlatformFormField, PlatformFormFieldControl } from '@fundamental-ngx/platform/shared';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "@angular/forms";
11
10
  import * as i2 from "@fundamental-ngx/core/datetime";
@@ -346,4 +345,4 @@ export function createMissingDateImplementationError(provider) {
346
345
  `modules at your application root: FdDateModule, or provide a ` +
347
346
  `custom implementation.`);
348
347
  }
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBRTlGLE9BQU8sRUFBa0MsU0FBUyxFQUE4QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUV4RTs7Ozs7Ozs7OztHQVVHO0FBY0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLFNB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LEtBQUs7O1FBUU4sNkRBQTZEO1FBQzdELHVCQUF1QjtzQkFGdEIsS0FBSzs7QUEyRFYsY0FBYztBQUNkLE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxRQUFnQjtJQUNqRSxPQUFPLEtBQUssQ0FDUix3Q0FBd0MsUUFBUSx5Q0FBeUM7UUFDckYsK0RBQStEO1FBQy9ELHdCQUF3QixDQUMvQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJUeXBlLCBDYWxlbmRhclllYXJHcmlkLCBEYXRlUmFuZ2UsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IGFzIEZkRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIFNwZWNpYWxEYXlSdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE1vYmlsZU1vZGVDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5cbi8qKlxuICogVGhlIFBsYXRmb3JtIGRhdGUgcGlja2VyIGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIGZkLWRhdGUtcGlja2VyIHVzaW5nIHBsYXRmb3JtIGZvcm0uXG4gKiBJdCBpcyBhYmxlIHRvIHByb3ZpZGUgZm9ybSBmaWVsZCBmdW5jdGlvbmFsaXRpZXMgYXMgd2VsbCBhbG9uZyB3aXRoIGZkLWRhdGUtcGlja2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiA8ZmRwLWZvcm0tZ3JvdXAgI2ZmZyBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XG4gKiAgICAgIDxmZHAtZm9ybS1maWVsZCAjZmZsMSBpZD1cImJpcnRoZGF5XCI+XG4gKiAgICAgICAgICA8ZmRwLWRhdGUtcGlja2VyIG5hbWU9XCJiaXJ0aGRheVwiIHR5cGU9XCJzaW5nbGVcIiBbZm9ybUNvbnRyb2xdPVwiZmZsMS5mb3JtQ29udHJvbFwiPjwvZmRwLWRhdGUtcGlja2VyPlxuICogICAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICogPC9mZHAtZm9ybS1ncm91cD5cbiAqXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgdXNlRXhpc3Rpbmc6IFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGF0ZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudDxEPiBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqXG4gICAgICogZGF0ZS1waWNrZXIgdmFsdWUgc2V0IGFzIGNvbnRyb2xsZXIgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEYXRlUmFuZ2U8RD4gfCBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIGJlbG93IGNvZGUgdGFrZW4gZnJvbSBjb3JlL2RhdGUtcGlja2VyICovXG4gICAgLyoqIFRoZSB0eXBlIG9mIGNhbGVuZGFyLCAnc2luZ2xlJyBmb3Igc2luZ2xlIGRhdGUgc2VsZWN0aW9uIG9yICdyYW5nZScgZm9yIGEgcmFuZ2Ugb2YgZGF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBDYWxlbmRhclR5cGUgPSAnc2luZ2xlJztcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIENhbGVuZGFyRGF5IG1vZGVsICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IEQ7XG5cbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBGZERhdGVzIG1vZGVsIHN0YXJ0IGFuZCBlbmQgaW4gcmFuZ2UgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkUmFuZ2VEYXRlOiBEYXRlUmFuZ2U8RD4gPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcblxuICAgIC8qKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIHRoZSBjYWxlbmRhciBzaG91bGQgc3RhcnQgb24uIDEgcmVwcmVzZW50cyBTdW5kYXksIDIgaXMgTW9uZGF5LCAzIGlzIFR1ZXNkYXksIGFuZCBzbyBvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgZGF5IGNlbGxzIG9uIGhvdmVyLlxuICAgICAqIFdvcmtzIG9ubHkgb24gcmFuZ2UgbW9kZSwgd2hlbiBzdGFydCBkYXRlIGlzIHNlbGVjdGVkIG9uIERheSBWaWV3LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmFuZ2VIb3ZlckVmZmVjdCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIGRhdGUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlVmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlcyBUb2RheS1TZWxlY3Rpb24tQnV0dG9uIGlmIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb2RheUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIExhYmVsIGZvciBUb2RheS1TZWxlY3Rpb24tQnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB0b2RheUJ1dHRvbkxhYmVsID0gJ1RvZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInIGluIGNhbGVuZGFyIGNvbXBvbmVudCovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGRhdGUgcGlja2VyIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgZGF0ZSBjaG9vc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25EYXRlQ2hvb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLmZkRGF0ZVBpY2tlckNvbXBvbmVudD8uX2lzSW52YWxpZERhdGVJbnB1dCB8fCAhdGhpcy5fZGF0ZVBpY2tlclZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9faXRlbS0tbGVnZW5kLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRmREYXRlIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEZkRGF0ZSkgPT4gZmREYXRlLmdldERheSgpID09PSAxYCwgd2hpY2ggd2lsbCBtYXJrIGFsbCBzdW5kYXlzIGFzIHNwZWNpYWwgZGF5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3BlY2lhbERheXNSdWxlczogU3BlY2lhbERheVJ1bGU8RD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHRvIGN1c3RvbWl6ZSB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgeWVhckdyaWQ6IENhbGVuZGFyWWVhckdyaWQgPSB7XG4gICAgICAgIHJvd3M6IDQsXG4gICAgICAgIGNvbHM6IDUsXG4gICAgICAgIHllYXJNYXBwaW5nOiAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzLFxuICAgICAgICB5ZWFyTWFwcGluZzogKG51bTogbnVtYmVyKSA9PiBudW0udG9TdHJpbmcoKVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBvcGVuLiBDYW4gYmUgdXNlZCB0aHJvdWdoIHR3by13YXkgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFNob3VsZCBkYXRlIHBpY2tlciBiZSBpbmxpbmVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRmlyZWQgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVsbGFibGU8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2U8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBjb3JlIGRhdGUtcGlja2VyIGFzIGNoaWxkXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGZERhdGVQaWNrZXJDb21wb25lbnQpXG4gICAgZmREYXRlUGlja2VyQ29tcG9uZW50OiBGZERhdGVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RhdGVQaWNrZXJWYWxpZCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2Ugc3RhcnQgc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEQgfCBEYXRlUmFuZ2U8RD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGVzIGRhdGUgb24gZGF0ZSBjaGFuZ2UuXG4gICAgICogQHBhcmFtIHZhbHVlIEQgfCBEYXRlUmFuZ2U8RD5cbiAgICAgKi9cbiAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEIHwgRGF0ZVJhbmdlPEQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2luZ2xlJyAmJiAhdGhpcy52YWx1ZSAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGVQaWNrZXJWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JhbmdlJyAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMudmFsdWUgYXMgRGF0ZVJhbmdlPEQ+O1xuICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlclZhbGlkID0gISFkYXRlUmFuZ2Uuc3RhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRlUGlja2VyVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZSBwaWNrZXI6IGhhbmRsZURhdGVJbnB1dENoYW5nZScpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkRGF0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlID0gKG9wZW46IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVTZWxlY3RlZERhdGVDaGFuZ2UgPSAoZmREYXRlOiBOdWxsYWJsZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGZkRGF0ZSk7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlU2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UgPSAoZmRSYW5nZURhdGU6IERhdGVSYW5nZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlLmVtaXQoZmRSYW5nZURhdGUpO1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcihwcm92aWRlcjogc3RyaW5nKTogRXJyb3Ige1xuICAgIHJldHVybiBFcnJvcihcbiAgICAgICAgYEZkcERhdGVQaWNrZXI6IE5vIHByb3ZpZGVyIGZvdW5kIGZvciAke3Byb3ZpZGVyfS4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBGZERhdGVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICAgIGBjdXN0b20gaW1wbGVtZW50YXRpb24uYFxuICAgICk7XG59XG4iLCI8ZmQtZGF0ZS1waWNrZXJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgW3Nob3dUb2RheUJ1dHRvbl09XCJzaG93VG9kYXlCdXR0b25cIlxuICAgIFt0b2RheUJ1dHRvbkxhYmVsXT1cInRvZGF5QnV0dG9uTGFiZWxcIlxuICAgIFtzZWxlY3RlZFJhbmdlRGF0ZV09XCJzZWxlY3RlZFJhbmdlRGF0ZVwiXG4gICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cInN0YXJ0aW5nRGF5T2ZXZWVrXCJcbiAgICBbcmFuZ2VIb3ZlckVmZmVjdF09XCJyYW5nZUhvdmVyRWZmZWN0XCJcbiAgICBbdXNlVmFsaWRhdGlvbl09XCJ1c2VWYWxpZGF0aW9uXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xvc2VPbkRhdGVDaG9vc2VdPVwiY2xvc2VPbkRhdGVDaG9vc2VcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbZGlzYWJsZUZ1bmN0aW9uXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25dPVwiZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICBbaW5saW5lXT1cImlubGluZVwiXG4gICAgW3Byb2Nlc3NJbnB1dE9uQmx1cl09XCJwcm9jZXNzSW5wdXRPbkJsdXJcIlxuICAgIFtwcmV2ZW50U2Nyb2xsT25Gb2N1c109XCJwcmV2ZW50U2Nyb2xsT25Gb2N1c1wiXG4gICAgW21vYmlsZV09XCJtb2JpbGVcIlxuICAgIFttb2JpbGVDb25maWddPVwibW9iaWxlQ29uZmlnXCJcbiAgICBbbW9iaWxlTGFuZHNjYXBlXT1cIm1vYmlsZUxhbmRzY2FwZVwiXG4gICAgW21vYmlsZVBvcnRyYWl0XT1cIm1vYmlsZVBvcnRyYWl0XCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLWRhdGUtcGlja2VyPlxuIl19
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFHOUYsT0FBTyxFQUFrQyxTQUFTLEVBQThCLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEgsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBRTFHOzs7Ozs7Ozs7O0dBVUc7QUFjSCxNQUFNLE9BQU8sMkJBQStCLFNBQVEsU0FBUztJQUN6RDs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQXVCO1FBQzdCLEtB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VixjQUFjO0FBQ2QsTUFBTSxVQUFVLG9DQUFvQyxDQUFDLFFBQWdCO0lBQ2pFLE9BQU8sS0FBSyxDQUNSLHdDQUF3QyxRQUFRLHlDQUF5QztRQUNyRiwrREFBK0Q7UUFDL0Qsd0JBQXdCLENBQy9CLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MLCBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyVHlwZSwgQ2FsZW5kYXJZZWFyR3JpZCwgRGF0ZVJhbmdlLCBEYXlzT2ZXZWVrLCBGZENhbGVuZGFyVmlldyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlUGlja2VyQ29tcG9uZW50IGFzIEZkRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBEQVRFX1RJTUVfRk9STUFUUywgRGF0ZVRpbWVGb3JtYXRzLCBEYXRldGltZUFkYXB0ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIFNwZWNpYWxEYXlSdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkLCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbi8qKlxuICogVGhlIFBsYXRmb3JtIGRhdGUgcGlja2VyIGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIGZkLWRhdGUtcGlja2VyIHVzaW5nIHBsYXRmb3JtIGZvcm0uXG4gKiBJdCBpcyBhYmxlIHRvIHByb3ZpZGUgZm9ybSBmaWVsZCBmdW5jdGlvbmFsaXRpZXMgYXMgd2VsbCBhbG9uZyB3aXRoIGZkLWRhdGUtcGlja2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiA8ZmRwLWZvcm0tZ3JvdXAgI2ZmZyBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XG4gKiAgICAgIDxmZHAtZm9ybS1maWVsZCAjZmZsMSBpZD1cImJpcnRoZGF5XCI+XG4gKiAgICAgICAgICA8ZmRwLWRhdGUtcGlja2VyIG5hbWU9XCJiaXJ0aGRheVwiIHR5cGU9XCJzaW5nbGVcIiBbZm9ybUNvbnRyb2xdPVwiZmZsMS5mb3JtQ29udHJvbFwiPjwvZmRwLWRhdGUtcGlja2VyPlxuICogICAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICogPC9mZHAtZm9ybS1ncm91cD5cbiAqXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgdXNlRXhpc3Rpbmc6IFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGF0ZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudDxEPiBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqXG4gICAgICogZGF0ZS1waWNrZXIgdmFsdWUgc2V0IGFzIGNvbnRyb2xsZXIgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEYXRlUmFuZ2U8RD4gfCBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIGJlbG93IGNvZGUgdGFrZW4gZnJvbSBjb3JlL2RhdGUtcGlja2VyICovXG4gICAgLyoqIFRoZSB0eXBlIG9mIGNhbGVuZGFyLCAnc2luZ2xlJyBmb3Igc2luZ2xlIGRhdGUgc2VsZWN0aW9uIG9yICdyYW5nZScgZm9yIGEgcmFuZ2Ugb2YgZGF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBDYWxlbmRhclR5cGUgPSAnc2luZ2xlJztcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIENhbGVuZGFyRGF5IG1vZGVsICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IEQ7XG5cbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBGZERhdGVzIG1vZGVsIHN0YXJ0IGFuZCBlbmQgaW4gcmFuZ2UgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkUmFuZ2VEYXRlOiBEYXRlUmFuZ2U8RD4gPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcblxuICAgIC8qKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIHRoZSBjYWxlbmRhciBzaG91bGQgc3RhcnQgb24uIDEgcmVwcmVzZW50cyBTdW5kYXksIDIgaXMgTW9uZGF5LCAzIGlzIFR1ZXNkYXksIGFuZCBzbyBvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgZGF5IGNlbGxzIG9uIGhvdmVyLlxuICAgICAqIFdvcmtzIG9ubHkgb24gcmFuZ2UgbW9kZSwgd2hlbiBzdGFydCBkYXRlIGlzIHNlbGVjdGVkIG9uIERheSBWaWV3LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmFuZ2VIb3ZlckVmZmVjdCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIGRhdGUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlVmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlcyBUb2RheS1TZWxlY3Rpb24tQnV0dG9uIGlmIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb2RheUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIExhYmVsIGZvciBUb2RheS1TZWxlY3Rpb24tQnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB0b2RheUJ1dHRvbkxhYmVsID0gJ1RvZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInIGluIGNhbGVuZGFyIGNvbXBvbmVudCovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGRhdGUgcGlja2VyIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgZGF0ZSBjaG9vc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25EYXRlQ2hvb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLmZkRGF0ZVBpY2tlckNvbXBvbmVudD8uX2lzSW52YWxpZERhdGVJbnB1dCB8fCAhdGhpcy5fZGF0ZVBpY2tlclZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9faXRlbS0tbGVnZW5kLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRmREYXRlIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEZkRGF0ZSkgPT4gZmREYXRlLmdldERheSgpID09PSAxYCwgd2hpY2ggd2lsbCBtYXJrIGFsbCBzdW5kYXlzIGFzIHNwZWNpYWwgZGF5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3BlY2lhbERheXNSdWxlczogU3BlY2lhbERheVJ1bGU8RD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHRvIGN1c3RvbWl6ZSB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgeWVhckdyaWQ6IENhbGVuZGFyWWVhckdyaWQgPSB7XG4gICAgICAgIHJvd3M6IDQsXG4gICAgICAgIGNvbHM6IDUsXG4gICAgICAgIHllYXJNYXBwaW5nOiAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzLFxuICAgICAgICB5ZWFyTWFwcGluZzogKG51bTogbnVtYmVyKSA9PiBudW0udG9TdHJpbmcoKVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBvcGVuLiBDYW4gYmUgdXNlZCB0aHJvdWdoIHR3by13YXkgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFNob3VsZCBkYXRlIHBpY2tlciBiZSBpbmxpbmVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRmlyZWQgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVsbGFibGU8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2U8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBjb3JlIGRhdGUtcGlja2VyIGFzIGNoaWxkXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGZERhdGVQaWNrZXJDb21wb25lbnQpXG4gICAgZmREYXRlUGlja2VyQ29tcG9uZW50OiBGZERhdGVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RhdGVQaWNrZXJWYWxpZCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2Ugc3RhcnQgc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEQgfCBEYXRlUmFuZ2U8RD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGVzIGRhdGUgb24gZGF0ZSBjaGFuZ2UuXG4gICAgICogQHBhcmFtIHZhbHVlIEQgfCBEYXRlUmFuZ2U8RD5cbiAgICAgKi9cbiAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEIHwgRGF0ZVJhbmdlPEQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2luZ2xlJyAmJiAhdGhpcy52YWx1ZSAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGVQaWNrZXJWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JhbmdlJyAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMudmFsdWUgYXMgRGF0ZVJhbmdlPEQ+O1xuICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlclZhbGlkID0gISFkYXRlUmFuZ2Uuc3RhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRlUGlja2VyVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZSBwaWNrZXI6IGhhbmRsZURhdGVJbnB1dENoYW5nZScpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkRGF0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlID0gKG9wZW46IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVTZWxlY3RlZERhdGVDaGFuZ2UgPSAoZmREYXRlOiBOdWxsYWJsZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGZkRGF0ZSk7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlU2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UgPSAoZmRSYW5nZURhdGU6IERhdGVSYW5nZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlLmVtaXQoZmRSYW5nZURhdGUpO1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcihwcm92aWRlcjogc3RyaW5nKTogRXJyb3Ige1xuICAgIHJldHVybiBFcnJvcihcbiAgICAgICAgYEZkcERhdGVQaWNrZXI6IE5vIHByb3ZpZGVyIGZvdW5kIGZvciAke3Byb3ZpZGVyfS4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBGZERhdGVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICAgIGBjdXN0b20gaW1wbGVtZW50YXRpb24uYFxuICAgICk7XG59XG4iLCI8ZmQtZGF0ZS1waWNrZXJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgW3Nob3dUb2RheUJ1dHRvbl09XCJzaG93VG9kYXlCdXR0b25cIlxuICAgIFt0b2RheUJ1dHRvbkxhYmVsXT1cInRvZGF5QnV0dG9uTGFiZWxcIlxuICAgIFtzZWxlY3RlZFJhbmdlRGF0ZV09XCJzZWxlY3RlZFJhbmdlRGF0ZVwiXG4gICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cInN0YXJ0aW5nRGF5T2ZXZWVrXCJcbiAgICBbcmFuZ2VIb3ZlckVmZmVjdF09XCJyYW5nZUhvdmVyRWZmZWN0XCJcbiAgICBbdXNlVmFsaWRhdGlvbl09XCJ1c2VWYWxpZGF0aW9uXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xvc2VPbkRhdGVDaG9vc2VdPVwiY2xvc2VPbkRhdGVDaG9vc2VcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbZGlzYWJsZUZ1bmN0aW9uXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25dPVwiZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICBbaW5saW5lXT1cImlubGluZVwiXG4gICAgW3Byb2Nlc3NJbnB1dE9uQmx1cl09XCJwcm9jZXNzSW5wdXRPbkJsdXJcIlxuICAgIFtwcmV2ZW50U2Nyb2xsT25Gb2N1c109XCJwcmV2ZW50U2Nyb2xsT25Gb2N1c1wiXG4gICAgW21vYmlsZV09XCJtb2JpbGVcIlxuICAgIFttb2JpbGVDb25maWddPVwibW9iaWxlQ29uZmlnXCJcbiAgICBbbW9iaWxlTGFuZHNjYXBlXT1cIm1vYmlsZUxhbmRzY2FwZVwiXG4gICAgW21vYmlsZVBvcnRyYWl0XT1cIm1vYmlsZVBvcnRyYWl0XCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLWRhdGUtcGlja2VyPlxuIl19
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
13
13
  exports: [PlatformDatePickerComponent]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTXRFLE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLFlBSHZCLDJCQUEyQixhQUMzQiwyQkFBMkI7K0dBRTVCLHdCQUF3QixZQUh2QiwyQkFBMkI7OzJGQUc1Qix3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1BsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1BsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1EYXRlUGlja2VyTW9kdWxlIHt9XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU10RSxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQUh2QiwyQkFBMkIsYUFDM0IsMkJBQTJCOytHQUU1Qix3QkFBd0IsWUFIdkIsMkJBQTJCOzsyRkFHNUIsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1EYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtQbGF0Zm9ybURhdGVQaWNrZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtQbGF0Zm9ybURhdGVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZVBpY2tlck1vZHVsZSB7fVxuIl19