@wavemaker/app-ng-runtime 11.8.0-next.141670 → 11.8.0-next.141671

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 (1448) hide show
  1. package/build-task/bundles/index.umd.js +33 -9
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +4 -2
  3. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
  4. package/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
  5. package/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
  6. package/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
  7. package/build-task/esm2022/containers/repeat-template.build.mjs +4 -2
  8. package/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
  9. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
  10. package/build-task/esm2022/data/form/form.build.mjs +5 -2
  11. package/build-task/esm2022/data/list/list.build.mjs +1 -1
  12. package/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
  14. package/build-task/esm2022/data/table/table.build.mjs +1 -1
  15. package/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
  16. package/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
  17. package/build-task/esm2022/navigation/menu/menu.build.mjs +19 -2
  18. package/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
  19. package/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
  20. package/build-task/esm2022/page/page.build.mjs +3 -2
  21. package/build-task/esm2022/utils/utils.mjs +1 -1
  22. package/build-task/fesm2022/index.mjs +31 -6
  23. package/build-task/fesm2022/index.mjs.map +1 -1
  24. package/components/advanced/carousel/bundles/index.umd.js +26 -16
  25. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -2
  26. package/components/advanced/carousel/carousel.directive.d.ts +2 -2
  27. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +12 -7
  28. package/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
  29. package/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
  30. package/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
  31. package/components/advanced/carousel/fesm2022/index.mjs +25 -14
  32. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/login/bundles/index.umd.js +19 -13
  34. package/components/advanced/login/esm2022/login.component.mjs +17 -10
  35. package/components/advanced/login/esm2022/login.module.mjs +2 -2
  36. package/components/advanced/login/fesm2022/index.mjs +18 -11
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +2 -2
  39. package/components/advanced/marquee/bundles/index.umd.js +11 -6
  40. package/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
  41. package/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
  42. package/components/advanced/marquee/fesm2022/index.mjs +13 -8
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/marquee.directive.d.ts +2 -2
  45. package/components/base/bundles/index.umd.js +357 -270
  46. package/components/base/esm2022/components.module.mjs +2 -2
  47. package/components/base/esm2022/directives/show-in-device.directive.mjs +4 -4
  48. package/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
  49. package/components/base/esm2022/pipes/image.pipe.mjs +2 -2
  50. package/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
  51. package/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
  52. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
  53. package/components/base/esm2022/utils/data-utils.mjs +29 -28
  54. package/components/base/esm2022/utils/form-utils.mjs +48 -42
  55. package/components/base/esm2022/utils/live-utils.mjs +8 -7
  56. package/components/base/esm2022/utils/widget-utils.mjs +28 -27
  57. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
  58. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
  59. package/components/base/esm2022/widgets/common/base/base.component.mjs +42 -16
  60. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
  61. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
  62. package/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
  63. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
  64. package/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
  65. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
  66. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
  67. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -3
  68. package/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
  69. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
  70. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
  71. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
  72. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
  73. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +12 -7
  74. package/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
  75. package/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
  76. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
  77. package/components/base/esm2022/widgets/framework/styler.mjs +1 -1
  78. package/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
  79. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
  80. package/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
  81. package/components/base/fesm2022/index.mjs +362 -272
  82. package/components/base/fesm2022/index.mjs.map +1 -1
  83. package/components/base/pipes/custom-pipes.d.ts +1 -1
  84. package/components/base/utils/widget-utils.d.ts +2 -2
  85. package/components/base/widgets/common/base/base-container.component.d.ts +1 -1
  86. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  87. package/components/base/widgets/common/base/base.component.d.ts +4 -2
  88. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
  89. package/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  90. package/components/base/widgets/common/container/container.directive.d.ts +2 -2
  91. package/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
  92. package/components/base/widgets/common/message/message.component.d.ts +2 -2
  93. package/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
  94. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -2
  95. package/components/basic/default/anchor/anchor.component.d.ts +2 -2
  96. package/components/basic/default/audio/audio.component.d.ts +3 -2
  97. package/components/basic/default/bundles/index.umd.js +163 -119
  98. package/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
  99. package/components/basic/default/esm2022/audio/audio.component.mjs +18 -11
  100. package/components/basic/default/esm2022/basic.module.mjs +2 -2
  101. package/components/basic/default/esm2022/html/html.directive.mjs +13 -8
  102. package/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
  103. package/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
  104. package/components/basic/default/esm2022/label/label.directive.mjs +15 -9
  105. package/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
  106. package/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
  107. package/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
  108. package/components/basic/default/esm2022/video/video.component.mjs +21 -17
  109. package/components/basic/default/fesm2022/index.mjs +162 -117
  110. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  111. package/components/basic/default/html/html.directive.d.ts +2 -2
  112. package/components/basic/default/icon/icon.component.d.ts +2 -2
  113. package/components/basic/default/iframe/iframe.component.d.ts +2 -2
  114. package/components/basic/default/label/label.directive.d.ts +2 -2
  115. package/components/basic/default/picture/picture.directive.d.ts +2 -2
  116. package/components/basic/default/spinner/spinner.component.d.ts +2 -2
  117. package/components/basic/default/video/video.component.d.ts +2 -2
  118. package/components/basic/progress/bundles/index.umd.js +45 -32
  119. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +24 -17
  120. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +20 -12
  121. package/components/basic/progress/esm2022/progress.module.mjs +2 -2
  122. package/components/basic/progress/esm2022/utils.mjs +3 -3
  123. package/components/basic/progress/fesm2022/index.mjs +44 -30
  124. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  125. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
  126. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  127. package/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
  128. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
  129. package/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
  130. package/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
  131. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  132. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
  133. package/components/basic/search/bundles/index.umd.js +185 -175
  134. package/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
  135. package/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
  136. package/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
  137. package/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
  138. package/components/basic/search/esm2022/search.component.mjs +147 -138
  139. package/components/basic/search/esm2022/search.module.mjs +2 -2
  140. package/components/basic/search/fesm2022/index.mjs +185 -174
  141. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  142. package/components/basic/search/search.component.d.ts +2 -2
  143. package/components/basic/tree/bundles/index.umd.js +23 -17
  144. package/components/basic/tree/esm2022/tree.component.mjs +21 -14
  145. package/components/basic/tree/esm2022/tree.module.mjs +2 -2
  146. package/components/basic/tree/fesm2022/index.mjs +22 -15
  147. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  148. package/components/basic/tree/tree.component.d.ts +2 -2
  149. package/components/chart/bundles/index.umd.js +97 -84
  150. package/components/chart/chart.component.d.ts +3 -3
  151. package/components/chart/chart.utils.d.ts +3 -3
  152. package/components/chart/esm2022/chart.component.mjs +82 -68
  153. package/components/chart/esm2022/chart.module.mjs +2 -2
  154. package/components/chart/esm2022/chart.utils.mjs +14 -13
  155. package/components/chart/fesm2022/index.mjs +95 -81
  156. package/components/chart/fesm2022/index.mjs.map +1 -1
  157. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
  158. package/components/containers/accordion/accordion.directive.d.ts +2 -2
  159. package/components/containers/accordion/bundles/index.umd.js +51 -40
  160. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
  161. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
  162. package/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
  163. package/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
  164. package/components/containers/accordion/fesm2022/index.mjs +50 -38
  165. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  166. package/components/containers/layout-grid/bundles/index.umd.js +32 -17
  167. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
  168. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
  169. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
  170. package/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
  171. package/components/containers/layout-grid/fesm2022/index.mjs +34 -19
  172. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  173. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
  174. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
  175. package/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
  176. package/components/containers/linear-layout/bundles/index.umd.js +21 -11
  177. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
  178. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
  179. package/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
  180. package/components/containers/linear-layout/fesm2022/index.mjs +23 -13
  181. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  182. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
  183. package/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
  184. package/components/containers/panel/bundles/index.umd.js +85 -85
  185. package/components/containers/panel/esm2022/panel.component.mjs +83 -82
  186. package/components/containers/panel/esm2022/panel.module.mjs +2 -2
  187. package/components/containers/panel/fesm2022/index.mjs +84 -83
  188. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  189. package/components/containers/panel/panel.component.d.ts +3 -3
  190. package/components/containers/tabs/bundles/index.umd.js +74 -63
  191. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
  192. package/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
  193. package/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
  194. package/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
  195. package/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
  196. package/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
  197. package/components/containers/tabs/fesm2022/index.mjs +73 -61
  198. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  199. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
  200. package/components/containers/tabs/tabs.component.d.ts +2 -2
  201. package/components/containers/tile/bundles/index.umd.js +11 -6
  202. package/components/containers/tile/esm2022/tile.directive.mjs +12 -7
  203. package/components/containers/tile/esm2022/tile.module.mjs +2 -2
  204. package/components/containers/tile/fesm2022/index.mjs +13 -8
  205. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  206. package/components/containers/tile/tile.directive.d.ts +2 -2
  207. package/components/containers/wizard/bundles/index.umd.js +102 -98
  208. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
  209. package/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
  210. package/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
  211. package/components/containers/wizard/fesm2022/index.mjs +104 -100
  212. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  213. package/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
  214. package/components/containers/wizard/wizard.component.d.ts +2 -2
  215. package/components/data/card/bundles/index.umd.js +70 -50
  216. package/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
  217. package/components/data/card/card-content/card-content.component.d.ts +2 -2
  218. package/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
  219. package/components/data/card/card.component.d.ts +2 -2
  220. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
  221. package/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
  222. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
  223. package/components/data/card/esm2022/card.component.mjs +38 -34
  224. package/components/data/card/esm2022/card.module.mjs +2 -2
  225. package/components/data/card/fesm2022/index.mjs +72 -52
  226. package/components/data/card/fesm2022/index.mjs.map +1 -1
  227. package/components/data/form/bundles/index.umd.js +202 -188
  228. package/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
  229. package/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -16
  230. package/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
  231. package/components/data/form/esm2022/form-widget.directive.mjs +4 -4
  232. package/components/data/form/esm2022/form.component.mjs +139 -135
  233. package/components/data/form/esm2022/form.module.mjs +2 -2
  234. package/components/data/form/esm2022/form.props.mjs +1 -1
  235. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
  236. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
  237. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
  238. package/components/data/form/esm2022/live-form/live-form.directive.mjs +18 -15
  239. package/components/data/form/fesm2022/index.mjs +206 -191
  240. package/components/data/form/fesm2022/index.mjs.map +1 -1
  241. package/components/data/form/form-action/form-action.directive.d.ts +2 -2
  242. package/components/data/form/form-field/form-field.directive.d.ts +2 -2
  243. package/components/data/form/form.component.d.ts +4 -4
  244. package/components/data/form/live-form/live-form.directive.d.ts +1 -1
  245. package/components/data/list/bundles/index.umd.js +826 -818
  246. package/components/data/list/esm2022/list-item.directive.mjs +4 -4
  247. package/components/data/list/esm2022/list.animator.mjs +5 -3
  248. package/components/data/list/esm2022/list.component.mjs +818 -810
  249. package/components/data/list/esm2022/list.module.mjs +2 -2
  250. package/components/data/list/fesm2022/index.mjs +825 -816
  251. package/components/data/list/fesm2022/index.mjs.map +1 -1
  252. package/components/data/list/list.component.d.ts +55 -54
  253. package/components/data/live-table/bundles/index.umd.js +13 -7
  254. package/components/data/live-table/esm2022/live-table.component.mjs +14 -8
  255. package/components/data/live-table/esm2022/live-table.module.mjs +2 -2
  256. package/components/data/live-table/fesm2022/index.mjs +15 -9
  257. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  258. package/components/data/live-table/live-table.component.d.ts +2 -2
  259. package/components/data/pagination/bundles/index.umd.js +111 -109
  260. package/components/data/pagination/esm2022/pagination.component.mjs +109 -106
  261. package/components/data/pagination/esm2022/pagination.module.mjs +2 -2
  262. package/components/data/pagination/fesm2022/index.mjs +110 -107
  263. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  264. package/components/data/pagination/pagination.component.d.ts +2 -2
  265. package/components/data/table/bundles/index.umd.js +311 -268
  266. package/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
  267. package/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
  268. package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
  269. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
  270. package/components/data/table/esm2022/table-cud.directive.mjs +10 -9
  271. package/components/data/table/esm2022/table-filter.directive.mjs +56 -58
  272. package/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
  273. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
  274. package/components/data/table/esm2022/table.component.mjs +162 -149
  275. package/components/data/table/esm2022/table.module.mjs +2 -2
  276. package/components/data/table/esm2022/table.props.mjs +2 -2
  277. package/components/data/table/fesm2022/index.mjs +310 -266
  278. package/components/data/table/fesm2022/index.mjs.map +1 -1
  279. package/components/data/table/table-action/table-action.directive.d.ts +2 -2
  280. package/components/data/table/table-column/table-column.directive.d.ts +8 -8
  281. package/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
  282. package/components/data/table/table-row/table-row.directive.d.ts +2 -2
  283. package/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
  284. package/components/data/table/table.component.d.ts +4 -4
  285. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
  286. package/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
  287. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
  288. package/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
  289. package/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
  290. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  291. package/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
  292. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
  293. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
  294. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
  295. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
  296. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  297. package/components/dialogs/default/base-dialog.d.ts +2 -2
  298. package/components/dialogs/default/bundles/index.umd.js +75 -71
  299. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
  300. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
  301. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
  302. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
  303. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
  304. package/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
  305. package/components/dialogs/default/fesm2022/index.mjs +76 -72
  306. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  307. package/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
  308. package/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
  309. package/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
  310. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
  311. package/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
  312. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  313. package/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
  314. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
  315. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
  316. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
  317. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  318. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
  319. package/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
  320. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
  321. package/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
  322. package/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
  323. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  324. package/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
  325. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
  326. package/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
  327. package/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
  328. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  329. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
  330. package/components/input/calendar/bundles/index.umd.js +46 -38
  331. package/components/input/calendar/calendar.component.d.ts +2 -2
  332. package/components/input/calendar/esm2022/calendar.component.mjs +44 -35
  333. package/components/input/calendar/esm2022/calendar.module.mjs +2 -2
  334. package/components/input/calendar/fesm2022/index.mjs +45 -36
  335. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  336. package/components/input/chips/bundles/index.umd.js +69 -61
  337. package/components/input/chips/chips.component.d.ts +3 -3
  338. package/components/input/chips/esm2022/chips.component.mjs +67 -58
  339. package/components/input/chips/esm2022/chips.module.mjs +2 -2
  340. package/components/input/chips/fesm2022/index.mjs +67 -58
  341. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  342. package/components/input/color-picker/bundles/index.umd.js +24 -11
  343. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  344. package/components/input/color-picker/esm2022/color-picker.component.mjs +25 -12
  345. package/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
  346. package/components/input/color-picker/fesm2022/index.mjs +25 -12
  347. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  348. package/components/input/currency/bundles/index.umd.js +18 -11
  349. package/components/input/currency/currency.component.d.ts +2 -2
  350. package/components/input/currency/esm2022/currency.component.mjs +19 -12
  351. package/components/input/currency/esm2022/currency.module.mjs +2 -2
  352. package/components/input/currency/fesm2022/index.mjs +19 -12
  353. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  354. package/components/input/default/base-form.component.d.ts +3 -3
  355. package/components/input/default/bundles/index.umd.js +600 -482
  356. package/components/input/default/button/button.component.d.ts +2 -2
  357. package/components/input/default/button-group/button-group.directive.d.ts +2 -2
  358. package/components/input/default/checkbox/checkbox.component.d.ts +3 -2
  359. package/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
  360. package/components/input/default/composite/composite.directive.d.ts +2 -2
  361. package/components/input/default/dataset-aware-form.component.d.ts +4 -4
  362. package/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
  363. package/components/input/default/esm2022/base-form.component.mjs +17 -11
  364. package/components/input/default/esm2022/button/button.component.mjs +32 -28
  365. package/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
  366. package/components/input/default/esm2022/caption-position.directive.mjs +6 -6
  367. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +24 -15
  368. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
  369. package/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
  370. package/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
  371. package/components/input/default/esm2022/input.module.mjs +2 -2
  372. package/components/input/default/esm2022/number/number.component.mjs +17 -10
  373. package/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
  374. package/components/input/default/esm2022/select/select.component.mjs +69 -68
  375. package/components/input/default/esm2022/switch/switch.component.mjs +38 -31
  376. package/components/input/default/esm2022/text/base/base-input.mjs +16 -10
  377. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +21 -11
  378. package/components/input/default/esm2022/text/color/input-color.component.mjs +21 -11
  379. package/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
  380. package/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
  381. package/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
  382. package/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
  383. package/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
  384. package/components/input/default/fesm2022/index.mjs +603 -483
  385. package/components/input/default/fesm2022/index.mjs.map +1 -1
  386. package/components/input/default/number/number.component.d.ts +2 -2
  387. package/components/input/default/radioset/radioset.component.d.ts +2 -2
  388. package/components/input/default/select/select.component.d.ts +3 -4
  389. package/components/input/default/switch/switch.component.d.ts +2 -2
  390. package/components/input/default/text/base/base-input.d.ts +2 -2
  391. package/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
  392. package/components/input/default/text/color/input-color.component.d.ts +2 -2
  393. package/components/input/default/text/email/input-email.component.d.ts +2 -2
  394. package/components/input/default/text/locale/number-locale.d.ts +1 -1
  395. package/components/input/default/text/number/input-number.component.d.ts +2 -2
  396. package/components/input/default/text/text/input-text.component.d.ts +2 -2
  397. package/components/input/default/textarea/textarea.component.d.ts +2 -2
  398. package/components/input/epoch/base-date-time.component.d.ts +2 -2
  399. package/components/input/epoch/bundles/index.umd.js +221 -162
  400. package/components/input/epoch/date/date.component.d.ts +3 -2
  401. package/components/input/epoch/date-time/date-time.component.d.ts +2 -2
  402. package/components/input/epoch/esm2022/base-date-time.component.mjs +45 -36
  403. package/components/input/epoch/esm2022/date/date.component.mjs +48 -23
  404. package/components/input/epoch/esm2022/date/date.props.mjs +2 -2
  405. package/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  406. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
  407. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +47 -36
  408. package/components/input/epoch/esm2022/epoch.module.mjs +2 -2
  409. package/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
  410. package/components/input/epoch/esm2022/time/time.component.mjs +33 -23
  411. package/components/input/epoch/fesm2022/index.mjs +219 -159
  412. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  413. package/components/input/epoch/time/time.component.d.ts +2 -2
  414. package/components/input/file-upload/bundles/index.umd.js +133 -135
  415. package/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
  416. package/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  417. package/components/input/file-upload/fesm2022/index.mjs +132 -133
  418. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  419. package/components/input/file-upload/file-upload.component.d.ts +2 -2
  420. package/components/input/rating/bundles/index.umd.js +57 -50
  421. package/components/input/rating/esm2022/rating.component.mjs +55 -47
  422. package/components/input/rating/esm2022/rating.module.mjs +2 -2
  423. package/components/input/rating/fesm2022/index.mjs +55 -47
  424. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  425. package/components/input/rating/rating.component.d.ts +2 -2
  426. package/components/input/slider/bundles/index.umd.js +21 -12
  427. package/components/input/slider/esm2022/slider.component.mjs +22 -13
  428. package/components/input/slider/esm2022/slider.module.mjs +2 -2
  429. package/components/input/slider/fesm2022/index.mjs +22 -13
  430. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  431. package/components/input/slider/slider.component.d.ts +2 -2
  432. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
  433. package/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
  434. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
  435. package/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
  436. package/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
  437. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  438. package/components/navigation/menu/bundles/index.umd.js +154 -137
  439. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
  440. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
  441. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
  442. package/components/navigation/menu/esm2022/menu.component.mjs +44 -40
  443. package/components/navigation/menu/esm2022/menu.module.mjs +2 -2
  444. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +12 -7
  445. package/components/navigation/menu/esm2022/nav/nav.component.mjs +60 -56
  446. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
  447. package/components/navigation/menu/fesm2022/index.mjs +153 -135
  448. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  449. package/components/navigation/menu/menu-adapator.component.d.ts +1 -1
  450. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
  451. package/components/navigation/menu/menu.component.d.ts +2 -2
  452. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -2
  453. package/components/navigation/menu/nav/nav.component.d.ts +2 -2
  454. package/components/navigation/navbar/bundles/index.umd.js +29 -22
  455. package/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
  456. package/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
  457. package/components/navigation/navbar/fesm2022/index.mjs +31 -24
  458. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  459. package/components/navigation/navbar/navbar.component.d.ts +2 -2
  460. package/components/navigation/popover/bundles/index.umd.js +18 -11
  461. package/components/navigation/popover/esm2022/popover.component.mjs +19 -12
  462. package/components/navigation/popover/esm2022/popover.module.mjs +2 -2
  463. package/components/navigation/popover/fesm2022/index.mjs +20 -13
  464. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  465. package/components/navigation/popover/popover.component.d.ts +2 -2
  466. package/components/page/default/bundles/index.umd.js +63 -31
  467. package/components/page/default/content/content.component.d.ts +2 -2
  468. package/components/page/default/esm2022/content/content.component.mjs +13 -7
  469. package/components/page/default/esm2022/layout.directive.mjs +12 -7
  470. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
  471. package/components/page/default/esm2022/page.directive.mjs +12 -7
  472. package/components/page/default/esm2022/page.module.mjs +2 -2
  473. package/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
  474. package/components/page/default/esm2022/spa-page.directive.mjs +12 -7
  475. package/components/page/default/fesm2022/index.mjs +65 -33
  476. package/components/page/default/fesm2022/index.mjs.map +1 -1
  477. package/components/page/default/layout.directive.d.ts +2 -2
  478. package/components/page/default/page-content/page-content.component.d.ts +2 -2
  479. package/components/page/default/page.directive.d.ts +2 -2
  480. package/components/page/default/router-outlet.directive.d.ts +2 -2
  481. package/components/page/default/spa-page.directive.d.ts +2 -2
  482. package/components/page/footer/bundles/index.umd.js +11 -6
  483. package/components/page/footer/esm2022/footer.directive.mjs +12 -7
  484. package/components/page/footer/esm2022/footer.module.mjs +2 -2
  485. package/components/page/footer/fesm2022/index.mjs +13 -8
  486. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  487. package/components/page/footer/footer.directive.d.ts +2 -2
  488. package/components/page/header/bundles/index.umd.js +12 -6
  489. package/components/page/header/esm2022/header.component.mjs +13 -7
  490. package/components/page/header/esm2022/header.module.mjs +2 -2
  491. package/components/page/header/fesm2022/index.mjs +14 -8
  492. package/components/page/header/fesm2022/index.mjs.map +1 -1
  493. package/components/page/header/header.component.d.ts +2 -2
  494. package/components/page/left-panel/bundles/index.umd.js +12 -7
  495. package/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
  496. package/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
  497. package/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  498. package/components/page/left-panel/fesm2022/index.mjs +14 -9
  499. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  500. package/components/page/left-panel/left-panel.directive.d.ts +2 -2
  501. package/components/page/right-panel/bundles/index.umd.js +11 -6
  502. package/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
  503. package/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
  504. package/components/page/right-panel/fesm2022/index.mjs +13 -8
  505. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  506. package/components/page/right-panel/right-panel.directive.d.ts +2 -2
  507. package/components/page/top-nav/bundles/index.umd.js +11 -6
  508. package/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
  509. package/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
  510. package/components/page/top-nav/fesm2022/index.mjs +13 -8
  511. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  512. package/components/page/top-nav/top-nav.directive.d.ts +2 -2
  513. package/components/prefab/bundles/index.umd.js +28 -18
  514. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
  515. package/components/prefab/esm2022/prefab.directive.mjs +15 -9
  516. package/components/prefab/esm2022/prefab.module.mjs +2 -2
  517. package/components/prefab/fesm2022/index.mjs +26 -15
  518. package/components/prefab/fesm2022/index.mjs.map +1 -1
  519. package/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
  520. package/components/prefab/prefab.directive.d.ts +2 -2
  521. package/core/bundles/index.umd.js +135 -146
  522. package/core/esm2022/core.module.mjs +2 -2
  523. package/core/esm2022/public_api.mjs +2 -2
  524. package/core/esm2022/services/constant.service.mjs +2 -2
  525. package/core/esm2022/services/field-type.service.mjs +5 -4
  526. package/core/esm2022/services/field-widget.service.mjs +5 -4
  527. package/core/esm2022/services/pagination.service.mjs +8 -7
  528. package/core/esm2022/services/script-loader.service.mjs +3 -3
  529. package/core/esm2022/services/state-persistence.service.mjs +18 -17
  530. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
  531. package/core/esm2022/services/utils.service.mjs +5 -4
  532. package/core/esm2022/services/viewport.service.mjs +5 -4
  533. package/core/esm2022/utils/build-utils.mjs +5 -4
  534. package/core/esm2022/utils/dom.mjs +1 -1
  535. package/core/esm2022/utils/event-notifier.mjs +1 -1
  536. package/core/esm2022/utils/expression-parser.mjs +6 -5
  537. package/core/esm2022/utils/id-generator.mjs +1 -1
  538. package/core/esm2022/utils/lru-cache.mjs +3 -2
  539. package/core/esm2022/utils/utils.mjs +79 -82
  540. package/core/esm2022/utils/watcher.mjs +9 -7
  541. package/core/esm2022/utils/wm-project-properties.mjs +1 -1
  542. package/core/fesm2022/index.mjs +134 -140
  543. package/core/fesm2022/index.mjs.map +1 -1
  544. package/core/public_api.d.ts +1 -1
  545. package/core/services/pagination.service.d.ts +1 -1
  546. package/core/utils/utils.d.ts +5 -9
  547. package/http/bundles/index.umd.js +10 -10
  548. package/http/esm2022/http-service.module.mjs +2 -2
  549. package/http/esm2022/http.service.mjs +7 -6
  550. package/http/esm2022/wm-http-request.mjs +1 -1
  551. package/http/esm2022/wm-http-response.mjs +1 -1
  552. package/http/fesm2022/index.mjs +7 -6
  553. package/http/fesm2022/index.mjs.map +1 -1
  554. package/locales/angular/global/af-na.js +4 -4
  555. package/locales/angular/global/af.js +4 -4
  556. package/locales/angular/global/agq.js +4 -4
  557. package/locales/angular/global/ak.js +4 -4
  558. package/locales/angular/global/am.js +4 -4
  559. package/locales/angular/global/ar-ae.js +4 -4
  560. package/locales/angular/global/ar-bh.js +4 -4
  561. package/locales/angular/global/ar-dj.js +4 -4
  562. package/locales/angular/global/ar-dz.js +4 -4
  563. package/locales/angular/global/ar-eg.js +4 -4
  564. package/locales/angular/global/ar-eh.js +4 -4
  565. package/locales/angular/global/ar-er.js +4 -4
  566. package/locales/angular/global/ar-il.js +4 -4
  567. package/locales/angular/global/ar-iq.js +4 -4
  568. package/locales/angular/global/ar-jo.js +4 -4
  569. package/locales/angular/global/ar-km.js +4 -4
  570. package/locales/angular/global/ar-kw.js +4 -4
  571. package/locales/angular/global/ar-lb.js +4 -4
  572. package/locales/angular/global/ar-ly.js +4 -4
  573. package/locales/angular/global/ar-ma.js +4 -4
  574. package/locales/angular/global/ar-mr.js +4 -4
  575. package/locales/angular/global/ar-om.js +4 -4
  576. package/locales/angular/global/ar-ps.js +4 -4
  577. package/locales/angular/global/ar-qa.js +4 -4
  578. package/locales/angular/global/ar-sa.js +4 -4
  579. package/locales/angular/global/ar-sd.js +4 -4
  580. package/locales/angular/global/ar-so.js +4 -4
  581. package/locales/angular/global/ar-ss.js +4 -4
  582. package/locales/angular/global/ar-sy.js +4 -4
  583. package/locales/angular/global/ar-td.js +4 -4
  584. package/locales/angular/global/ar-tn.js +4 -4
  585. package/locales/angular/global/ar-ye.js +4 -4
  586. package/locales/angular/global/ar.js +4 -4
  587. package/locales/angular/global/as.js +4 -4
  588. package/locales/angular/global/asa.js +4 -4
  589. package/locales/angular/global/ast.js +4 -4
  590. package/locales/angular/global/az-cyrl.js +4 -4
  591. package/locales/angular/global/az-latn.js +4 -4
  592. package/locales/angular/global/az.js +4 -4
  593. package/locales/angular/global/bas.js +4 -4
  594. package/locales/angular/global/be-tarask.js +4 -4
  595. package/locales/angular/global/be.js +4 -4
  596. package/locales/angular/global/bem.js +4 -4
  597. package/locales/angular/global/bez.js +4 -4
  598. package/locales/angular/global/bg.js +4 -4
  599. package/locales/angular/global/bm.js +4 -4
  600. package/locales/angular/global/bn-in.js +4 -4
  601. package/locales/angular/global/bn.js +4 -4
  602. package/locales/angular/global/bo-in.js +4 -4
  603. package/locales/angular/global/bo.js +4 -4
  604. package/locales/angular/global/br.js +4 -4
  605. package/locales/angular/global/brx.js +4 -4
  606. package/locales/angular/global/bs-cyrl.js +4 -4
  607. package/locales/angular/global/bs-latn.js +4 -4
  608. package/locales/angular/global/bs.js +4 -4
  609. package/locales/angular/global/ca-ad.js +4 -4
  610. package/locales/angular/global/ca-es-valencia.js +4 -4
  611. package/locales/angular/global/ca-fr.js +4 -4
  612. package/locales/angular/global/ca-it.js +4 -4
  613. package/locales/angular/global/ca.js +4 -4
  614. package/locales/angular/global/ccp-in.js +4 -4
  615. package/locales/angular/global/ccp.js +4 -4
  616. package/locales/angular/global/ce.js +4 -4
  617. package/locales/angular/global/ceb.js +4 -4
  618. package/locales/angular/global/cgg.js +4 -4
  619. package/locales/angular/global/chr.js +4 -4
  620. package/locales/angular/global/ckb-ir.js +4 -4
  621. package/locales/angular/global/ckb.js +4 -4
  622. package/locales/angular/global/cs.js +4 -4
  623. package/locales/angular/global/cy.js +4 -4
  624. package/locales/angular/global/da-gl.js +4 -4
  625. package/locales/angular/global/da.js +4 -4
  626. package/locales/angular/global/dav.js +4 -4
  627. package/locales/angular/global/de-at.js +4 -4
  628. package/locales/angular/global/de-be.js +4 -4
  629. package/locales/angular/global/de-ch.js +4 -4
  630. package/locales/angular/global/de-it.js +4 -4
  631. package/locales/angular/global/de-li.js +4 -4
  632. package/locales/angular/global/de-lu.js +4 -4
  633. package/locales/angular/global/de.js +4 -4
  634. package/locales/angular/global/dje.js +4 -4
  635. package/locales/angular/global/doi.js +4 -4
  636. package/locales/angular/global/dsb.js +4 -4
  637. package/locales/angular/global/dua.js +4 -4
  638. package/locales/angular/global/dyo.js +4 -4
  639. package/locales/angular/global/dz.js +4 -4
  640. package/locales/angular/global/ebu.js +4 -4
  641. package/locales/angular/global/ee-tg.js +4 -4
  642. package/locales/angular/global/ee.js +4 -4
  643. package/locales/angular/global/el-cy.js +4 -4
  644. package/locales/angular/global/el.js +4 -4
  645. package/locales/angular/global/en-001.js +4 -4
  646. package/locales/angular/global/en-150.js +4 -4
  647. package/locales/angular/global/en-ae.js +4 -4
  648. package/locales/angular/global/en-ag.js +4 -4
  649. package/locales/angular/global/en-ai.js +4 -4
  650. package/locales/angular/global/en-as.js +4 -4
  651. package/locales/angular/global/en-at.js +4 -4
  652. package/locales/angular/global/en-au.js +4 -4
  653. package/locales/angular/global/en-bb.js +4 -4
  654. package/locales/angular/global/en-be.js +4 -4
  655. package/locales/angular/global/en-bi.js +4 -4
  656. package/locales/angular/global/en-bm.js +4 -4
  657. package/locales/angular/global/en-bs.js +4 -4
  658. package/locales/angular/global/en-bw.js +4 -4
  659. package/locales/angular/global/en-bz.js +4 -4
  660. package/locales/angular/global/en-ca.js +4 -4
  661. package/locales/angular/global/en-cc.js +4 -4
  662. package/locales/angular/global/en-ch.js +4 -4
  663. package/locales/angular/global/en-ck.js +4 -4
  664. package/locales/angular/global/en-cm.js +4 -4
  665. package/locales/angular/global/en-cx.js +4 -4
  666. package/locales/angular/global/en-cy.js +4 -4
  667. package/locales/angular/global/en-de.js +4 -4
  668. package/locales/angular/global/en-dg.js +4 -4
  669. package/locales/angular/global/en-dk.js +4 -4
  670. package/locales/angular/global/en-dm.js +4 -4
  671. package/locales/angular/global/en-er.js +4 -4
  672. package/locales/angular/global/en-fi.js +4 -4
  673. package/locales/angular/global/en-fj.js +4 -4
  674. package/locales/angular/global/en-fk.js +4 -4
  675. package/locales/angular/global/en-fm.js +4 -4
  676. package/locales/angular/global/en-gb.js +4 -4
  677. package/locales/angular/global/en-gd.js +4 -4
  678. package/locales/angular/global/en-gg.js +4 -4
  679. package/locales/angular/global/en-gh.js +4 -4
  680. package/locales/angular/global/en-gi.js +4 -4
  681. package/locales/angular/global/en-gm.js +4 -4
  682. package/locales/angular/global/en-gu.js +4 -4
  683. package/locales/angular/global/en-gy.js +4 -4
  684. package/locales/angular/global/en-hk.js +4 -4
  685. package/locales/angular/global/en-ie.js +4 -4
  686. package/locales/angular/global/en-il.js +4 -4
  687. package/locales/angular/global/en-im.js +4 -4
  688. package/locales/angular/global/en-in.js +4 -4
  689. package/locales/angular/global/en-io.js +4 -4
  690. package/locales/angular/global/en-je.js +4 -4
  691. package/locales/angular/global/en-jm.js +4 -4
  692. package/locales/angular/global/en-ke.js +4 -4
  693. package/locales/angular/global/en-ki.js +4 -4
  694. package/locales/angular/global/en-kn.js +4 -4
  695. package/locales/angular/global/en-ky.js +4 -4
  696. package/locales/angular/global/en-lc.js +4 -4
  697. package/locales/angular/global/en-lr.js +4 -4
  698. package/locales/angular/global/en-ls.js +4 -4
  699. package/locales/angular/global/en-mg.js +4 -4
  700. package/locales/angular/global/en-mh.js +4 -4
  701. package/locales/angular/global/en-mo.js +4 -4
  702. package/locales/angular/global/en-mp.js +4 -4
  703. package/locales/angular/global/en-ms.js +4 -4
  704. package/locales/angular/global/en-mt.js +4 -4
  705. package/locales/angular/global/en-mu.js +4 -4
  706. package/locales/angular/global/en-mv.js +4 -4
  707. package/locales/angular/global/en-mw.js +4 -4
  708. package/locales/angular/global/en-my.js +4 -4
  709. package/locales/angular/global/en-na.js +4 -4
  710. package/locales/angular/global/en-nf.js +4 -4
  711. package/locales/angular/global/en-ng.js +4 -4
  712. package/locales/angular/global/en-nl.js +4 -4
  713. package/locales/angular/global/en-nr.js +4 -4
  714. package/locales/angular/global/en-nu.js +4 -4
  715. package/locales/angular/global/en-nz.js +4 -4
  716. package/locales/angular/global/en-pg.js +4 -4
  717. package/locales/angular/global/en-ph.js +4 -4
  718. package/locales/angular/global/en-pk.js +4 -4
  719. package/locales/angular/global/en-pn.js +4 -4
  720. package/locales/angular/global/en-pr.js +4 -4
  721. package/locales/angular/global/en-pw.js +4 -4
  722. package/locales/angular/global/en-rw.js +4 -4
  723. package/locales/angular/global/en-sb.js +4 -4
  724. package/locales/angular/global/en-sc.js +4 -4
  725. package/locales/angular/global/en-sd.js +4 -4
  726. package/locales/angular/global/en-se.js +4 -4
  727. package/locales/angular/global/en-sg.js +4 -4
  728. package/locales/angular/global/en-sh.js +4 -4
  729. package/locales/angular/global/en-si.js +4 -4
  730. package/locales/angular/global/en-sl.js +4 -4
  731. package/locales/angular/global/en-ss.js +4 -4
  732. package/locales/angular/global/en-sx.js +4 -4
  733. package/locales/angular/global/en-sz.js +4 -4
  734. package/locales/angular/global/en-tc.js +4 -4
  735. package/locales/angular/global/en-tk.js +4 -4
  736. package/locales/angular/global/en-to.js +4 -4
  737. package/locales/angular/global/en-tt.js +4 -4
  738. package/locales/angular/global/en-tv.js +4 -4
  739. package/locales/angular/global/en-tz.js +4 -4
  740. package/locales/angular/global/en-ug.js +4 -4
  741. package/locales/angular/global/en-um.js +4 -4
  742. package/locales/angular/global/en-vc.js +4 -4
  743. package/locales/angular/global/en-vg.js +4 -4
  744. package/locales/angular/global/en-vi.js +4 -4
  745. package/locales/angular/global/en-vu.js +4 -4
  746. package/locales/angular/global/en-ws.js +4 -4
  747. package/locales/angular/global/en-za.js +4 -4
  748. package/locales/angular/global/en-zm.js +4 -4
  749. package/locales/angular/global/en-zw.js +4 -4
  750. package/locales/angular/global/en.js +4 -4
  751. package/locales/angular/global/eo.js +4 -4
  752. package/locales/angular/global/es-419.js +4 -4
  753. package/locales/angular/global/es-ar.js +4 -4
  754. package/locales/angular/global/es-bo.js +4 -4
  755. package/locales/angular/global/es-br.js +4 -4
  756. package/locales/angular/global/es-bz.js +4 -4
  757. package/locales/angular/global/es-cl.js +4 -4
  758. package/locales/angular/global/es-co.js +4 -4
  759. package/locales/angular/global/es-cr.js +4 -4
  760. package/locales/angular/global/es-cu.js +4 -4
  761. package/locales/angular/global/es-do.js +4 -4
  762. package/locales/angular/global/es-ea.js +4 -4
  763. package/locales/angular/global/es-ec.js +4 -4
  764. package/locales/angular/global/es-gq.js +4 -4
  765. package/locales/angular/global/es-gt.js +4 -4
  766. package/locales/angular/global/es-hn.js +4 -4
  767. package/locales/angular/global/es-ic.js +4 -4
  768. package/locales/angular/global/es-mx.js +4 -4
  769. package/locales/angular/global/es-ni.js +4 -4
  770. package/locales/angular/global/es-pa.js +4 -4
  771. package/locales/angular/global/es-pe.js +4 -4
  772. package/locales/angular/global/es-ph.js +4 -4
  773. package/locales/angular/global/es-pr.js +4 -4
  774. package/locales/angular/global/es-py.js +4 -4
  775. package/locales/angular/global/es-sv.js +4 -4
  776. package/locales/angular/global/es-us.js +4 -4
  777. package/locales/angular/global/es-uy.js +4 -4
  778. package/locales/angular/global/es-ve.js +4 -4
  779. package/locales/angular/global/es.js +4 -4
  780. package/locales/angular/global/et.js +4 -4
  781. package/locales/angular/global/eu.js +4 -4
  782. package/locales/angular/global/ewo.js +4 -4
  783. package/locales/angular/global/fa-af.js +4 -4
  784. package/locales/angular/global/fa.js +4 -4
  785. package/locales/angular/global/ff-adlm-bf.js +4 -4
  786. package/locales/angular/global/ff-adlm-cm.js +4 -4
  787. package/locales/angular/global/ff-adlm-gh.js +4 -4
  788. package/locales/angular/global/ff-adlm-gm.js +4 -4
  789. package/locales/angular/global/ff-adlm-gw.js +4 -4
  790. package/locales/angular/global/ff-adlm-lr.js +4 -4
  791. package/locales/angular/global/ff-adlm-mr.js +4 -4
  792. package/locales/angular/global/ff-adlm-ne.js +4 -4
  793. package/locales/angular/global/ff-adlm-ng.js +4 -4
  794. package/locales/angular/global/ff-adlm-sl.js +4 -4
  795. package/locales/angular/global/ff-adlm-sn.js +4 -4
  796. package/locales/angular/global/ff-adlm.js +4 -4
  797. package/locales/angular/global/ff-cm.js +58 -44
  798. package/locales/angular/global/ff-gn.js +58 -44
  799. package/locales/angular/global/ff-latn-bf.js +4 -4
  800. package/locales/angular/global/ff-latn-cm.js +4 -4
  801. package/locales/angular/global/ff-latn-gh.js +4 -4
  802. package/locales/angular/global/ff-latn-gm.js +4 -4
  803. package/locales/angular/global/ff-latn-gn.js +4 -4
  804. package/locales/angular/global/ff-latn-gw.js +4 -4
  805. package/locales/angular/global/ff-latn-lr.js +4 -4
  806. package/locales/angular/global/ff-latn-mr.js +4 -4
  807. package/locales/angular/global/ff-latn-ne.js +4 -4
  808. package/locales/angular/global/ff-latn-ng.js +4 -4
  809. package/locales/angular/global/ff-latn-sl.js +4 -4
  810. package/locales/angular/global/ff-latn.js +4 -4
  811. package/locales/angular/global/ff-mr.js +58 -44
  812. package/locales/angular/global/ff.js +4 -4
  813. package/locales/angular/global/fi.js +4 -4
  814. package/locales/angular/global/fil.js +4 -4
  815. package/locales/angular/global/fo-dk.js +4 -4
  816. package/locales/angular/global/fo.js +4 -4
  817. package/locales/angular/global/fr-be.js +4 -4
  818. package/locales/angular/global/fr-bf.js +4 -4
  819. package/locales/angular/global/fr-bi.js +4 -4
  820. package/locales/angular/global/fr-bj.js +4 -4
  821. package/locales/angular/global/fr-bl.js +4 -4
  822. package/locales/angular/global/fr-ca.js +4 -4
  823. package/locales/angular/global/fr-cd.js +4 -4
  824. package/locales/angular/global/fr-cf.js +4 -4
  825. package/locales/angular/global/fr-cg.js +4 -4
  826. package/locales/angular/global/fr-ch.js +4 -4
  827. package/locales/angular/global/fr-ci.js +4 -4
  828. package/locales/angular/global/fr-cm.js +4 -4
  829. package/locales/angular/global/fr-dj.js +4 -4
  830. package/locales/angular/global/fr-dz.js +4 -4
  831. package/locales/angular/global/fr-ga.js +4 -4
  832. package/locales/angular/global/fr-gf.js +4 -4
  833. package/locales/angular/global/fr-gn.js +4 -4
  834. package/locales/angular/global/fr-gp.js +4 -4
  835. package/locales/angular/global/fr-gq.js +4 -4
  836. package/locales/angular/global/fr-ht.js +4 -4
  837. package/locales/angular/global/fr-km.js +4 -4
  838. package/locales/angular/global/fr-lu.js +4 -4
  839. package/locales/angular/global/fr-ma.js +4 -4
  840. package/locales/angular/global/fr-mc.js +4 -4
  841. package/locales/angular/global/fr-mf.js +4 -4
  842. package/locales/angular/global/fr-mg.js +4 -4
  843. package/locales/angular/global/fr-ml.js +4 -4
  844. package/locales/angular/global/fr-mq.js +4 -4
  845. package/locales/angular/global/fr-mr.js +4 -4
  846. package/locales/angular/global/fr-mu.js +4 -4
  847. package/locales/angular/global/fr-nc.js +4 -4
  848. package/locales/angular/global/fr-ne.js +4 -4
  849. package/locales/angular/global/fr-pf.js +4 -4
  850. package/locales/angular/global/fr-pm.js +4 -4
  851. package/locales/angular/global/fr-re.js +4 -4
  852. package/locales/angular/global/fr-rw.js +4 -4
  853. package/locales/angular/global/fr-sc.js +4 -4
  854. package/locales/angular/global/fr-sn.js +4 -4
  855. package/locales/angular/global/fr-sy.js +4 -4
  856. package/locales/angular/global/fr-td.js +4 -4
  857. package/locales/angular/global/fr-tg.js +4 -4
  858. package/locales/angular/global/fr-tn.js +4 -4
  859. package/locales/angular/global/fr-vu.js +4 -4
  860. package/locales/angular/global/fr-wf.js +4 -4
  861. package/locales/angular/global/fr-yt.js +4 -4
  862. package/locales/angular/global/fr.js +4 -4
  863. package/locales/angular/global/fur.js +4 -4
  864. package/locales/angular/global/fy.js +4 -4
  865. package/locales/angular/global/ga-gb.js +4 -4
  866. package/locales/angular/global/ga.js +4 -4
  867. package/locales/angular/global/gd.js +4 -4
  868. package/locales/angular/global/gl.js +4 -4
  869. package/locales/angular/global/gsw-fr.js +4 -4
  870. package/locales/angular/global/gsw-li.js +4 -4
  871. package/locales/angular/global/gsw.js +4 -4
  872. package/locales/angular/global/gu.js +4 -4
  873. package/locales/angular/global/guz.js +4 -4
  874. package/locales/angular/global/gv.js +4 -4
  875. package/locales/angular/global/ha-gh.js +4 -4
  876. package/locales/angular/global/ha-ne.js +4 -4
  877. package/locales/angular/global/ha.js +4 -4
  878. package/locales/angular/global/haw.js +4 -4
  879. package/locales/angular/global/he.js +4 -4
  880. package/locales/angular/global/hi-latn.js +4 -4
  881. package/locales/angular/global/hi.js +4 -4
  882. package/locales/angular/global/hr-ba.js +4 -4
  883. package/locales/angular/global/hr.js +4 -4
  884. package/locales/angular/global/hsb.js +4 -4
  885. package/locales/angular/global/hu.js +4 -4
  886. package/locales/angular/global/hy.js +4 -4
  887. package/locales/angular/global/ia.js +4 -4
  888. package/locales/angular/global/id.js +4 -4
  889. package/locales/angular/global/ig.js +4 -4
  890. package/locales/angular/global/ii.js +4 -4
  891. package/locales/angular/global/is.js +4 -4
  892. package/locales/angular/global/it-ch.js +4 -4
  893. package/locales/angular/global/it-sm.js +4 -4
  894. package/locales/angular/global/it-va.js +4 -4
  895. package/locales/angular/global/it.js +4 -4
  896. package/locales/angular/global/ja.js +4 -4
  897. package/locales/angular/global/jgo.js +4 -4
  898. package/locales/angular/global/jmc.js +4 -4
  899. package/locales/angular/global/jv.js +4 -4
  900. package/locales/angular/global/ka.js +4 -4
  901. package/locales/angular/global/kab.js +4 -4
  902. package/locales/angular/global/kam.js +4 -4
  903. package/locales/angular/global/kde.js +4 -4
  904. package/locales/angular/global/kea.js +4 -4
  905. package/locales/angular/global/kgp.js +4 -4
  906. package/locales/angular/global/khq.js +4 -4
  907. package/locales/angular/global/ki.js +4 -4
  908. package/locales/angular/global/kk.js +4 -4
  909. package/locales/angular/global/kkj.js +4 -4
  910. package/locales/angular/global/kl.js +4 -4
  911. package/locales/angular/global/kln.js +4 -4
  912. package/locales/angular/global/km.js +4 -4
  913. package/locales/angular/global/kn.js +4 -4
  914. package/locales/angular/global/ko-kp.js +4 -4
  915. package/locales/angular/global/ko.js +4 -4
  916. package/locales/angular/global/kok.js +4 -4
  917. package/locales/angular/global/ks-arab.js +4 -4
  918. package/locales/angular/global/ks-deva.js +4 -4
  919. package/locales/angular/global/ks.js +4 -4
  920. package/locales/angular/global/ksb.js +4 -4
  921. package/locales/angular/global/ksf.js +4 -4
  922. package/locales/angular/global/ksh.js +4 -4
  923. package/locales/angular/global/ku.js +4 -4
  924. package/locales/angular/global/kw.js +4 -4
  925. package/locales/angular/global/ky.js +4 -4
  926. package/locales/angular/global/lag.js +4 -4
  927. package/locales/angular/global/lb.js +4 -4
  928. package/locales/angular/global/lg.js +4 -4
  929. package/locales/angular/global/lkt.js +4 -4
  930. package/locales/angular/global/ln-ao.js +4 -4
  931. package/locales/angular/global/ln-cf.js +4 -4
  932. package/locales/angular/global/ln-cg.js +4 -4
  933. package/locales/angular/global/ln.js +4 -4
  934. package/locales/angular/global/lo.js +4 -4
  935. package/locales/angular/global/lrc-iq.js +4 -4
  936. package/locales/angular/global/lrc.js +4 -4
  937. package/locales/angular/global/lt.js +4 -4
  938. package/locales/angular/global/lu.js +4 -4
  939. package/locales/angular/global/luo.js +4 -4
  940. package/locales/angular/global/luy.js +4 -4
  941. package/locales/angular/global/lv.js +4 -4
  942. package/locales/angular/global/mai.js +4 -4
  943. package/locales/angular/global/mas-tz.js +4 -4
  944. package/locales/angular/global/mas.js +4 -4
  945. package/locales/angular/global/mer.js +4 -4
  946. package/locales/angular/global/mfe.js +4 -4
  947. package/locales/angular/global/mg.js +4 -4
  948. package/locales/angular/global/mgh.js +4 -4
  949. package/locales/angular/global/mgo.js +4 -4
  950. package/locales/angular/global/mi.js +4 -4
  951. package/locales/angular/global/mk.js +4 -4
  952. package/locales/angular/global/ml.js +4 -4
  953. package/locales/angular/global/mn.js +4 -4
  954. package/locales/angular/global/mni-beng.js +4 -4
  955. package/locales/angular/global/mni.js +4 -4
  956. package/locales/angular/global/mr.js +4 -4
  957. package/locales/angular/global/ms-bn.js +4 -4
  958. package/locales/angular/global/ms-id.js +4 -4
  959. package/locales/angular/global/ms-sg.js +4 -4
  960. package/locales/angular/global/ms.js +4 -4
  961. package/locales/angular/global/mt.js +4 -4
  962. package/locales/angular/global/mua.js +4 -4
  963. package/locales/angular/global/my.js +4 -4
  964. package/locales/angular/global/mzn.js +4 -4
  965. package/locales/angular/global/naq.js +4 -4
  966. package/locales/angular/global/nb-sj.js +4 -4
  967. package/locales/angular/global/nb.js +4 -4
  968. package/locales/angular/global/nd.js +4 -4
  969. package/locales/angular/global/nds-nl.js +4 -4
  970. package/locales/angular/global/nds.js +4 -4
  971. package/locales/angular/global/ne-in.js +4 -4
  972. package/locales/angular/global/ne.js +4 -4
  973. package/locales/angular/global/nl-aw.js +4 -4
  974. package/locales/angular/global/nl-be.js +4 -4
  975. package/locales/angular/global/nl-bq.js +4 -4
  976. package/locales/angular/global/nl-cw.js +4 -4
  977. package/locales/angular/global/nl-sr.js +4 -4
  978. package/locales/angular/global/nl-sx.js +4 -4
  979. package/locales/angular/global/nl.js +4 -4
  980. package/locales/angular/global/nmg.js +4 -4
  981. package/locales/angular/global/nn.js +4 -4
  982. package/locales/angular/global/nnh.js +4 -4
  983. package/locales/angular/global/no.js +4 -4
  984. package/locales/angular/global/nus.js +4 -4
  985. package/locales/angular/global/nyn.js +4 -4
  986. package/locales/angular/global/om-ke.js +4 -4
  987. package/locales/angular/global/om.js +4 -4
  988. package/locales/angular/global/or.js +4 -4
  989. package/locales/angular/global/os-ru.js +4 -4
  990. package/locales/angular/global/os.js +4 -4
  991. package/locales/angular/global/pa-arab.js +4 -4
  992. package/locales/angular/global/pa-guru.js +4 -4
  993. package/locales/angular/global/pa.js +4 -4
  994. package/locales/angular/global/pcm.js +4 -4
  995. package/locales/angular/global/pl.js +4 -4
  996. package/locales/angular/global/ps-pk.js +4 -4
  997. package/locales/angular/global/ps.js +4 -4
  998. package/locales/angular/global/pt-ao.js +4 -4
  999. package/locales/angular/global/pt-ch.js +4 -4
  1000. package/locales/angular/global/pt-cv.js +4 -4
  1001. package/locales/angular/global/pt-gq.js +4 -4
  1002. package/locales/angular/global/pt-gw.js +4 -4
  1003. package/locales/angular/global/pt-lu.js +4 -4
  1004. package/locales/angular/global/pt-mo.js +4 -4
  1005. package/locales/angular/global/pt-mz.js +4 -4
  1006. package/locales/angular/global/pt-pt.js +4 -4
  1007. package/locales/angular/global/pt-st.js +4 -4
  1008. package/locales/angular/global/pt-tl.js +4 -4
  1009. package/locales/angular/global/pt.js +4 -4
  1010. package/locales/angular/global/qu-bo.js +4 -4
  1011. package/locales/angular/global/qu-ec.js +4 -4
  1012. package/locales/angular/global/qu.js +4 -4
  1013. package/locales/angular/global/rm.js +4 -4
  1014. package/locales/angular/global/rn.js +4 -4
  1015. package/locales/angular/global/ro-md.js +4 -4
  1016. package/locales/angular/global/ro.js +4 -4
  1017. package/locales/angular/global/rof.js +4 -4
  1018. package/locales/angular/global/ru-by.js +4 -4
  1019. package/locales/angular/global/ru-kg.js +4 -4
  1020. package/locales/angular/global/ru-kz.js +4 -4
  1021. package/locales/angular/global/ru-md.js +4 -4
  1022. package/locales/angular/global/ru-ua.js +4 -4
  1023. package/locales/angular/global/ru.js +4 -4
  1024. package/locales/angular/global/rw.js +4 -4
  1025. package/locales/angular/global/rwk.js +4 -4
  1026. package/locales/angular/global/sa.js +4 -4
  1027. package/locales/angular/global/sah.js +4 -4
  1028. package/locales/angular/global/saq.js +4 -4
  1029. package/locales/angular/global/sat-olck.js +4 -4
  1030. package/locales/angular/global/sat.js +4 -4
  1031. package/locales/angular/global/sbp.js +4 -4
  1032. package/locales/angular/global/sc.js +4 -4
  1033. package/locales/angular/global/sd-arab.js +4 -4
  1034. package/locales/angular/global/sd-deva.js +4 -4
  1035. package/locales/angular/global/sd.js +4 -4
  1036. package/locales/angular/global/se-fi.js +4 -4
  1037. package/locales/angular/global/se-se.js +4 -4
  1038. package/locales/angular/global/se.js +4 -4
  1039. package/locales/angular/global/seh.js +4 -4
  1040. package/locales/angular/global/ses.js +4 -4
  1041. package/locales/angular/global/sg.js +4 -4
  1042. package/locales/angular/global/shi-latn.js +4 -4
  1043. package/locales/angular/global/shi-tfng.js +4 -4
  1044. package/locales/angular/global/shi.js +4 -4
  1045. package/locales/angular/global/si.js +4 -4
  1046. package/locales/angular/global/sk.js +4 -4
  1047. package/locales/angular/global/sl.js +4 -4
  1048. package/locales/angular/global/smn.js +4 -4
  1049. package/locales/angular/global/sn.js +4 -4
  1050. package/locales/angular/global/so-dj.js +4 -4
  1051. package/locales/angular/global/so-et.js +4 -4
  1052. package/locales/angular/global/so-ke.js +4 -4
  1053. package/locales/angular/global/so.js +4 -4
  1054. package/locales/angular/global/sq-mk.js +4 -4
  1055. package/locales/angular/global/sq-xk.js +4 -4
  1056. package/locales/angular/global/sq.js +4 -4
  1057. package/locales/angular/global/sr-cyrl-ba.js +4 -4
  1058. package/locales/angular/global/sr-cyrl-me.js +4 -4
  1059. package/locales/angular/global/sr-cyrl-xk.js +4 -4
  1060. package/locales/angular/global/sr-cyrl.js +4 -4
  1061. package/locales/angular/global/sr-latn-ba.js +4 -4
  1062. package/locales/angular/global/sr-latn-me.js +4 -4
  1063. package/locales/angular/global/sr-latn-xk.js +4 -4
  1064. package/locales/angular/global/sr-latn.js +4 -4
  1065. package/locales/angular/global/sr.js +4 -4
  1066. package/locales/angular/global/su-latn.js +4 -4
  1067. package/locales/angular/global/su.js +4 -4
  1068. package/locales/angular/global/sv-ax.js +4 -4
  1069. package/locales/angular/global/sv-fi.js +4 -4
  1070. package/locales/angular/global/sv.js +4 -4
  1071. package/locales/angular/global/sw-cd.js +4 -4
  1072. package/locales/angular/global/sw-ke.js +4 -4
  1073. package/locales/angular/global/sw-ug.js +4 -4
  1074. package/locales/angular/global/sw.js +4 -4
  1075. package/locales/angular/global/ta-lk.js +4 -4
  1076. package/locales/angular/global/ta-my.js +4 -4
  1077. package/locales/angular/global/ta-sg.js +4 -4
  1078. package/locales/angular/global/ta.js +4 -4
  1079. package/locales/angular/global/te.js +4 -4
  1080. package/locales/angular/global/teo-ke.js +4 -4
  1081. package/locales/angular/global/teo.js +4 -4
  1082. package/locales/angular/global/tg.js +4 -4
  1083. package/locales/angular/global/th.js +4 -4
  1084. package/locales/angular/global/ti-er.js +4 -4
  1085. package/locales/angular/global/ti.js +4 -4
  1086. package/locales/angular/global/tk.js +4 -4
  1087. package/locales/angular/global/to.js +4 -4
  1088. package/locales/angular/global/tr-cy.js +4 -4
  1089. package/locales/angular/global/tr.js +4 -4
  1090. package/locales/angular/global/tt.js +4 -4
  1091. package/locales/angular/global/twq.js +4 -4
  1092. package/locales/angular/global/tzm.js +4 -4
  1093. package/locales/angular/global/ug.js +4 -4
  1094. package/locales/angular/global/uk.js +4 -4
  1095. package/locales/angular/global/und.js +4 -4
  1096. package/locales/angular/global/ur-in.js +4 -4
  1097. package/locales/angular/global/ur.js +4 -4
  1098. package/locales/angular/global/uz-arab.js +4 -4
  1099. package/locales/angular/global/uz-cyrl.js +4 -4
  1100. package/locales/angular/global/uz-latn.js +4 -4
  1101. package/locales/angular/global/uz.js +4 -4
  1102. package/locales/angular/global/vai-latn.js +4 -4
  1103. package/locales/angular/global/vai-vaii.js +4 -4
  1104. package/locales/angular/global/vai.js +4 -4
  1105. package/locales/angular/global/vi.js +4 -4
  1106. package/locales/angular/global/vun.js +4 -4
  1107. package/locales/angular/global/wae.js +4 -4
  1108. package/locales/angular/global/wo.js +4 -4
  1109. package/locales/angular/global/xh.js +4 -4
  1110. package/locales/angular/global/xog.js +4 -4
  1111. package/locales/angular/global/yav.js +4 -4
  1112. package/locales/angular/global/yi.js +4 -4
  1113. package/locales/angular/global/yo-bj.js +4 -4
  1114. package/locales/angular/global/yo.js +4 -4
  1115. package/locales/angular/global/yrl-co.js +4 -4
  1116. package/locales/angular/global/yrl-ve.js +4 -4
  1117. package/locales/angular/global/yrl.js +4 -4
  1118. package/locales/angular/global/yue-hans.js +4 -4
  1119. package/locales/angular/global/yue-hant.js +4 -4
  1120. package/locales/angular/global/yue.js +4 -4
  1121. package/locales/angular/global/zgh.js +4 -4
  1122. package/locales/angular/global/zh-hans-hk.js +4 -4
  1123. package/locales/angular/global/zh-hans-mo.js +4 -4
  1124. package/locales/angular/global/zh-hans-sg.js +4 -4
  1125. package/locales/angular/global/zh-hans.js +4 -4
  1126. package/locales/angular/global/zh-hant-hk.js +4 -4
  1127. package/locales/angular/global/zh-hant-mo.js +4 -4
  1128. package/locales/angular/global/zh-hant.js +4 -4
  1129. package/locales/angular/global/zh.js +4 -4
  1130. package/locales/angular/global/zu.js +4 -4
  1131. package/mobile/components/basic/default/bundles/index.umd.js +148 -143
  1132. package/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
  1133. package/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
  1134. package/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
  1135. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
  1136. package/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
  1137. package/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
  1138. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
  1139. package/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
  1140. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
  1141. package/mobile/components/basic/default/fesm2022/index.mjs +146 -140
  1142. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  1143. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
  1144. package/mobile/components/basic/search/bundles/index.umd.js +3 -3
  1145. package/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
  1146. package/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
  1147. package/mobile/components/basic/search/fesm2022/index.mjs +3 -3
  1148. package/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  1149. package/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
  1150. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
  1151. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
  1152. package/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
  1153. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
  1154. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  1155. package/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
  1156. package/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
  1157. package/mobile/components/data/media-list/bundles/index.umd.js +53 -48
  1158. package/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
  1159. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
  1160. package/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
  1161. package/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
  1162. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  1163. package/mobile/components/data/media-list/media-list.component.d.ts +2 -2
  1164. package/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
  1165. package/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
  1166. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
  1167. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
  1168. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
  1169. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  1170. package/mobile/components/device/camera/bundles/index.umd.js +15 -9
  1171. package/mobile/components/device/camera/camera.component.d.ts +2 -2
  1172. package/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
  1173. package/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
  1174. package/mobile/components/device/camera/fesm2022/index.mjs +17 -11
  1175. package/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  1176. package/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
  1177. package/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
  1178. package/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  1179. package/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
  1180. package/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  1181. package/mobile/components/page/default/bundles/index.umd.js +11 -10
  1182. package/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
  1183. package/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
  1184. package/mobile/components/page/default/esm2022/page.module.mjs +2 -2
  1185. package/mobile/components/page/default/fesm2022/index.mjs +8 -6
  1186. package/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  1187. package/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
  1188. package/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
  1189. package/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  1190. package/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
  1191. package/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  1192. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
  1193. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
  1194. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
  1195. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
  1196. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  1197. package/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
  1198. package/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
  1199. package/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
  1200. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
  1201. package/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
  1202. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  1203. package/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
  1204. package/mobile/core/bundles/index.umd.js +43 -43
  1205. package/mobile/core/esm2022/core.module.mjs +3 -3
  1206. package/mobile/core/esm2022/native.xhr.mjs +1 -1
  1207. package/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
  1208. package/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
  1209. package/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
  1210. package/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
  1211. package/mobile/core/esm2022/services/device-file.service.mjs +8 -7
  1212. package/mobile/core/esm2022/services/device.service.mjs +5 -4
  1213. package/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
  1214. package/mobile/core/esm2022/services/network.service.mjs +11 -10
  1215. package/mobile/core/fesm2022/index.mjs +40 -39
  1216. package/mobile/core/fesm2022/index.mjs.map +1 -1
  1217. package/mobile/core/services/ext-app-message.service.d.ts +1 -1
  1218. package/mobile/core/services/network.service.d.ts +7 -1
  1219. package/mobile/offline/bundles/index.umd.js +176 -159
  1220. package/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
  1221. package/mobile/offline/esm2022/offline.module.mjs +3 -3
  1222. package/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
  1223. package/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
  1224. package/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
  1225. package/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
  1226. package/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
  1227. package/mobile/offline/esm2022/services/push.service.mjs +3 -3
  1228. package/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
  1229. package/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
  1230. package/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
  1231. package/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
  1232. package/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
  1233. package/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
  1234. package/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
  1235. package/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
  1236. package/mobile/offline/esm2022/utils/utils.mjs +1 -1
  1237. package/mobile/offline/fesm2022/index.mjs +171 -153
  1238. package/mobile/offline/fesm2022/index.mjs.map +1 -1
  1239. package/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
  1240. package/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
  1241. package/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1242. package/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
  1243. package/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  1244. package/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
  1245. package/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1246. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
  1247. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1248. package/mobile/runtime/bundles/index.umd.js +21 -17
  1249. package/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
  1250. package/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
  1251. package/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
  1252. package/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
  1253. package/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
  1254. package/mobile/runtime/fesm2022/index.mjs +18 -13
  1255. package/mobile/runtime/fesm2022/index.mjs.map +1 -1
  1256. package/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
  1257. package/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1258. package/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
  1259. package/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
  1260. package/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1261. package/mobile/variables/bundles/index.umd.js +28 -21
  1262. package/mobile/variables/esm2022/services/camera-service.mjs +5 -5
  1263. package/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
  1264. package/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
  1265. package/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
  1266. package/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
  1267. package/mobile/variables/esm2022/services/file-service.mjs +11 -3
  1268. package/mobile/variables/esm2022/services/scan-service.mjs +1 -1
  1269. package/mobile/variables/esm2022/variables.module.mjs +3 -3
  1270. package/mobile/variables/fesm2022/index.mjs +24 -16
  1271. package/mobile/variables/fesm2022/index.mjs.map +1 -1
  1272. package/oAuth/bundles/index.umd.js +15 -15
  1273. package/oAuth/esm2022/oAuth.module.mjs +2 -2
  1274. package/oAuth/esm2022/oAuth.service.mjs +6 -5
  1275. package/oAuth/esm2022/oAuth.utils.mjs +8 -7
  1276. package/oAuth/fesm2022/index.mjs +12 -11
  1277. package/oAuth/fesm2022/index.mjs.map +1 -1
  1278. package/package.json +1 -1
  1279. package/runtime/base/bundles/index.umd.js +243 -237
  1280. package/runtime/base/esm2022/components/app-component/app.component.mjs +27 -27
  1281. package/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
  1282. package/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
  1283. package/runtime/base/esm2022/components/base-page.component.mjs +16 -15
  1284. package/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
  1285. package/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
  1286. package/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
  1287. package/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
  1288. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  1289. package/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
  1290. package/runtime/base/esm2022/directives/accessroles.directive.mjs +13 -12
  1291. package/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
  1292. package/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
  1293. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
  1294. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
  1295. package/runtime/base/esm2022/guards/role.guard.mjs +5 -4
  1296. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
  1297. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
  1298. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
  1299. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
  1300. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
  1301. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
  1302. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
  1303. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
  1304. package/runtime/base/esm2022/runtime-base.module.mjs +3 -3
  1305. package/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
  1306. package/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
  1307. package/runtime/base/esm2022/services/app.service.mjs +9 -8
  1308. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
  1309. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
  1310. package/runtime/base/esm2022/services/i18n.service.mjs +15 -13
  1311. package/runtime/base/esm2022/services/navigation.service.mjs +10 -9
  1312. package/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
  1313. package/runtime/base/esm2022/services/pipe.service.mjs +3 -3
  1314. package/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
  1315. package/runtime/base/esm2022/services/spinner.service.mjs +9 -8
  1316. package/runtime/base/esm2022/services/toaster.service.mjs +8 -7
  1317. package/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
  1318. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
  1319. package/runtime/base/fesm2022/index.mjs +253 -247
  1320. package/runtime/base/fesm2022/index.mjs.map +1 -1
  1321. package/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
  1322. package/runtime/base/services/i18n.service.d.ts +1 -1
  1323. package/runtime/dynamic/bundles/index.umd.js +22 -21
  1324. package/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
  1325. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
  1326. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
  1327. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
  1328. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
  1329. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
  1330. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
  1331. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
  1332. package/runtime/dynamic/esm2022/main.mjs +3 -2
  1333. package/runtime/dynamic/fesm2022/index.mjs +21 -19
  1334. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  1335. package/scripts/datatable/datatable.js +2 -1
  1336. package/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
  1337. package/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
  1338. package/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
  1339. package/security/bundles/index.umd.js +17 -17
  1340. package/security/esm2022/security.module.mjs +2 -2
  1341. package/security/esm2022/security.service.mjs +14 -13
  1342. package/security/fesm2022/index.mjs +14 -13
  1343. package/security/fesm2022/index.mjs.map +1 -1
  1344. package/security/security.service.d.ts +1 -1
  1345. package/swipey/esm2022/swipe.animation.mjs +1 -1
  1346. package/swipey/fesm2022/index.mjs.map +1 -1
  1347. package/transpiler/bundles/index.umd.js +10 -9
  1348. package/transpiler/esm2022/build.mjs +8 -6
  1349. package/transpiler/fesm2022/index.mjs +7 -5
  1350. package/transpiler/fesm2022/index.mjs.map +1 -1
  1351. package/variables/bundles/index.umd.js +160 -150
  1352. package/variables/esm2022/factory/variable.factory.mjs +1 -1
  1353. package/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
  1354. package/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
  1355. package/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
  1356. package/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
  1357. package/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
  1358. package/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
  1359. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
  1360. package/variables/esm2022/model/action/notification-action.mjs +1 -1
  1361. package/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
  1362. package/variables/esm2022/service/variables.service.mjs +9 -8
  1363. package/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
  1364. package/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
  1365. package/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
  1366. package/variables/esm2022/util/variable/variables.utils.mjs +75 -70
  1367. package/variables/esm2022/variables.module.mjs +2 -2
  1368. package/variables/fesm2022/index.mjs +174 -163
  1369. package/variables/fesm2022/index.mjs.map +1 -1
  1370. package/variables/util/variable/service-variable.utils.d.ts +1 -1
  1371. package/build-task/package.json +0 -28
  1372. package/components/advanced/carousel/package.json +0 -23
  1373. package/components/advanced/login/package.json +0 -23
  1374. package/components/advanced/marquee/package.json +0 -23
  1375. package/components/base/package.json +0 -28
  1376. package/components/basic/default/package.json +0 -23
  1377. package/components/basic/progress/package.json +0 -23
  1378. package/components/basic/rich-text-editor/package.json +0 -23
  1379. package/components/basic/search/package.json +0 -23
  1380. package/components/basic/tree/package.json +0 -23
  1381. package/components/chart/package.json +0 -23
  1382. package/components/containers/accordion/package.json +0 -23
  1383. package/components/containers/layout-grid/package.json +0 -23
  1384. package/components/containers/linear-layout/package.json +0 -23
  1385. package/components/containers/panel/package.json +0 -23
  1386. package/components/containers/tabs/package.json +0 -23
  1387. package/components/containers/tile/package.json +0 -23
  1388. package/components/containers/wizard/package.json +0 -23
  1389. package/components/data/card/package.json +0 -23
  1390. package/components/data/form/package.json +0 -23
  1391. package/components/data/list/package.json +0 -23
  1392. package/components/data/live-table/package.json +0 -23
  1393. package/components/data/pagination/package.json +0 -23
  1394. package/components/data/table/package.json +0 -23
  1395. package/components/dialogs/alert-dialog/package.json +0 -23
  1396. package/components/dialogs/confirm-dialog/package.json +0 -23
  1397. package/components/dialogs/default/package.json +0 -23
  1398. package/components/dialogs/design-dialog/package.json +0 -23
  1399. package/components/dialogs/iframe-dialog/package.json +0 -23
  1400. package/components/dialogs/login-dialog/package.json +0 -23
  1401. package/components/dialogs/partial-dialog/package.json +0 -23
  1402. package/components/input/calendar/package.json +0 -23
  1403. package/components/input/chips/package.json +0 -23
  1404. package/components/input/color-picker/package.json +0 -23
  1405. package/components/input/currency/package.json +0 -23
  1406. package/components/input/default/package.json +0 -23
  1407. package/components/input/epoch/package.json +0 -23
  1408. package/components/input/file-upload/package.json +0 -23
  1409. package/components/input/rating/package.json +0 -23
  1410. package/components/input/slider/package.json +0 -23
  1411. package/components/navigation/breadcrumb/package.json +0 -23
  1412. package/components/navigation/menu/package.json +0 -23
  1413. package/components/navigation/navbar/package.json +0 -23
  1414. package/components/navigation/popover/package.json +0 -23
  1415. package/components/page/default/package.json +0 -23
  1416. package/components/page/footer/package.json +0 -23
  1417. package/components/page/header/package.json +0 -23
  1418. package/components/page/left-panel/package.json +0 -23
  1419. package/components/page/right-panel/package.json +0 -23
  1420. package/components/page/top-nav/package.json +0 -23
  1421. package/components/prefab/package.json +0 -23
  1422. package/core/package.json +0 -29
  1423. package/http/package.json +0 -28
  1424. package/mobile/components/basic/default/package.json +0 -23
  1425. package/mobile/components/basic/search/package.json +0 -23
  1426. package/mobile/components/containers/segmented-control/package.json +0 -23
  1427. package/mobile/components/data/media-list/package.json +0 -23
  1428. package/mobile/components/device/barcode-scanner/package.json +0 -23
  1429. package/mobile/components/device/camera/package.json +0 -23
  1430. package/mobile/components/input/file-upload/package.json +0 -23
  1431. package/mobile/components/page/default/package.json +0 -23
  1432. package/mobile/components/page/left-panel/package.json +0 -23
  1433. package/mobile/components/page/mobile-navbar/package.json +0 -23
  1434. package/mobile/components/page/tab-bar/package.json +0 -23
  1435. package/mobile/core/package.json +0 -28
  1436. package/mobile/offline/package.json +0 -28
  1437. package/mobile/placeholder/runtime/package.json +0 -27
  1438. package/mobile/placeholder/runtime-dynamic/package.json +0 -23
  1439. package/mobile/runtime/package.json +0 -28
  1440. package/mobile/runtime-dynamic/package.json +0 -23
  1441. package/mobile/variables/package.json +0 -28
  1442. package/oAuth/package.json +0 -28
  1443. package/runtime/base/package.json +0 -28
  1444. package/runtime/dynamic/package.json +0 -28
  1445. package/security/package.json +0 -28
  1446. package/swipey/package.json +0 -28
  1447. package/transpiler/package.json +0 -29
  1448. package/variables/package.json +0 -28
@@ -11,7 +11,7 @@ export const registerProps = () => {
11
11
  ['collapsible', PROP_BOOLEAN],
12
12
  ['col-ng-class', PROP_STRING],
13
13
  ['currencypattern', PROP_STRING],
14
- ['customExpression', PROP_BOOLEAN],
14
+ ['customExpression', PROP_BOOLEAN], // Internal property to check if column has custom expression
15
15
  ['dataentrymode', { value: 'default', ...PROP_STRING }],
16
16
  ['datafield', PROP_STRING],
17
17
  ['dataoptions', PROP_ANY],
@@ -88,4 +88,4 @@ export const registerProps = () => {
88
88
  ['width', PROP_STRING],
89
89
  ]));
90
90
  };
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvdGFibGUvc3JjL3RhYmxlLWNvbHVtbi90YWJsZS1jb2x1bW4ucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixpQkFBaUIsRUFDakIsSUFBSSxHQUFHLENBQ0g7UUFDSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDNUIsQ0FBQyxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDdEQsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDaEMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztRQUN4QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUM3QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDaEMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUM7UUFDbEMsQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDckQsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUN6QixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDckIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO1FBQzNCLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztRQUMzQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDNUIsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDOUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztRQUMxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQ2hDLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUM3QixDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQztRQUNqQyxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNoQyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUM7UUFDOUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUM7UUFDakMsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDO1FBQzlCLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQ2hDLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO1FBQ25DLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO1FBQ25DLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDcEQsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDaEMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO1FBQ2xDLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUM3QixDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztRQUNoQyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUM7UUFDOUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUM7UUFDakMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDeEIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1FBQ3RCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUN0QixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDMUIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztRQUN6QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDakQsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztRQUN4QixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDeEIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQzVCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUM3QixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDeEIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQzdDLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUN4QixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDNUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1FBQ3ZCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUM3QixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7UUFDMUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3BCLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDO1FBQ3BDLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztRQUMxQixDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQztRQUNuQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDMUIsQ0FBQyxZQUFZLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDOUMsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDakQsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1FBQ3ZCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQ3hDLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztRQUMzQixDQUFDLGdCQUFnQixFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO1FBQ3RELENBQUMsVUFBVSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQzVDLENBQUMsZUFBZSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQ2pELENBQUMsZUFBZSxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO1FBQ2xELENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztRQUMzQyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztRQUMvQixDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQztRQUNsQyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDNUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO0tBQ3pCLENBQ0osQ0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUFJPUF9BTlksIFBST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJQcm9wcyA9ICgpID0+IHtcbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLXRhYmxlLWNvbHVtbicsXG4gICAgICAgIG5ldyBNYXAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWydhY2Nlc3Nyb2xlcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2F1dG9jbG9zZScsIHt2YWx1ZTogJ291dHNpZGVDbGljaycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydiYWNrZ3JvdW5kY29sb3InLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydiaW5kaW5nJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnY2FwdGlvbicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NoZWNrZWR2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NvbC1jbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NvbGxhcHNpYmxlJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgICAgICBbJ2NvbC1uZy1jbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1cnJlbmN5cGF0dGVybicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1c3RvbUV4cHJlc3Npb24nLCBQUk9QX0JPT0xFQU5dLCAvLyBJbnRlcm5hbCBwcm9wZXJ0eSB0byBjaGVjayBpZiBjb2x1bW4gaGFzIGN1c3RvbSBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgWydkYXRhZW50cnltb2RlJywge3ZhbHVlOiAnZGVmYXVsdCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydkYXRhZmllbGQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkYXRhb3B0aW9ucycsIFBST1BfQU5ZXSxcbiAgICAgICAgICAgICAgICBbJ2RhdGFzZXQnLCBQUk9QX0FOWV0sXG4gICAgICAgICAgICAgICAgWydkYXRhc291cmNlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZGF0ZWZvcm1hdCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2RhdGVwYXR0ZXJuJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZGVib3VuY2V0aW1lJywge3ZhbHVlOiAyNTAsIC4uLlBST1BfTlVNQkVSfV0sXG4gICAgICAgICAgICAgICAgWydkZWZhdWx0dmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkaXNhYmxlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydkaXNwbGF5ZmllbGQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkaXNwbGF5bGFiZWwnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydlZGl0ZGF0ZXBhdHRlcm4nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydvdXRwdXRmb3JtYXQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydlZGl0LXdpZGdldC10eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2hvd2luZWRpdG1vZGUnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsnZWRpdGlucHV0dHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2V4cG9ydGV4cHJlc3Npb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJkYXRhc2V0JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGF0YWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGlzcGxheWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGlzcGxheWxhYmVsJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZXhwcmVzc2lvbnMnLCB7dmFsdWU6ICd7fScsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJzZWFyY2hrZXknLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXItb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJvbmZpbHRlcicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2ZpbHRlcnBsYWNlaG9sZGVyJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyd2lkZ2V0JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyaW5wdXR0eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZm9ybWF0cGF0dGVybicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1c3RvbXBpcGVmb3JtYXQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmcmFjdGlvbnNpemUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydnZW5lcmF0b3InLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydncm91cGJ5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnbGltaXQnLCBQUk9QX05VTUJFUl0sXG4gICAgICAgICAgICAgICAgWydtYXRjaCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ21hdGNobW9kZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ21heGNoYXJzJywgUFJPUF9OVU1CRVJdLFxuICAgICAgICAgICAgICAgIFsnbWF4dmFsdWUnLCBQUk9QX05VTUJFUl0sXG4gICAgICAgICAgICAgICAgWydzdGVwJywgUFJPUF9OVU1CRVJdLFxuICAgICAgICAgICAgICAgIFsnbW9iaWxlZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydtaW52YWx1ZScsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgICAgICAgICBbJ21heGRhdGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydtaW5kYXRlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZXhjbHVkZWRheXMnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydleGNsdWRlZGF0ZXMnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydtYXh0aW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnbWludGltZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3BjZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydwZXJpb2QnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsncGxhY2Vob2xkZXInLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydwcmVmaXgnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydwcmltYXJ5LWtleScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydyZWFkb25seScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydyZWdleHAnLCBQUk9QX0FOWV0sXG4gICAgICAgICAgICAgICAgWydyZWxhdGVkLWVudGl0eS1uYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsncmVxdWlyZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsncm93YWN0aW9uc3Bvc2l0aW9uJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2VhcmNoa2V5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2VhcmNoYWJsZScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydzaG93aW5maWx0ZXInLCB7dmFsdWU6IGZhbHNlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgICAgICBbJ3N1ZmZpeCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3Nob3cnLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICAgICAgICAgIFsnc2hvd2NvdW50JywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgICAgICBbJ3Nob3dkcm9wZG93bm9uJywge3ZhbHVlOiAnZGVmYXVsdCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydzb3J0YWJsZScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWyd0YWJsZXRkaXNwbGF5Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgICAgICBbJ3RleHRhbGlnbm1lbnQnLCB7dmFsdWU6ICdsZWZ0JywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgICAgICAgICBbJ3RleHRjb2xvcicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3R5cGUnLCB7dmFsdWU6ICdzdHJpbmcnLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICAgICAgICAgIFsndW5jaGVja2VkdmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWyd2YWxpZGF0aW9ubWVzc2FnZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3dpZGdldC10eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnd2lkdGgnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBdXG4gICAgICAgIClcbiAgICApO1xufTtcbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvdGFibGUvc3JjL3RhYmxlLWNvbHVtbi90YWJsZS1jb2x1bW4ucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixpQkFBaUIsRUFDakIsSUFBSSxHQUFHLENBQ0g7UUFDSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7UUFDNUIsQ0FBQyxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDdEQsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDaEMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztRQUN4QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUM3QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDaEMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsRUFBRSw2REFBNkQ7UUFDakcsQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDckQsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUN6QixDQUFDLFNBQVMsRUFB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IHsgUFJPUF9BTlksIFBST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJQcm9wcyA9ICgpID0+IHtcbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLXRhYmxlLWNvbHVtbicsXG4gICAgICAgIG5ldyBNYXAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWydhY2Nlc3Nyb2xlcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2F1dG9jbG9zZScsIHt2YWx1ZTogJ291dHNpZGVDbGljaycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydiYWNrZ3JvdW5kY29sb3InLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydiaW5kaW5nJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnY2FwdGlvbicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NoZWNrZWR2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NvbC1jbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NvbGxhcHNpYmxlJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgICAgICBbJ2NvbC1uZy1jbGFzcycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1cnJlbmN5cGF0dGVybicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1c3RvbUV4cHJlc3Npb24nLCBQUk9QX0JPT0xFQU5dLCAvLyBJbnRlcm5hbCBwcm9wZXJ0eSB0byBjaGVjayBpZiBjb2x1bW4gaGFzIGN1c3RvbSBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgWydkYXRhZW50cnltb2RlJywge3ZhbHVlOiAnZGVmYXVsdCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydkYXRhZmllbGQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkYXRhb3B0aW9ucycsIFBST1BfQU5ZXSxcbiAgICAgICAgICAgICAgICBbJ2RhdGFzZXQnLCBQUk9QX0FOWV0sXG4gICAgICAgICAgICAgICAgWydkYXRhc291cmNlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZGF0ZWZvcm1hdCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2RhdGVwYXR0ZXJuJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZGVib3VuY2V0aW1lJywge3ZhbHVlOiAyNTAsIC4uLlBST1BfTlVNQkVSfV0sXG4gICAgICAgICAgICAgICAgWydkZWZhdWx0dmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkaXNhYmxlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydkaXNwbGF5ZmllbGQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydkaXNwbGF5bGFiZWwnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydlZGl0ZGF0ZXBhdHRlcm4nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydvdXRwdXRmb3JtYXQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydlZGl0LXdpZGdldC10eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2hvd2luZWRpdG1vZGUnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsnZWRpdGlucHV0dHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2V4cG9ydGV4cHJlc3Npb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJkYXRhc2V0JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGF0YWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGlzcGxheWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZGlzcGxheWxhYmVsJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyZXhwcmVzc2lvbnMnLCB7dmFsdWU6ICd7fScsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJzZWFyY2hrZXknLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXItb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmaWx0ZXJvbmZpbHRlcicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2ZpbHRlcnBsYWNlaG9sZGVyJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyd2lkZ2V0JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZmlsdGVyaW5wdXR0eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZm9ybWF0cGF0dGVybicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2N1c3RvbXBpcGVmb3JtYXQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydmcmFjdGlvbnNpemUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydnZW5lcmF0b3InLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydncm91cGJ5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnbGltaXQnLCBQUk9QX05VTUJFUl0sXG4gICAgICAgICAgICAgICAgWydtYXRjaCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ21hdGNobW9kZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ21heGNoYXJzJywgUFJPUF9OVU1CRVJdLFxuICAgICAgICAgICAgICAgIFsnbWF4dmFsdWUnLCBQUk9QX05VTUJFUl0sXG4gICAgICAgICAgICAgICAgWydzdGVwJywgUFJPUF9OVU1CRVJdLFxuICAgICAgICAgICAgICAgIFsnbW9iaWxlZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydtaW52YWx1ZScsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgICAgICAgICBbJ21heGRhdGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydtaW5kYXRlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnZXhjbHVkZWRheXMnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydleGNsdWRlZGF0ZXMnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydtYXh0aW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnbWludGltZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3BjZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydwZXJpb2QnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsncGxhY2Vob2xkZXInLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydwcmVmaXgnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydwcmltYXJ5LWtleScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydyZWFkb25seScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICAgICAgWydyZWdleHAnLCBQUk9QX0FOWV0sXG4gICAgICAgICAgICAgICAgWydyZWxhdGVkLWVudGl0eS1uYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsncmVxdWlyZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgICAgIFsncm93YWN0aW9uc3Bvc2l0aW9uJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2VhcmNoa2V5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnc2VhcmNoYWJsZScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWydzaG93aW5maWx0ZXInLCB7dmFsdWU6IGZhbHNlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgICAgICBbJ3N1ZmZpeCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3Nob3cnLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICAgICAgICAgIFsnc2hvd2NvdW50JywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgICAgICBbJ3Nob3dkcm9wZG93bm9uJywge3ZhbHVlOiAnZGVmYXVsdCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICAgICAgWydzb3J0YWJsZScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICAgICAgWyd0YWJsZXRkaXNwbGF5Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgICAgICBbJ3RleHRhbGlnbm1lbnQnLCB7dmFsdWU6ICdsZWZ0JywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgICAgICAgICBbJ3RleHRjb2xvcicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3R5cGUnLCB7dmFsdWU6ICdzdHJpbmcnLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICAgICAgICAgIFsndW5jaGVja2VkdmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWyd2YWxpZGF0aW9ubWVzc2FnZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ3dpZGdldC10eXBlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnd2lkdGgnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBdXG4gICAgICAgIClcbiAgICApO1xufTtcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Directive, Injector, Optional, SkipSelf } from '@angular/core';
1
+ import { Directive, Inject, Injector, Optional, SkipSelf } from '@angular/core';
2
2
  import { BaseComponent, provideAsWidgetRef, setHeaderConfigForTable } from '@wm/components/base';
3
3
  import { registerProps } from './table-column-group.props';
4
4
  import { TableComponent } from '../table.component';
@@ -7,8 +7,8 @@ import * as i1 from "../table.component";
7
7
  const WIDGET_CONFIG = { widgetType: 'wm-table-column-group', hostClass: '' };
8
8
  export class TableColumnGroupDirective extends BaseComponent {
9
9
  static { this.initializeProps = registerProps(); }
10
- constructor(inj, group, table) {
11
- super(inj, WIDGET_CONFIG);
10
+ constructor(inj, group, table, explicitContext) {
11
+ super(inj, WIDGET_CONFIG, explicitContext);
12
12
  this.group = group;
13
13
  this.table = table;
14
14
  this.config = {};
@@ -43,12 +43,12 @@ export class TableColumnGroupDirective extends BaseComponent {
43
43
  const fieldName = this.group && this.group.name;
44
44
  setHeaderConfigForTable(this.table.headerConfig, this.config, fieldName, fieldName ? colIndex : headerIndex);
45
45
  }
46
- static { this.ɵfac = function TableColumnGroupDirective_Factory(t) { return new (t || TableColumnGroupDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(TableColumnGroupDirective, 12), i0.ɵɵdirectiveInject(i1.TableComponent, 8)); }; }
46
+ static { this.ɵfac = function TableColumnGroupDirective_Factory(t) { return new (t || TableColumnGroupDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(TableColumnGroupDirective, 12), i0.ɵɵdirectiveInject(i1.TableComponent, 8), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
47
47
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TableColumnGroupDirective, selectors: [["", "wmTableColumnGroup", ""]], features: [i0.ɵɵProvidersFeature([
48
48
  provideAsWidgetRef(TableColumnGroupDirective)
49
49
  ]), i0.ɵɵInheritDefinitionFeature] }); }
50
50
  }
51
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableColumnGroupDirective, [{
51
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableColumnGroupDirective, [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[wmTableColumnGroup]',
@@ -56,11 +56,16 @@ export class TableColumnGroupDirective extends BaseComponent {
56
56
  provideAsWidgetRef(TableColumnGroupDirective)
57
57
  ]
58
58
  }]
59
- }], function () { return [{ type: i0.Injector }, { type: TableColumnGroupDirective, decorators: [{
59
+ }], () => [{ type: i0.Injector }, { type: TableColumnGroupDirective, decorators: [{
60
60
  type: SkipSelf
61
61
  }, {
62
62
  type: Optional
63
63
  }] }, { type: i1.TableComponent, decorators: [{
64
64
  type: Optional
65
- }] }]; }, null); })();
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3RhYmxlL3NyYy90YWJsZS1jb2x1bW4tZ3JvdXAvdGFibGUtY29sdW1uLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQUcsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFcEQsTUFBTSxhQUFhLEdBQUcsRUFBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBQyxDQUFDO0FBUTNFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO2FBQ2pELG9CQUFlLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFVekMsWUFDSSxHQUFhLEVBQ2tCLEtBQWdDLEVBQzVDLEtBQXFCO1FBRXhDLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFISyxVQUFLLEdBQUwsS0FBSyxDQUEyQjtRQUM1QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUw1QyxXQUFNLEdBQVEsRUFBRSxDQUFDO0lBUWpCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQy9CLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUTtZQUM3QyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUc7UUFDekIsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5RjthQUFNO1lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIscUhBQXFIO1FBQ3JILE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDaEQsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pILENBQUM7MEZBakRRLHlCQUF5QjtvRUFBekIseUJBQXlCLGdGQUp2QjtnQkFDUCxrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQzthQUNoRDs7dUZBRVEseUJBQXlCO2NBTnJDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1Asa0JBQWtCLDJCQUEyQjtpQkFDaEQ7YUFDSjs7c0JBY1EsUUFBUTs7c0JBQUksUUFBUTs7c0JBQ3BCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXQsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCAgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzZXRIZWFkZXJDb25maWdGb3JUYWJsZX0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4tZ3JvdXAucHJvcHMnO1xuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS5jb21wb25lbnQnO1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS10YWJsZS1jb2x1bW4tZ3JvdXAnLCBob3N0Q2xhc3M6ICcnfTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21UYWJsZUNvbHVtbkdyb3VwXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihUYWJsZUNvbHVtbkdyb3VwRGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5Hcm91cERpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBhY2Nlc3Nyb2xlcztcbiAgICBiYWNrZ3JvdW5kY29sb3I7XG4gICAgY2FwdGlvbjtcbiAgICBjb2xDbGFzcztcbiAgICBuYW1lO1xuICAgIHRleHRhbGlnbm1lbnQ7XG4gICAgY29uZmlnOiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBAU2tpcFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgZ3JvdXA6IFRhYmxlQ29sdW1uR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyB0YWJsZTogVGFibGVDb21wb25lbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHKTtcbiAgICB9XG5cbiAgICBwb3B1bGF0ZUNvbmZpZygpIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5uYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMuY2FwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgIGNvbHVtbnM6IFtdLFxuICAgICAgICAgICAgaXNHcm91cDogdHJ1ZSxcbiAgICAgICAgICAgIGFjY2Vzc3JvbGVzOiB0aGlzLmFjY2Vzc3JvbGVzLFxuICAgICAgICAgICAgdGV4dEFsaWdubWVudDogdGhpcy50ZXh0YWxpZ25tZW50IHx8ICdjZW50ZXInLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmJhY2tncm91bmRjb2xvcixcbiAgICAgICAgICAgIGNsYXNzOiB0aGlzWydjb2wtY2xhc3MnXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdjYXB0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5jb25maWcuZGlzcGxheU5hbWUgPSBudiB8fCAnJztcbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdzZXRDb2x1bW5Qcm9wJywgdGhpcy5jb25maWcuZmllbGQsICdkaXNwbGF5TmFtZScsIG52LCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucG9wdWxhdGVDb25maWcoKTtcbiAgICAgICAgLy8gd2hlbiBncm91cCBpcyBpbnNpZGUgYW5vdGhlciBncm91cCAoaS5lLiBzdWItbGV2ZWwgY29sdW1uLWdyb3VwKSB0aGVuIGNvbnNpZGVyIHRoZSBjb2wgaW5kZXggYW5kIG5vdCBoZWFkZXIgaW5kZXguXG4gICAgICAgIGNvbnN0IGhlYWRlckluZGV4ID0gcGFyc2VJbnQodGhpcy5nZXRBdHRyKCdoZWFkZXJJbmRleCcpLCAxMCk7XG4gICAgICAgIGNvbnN0IGNvbEluZGV4ID0gcGFyc2VJbnQodGhpcy5nZXRBdHRyKCdpbmRleCcpLCAxMCk7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5uYW1lO1xuICAgICAgICBzZXRIZWFkZXJDb25maWdGb3JUYWJsZSh0aGlzLnRhYmxlLmhlYWRlckNvbmZpZywgdGhpcy5jb25maWcsIGZpZWxkTmFtZSwgZmllbGROYW1lID8gY29sSW5kZXggOiBoZWFkZXJJbmRleCk7XG4gICAgfVxufVxuIl19
65
+ }] }, { type: undefined, decorators: [{
66
+ type: Inject,
67
+ args: ['EXPLICIT_CONTEXT']
68
+ }, {
69
+ type: Optional
70
+ }] }], null); })();
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3RhYmxlL3NyYy90YWJsZS1jb2x1bW4tZ3JvdXAvdGFibGUtY29sdW1uLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFHLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXBELE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztBQVEzRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTthQUNqRCxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQVV6QyxZQUNJLEdBQWEsRUFDa0IsS0FBZ0MsRUFDNUMsS0FBcUIsRUFDQSxlQUFvQjtRQUU1RCxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUpaLFVBQUssR0FBTCxLQUFLLENBQTJCO1FBQzVDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBTDVDLFdBQU0sR0FBUSxFQUFFLENBQUM7SUFTakIsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDL0IsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSTtZQUNiLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRO1lBQzdDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMzQixDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRztRQUN6QixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0YsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLHFIQUFxSDtRQUNySCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2hELHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqSCxDQUFDOzBGQWxEUSx5QkFBeUIsMkpBZXRCLGtCQUFrQjtvRUFmckIseUJBQXlCLGdGQUp2QjtnQkFDUCxrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQzthQUNoRDs7aUZBRVEseUJBQXlCO2NBTnJDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1Asa0JBQWtCLDJCQUEyQjtpQkFDaEQ7YUFDSjs7c0JBY1EsUUFBUTs7c0JBQUksUUFBUTs7c0JBQ3BCLFFBQVE7O3NCQUNSLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCwgT3B0aW9uYWwsIFNraXBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgIHByb3ZpZGVBc1dpZGdldFJlZiwgc2V0SGVhZGVyQ29uZmlnRm9yVGFibGV9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vdGFibGUtY29sdW1uLWdyb3VwLnByb3BzJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUuY29tcG9uZW50JztcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tdGFibGUtY29sdW1uLWdyb3VwJywgaG9zdENsYXNzOiAnJ307XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtVGFibGVDb2x1bW5Hcm91cF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoVGFibGVDb2x1bW5Hcm91cERpcmVjdGl2ZSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uR3JvdXBEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgYWNjZXNzcm9sZXM7XG4gICAgYmFja2dyb3VuZGNvbG9yO1xuICAgIGNhcHRpb247XG4gICAgY29sQ2xhc3M7XG4gICAgbmFtZTtcbiAgICB0ZXh0YWxpZ25tZW50O1xuICAgIGNvbmZpZzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQFNraXBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGdyb3VwOiBUYWJsZUNvbHVtbkdyb3VwRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgdGFibGU6IFRhYmxlQ29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHBvcHVsYXRlQ29uZmlnKCkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5jYXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY29sdW1uczogW10sXG4gICAgICAgICAgICBpc0dyb3VwOiB0cnVlLFxuICAgICAgICAgICAgYWNjZXNzcm9sZXM6IHRoaXMuYWNjZXNzcm9sZXMsXG4gICAgICAgICAgICB0ZXh0QWxpZ25tZW50OiB0aGlzLnRleHRhbGlnbm1lbnQgfHwgJ2NlbnRlcicsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmFja2dyb3VuZGNvbG9yLFxuICAgICAgICAgICAgY2xhc3M6IHRoaXNbJ2NvbC1jbGFzcyddXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2NhcHRpb24nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kaXNwbGF5TmFtZSA9IG52IHx8ICcnO1xuICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ3NldENvbHVtblByb3AnLCB0aGlzLmNvbmZpZy5maWVsZCwgJ2Rpc3BsYXlOYW1lJywgbnYsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUNvbmZpZygpO1xuICAgICAgICAvLyB3aGVuIGdyb3VwIGlzIGluc2lkZSBhbm90aGVyIGdyb3VwIChpLmUuIHN1Yi1sZXZlbCBjb2x1bW4tZ3JvdXApIHRoZW4gY29uc2lkZXIgdGhlIGNvbCBpbmRleCBhbmQgbm90IGhlYWRlciBpbmRleC5cbiAgICAgICAgY29uc3QgaGVhZGVySW5kZXggPSBwYXJzZUludCh0aGlzLmdldEF0dHIoJ2hlYWRlckluZGV4JyksIDEwKTtcbiAgICAgICAgY29uc3QgY29sSW5kZXggPSBwYXJzZUludCh0aGlzLmdldEF0dHIoJ2luZGV4JyksIDEwKTtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLm5hbWU7XG4gICAgICAgIHNldEhlYWRlckNvbmZpZ0ZvclRhYmxlKHRoaXMudGFibGUuaGVhZGVyQ29uZmlnLCB0aGlzLmNvbmZpZywgZmllbGROYW1lLCBmaWVsZE5hbWUgPyBjb2xJbmRleCA6IGhlYWRlckluZGV4KTtcbiAgICB9XG59XG4iXX0=
@@ -2,6 +2,7 @@ import { Directive, Inject, Self } from '@angular/core';
2
2
  import { $invokeWatchers, $appDigest, AbstractDialogService, App, DataSource, extractCurrentItemExpr, triggerFn } from '@wm/core';
3
3
  import { refreshDataSource } from '@wm/components/base';
4
4
  import { TableComponent } from './table.component';
5
+ import { last, map, parseInt, startsWith } from "lodash-es";
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@wm/core";
7
8
  const OPERATION = {
@@ -124,23 +125,23 @@ export class TableCUDDirective {
124
125
  generatePath(binddataset) {
125
126
  let path, index;
126
127
  let dataBoundExpr = this.table.widget.$attrs.get('datasetboundexpr');
127
- if (_.startsWith(binddataset, 'item') && dataBoundExpr) {
128
- if (_.startsWith(dataBoundExpr, 'Widgets.')) {
128
+ if (startsWith(binddataset, 'item') && dataBoundExpr) {
129
+ if (startsWith(dataBoundExpr, 'Widgets.')) {
129
130
  dataBoundExpr = extractCurrentItemExpr(dataBoundExpr, this.table);
130
131
  }
131
132
  const parentListItems = this.table.$element.parents('.app-list-item');
132
- const indexArr = _.map(parentListItems, (item) => _.parseInt($(item).attr('listitemindex')));
133
+ const indexArr = map(parentListItems, (item) => parseInt($(item).attr('listitemindex')));
133
134
  for (let i = indexArr.length - 1; i >= 0; i--) {
134
135
  dataBoundExpr = dataBoundExpr.replace('$i', indexArr[i]);
135
136
  }
136
- index = _.last(indexArr);
137
+ index = last(indexArr);
137
138
  path = dataBoundExpr.replace(/^Variables\..*\.dataSet([^.])*(\.|$)/g, '');
138
139
  }
139
140
  else {
140
141
  // if we have dataset as "Variables.staticVar1.dataSet[1].details" then pass index as 1.
141
142
  const regEx = /^Variables\..*\.dataSet([\[][0-9]])/g;
142
143
  if (regEx.test(binddataset)) {
143
- index = _.parseInt(binddataset.replace(/^Variables\..*\.dataSet([\[])/g, ''));
144
+ index = parseInt(binddataset.replace(/^Variables\..*\.dataSet([\[])/g, ''));
144
145
  }
145
146
  path = binddataset.replace(/^Variables\..*\.dataSet([^.])*(\.|$)/g, '');
146
147
  }
@@ -462,15 +463,15 @@ export class TableCUDDirective {
462
463
  static { this.ɵfac = function TableCUDDirective_Factory(t) { return new (t || TableCUDDirective)(i0.ɵɵdirectiveInject(TableComponent, 2), i0.ɵɵdirectiveInject(i1.AbstractDialogService), i0.ɵɵdirectiveInject(i1.App)); }; }
463
464
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TableCUDDirective, selectors: [["", "wmTableCUD", ""]] }); }
464
465
  }
465
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableCUDDirective, [{
466
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableCUDDirective, [{
466
467
  type: Directive,
467
468
  args: [{
468
469
  selector: '[wmTableCUD]'
469
470
  }]
470
- }], function () { return [{ type: undefined, decorators: [{
471
+ }], () => [{ type: undefined, decorators: [{
471
472
  type: Self
472
473
  }, {
473
474
  type: Inject,
474
475
  args: [TableComponent]
475
- }] }, { type: i1.AbstractDialogService }, { type: i1.App }]; }, null); })();
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3VkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3RhYmxlL3NyYy90YWJsZS1jdWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUluRCxNQUFNLFNBQVMsR0FBRztJQUNkLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLE1BQU07SUFDZCxRQUFRLEVBQUUsUUFBUTtDQUNyQixDQUFDO0FBS0YsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixZQUM0QyxLQUFLLEVBQ3JDLGFBQW9DLEVBQ25DLEdBQVE7UUFGdUIsVUFBSyxHQUFMLEtBQUssQ0FBQTtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUVqQixLQUFLLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFD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QUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixTQUFTO1FBQ0wsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO2tGQTljUSxpQkFBaUIsdUJBR04sY0FBYztvRUFIekIsaUJBQWlCOzt1RkFBakIsaUJBQWlCO2NBSDdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsY0FBYzthQUMzQjs7c0JBSVEsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgJGludm9rZVdhdGNoZXJzLCAkYXBwRGlnZXN0LCBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsIEFwcCwgRGF0YVNvdXJjZSwgZXh0cmFjdEN1cnJlbnRJdGVtRXhwciwgdHJpZ2dlckZuIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgcmVmcmVzaERhdGFTb3VyY2UgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgJCwgXztcblxuY29uc3QgT1BFUkFUSU9OID0ge1xuICAgICdORVcnOiAnbmV3JyxcbiAgICAnRURJVCc6ICdlZGl0JyxcbiAgICAnREVMRVRFJzogJ2RlbGV0ZSdcbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtVGFibGVDVURdJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNVRERpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFRhYmxlQ29tcG9uZW50KSBwcml2YXRlIHRhYmxlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEFic3RyYWN0RGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSAgYXBwOiBBcHBcbiAgICApIHtcbiAgICAgICAgdGFibGUuaW5pdGlhdGVTZWxlY3RJdGVtID0gdGhpcy5pbml0aWF0ZVNlbGVjdEl0ZW0uYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUudXBkYXRlVmFyaWFibGUgPSB0aGlzLnVwZGF0ZVZhcmlhYmxlLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLnVwZGF0ZVJlY29yZCA9IHRoaXMudXBkYXRlUmVjb3JkLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmRlbGV0ZVJlY29yZCA9IHRoaXMuZGVsZXRlUmVjb3JkLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmluc2VydFJlY29yZCA9IHRoaXMuaW5zZXJ0UmVjb3JkLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmVkaXRSb3cgPSB0aGlzLmVkaXRSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUuYWRkTmV3Um93ID0gdGhpcy5hZGROZXdSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUuYWRkUm93ID0gdGhpcy5hZGROZXdSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUuZGVsZXRlUm93ID0gdGhpcy5kZWxldGVSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUub25SZWNvcmREZWxldGUgPSB0aGlzLm9uUmVjb3JkRGVsZXRlLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmhpZGVFZGl0Um93ID0gdGhpcy5oaWRlRWRpdFJvdy5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5zYXZlUm93ID0gdGhpcy5zYXZlUm93LmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmNhbmNlbFJvdyA9IHRoaXMuY2FuY2VsUm93LmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RJdGVtT25TdWNjZXNzKHJvdywgc2tpcFNlbGVjdEl0ZW0sIGNhbGxCYWNrKSB7XG4gICAgICAgIC8qJHRpbWVvdXQgaXMgdXNlZCBzbyB0aGF0IGJ5IHRoZW4gJGlzLmRhdGFzZXQgaGFzIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAgICAgKiBTZWxlY3Rpb24gb2YgdGhlIGl0ZW0gaXMgZG9uZSBpbiB0aGUgY2FsbGJhY2sgb2YgcGFnZSBuYXZpZ2F0aW9uIHNvIHRoYXQgdGhlIGl0ZW0gdGhhdCBuZWVkcyB0byBiZSBzZWxlY3RlZCBhY3R1YWxseSBleGlzdHMgaW4gdGhlIGdyaWQuKi9cbiAgICAgICAgLypEbyBub3Qgc2VsZWN0IHRoZSBpdGVtIGlmIHNraXAgc2VsZWN0aW9uIGl0ZW0gaXMgc3BlY2lmaWVkKi9cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXNraXBTZWxlY3RJdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5zZWxlY3RJdGVtKHJvdywgdGhpcy50YWJsZS5kYXRhc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyaWdnZXJGbihjYWxsQmFjayk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuXG4gICAgaW5pdGlhdGVTZWxlY3RJdGVtKGluZGV4LCByb3csIHNraXBTZWxlY3RJdGVtPywgaXNTdGF0aWNWYXJpYWJsZT8sIGNhbGxCYWNrPykge1xuICAgICAgICAvLyBJbiBjYXNlIG9mIG9uIGRlbWFuZCBhbmQgSW5maW5pdGUgU2Nyb2xsIHBhZ2luYXRpb24sIHdoZW4gbmV3IHJvdyBpcyBpbnNlcnRlZCBzaG93IGl0IGluIHRoZSBsYXN0IHBhZ2UgYW5kIGNvbnRpbnVlIHdpdGggY3VycmVudCBmbG93IGluc3RlYWQgb2YgbmF2aWdhdGluZyB1c2VyIHRvIHRoZSBsYXN0IHBhZ2VcbiAgICAgICAgaWYgKCh0aGlzLnRhYmxlLmdyaWRPcHRpb25zLmlzTmF2VHlwZVNjcm9sbE9yT25kZW1hbmQoKSApICYmICF0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuaXNEaXNhYmxlTmV4dCAmJiB0aGlzLnRhYmxlLmlzTmV3Um93SW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaXNOZXdSb3dJbnNlcnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qaW5kZXggPT09IFwibGFzdFwiIGluZGljYXRlcyB0aGF0IGFuIGluc2VydCBvcGVyYXRpb24gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHBlcmZvcm1lZCBhbmQgbmF2aWdhdGlvbiB0byB0aGUgbGFzdCBwYWdlIGlzIHJlcXVpcmVkLlxuICAgICAgICAgKiBIZW5jZSBpbmNyZW1lbnQgdGhlIFwiZGF0YVNpemVcIiBieSAxLiovXG4gICAgICAgIGlmIChpbmRleCA9PT0gJ2xhc3QnKSB7XG4gICAgICAgICAgICBpZiAoIWlzU3RhdGljVmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuZGF0YVNpemUgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qVXBkYXRlIHRoZSBkYXRhIGluIHRoZSBjdXJyZW50IHBhZ2UgaW4gdGhlIGdyaWQgYWZ0ZXIgaW5zZXJ0L3VwZGF0ZSBvcGVyYXRpb25zLiovXG4gICAgICAgICAgICBpZiAoIXRoaXMudGFibGUuaXNOYXZpZ2F0aW9uRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSAnY3VycmVudCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLypSZS1jYWxjdWxhdGUgdGhlIHBhZ2luZyB2YWx1ZXMgbGlrZSBwYWdlQ291bnQgZXRjIHRoYXQgY291bGQgY2hhbmdlIGR1ZSB0byBjaGFuZ2UgaW4gdGhlIGRhdGFTaXplLiovXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5jYWxjdWxhdGVQYWdpbmdWYWx1ZXMoKTtcbiAgICAgICAgLyogdXBkYXRpbmcgcGFnaW5hdGlvbiBmdWxsZGF0YSovXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5fX2Z1bGxEYXRhID0gdGhpcy50YWJsZS5fX2Z1bGxEYXRhO1xuICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IubmF2aWdhdGVQYWdlKGluZGV4LCBudWxsLCB0cnVlLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5pc05hdmlnYXRpb25FbmFibGVkKCkgfHwgaXNTdGF0aWNWYXJpYWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbU9uU3VjY2Vzcyhyb3csIHNraXBTZWxlY3RJdGVtLCBjYWxsQmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5lZGl0bW9kZSA9PT0gJ3F1aWNrZWRpdCcgJiYgIXNraXBTZWxlY3RJdGVtKSB7XG4gICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBxdWlja2VkaXRtb2RlLCBtYW51YWxseSBzZXQgYWN0aXZlIHJvdyB0byBhdHRhY2ggZXZlbnQgaGFuZGxlcnMgYW5kIGZvY3VzIHRoZSByb3dcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnc2V0QWN0aXZlUm93Jywgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFyaWFibGUocm93PywgY2FsbEJhY2s/KSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLnRhYmxlLmRhdGFzb3VyY2U7XG4gICAgICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkZFVENIX0RJU1RJTkNUX1ZBTFVFUyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmlzTmF2aWdhdGlvbkVuYWJsZWQoKSkge1xuICAgICAgICAgICAgY29uc3Qgc29ydEluZm8gPSB0aGlzLnRhYmxlLnNvcnRJbmZvO1xuICAgICAgICAgICAgY29uc3Qgc29ydE9wdGlvbnMgID0gc29ydEluZm8gJiYgc29ydEluZm8uZGlyZWN0aW9uID8gKHNvcnRJbmZvLmZpZWxkICsgJyAnICsgc29ydEluZm8uZGlyZWN0aW9uKSA6ICcnO1xuICAgICAgICAgICAgcmVmcmVzaERhdGFTb3VyY2UoZGF0YVNvdXJjZSwge1xuICAgICAgICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiB0aGlzLnRhYmxlLmdldEZpbHRlckZpZWxkcyh0aGlzLnRhYmxlLmZpbHRlckluZm8pLFxuICAgICAgICAgICAgICAgIG9yZGVyQnk6IHNvcnRPcHRpb25zLFxuICAgICAgICAgICAgICAgIG1hdGNoTW9kZTogJ2FueXdoZXJlaWdub3JlY2FzZSdcbiAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW1PblN1Y2Nlc3Mocm93LCB0cnVlLCBjYWxsQmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5zZXJ0U3VjY2Vzc0hhbmRsZXIocmVzcG9uc2UsIG9wdGlvbnMpIHtcbiAgICAgICAgLypEaXNwbGF5IGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiBlcnJvci4qL1xuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCAkb3BlcmF0aW9uOiBPUEVSQVRJT04uTkVXLCAkZGF0YTogcmVzcG9uc2UuZXJyb3J9KTtcbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdlcnJvcicsIHRoaXMudGFibGUuZXJyb3JtZXNzYWdlIHx8IHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmVycm9yLCByZXNwb25zZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5ncmlkT3B0aW9ucy5pc05hdlR5cGVTY3JvbGxPck9uZGVtYW5kKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmlzTmV3Um93SW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3cgPSAkKG9wdGlvbnMuZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCd0cicpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdoaWRlUm93RWRpdE1vZGUnLCByb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLm9uUm93aW5zZXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdzdWNjZXNzJywgdGhpcy50YWJsZS5pbnNlcnRtZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdGlhdGVTZWxlY3RJdGVtKHRoaXMudGFibGUuZ2V0TmF2aWdhdGlvblRhcmdldEJ5U29ydEluZm8oKSwgcmVzcG9uc2UsIHVuZGVmaW5lZCwgZmFsc2UsIG9wdGlvbnMuY2FsbEJhY2spO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGUocmVzcG9uc2UsIG9wdGlvbnMuY2FsbEJhY2spO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy50YWJsZS5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdGlhdGVTZWxlY3RJdGVtKHRoaXMudGFibGUuZ2V0TmF2aWdhdGlvblRhcmdldEJ5U29ydEluZm8oKSwgcmVzcG9uc2UsIHVuZGVmaW5lZCwgZmFsc2UsIG9wdGlvbnMuY2FsbEJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuc3VjY2VzcywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdyb3dpbnNlcnQnLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCAkZGF0YTogcmVzcG9uc2UsIHJvdzogcmVzcG9uc2V9KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgZ2VuZXJhdGVQYXRoKGJpbmRkYXRhc2V0KSB7XG4gICAgICAgIGxldCBwYXRoLCBpbmRleDtcbiAgICAgICAgbGV0IGRhdGFCb3VuZEV4cHIgPSB0aGlzLnRhYmxlLndpZGdldC4kYXR0cnMuZ2V0KCdkYXRhc2V0Ym91bmRleHByJyk7XG4gICAgICAgIGlmIChfLnN0YXJ0c1dpdGgoYmluZGRhdGFzZXQsICdpdGVtJykgJiYgZGF0YUJvdW5kRXhwcikge1xuICAgICAgICAgICAgaWYgKF8uc3RhcnRzV2l0aChkYXRhQm91bmRFeHByLCAnV2lkZ2V0cy4nKSkge1xuICAgICAgICAgICAgICAgIGRhdGFCb3VuZEV4cHIgPSBleHRyYWN0Q3VycmVudEl0ZW1FeHByKGRhdGFCb3VuZEV4cHIsIHRoaXMudGFibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyZW50TGlzdEl0ZW1zID0gdGhpcy50YWJsZS4kZWxlbWVudC5wYXJlbnRzKCcuYXBwLWxpc3QtaXRlbScpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXhBcnIgPSBfLm1hcChwYXJlbnRMaXN0SXRlbXMsIChpdGVtKSA9PiBfLnBhcnNlSW50KCQoaXRlbSkuYXR0cignbGlzdGl0ZW1pbmRleCcpKSk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5kZXhBcnIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBkYXRhQm91bmRFeHByID0gZGF0YUJvdW5kRXhwci5yZXBsYWNlKCckaScsIGluZGV4QXJyW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4ID0gXy5sYXN0KGluZGV4QXJyKTtcbiAgICAgICAgICAgIHBhdGggPSBkYXRhQm91bmRFeHByLnJlcGxhY2UoL15WYXJpYWJsZXNcXC4uKlxcLmRhdGFTZXQoW14uXSkqKFxcLnwkKS9nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGRhdGFzZXQgYXMgXCJWYXJpYWJsZXMuc3RhdGljVmFyMS5kYXRhU2V0WzFdLmRldGFpbHNcIiB0aGVuIHBhc3MgaW5kZXggYXMgMS5cbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4ID0gL15WYXJpYWJsZXNcXC4uKlxcLmRhdGFTZXQoW1xcW11bMC05XV0pL2c7XG4gICAgICAgICAgICBpZiAocmVnRXgudGVzdChiaW5kZGF0YXNldCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IF8ucGFyc2VJbnQoYmluZGRhdGFzZXQucmVwbGFjZSgvXlZhcmlhYmxlc1xcLi4qXFwuZGF0YVNldChbXFxbXSkvZywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGggPSBiaW5kZGF0YXNldC5yZXBsYWNlKC9eVmFyaWFibGVzXFwuLipcXC5kYXRhU2V0KFteLl0pKihcXC58JCkvZywgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhdGgsIGluZGV4IH07XG4gICAgfVxuXG4gICAgaW5zZXJ0UmVjb3JkKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMudGFibGUuZGF0YXNvdXJjZTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VOdW0gPSBkYXRhU291cmNlLnBhZ2luYXRpb24gJiYgZGF0YVNvdXJjZS5wYWdpbmF0aW9uLm51bWJlciArIDE7XG4gICAgICAgIGNvbnN0IGRhdGFPYmplY3QgPSB7XG4gICAgICAgICAgICByb3cgOiBvcHRpb25zLnJvdyxcbiAgICAgICAgICAgIHNraXBOb3RpZmljYXRpb24gOiB0cnVlLFxuICAgICAgICAgICAgcGVyaW9kOiBvcHRpb25zLnBlcmlvZFxuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNVUFBPUlRTX0NSVUQpIHx8ICFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSB8fCBkYXRhU291cmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJykge1xuICAgICAgICAgICAgaWYgKCFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhT3B0aW9ucyA9IHRoaXMuZ2VuZXJhdGVQYXRoKHRoaXMudGFibGUuYmluZGRhdGFzZXQpO1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5BRERfSVRFTSwge2l0ZW06IG9wdGlvbnMucm93LCBwYXRoOiBleHRyYU9wdGlvbnMucGF0aCwgcGFyZW50SW5kZXg6IGV4dHJhT3B0aW9ucy5pbmRleH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0U3VjY2Vzc0hhbmRsZXIob3B0aW9ucy5yb3csIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JTlNFUlRfUkVDT1JELCBkYXRhT2JqZWN0KS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydFN1Y2Nlc3NIYW5kbGVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3NraXBUb2dnbGVTdGF0ZSc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnb3BlcmF0aW9uJzogJ2xpc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZ2UnOiBjdXJyZW50UGFnZU51bVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdlcnJvcicsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsICRvcGVyYXRpb246IE9QRVJBVElPTi5ORVcsICRkYXRhOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnZXJyb3InLCB0aGlzLnRhYmxlLmVycm9ybWVzc2FnZSB8fCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmVycm9yLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuY2FsbEJhY2ssIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygncm93aW5zZXJ0JywgeyRldmVudDogb3B0aW9ucy5ldmVudCwgcm93OiBvcHRpb25zLnJvd30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTdWNjZXNzSGFuZGxlcihyZXNwb25zZSwgb3B0aW9ucykge1xuICAgICAgICAvKkRpc3BsYXkgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIGVycm9yLiovXG4gICAgICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdlcnJvcicsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsICRvcGVyYXRpb246IE9QRVJBVElPTi5FRElULCAkZGF0YTogcmVzcG9uc2UuZXJyb3J9KTtcbiAgICAgICAgICAgIC8qZGlzYWJsZSByZWFkb25seSBhbmQgc2hvdyB0aGUgYXBwcm9wcmlhdGUgZXJyb3IqL1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLm9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZU1lc3NhZ2UodHJ1ZSwgJ2Vycm9yJywgdGhpcy50YWJsZS5lcnJvcm1lc3NhZ2UgfHwgcmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuZXJyb3IsIHJlc3BvbnNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gJChvcHRpb25zLmV2ZW50LnRhcmdldCkuY2xvc2VzdCgndHInKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnaGlkZVJvd0VkaXRNb2RlJywgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vblJvd3VwZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnc3VjY2VzcycsIHRoaXMudGFibGUudXBkYXRlbWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uU1VQUE9SVFNfQ1JVRCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSgnY3VycmVudCcsIHJlc3BvbnNlLCB1bmRlZmluZWQsIGZhbHNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlKHJlc3BvbnNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMudGFibGUuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSgnY3VycmVudCcsIHJlc3BvbnNlLCB1bmRlZmluZWQsIGZhbHNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLnN1Y2Nlc3MsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygncm93dXBkYXRlJywgeyRldmVudDogb3B0aW9ucy5ldmVudCwgJGRhdGE6IHJlc3BvbnNlLCByb3c6IHJlc3BvbnNlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVSZWNvcmQob3B0aW9ucykge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy50YWJsZS5kYXRhc291cmNlO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZU51bSA9IGRhdGFTb3VyY2UucGFnaW5hdGlvbiAmJiBkYXRhU291cmNlLnBhZ2luYXRpb24ubnVtYmVyICsgMTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHtcbiAgICAgICAgICAgIHJvdyA6IG9wdGlvbnMucm93LFxuICAgICAgICAgICAgcHJldkRhdGEgOiBvcHRpb25zLnByZXZEYXRhLFxuICAgICAgICAgICAgc2tpcE5vdGlmaWNhdGlvbiA6IHRydWUsXG4gICAgICAgICAgICBwZXJpb2QgOiBvcHRpb25zLnBlcmlvZFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uU1VQUE9SVFNfQ1JVRCkgfHwgIWRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19BUElfQVdBUkUpIHx8IGRhdGFTb3VyY2UuY2F0ZWdvcnkgPT09ICd3bS5DcnVkVmFyaWFibGUnKSB7XG4gICAgICAgICAgICBpZiAoIWRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19BUElfQVdBUkUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmFPcHRpb25zID0gdGhpcy5nZW5lcmF0ZVBhdGgodGhpcy50YWJsZS5iaW5kZGF0YXNldCk7XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNFVF9JVEVNLCB7cHJldkl0ZW06IG9wdGlvbnMucHJldkRhdGEsIGl0ZW06IG9wdGlvbnMucm93LCBwYXRoOiBleHRyYU9wdGlvbnMucGF0aCwgcGFyZW50SW5kZXg6IGV4dHJhT3B0aW9ucy5pbmRleH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3VjY2Vzc0hhbmRsZXIob3B0aW9ucy5yb3csIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5VUERBVEVfUkVDT1JELCBkYXRhT2JqZWN0KS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1Y2Nlc3NIYW5kbGVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3NraXBUb2dnbGVTdGF0ZSc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnb3BlcmF0aW9uJzogJ2xpc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZ2UnOiBjdXJyZW50UGFnZU51bVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdlcnJvcicsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsICRvcGVyYXRpb246IE9QRVJBVElPTi5FRElULCAkZGF0YTogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFibGUub25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZU1lc3NhZ2UodHJ1ZSwgJ2Vycm9yJywgdGhpcy50YWJsZS5lcnJvcm1lc3NhZ2UgfHwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5lcnJvciwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmNhbGxCYWNrLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd3VwZGF0ZScsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsIHJvdzogb3B0aW9ucy5yb3d9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVjb3JkRGVsZXRlKGNhbGxCYWNrPykge1xuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIC8qQ2hlY2sgZm9yIHNhbml0eSovXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5kYXRhU2l6ZSAtPSAxO1xuICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLmNhbGN1bGF0ZVBhZ2luZ1ZhbHVlcygpO1xuICAgICAgICAgICAgLypJZiB0aGUgY3VycmVudCBwYWdlIGRvZXMgbm90IGNvbnRhaW4gYW55IHJlY29yZHMgZHVlIHRvIGRlbGV0aW9uLCB0aGVuIG5hdmlnYXRlIHRvIHRoZSBwcmV2aW91cyBwYWdlLiovXG4gICAgICAgICAgICBpbmRleCA9IHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5wYWdlQ291bnQgPCB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuZG4uY3VycmVudFBhZ2UgPyAncHJldicgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvKiB1cGRhdGluZyBwYWdpbmF0aW9uIGZ1bGxkYXRhKi9cbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5fX2Z1bGxEYXRhID0gdGhpcy50YWJsZS5fX2Z1bGxEYXRhO1xuICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLm5hdmlnYXRlUGFnZShpbmRleCwgbnVsbCwgdHJ1ZSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRm4oY2FsbEJhY2spO1xuICAgICAgICAgICAgICAgIH0sIHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZVN1Y2Nlc3NIYW5kbGVyKHJvdywgcmVzcG9uc2U/LCBldnQ/LCBjYWxsQmFjaz8pIHtcbiAgICAgICAgLyogY2hlY2sgdGhlIHJlc3BvbnNlIHdoZXRoZXIgdGhlIGRhdGEgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgb3Igbm90ICwgaWYgYW55IGVycm9yIG9jY3VycmVkIHNob3cgdGhlXG4gICAgICAgICAqIGNvcnJlc3BvbmRpbmcgZXJyb3IgLCBvdGhlciB3aXNlIHJlbW92ZSB0aGUgcm93IGZyb20gZ3JpZCAqL1xuICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdlcnJvcicsIHRoaXMudGFibGUuZXJyb3JtZXNzYWdlIHx8IHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uUmVjb3JkRGVsZXRlKGNhbGxCYWNrKTtcbiAgICAgICAgaWYgKHRoaXMudGFibGUuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNVUFBPUlRTX0NSVUQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlKHJvdywgY2FsbEJhY2spO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50YWJsZS5vblJvd2RlbGV0ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdzdWNjZXNzJywgdGhpcy50YWJsZS5kZWxldGVtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXN0b20gRXZlbnRIYW5kbGVyIGZvciByb3cgZGVsZXRlZCBldmVudFxuICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd2RlbGV0ZScsIHskZXZlbnQ6IGV2dCwgJGRhdGE6IHJvdywgcm93fSk7XG4gICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygncm93ZGVsZXRlZCcsIHskZXZlbnQ6IGV2dCwgJGRhdGE6IHJvdywgcm93fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVGbihvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLnRhYmxlLmRhdGFzb3VyY2U7XG4gICAgICAgIGxldCBpc0xhc3RQYWdlRWxlbWVudCwgY3VycmVudFBhZ2VOdW07XG4gICAgICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdoZW4gZGVsZXRlIG9wZXJhdGlvbiBpcyBleGVjdXRlZCwgdHVybiBvbiBpc1Jvd0RlbGV0ZWQgZmxhZyB0byBwZXJmb3JtIHRoZSBuZXh0IG9wZXJhdGlvbnMgaW4gdGFibGUgY29tcG9uZW50XG4gICAgICAgIGlmICh0aGlzLnRhYmxlLm9uRGVtYW5kTG9hZCB8fCB0aGlzLnRhYmxlLmluZlNjcm9sbCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5pc1Jvd0RlbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhU291cmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJykge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyV01FdmVudCgncmVzZXRFZGl0TW9kZScpO1xuICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2UucGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2VFbGVtZW50ID0gZGF0YVNvdXJjZS5wYWdpbmF0aW9uLmxhc3QgJiYgZGF0YVNvdXJjZS5wYWdpbmF0aW9uLm51bWJlck9mRWxlbWVudHMgPT09IDE7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhZ2VOdW0gPSBpc0xhc3RQYWdlRWxlbWVudCA/IGRhdGFTb3VyY2UucGFnaW5hdGlvbi5udW1iZXIgOiBkYXRhU291cmNlLnBhZ2luYXRpb24ubnVtYmVyICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNVUFBPUlRTX0NSVUQpIHx8ICFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSB8fCB0aGlzLnRhYmxlLl9pc0RlcGVuZGVudCB8fCBkYXRhU291cmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJykge1xuICAgICAgICAgICAgaWYgKCFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhT3B0aW9ucyA9IHRoaXMuZ2VuZXJhdGVQYXRoKHRoaXMudGFibGUuYmluZGRhdGFzZXQpO1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5SRU1PVkVfSVRFTSwge2l0ZW06IG9wdGlvbnMucm93LCBwYXRoOiBleHRyYU9wdGlvbnMucGF0aCwgcGFyZW50SW5kZXg6IGV4dHJhT3B0aW9ucy5pbmRleH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlU3VjY2Vzc0hhbmRsZXIob3B0aW9ucy5yb3csIHVuZGVmaW5lZCwgb3B0aW9ucy5ldnQsIG9wdGlvbnMuY2FsbEJhY2spO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5ERUxFVEVfUkVDT1JELCB7XG4gICAgICAgICAgICAgICAgcm93OiBvcHRpb25zLnJvdyxcbiAgICAgICAgICAgICAgICBza2lwTm90aWZpY2F0aW9uIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IG9wdGlvbnMucGVyaW9kXG4gICAgICAgICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3NIYW5kbGVyKHJlc3BvbnNlLCBvcHRpb25zLnJvdywgb3B0aW9ucy5ldnQsIG9wdGlvbnMuY2FsbEJhY2spO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhU291cmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJykge1xuICAgICAgICAgICAgICAgICAgICAvL3RoaXMudHJpZ2dlcldNRXZlbnQoJ3JlcmVuZGVyJywgZGF0YVNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5MSVNUX1JFQ09SRFMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdza2lwVG9nZ2xlU3RhdGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29wZXJhdGlvbic6ICdsaXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwYWdlJzogY3VycmVudFBhZ2VOdW1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEluIGNhc2Ugb2YgZGVsZXRpb24gZmFpbHVyZSwgdHVybiBpc1Jvd0RlbGV0ZWQgZmxhZyBvZmYgdG8gcHJldmVudCBleGVjdXRpbmcgY29kZSBpbiB0YWJsZSBjb21wXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaXNSb3dEZWxldGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaXNSb3dEZWxldGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmNhbGxCYWNrLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InLCB7JGV2ZW50OiBvcHRpb25zLmV2dCwgJG9wZXJhdGlvbjogT1BFUkFUSU9OLkRFTEVURSwgJGRhdGE6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLm9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdlcnJvcicsIHRoaXMudGFibGUuZXJyb3JtZXNzYWdlIHx8IGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygncm93ZGVsZXRlJywgeyRldmVudDogb3B0aW9ucy5ldnQsIHJvdzogb3B0aW9ucy5yb3d9KTtcbiAgICAgICAgfVxuICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5jYW5jZWxSb3dEZWxldGVDYWxsYmFjayk7XG4gICAgfVxuXG4gICAgZGVsZXRlUmVjb3JkKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmNvbmZpcm1kZWxldGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRm4ob3B0aW9ucyk7XG4gICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5jYW5jZWxSb3dEZWxldGVDYWxsYmFjayk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBcHBDb25maXJtRGlhbG9nKHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmFwcC5hcHBMb2NhbGUuTUVTU0FHRV9ERUxFVEVfUkVDT1JEIHx8ICdEZWxldGUgUmVjb3JkJyxcbiAgICAgICAgICAgIGljb25jbGFzczogJ3dpIHdpLWRlbGV0ZSBmYS1sZycsXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRhYmxlLmNvbmZpcm1kZWxldGUsXG4gICAgICAgICAgICBva3RleHQ6IHRoaXMudGFibGUuZGVsZXRlb2t0ZXh0LFxuICAgICAgICAgICAgY2FuY2VsdGV4dDogdGhpcy50YWJsZS5kZWxldGVjYW5jZWx0ZXh0LFxuICAgICAgICAgICAgb25PazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRm4ob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlQXBwQ29uZmlybURpYWxvZygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuY2FuY2VsUm93RGVsZXRlQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jbG9zZUFwcENvbmZpcm1EaWFsb2coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbk9wZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGb2N1cyB0aGUgY2FuY2VsIGJ1dHRvbiBvbiBvcGVuXG4gICAgICAgICAgICAgICAgJCgnLmNhbmNlbC1hY3Rpb24nKS5mb2N1cygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uRXNjYXBlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuY2FuY2VsUm93RGVsZXRlQ2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBlZGl0Um93KGV2dD8pIHtcbiAgICAgICAgbGV0IHJvdztcbiAgICAgICAgaWYgKHRoaXMudGFibGUuX2lzRGVwZW5kZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJXTUV2ZW50KCd1cGRhdGUnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZ0ICYmIGV2dC50YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCd0b2dnbGVFZGl0Um93JywgZXZ0LCB7J3NlbGVjdFJvdyc6IHRydWUsIGFjdGlvbjogJ2VkaXQnfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGb3IgbGl2ZSBmb3JtLCBjYWxsIHRoZSB1cGRhdGUgZnVuY3Rpb24gd2l0aCBzZWxlY3RlZCBpdGVtXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5lZGl0bW9kZSA9PT0gJ2Zvcm0nIHx8IHRoaXMudGFibGUuZWRpdG1vZGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgICAgICAgICAgcm93ID0gZXZ0IHx8IHRoaXMudGFibGUuc2VsZWN0ZWRJdGVtc1swXTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmdyaWRPcHRpb25zLmJlZm9yZVJvd1VwZGF0ZShyb3cpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0ZWQgaXRlbSB0byBnZXQgdXBkYXRlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSB0aGlzLnRhYmxlLmRhdGFncmlkRWxlbWVudC5maW5kKCd0ci5hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJvdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCd0b2dnbGVFZGl0Um93JywgdW5kZWZpbmVkLCB7JHJvdzogcm93LCBhY3Rpb246ICdlZGl0J30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJsZS5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICAgICAgLy8gIEZpeCBmb3IgW1dNUy0yMzI2M106IHNldCAnaXNEYXRhVXBkYXRlZEJ5VXNlcicgZmxhZyB0byBmYWxzZSBzaW5jZSBkYXRhc2V0IGlzIG5vdCBiZWluZyB1cGRhdGVkIGZyb20gc2NyaXB0XG4gICAgICAgIHRoaXMudGFibGUuZ3JpZE9wdGlvbnMuc2V0SXNEYXRhVXBkYXRlZEJ5VXNlcihmYWxzZSk7XG4gICAgfVxuXG4gICAgYWRkTmV3Um93KCkge1xuICAgICAgICBpZiAoIXRoaXMudGFibGUuaXNHcmlkRWRpdE1vZGUpIHsgLy8gSWYgZ3JpZCBpcyBhbHJlYWR5IGluIGVkaXQgbW9kZSwgZG8gbm90IGFkZCBuZXcgcm93XG4gICAgICAgICAgICB0aGlzLnRhYmxlLl90cmlnZ2VyZWRCeVVzZXIgPSB0cnVlO1xuICAgICAgICAgICAgLy8gIEZpeCBmb3IgW1dNUy0yMzI2M106IHNldCAnaXNEYXRhVXBkYXRlZEJ5VXNlcicgZmxhZyB0byBmYWxzZSBzaW5jZSBkYXRhc2V0IGlzIG5vdCBiZWluZyB1cGRhdGVkIGZyb20gc2NyaXB0XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmdyaWRPcHRpb25zLnNldElzRGF0YVVwZGF0ZWRCeVVzZXIoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ2FkZE5ld1JvdycpO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuX2xpdmVUYWJsZVBhcmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuX2xpdmVUYWJsZVBhcmVudC5hZGROZXdSb3coKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5faXNEZXBlbmRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJXTUV2ZW50KCdpbnNlcnQnKTtcbiAgICAgICAgICAgICAgICAvL3RoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdhZGROZXdSb3cnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdHJpZ2dlcldNRXZlbnQoZXZlbnROYW1lLCBkYXRhU291cmNlPykge1xuICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSk7XG4gICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnd20tZXZlbnQnLCB7ZXZlbnROYW1lLCB3aWRnZXROYW1lOiB0aGlzLnRhYmxlLm5hbWUsIHJvdzogdGhpcy50YWJsZS5zZWxlY3RlZGl0ZW0sIGRhdGFTb3VyY2U6IGRhdGFTb3VyY2V9KTtcbiAgICB9XG5cbiAgICBkZWxldGVSb3coZXZ0KSB7XG4gICAgICAgIGxldCByb3c7XG4gICAgICAgIGlmIChldnQgJiYgZXZ0LnRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ2RlbGV0ZVJvd0FuZFVwZGF0ZVNlbGVjdEFsbCcsIGV2dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0ZWQgaXRlbSB0byBnZXQgdXBkYXRlZFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcm93ID0gZXZ0IHx8IHRoaXMudGFibGUuc2VsZWN0ZWRJdGVtc1swXTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVJlY29yZCh7cm93fSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRhYmxlLl90cmlnZ2VyZWRCeVVzZXIgPSB0cnVlO1xuICAgICAgICAvLyAgRml4IGZvciBbV01TLTIzMjYzXTogc2V0ICdpc0RhdGFVcGRhdGVkQnlVc2VyJyBmbGFnIHRvIGZhbHNlIHNpbmNlIGRhdGFzZXQgaXMgbm90IGJlaW5nIHVwZGF0ZWQgZnJvbSBzY3JpcHRcbiAgICAgICAgdGhpcy50YWJsZS5ncmlkT3B0aW9ucy5zZXRJc0RhdGFVcGRhdGVkQnlVc2VyKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBGdW5jdGlvbiB0byBoaWRlIHRoZSBlZGl0ZWQgcm93XG4gICAgaGlkZUVkaXRSb3coKSB7XG4gICAgICAgIGNvbnN0ICRyb3cgPSB0aGlzLnRhYmxlLmRhdGFncmlkRWxlbWVudC5maW5kKCd0ci5yb3ctZWRpdGluZycpO1xuICAgICAgICBpZiAoJHJvdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdoaWRlUm93RWRpdE1vZGUnLCAkcm93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZ1bmN0aW9uIHRvIHNhdmUgdGhlIHJvd1xuICAgIHNhdmVSb3coKSB7XG4gICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdzYXZlUm93Jyk7XG4gICAgfVxuXG4gICAgLy8gRnVuY3Rpb24gdG8gY2FuY2VsIHRoZSBlZGl0XG4gICAgY2FuY2VsUm93KCkge1xuICAgICAgICBjb25zdCAkcm93ID0gdGhpcy50YWJsZS5kYXRhZ3JpZEVsZW1lbnQuZmluZCgndHIucm93LWVkaXRpbmcnKTtcbiAgICAgICAgaWYgKCRyb3cubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnY2FuY2VsRWRpdCcsICRyb3cpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
476
+ }] }, { type: i1.AbstractDialogService }, { type: i1.App }], null); })();
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3VkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3RhYmxlL3NyYy90YWJsZS1jdWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBSTFELE1BQU0sU0FBUyxHQUFHO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLFFBQVEsRUFBRSxRQUFRO0NBQ3JCLENBQUM7QUFLRixNQUFNLE9BQU8saUJBQWlCO0lBRTFCLFlBQzRDLEtBQUssRUFDckMsYUFBb0MsRUFDbkMsR0FBUTtRQUZ1QixVQUFLLEdBQUwsS0FBSyxDQUFBO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBRWpCLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLFFBQVE7UUFDckQ7cUpBQzZJO1FBQzdJLDhEQUE4RDtRQUM5RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLGNBQWUsRUFBRSxnQkFBaUIsRUFBRSxRQUFTO1FBQ3hFLG9MQUFvTDtRQUNwTCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUNEO2lEQUN5QztRQUN6QyxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsbUZBQW1GO1lBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN0QixDQUFDO1FBQ0wsQ0FBQztRQUNELHNHQUFzRztRQUN0RyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pELGlDQUFpQztRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUMxRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxXQUFXLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekQsK0ZBQStGO2dCQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQUksRUFBRSxRQUFTO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDWCxDQUFDO1FBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZHLGlCQUFpQixDQUFDLFVBQVUsRUFBRTtnQkFDMUIsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUMvRCxPQUFPLEVBQUUsV0FBVztnQkFDcEIsU0FBUyxFQUFFLG9CQUFvQjthQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVCxVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsUUFBUSxFQUFFLE9BQU87UUFDMUMsdURBQXVEO1FBQ3ZELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO1lBQ25ILElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RixDQUFDO1lBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDdkMsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4SCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVILENBQUM7WUFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7UUFDekcsQ0FBQztJQUNMLENBQUM7SUFHRCxZQUFZLENBQUMsV0FBVztRQUNwQixJQUFJLElBQUksRUFBRSxLQUFLLENBQUM7UUFDaEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNuRCxJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsYUFBYSxHQUFHLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RixLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFDRCxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ0osd0ZBQXdGO1lBQ3hGLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO1lBQ3JELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMxQixLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQ0QsSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFPO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakYsTUFBTSxVQUFVLEdBQUc7WUFDZixHQUFHLEVBQUcsT0FBTyxDQUFDLEdBQUc7WUFDakIsZ0JBQWdCLEVBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDekIsQ0FBQztRQUNGLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNoSyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDakksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2hELE9BQU87WUFDWCxDQUFDO1lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO29CQUM1QyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO3dCQUNsRCxpQkFBaUIsRUFBRSxJQUFJO3dCQUN2QixXQUFXLEVBQUUsTUFBTTt3QkFDbkIsTUFBTSxFQUFFLGNBQWM7cUJBQ3pCLENBQUMsQ0FBQztnQkFDUCxDQUFDO1lBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBQzFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUM5RSxDQUFDO2dCQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsUUFBUSxFQUFFLE9BQU87UUFDMUMsdURBQXVEO1FBQ3ZELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO1lBQ3BILG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0YsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUN6RyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFPO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakYsTUFBTSxVQUFVLEdBQUc7WUFDZixHQUFHLEVBQUcsT0FBTyxDQUFDLEdBQUc7WUFDakIsUUFBUSxFQUFHLE9BQU8sQ0FBQyxRQUFRO1lBQzNCLGdCQUFnQixFQUFHLElBQUk7WUFDdkIsTUFBTSxFQUFHLE9BQU8sQ0FBQyxNQUFNO1NBQzFCLENBQUM7UUFFRixJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxVQUFVLENBQUMsUUFBUSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDaEssSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9ELFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBQzdKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCxPQUFPO1lBQ1gsQ0FBQztZQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztvQkFDNUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTt3QkFDbEQsaUJBQWlCLEVBQUUsSUFBSTt3QkFDdkIsV0FBVyxFQUFFLE1BQU07d0JBQ25CLE1BQU0sRUFBRSxjQUFjO3FCQUN6QixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztZQUNMLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO2dCQUMzRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsQ0FBQztnQkFDOUUsQ0FBQztnQkFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFTO1FBQ3BCLElBQUksS0FBSyxDQUFDO1FBQ1Ysb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDakQseUdBQXlHO1lBQ3pHLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDMUcsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUMxRCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsR0FBRyxFQUFFLFFBQVMsRUFBRSxHQUFJLEVBQUUsUUFBUztRQUN4RDt1RUFDK0Q7UUFDL0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RixDQUFDO1lBQ0QsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTyxRQUFRLENBQUMsT0FBTztRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUNELGlIQUFpSDtRQUNqSCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QixpQkFBaUIsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLGdCQUFnQixLQUFLLENBQUMsQ0FBQztnQkFDL0YsY0FBYyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3pHLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvRCxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO2dCQUNwSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pGLE9BQU87WUFDWCxDQUFDO1lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtnQkFDbkQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixnQkFBZ0IsRUFBRyxJQUFJO2dCQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07YUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hGLElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO29CQUM1Qyw4Q0FBOEM7b0JBQzlDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUU7d0JBQ2xELGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCLFdBQVcsRUFBRSxNQUFNO3dCQUNuQixNQUFNLEVBQUUsY0FBYztxQkFDekIsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ1Asa0dBQWtHO2dCQUNsRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDcEMsQ0FBQztnQkFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUM5RSxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzNDLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztZQUNwQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMscUJBQXFCLElBQUksZUFBZTtZQUNsRSxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7WUFDdkMsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0MsQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0MsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1Qsa0NBQWtDO2dCQUNsQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxTQUFTLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBSTtRQUNSLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDO2FBQU0sQ0FBQztZQUNKLDZEQUE2RDtZQUM3RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDckUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELENBQUM7aUJBQU0sQ0FBQztnQkFDSiw0Q0FBNEM7Z0JBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDbkQsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztvQkFDM0YsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxzREFBc0Q7WUFDcEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsK0dBQStHO1lBQy9HLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlCLDZDQUE2QztZQUNqRCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVc7UUFDekMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRztRQUNULElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDSiw0Q0FBNEM7WUFDNUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUNuQywrR0FBK0c7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxXQUFXO1FBQ1AsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDTCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLE9BQU87UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsU0FBUztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7a0ZBOWNRLGlCQUFpQix1QkFHTixjQUFjO29FQUh6QixpQkFBaUI7O2lGQUFqQixpQkFBaUI7Y0FIN0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCOztzQkFJUSxJQUFJOztzQkFBSSxNQUFNO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyAkaW52b2tlV2F0Y2hlcnMsICRhcHBEaWdlc3QsIEFic3RyYWN0RGlhbG9nU2VydmljZSwgQXBwLCBEYXRhU291cmNlLCBleHRyYWN0Q3VycmVudEl0ZW1FeHByLCB0cmlnZ2VyRm4gfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyByZWZyZXNoRGF0YVNvdXJjZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7bGFzdCwgbWFwLCBwYXJzZUludCwgc3RhcnRzV2l0aH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IE9QRVJBVElPTiA9IHtcbiAgICAnTkVXJzogJ25ldycsXG4gICAgJ0VESVQnOiAnZWRpdCcsXG4gICAgJ0RFTEVURSc6ICdkZWxldGUnXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bVRhYmxlQ1VEXSdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDVUREaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUYWJsZUNvbXBvbmVudCkgcHJpdmF0ZSB0YWJsZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgIGFwcDogQXBwXG4gICAgKSB7XG4gICAgICAgIHRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSA9IHRoaXMuaW5pdGlhdGVTZWxlY3RJdGVtLmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLnVwZGF0ZVZhcmlhYmxlID0gdGhpcy51cGRhdGVWYXJpYWJsZS5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS51cGRhdGVSZWNvcmQgPSB0aGlzLnVwZGF0ZVJlY29yZC5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5kZWxldGVSZWNvcmQgPSB0aGlzLmRlbGV0ZVJlY29yZC5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5pbnNlcnRSZWNvcmQgPSB0aGlzLmluc2VydFJlY29yZC5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5lZGl0Um93ID0gdGhpcy5lZGl0Um93LmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmFkZE5ld1JvdyA9IHRoaXMuYWRkTmV3Um93LmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmFkZFJvdyA9IHRoaXMuYWRkTmV3Um93LmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLmRlbGV0ZVJvdyA9IHRoaXMuZGVsZXRlUm93LmJpbmQodGhpcyk7XG4gICAgICAgIHRhYmxlLm9uUmVjb3JkRGVsZXRlID0gdGhpcy5vblJlY29yZERlbGV0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5oaWRlRWRpdFJvdyA9IHRoaXMuaGlkZUVkaXRSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGFibGUuc2F2ZVJvdyA9IHRoaXMuc2F2ZVJvdy5iaW5kKHRoaXMpO1xuICAgICAgICB0YWJsZS5jYW5jZWxSb3cgPSB0aGlzLmNhbmNlbFJvdy5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0SXRlbU9uU3VjY2Vzcyhyb3csIHNraXBTZWxlY3RJdGVtLCBjYWxsQmFjaykge1xuICAgICAgICAvKiR0aW1lb3V0IGlzIHVzZWQgc28gdGhhdCBieSB0aGVuICRpcy5kYXRhc2V0IGhhcyB0aGUgdXBkYXRlZCB2YWx1ZS5cbiAgICAgICAgICogU2VsZWN0aW9uIG9mIHRoZSBpdGVtIGlzIGRvbmUgaW4gdGhlIGNhbGxiYWNrIG9mIHBhZ2UgbmF2aWdhdGlvbiBzbyB0aGF0IHRoZSBpdGVtIHRoYXQgbmVlZHMgdG8gYmUgc2VsZWN0ZWQgYWN0dWFsbHkgZXhpc3RzIGluIHRoZSBncmlkLiovXG4gICAgICAgIC8qRG8gbm90IHNlbGVjdCB0aGUgaXRlbSBpZiBza2lwIHNlbGVjdGlvbiBpdGVtIGlzIHNwZWNpZmllZCovXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFza2lwU2VsZWN0SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuc2VsZWN0SXRlbShyb3csIHRoaXMudGFibGUuZGF0YXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cmlnZ2VyRm4oY2FsbEJhY2spO1xuICAgICAgICB9LCAyNTApO1xuICAgIH1cblxuICAgIGluaXRpYXRlU2VsZWN0SXRlbShpbmRleCwgcm93LCBza2lwU2VsZWN0SXRlbT8sIGlzU3RhdGljVmFyaWFibGU/LCBjYWxsQmFjaz8pIHtcbiAgICAgICAgLy8gSW4gY2FzZSBvZiBvbiBkZW1hbmQgYW5kIEluZmluaXRlIFNjcm9sbCBwYWdpbmF0aW9uLCB3aGVuIG5ldyByb3cgaXMgaW5zZXJ0ZWQgc2hvdyBpdCBpbiB0aGUgbGFzdCBwYWdlIGFuZCBjb250aW51ZSB3aXRoIGN1cnJlbnQgZmxvdyBpbnN0ZWFkIG9mIG5hdmlnYXRpbmcgdXNlciB0byB0aGUgbGFzdCBwYWdlXG4gICAgICAgIGlmICgodGhpcy50YWJsZS5ncmlkT3B0aW9ucy5pc05hdlR5cGVTY3JvbGxPck9uZGVtYW5kKCkgKSAmJiAhdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLmlzRGlzYWJsZU5leHQgJiYgdGhpcy50YWJsZS5pc05ld1Jvd0luc2VydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmlzTmV3Um93SW5zZXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvKmluZGV4ID09PSBcImxhc3RcIiBpbmRpY2F0ZXMgdGhhdCBhbiBpbnNlcnQgb3BlcmF0aW9uIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgYW5kIG5hdmlnYXRpb24gdG8gdGhlIGxhc3QgcGFnZSBpcyByZXF1aXJlZC5cbiAgICAgICAgICogSGVuY2UgaW5jcmVtZW50IHRoZSBcImRhdGFTaXplXCIgYnkgMS4qL1xuICAgICAgICBpZiAoaW5kZXggPT09ICdsYXN0Jykge1xuICAgICAgICAgICAgaWYgKCFpc1N0YXRpY1ZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLmRhdGFTaXplICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKlVwZGF0ZSB0aGUgZGF0YSBpbiB0aGUgY3VycmVudCBwYWdlIGluIHRoZSBncmlkIGFmdGVyIGluc2VydC91cGRhdGUgb3BlcmF0aW9ucy4qL1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmlzTmF2aWdhdGlvbkVuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gJ2N1cnJlbnQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qUmUtY2FsY3VsYXRlIHRoZSBwYWdpbmcgdmFsdWVzIGxpa2UgcGFnZUNvdW50IGV0YyB0aGF0IGNvdWxkIGNoYW5nZSBkdWUgdG8gY2hhbmdlIGluIHRoZSBkYXRhU2l6ZS4qL1xuICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuY2FsY3VsYXRlUGFnaW5nVmFsdWVzKCk7XG4gICAgICAgIC8qIHVwZGF0aW5nIHBhZ2luYXRpb24gZnVsbGRhdGEqL1xuICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuX19mdWxsRGF0YSA9IHRoaXMudGFibGUuX19mdWxsRGF0YTtcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLm5hdmlnYXRlUGFnZShpbmRleCwgbnVsbCwgdHJ1ZSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaXNOYXZpZ2F0aW9uRW5hYmxlZCgpIHx8IGlzU3RhdGljVmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW1PblN1Y2Nlc3Mocm93LCBza2lwU2VsZWN0SXRlbSwgY2FsbEJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuZWRpdG1vZGUgPT09ICdxdWlja2VkaXQnICYmICFza2lwU2VsZWN0SXRlbSkge1xuICAgICAgICAgICAgICAgIC8vIEluIGNhc2Ugb2YgcXVpY2tlZGl0bW9kZSwgbWFudWFsbHkgc2V0IGFjdGl2ZSByb3cgdG8gYXR0YWNoIGV2ZW50IGhhbmRsZXJzIGFuZCBmb2N1cyB0aGUgcm93XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ3NldEFjdGl2ZVJvdycsIHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVZhcmlhYmxlKHJvdz8sIGNhbGxCYWNrPykge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy50YWJsZS5kYXRhc291cmNlO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5GRVRDSF9ESVNUSU5DVF9WQUxVRVMpO1xuXG4gICAgICAgIGlmICghdGhpcy50YWJsZS5pc05hdmlnYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRJbmZvID0gdGhpcy50YWJsZS5zb3J0SW5mbztcbiAgICAgICAgICAgIGNvbnN0IHNvcnRPcHRpb25zICA9IHNvcnRJbmZvICYmIHNvcnRJbmZvLmRpcmVjdGlvbiA/IChzb3J0SW5mby5maWVsZCArICcgJyArIHNvcnRJbmZvLmRpcmVjdGlvbikgOiAnJztcbiAgICAgICAgICAgIHJlZnJlc2hEYXRhU291cmNlKGRhdGFTb3VyY2UsIHtcbiAgICAgICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkczogdGhpcy50YWJsZS5nZXRGaWx0ZXJGaWVsZHModGhpcy50YWJsZS5maWx0ZXJJbmZvKSxcbiAgICAgICAgICAgICAgICBvcmRlckJ5OiBzb3J0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICBtYXRjaE1vZGU6ICdhbnl3aGVyZWlnbm9yZWNhc2UnXG4gICAgICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtT25TdWNjZXNzKHJvdywgdHJ1ZSwgY2FsbEJhY2spO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydFN1Y2Nlc3NIYW5kbGVyKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgICAgIC8qRGlzcGxheSBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgZXJyb3IuKi9cbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ2Vycm9yJywgeyRldmVudDogb3B0aW9ucy5ldmVudCwgJG9wZXJhdGlvbjogT1BFUkFUSU9OLk5FVywgJGRhdGE6IHJlc3BvbnNlLmVycm9yfSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMudGFibGUub25FcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnZXJyb3InLCB0aGlzLnRhYmxlLmVycm9ybWVzc2FnZSB8fCByZXNwb25zZS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5lcnJvciwgcmVzcG9uc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pc05ld1Jvd0luc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gJChvcHRpb25zLmV2ZW50LnRhcmdldCkuY2xvc2VzdCgndHInKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnaGlkZVJvd0VkaXRNb2RlJywgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vblJvd2luc2VydCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnc3VjY2VzcycsIHRoaXMudGFibGUuaW5zZXJ0bWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uU1VQUE9SVFNfQ1JVRCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSh0aGlzLnRhYmxlLmdldE5hdmlnYXRpb25UYXJnZXRCeVNvcnRJbmZvKCksIHJlc3BvbnNlLCB1bmRlZmluZWQsIGZhbHNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlKHJlc3BvbnNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMudGFibGUuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmluaXRpYXRlU2VsZWN0SXRlbSh0aGlzLnRhYmxlLmdldE5hdmlnYXRpb25UYXJnZXRCeVNvcnRJbmZvKCksIHJlc3BvbnNlLCB1bmRlZmluZWQsIGZhbHNlLCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLnN1Y2Nlc3MsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygncm93aW5zZXJ0JywgeyRldmVudDogb3B0aW9ucy5ldmVudCwgJGRhdGE6IHJlc3BvbnNlLCByb3c6IHJlc3BvbnNlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGdlbmVyYXRlUGF0aChiaW5kZGF0YXNldCkge1xuICAgICAgICBsZXQgcGF0aCwgaW5kZXg7XG4gICAgICAgIGxldCBkYXRhQm91bmRFeHByID0gdGhpcy50YWJsZS53aWRnZXQuJGF0dHJzLmdldCgnZGF0YXNldGJvdW5kZXhwcicpO1xuICAgICAgICBpZiAoc3RhcnRzV2l0aChiaW5kZGF0YXNldCwgJ2l0ZW0nKSAmJiBkYXRhQm91bmRFeHByKSB7XG4gICAgICAgICAgICBpZiAoc3RhcnRzV2l0aChkYXRhQm91bmRFeHByLCAnV2lkZ2V0cy4nKSkge1xuICAgICAgICAgICAgICAgIGRhdGFCb3VuZEV4cHIgPSBleHRyYWN0Q3VycmVudEl0ZW1FeHByKGRhdGFCb3VuZEV4cHIsIHRoaXMudGFibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyZW50TGlzdEl0ZW1zID0gdGhpcy50YWJsZS4kZWxlbWVudC5wYXJlbnRzKCcuYXBwLWxpc3QtaXRlbScpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXhBcnIgPSBtYXAocGFyZW50TGlzdEl0ZW1zLCAoaXRlbSkgPT4gcGFyc2VJbnQoJChpdGVtKS5hdHRyKCdsaXN0aXRlbWluZGV4JykpKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBpbmRleEFyci5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGRhdGFCb3VuZEV4cHIgPSBkYXRhQm91bmRFeHByLnJlcGxhY2UoJyRpJywgaW5kZXhBcnJbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXggPSBsYXN0KGluZGV4QXJyKTtcbiAgICAgICAgICAgIHBhdGggPSBkYXRhQm91bmRFeHByLnJlcGxhY2UoL15WYXJpYWJsZXNcXC4uKlxcLmRhdGFTZXQoW14uXSkqKFxcLnwkKS9nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGRhdGFzZXQgYXMgXCJWYXJpYWJsZXMuc3RhdGljVmFyMS5kYXRhU2V0WzFdLmRldGFpbHNcIiB0aGVuIHBhc3MgaW5kZXggYXMgMS5cbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4ID0gL15WYXJpYWJsZXNcXC4uKlxcLmRhdGFTZXQoW1xcW11bMC05XV0pL2c7XG4gICAgICAgICAgICBpZiAocmVnRXgudGVzdChiaW5kZGF0YXNldCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IHBhcnNlSW50KGJpbmRkYXRhc2V0LnJlcGxhY2UoL15WYXJpYWJsZXNcXC4uKlxcLmRhdGFTZXQoW1xcW10pL2csICcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXRoID0gYmluZGRhdGFzZXQucmVwbGFjZSgvXlZhcmlhYmxlc1xcLi4qXFwuZGF0YVNldChbXi5dKSooXFwufCQpL2csICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBwYXRoLCBpbmRleCB9O1xuICAgIH1cblxuICAgIGluc2VydFJlY29yZChvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLnRhYmxlLmRhdGFzb3VyY2U7XG4gICAgICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlTnVtID0gZGF0YVNvdXJjZS5wYWdpbmF0aW9uICYmIGRhdGFTb3VyY2UucGFnaW5hdGlvbi5udW1iZXIgKyAxO1xuICAgICAgICBjb25zdCBkYXRhT2JqZWN0ID0ge1xuICAgICAgICAgICAgcm93IDogb3B0aW9ucy5yb3csXG4gICAgICAgICAgICBza2lwTm90aWZpY2F0aW9uIDogdHJ1ZSxcbiAgICAgICAgICAgIHBlcmlvZDogb3B0aW9ucy5wZXJpb2RcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSB8fCAhZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkgfHwgZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIGlmICghZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRyYU9wdGlvbnMgPSB0aGlzLmdlbmVyYXRlUGF0aCh0aGlzLnRhYmxlLmJpbmRkYXRhc2V0KTtcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uQUREX0lURU0sIHtpdGVtOiBvcHRpb25zLnJvdywgcGF0aDogZXh0cmFPcHRpb25zLnBhdGgsIHBhcmVudEluZGV4OiBleHRyYU9wdGlvbnMuaW5kZXh9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydFN1Y2Nlc3NIYW5kbGVyKG9wdGlvbnMucm93LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSU5TRVJUX1JFQ09SRCwgZGF0YU9iamVjdCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRTdWNjZXNzSGFuZGxlcihyZXNwb25zZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2UuY2F0ZWdvcnkgPT09ICd3bS5DcnVkVmFyaWFibGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5MSVNUX1JFQ09SRFMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdza2lwVG9nZ2xlU3RhdGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29wZXJhdGlvbic6ICdsaXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwYWdlJzogY3VycmVudFBhZ2VOdW1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCAkb3BlcmF0aW9uOiBPUEVSQVRJT04uTkVXLCAkZGF0YTogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFibGUub25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZU1lc3NhZ2UodHJ1ZSwgJ2Vycm9yJywgdGhpcy50YWJsZS5lcnJvcm1lc3NhZ2UgfHwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5lcnJvciwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmNhbGxCYWNrLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd2luc2VydCcsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsIHJvdzogb3B0aW9ucy5yb3d9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3VjY2Vzc0hhbmRsZXIocmVzcG9uc2UsIG9wdGlvbnMpIHtcbiAgICAgICAgLypEaXNwbGF5IGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiBlcnJvci4qL1xuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCAkb3BlcmF0aW9uOiBPUEVSQVRJT04uRURJVCwgJGRhdGE6IHJlc3BvbnNlLmVycm9yfSk7XG4gICAgICAgICAgICAvKmRpc2FibGUgcmVhZG9ubHkgYW5kIHNob3cgdGhlIGFwcHJvcHJpYXRlIGVycm9yKi9cbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdlcnJvcicsIHRoaXMudGFibGUuZXJyb3JtZXNzYWdlIHx8IHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmVycm9yLCByZXNwb25zZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5ldmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQob3B0aW9ucy5ldmVudC50YXJnZXQpLmNsb3Nlc3QoJ3RyJyk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ2hpZGVSb3dFZGl0TW9kZScsIHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMudGFibGUub25Sb3d1cGRhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZU1lc3NhZ2UodHJ1ZSwgJ3N1Y2Nlc3MnLCB0aGlzLnRhYmxlLnVwZGF0ZW1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNVUFBPUlRTX0NSVUQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0oJ2N1cnJlbnQnLCByZXNwb25zZSwgdW5kZWZpbmVkLCBmYWxzZSwgb3B0aW9ucy5jYWxsQmFjayk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYXJpYWJsZShyZXNwb25zZSwgb3B0aW9ucy5jYWxsQmFjayk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnRhYmxlLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19BUElfQVdBUkUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5pbml0aWF0ZVNlbGVjdEl0ZW0oJ2N1cnJlbnQnLCByZXNwb25zZSwgdW5kZWZpbmVkLCBmYWxzZSwgb3B0aW9ucy5jYWxsQmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5zdWNjZXNzLCByZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd3VwZGF0ZScsIHskZXZlbnQ6IG9wdGlvbnMuZXZlbnQsICRkYXRhOiByZXNwb25zZSwgcm93OiByZXNwb25zZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUmVjb3JkKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMudGFibGUuZGF0YXNvdXJjZTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VOdW0gPSBkYXRhU291cmNlLnBhZ2luYXRpb24gJiYgZGF0YVNvdXJjZS5wYWdpbmF0aW9uLm51bWJlciArIDE7XG4gICAgICAgIGNvbnN0IGRhdGFPYmplY3QgPSB7XG4gICAgICAgICAgICByb3cgOiBvcHRpb25zLnJvdyxcbiAgICAgICAgICAgIHByZXZEYXRhIDogb3B0aW9ucy5wcmV2RGF0YSxcbiAgICAgICAgICAgIHNraXBOb3RpZmljYXRpb24gOiB0cnVlLFxuICAgICAgICAgICAgcGVyaW9kIDogb3B0aW9ucy5wZXJpb2RcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLlNVUFBPUlRTX0NSVUQpIHx8ICFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSB8fCBkYXRhU291cmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJykge1xuICAgICAgICAgICAgaWYgKCFkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhT3B0aW9ucyA9IHRoaXMuZ2VuZXJhdGVQYXRoKHRoaXMudGFibGUuYmluZGRhdGFzZXQpO1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TRVRfSVRFTSwge3ByZXZJdGVtOiBvcHRpb25zLnByZXZEYXRhLCBpdGVtOiBvcHRpb25zLnJvdywgcGF0aDogZXh0cmFPcHRpb25zLnBhdGgsIHBhcmVudEluZGV4OiBleHRyYU9wdGlvbnMuaW5kZXh9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1Y2Nlc3NIYW5kbGVyKG9wdGlvbnMucm93LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uVVBEQVRFX1JFQ09SRCwgZGF0YU9iamVjdCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdWNjZXNzSGFuZGxlcihyZXNwb25zZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2UuY2F0ZWdvcnkgPT09ICd3bS5DcnVkVmFyaWFibGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5MSVNUX1JFQ09SRFMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdza2lwVG9nZ2xlU3RhdGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29wZXJhdGlvbic6ICdsaXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwYWdlJzogY3VycmVudFBhZ2VOdW1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCAkb3BlcmF0aW9uOiBPUEVSQVRJT04uRURJVCwgJGRhdGE6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLm9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS50b2dnbGVNZXNzYWdlKHRydWUsICdlcnJvcicsIHRoaXMudGFibGUuZXJyb3JtZXNzYWdlIHx8IGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuZXJyb3IsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5jYWxsQmFjaywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdyb3d1cGRhdGUnLCB7JGV2ZW50OiBvcHRpb25zLmV2ZW50LCByb3c6IG9wdGlvbnMucm93fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlY29yZERlbGV0ZShjYWxsQmFjaz8pIHtcbiAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICAvKkNoZWNrIGZvciBzYW5pdHkqL1xuICAgICAgICBpZiAodGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuZGF0YVNpemUgLT0gMTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5jYWxjdWxhdGVQYWdpbmdWYWx1ZXMoKTtcbiAgICAgICAgICAgIC8qSWYgdGhlIGN1cnJlbnQgcGFnZSBkb2VzIG5vdCBjb250YWluIGFueSByZWNvcmRzIGR1ZSB0byBkZWxldGlvbiwgdGhlbiBuYXZpZ2F0ZSB0byB0aGUgcHJldmlvdXMgcGFnZS4qL1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IucGFnZUNvdW50IDwgdGhpcy50YWJsZS5kYXRhTmF2aWdhdG9yLmRuLmN1cnJlbnRQYWdlID8gJ3ByZXYnIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgLyogdXBkYXRpbmcgcGFnaW5hdGlvbiBmdWxsZGF0YSovXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmRhdGFOYXZpZ2F0b3IuX19mdWxsRGF0YSA9IHRoaXMudGFibGUuX19mdWxsRGF0YTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YU5hdmlnYXRvci5uYXZpZ2F0ZVBhZ2UoaW5kZXgsIG51bGwsIHRydWUsICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckZuKGNhbGxCYWNrKTtcbiAgICAgICAgICAgICAgICB9LCB1bmRlZmluZWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVTdWNjZXNzSGFuZGxlcihyb3csIHJlc3BvbnNlPywgZXZ0PywgY2FsbEJhY2s/KSB7XG4gICAgICAgIC8qIGNoZWNrIHRoZSByZXNwb25zZSB3aGV0aGVyIHRoZSBkYXRhIHN1Y2Nlc3NmdWxseSBkZWxldGVkIG9yIG5vdCAsIGlmIGFueSBlcnJvciBvY2N1cnJlZCBzaG93IHRoZVxuICAgICAgICAgKiBjb3JyZXNwb25kaW5nIGVycm9yICwgb3RoZXIgd2lzZSByZW1vdmUgdGhlIHJvdyBmcm9tIGdyaWQgKi9cbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudGFibGUub25FcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnZXJyb3InLCB0aGlzLnRhYmxlLmVycm9ybWVzc2FnZSB8fCByZXNwb25zZS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblJlY29yZERlbGV0ZShjYWxsQmFjayk7XG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYXJpYWJsZShyb3csIGNhbGxCYWNrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudGFibGUub25Sb3dkZWxldGUpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnc3VjY2VzcycsIHRoaXMudGFibGUuZGVsZXRlbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VzdG9tIEV2ZW50SGFuZGxlciBmb3Igcm93IGRlbGV0ZWQgZXZlbnRcbiAgICAgICAgdGhpcy50YWJsZS5pbnZva2VFdmVudENhbGxiYWNrKCdyb3dkZWxldGUnLCB7JGV2ZW50OiBldnQsICRkYXRhOiByb3csIHJvd30pO1xuICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd2RlbGV0ZWQnLCB7JGV2ZW50OiBldnQsICRkYXRhOiByb3csIHJvd30pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlRm4ob3B0aW9ucykge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy50YWJsZS5kYXRhc291cmNlO1xuICAgICAgICBsZXQgaXNMYXN0UGFnZUVsZW1lbnQsIGN1cnJlbnRQYWdlTnVtO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB3aGVuIGRlbGV0ZSBvcGVyYXRpb24gaXMgZXhlY3V0ZWQsIHR1cm4gb24gaXNSb3dEZWxldGVkIGZsYWcgdG8gcGVyZm9ybSB0aGUgbmV4dCBvcGVyYXRpb25zIGluIHRhYmxlIGNvbXBvbmVudFxuICAgICAgICBpZiAodGhpcy50YWJsZS5vbkRlbWFuZExvYWQgfHwgdGhpcy50YWJsZS5pbmZTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaXNSb3dEZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcldNRXZlbnQoJ3Jlc2V0RWRpdE1vZGUnKTtcbiAgICAgICAgICAgIGlmIChkYXRhU291cmNlLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpc0xhc3RQYWdlRWxlbWVudCA9IGRhdGFTb3VyY2UucGFnaW5hdGlvbi5sYXN0ICYmIGRhdGFTb3VyY2UucGFnaW5hdGlvbi5udW1iZXJPZkVsZW1lbnRzID09PSAxO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlTnVtID0gaXNMYXN0UGFnZUVsZW1lbnQgPyBkYXRhU291cmNlLnBhZ2luYXRpb24ubnVtYmVyIDogZGF0YVNvdXJjZS5wYWdpbmF0aW9uLm51bWJlciArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSB8fCAhZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkgfHwgdGhpcy50YWJsZS5faXNEZXBlbmRlbnQgfHwgZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIGlmICghZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRyYU9wdGlvbnMgPSB0aGlzLmdlbmVyYXRlUGF0aCh0aGlzLnRhYmxlLmJpbmRkYXRhc2V0KTtcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uUkVNT1ZFX0lURU0sIHtpdGVtOiBvcHRpb25zLnJvdywgcGF0aDogZXh0cmFPcHRpb25zLnBhdGgsIHBhcmVudEluZGV4OiBleHRyYU9wdGlvbnMuaW5kZXh9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3NIYW5kbGVyKG9wdGlvbnMucm93LCB1bmRlZmluZWQsIG9wdGlvbnMuZXZ0LCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uREVMRVRFX1JFQ09SRCwge1xuICAgICAgICAgICAgICAgIHJvdzogb3B0aW9ucy5yb3csXG4gICAgICAgICAgICAgICAgc2tpcE5vdGlmaWNhdGlvbiA6IHRydWUsXG4gICAgICAgICAgICAgICAgcGVyaW9kOiBvcHRpb25zLnBlcmlvZFxuICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzSGFuZGxlcihyZXNwb25zZSwgb3B0aW9ucy5yb3csIG9wdGlvbnMuZXZ0LCBvcHRpb25zLmNhbGxCYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy90aGlzLnRyaWdnZXJXTUV2ZW50KCdyZXJlbmRlcicsIGRhdGFTb3VyY2UpO1xuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uTElTVF9SRUNPUkRTLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnc2tpcFRvZ2dsZVN0YXRlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdvcGVyYXRpb24nOiAnbGlzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAncGFnZSc6IGN1cnJlbnRQYWdlTnVtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGRlbGV0aW9uIGZhaWx1cmUsIHR1cm4gaXNSb3dEZWxldGVkIGZsYWcgb2ZmIHRvIHByZXZlbnQgZXhlY3V0aW5nIGNvZGUgaW4gdGFibGUgY29tcFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmlzUm93RGVsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmlzUm93RGVsZXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyRm4ob3B0aW9ucy5jYWxsQmFjaywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ2Vycm9yJywgeyRldmVudDogb3B0aW9ucy5ldnQsICRvcGVyYXRpb246IE9QRVJBVElPTi5ERUxFVEUsICRkYXRhOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5vbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUudG9nZ2xlTWVzc2FnZSh0cnVlLCAnZXJyb3InLCB0aGlzLnRhYmxlLmVycm9ybWVzc2FnZSB8fCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmludm9rZUV2ZW50Q2FsbGJhY2soJ3Jvd2RlbGV0ZScsIHskZXZlbnQ6IG9wdGlvbnMuZXZ0LCByb3c6IG9wdGlvbnMucm93fSk7XG4gICAgICAgIH1cbiAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuY2FuY2VsUm93RGVsZXRlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIGRlbGV0ZVJlY29yZChvcHRpb25zKSB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZS5jb25maXJtZGVsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZuKG9wdGlvbnMpO1xuICAgICAgICAgICAgdHJpZ2dlckZuKG9wdGlvbnMuY2FuY2VsUm93RGVsZXRlQ2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93QXBwQ29uZmlybURpYWxvZyh7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5hcHAuYXBwTG9jYWxlLk1FU1NBR0VfREVMRVRFX1JFQ09SRCB8fCAnRGVsZXRlIFJlY29yZCcsXG4gICAgICAgICAgICBpY29uY2xhc3M6ICd3aSB3aS1kZWxldGUgZmEtbGcnLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50YWJsZS5jb25maXJtZGVsZXRlLFxuICAgICAgICAgICAgb2t0ZXh0OiB0aGlzLnRhYmxlLmRlbGV0ZW9rdGV4dCxcbiAgICAgICAgICAgIGNhbmNlbHRleHQ6IHRoaXMudGFibGUuZGVsZXRlY2FuY2VsdGV4dCxcbiAgICAgICAgICAgIG9uT2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUZuKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jbG9zZUFwcENvbmZpcm1EaWFsb2coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNhbmNlbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmNhbmNlbFJvd0RlbGV0ZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2VBcHBDb25maXJtRGlhbG9nKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25PcGVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gRm9jdXMgdGhlIGNhbmNlbCBidXR0b24gb24gb3BlblxuICAgICAgICAgICAgICAgICQoJy5jYW5jZWwtYWN0aW9uJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkVzY2FwZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyaWdnZXJGbihvcHRpb25zLmNhbmNlbFJvd0RlbGV0ZUNhbGxiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZWRpdFJvdyhldnQ/KSB7XG4gICAgICAgIGxldCByb3c7XG4gICAgICAgIGlmICh0aGlzLnRhYmxlLl9pc0RlcGVuZGVudCkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyV01FdmVudCgndXBkYXRlJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2dCAmJiBldnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgndG9nZ2xlRWRpdFJvdycsIGV2dCwgeydzZWxlY3RSb3cnOiB0cnVlLCBhY3Rpb246ICdlZGl0J30pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRm9yIGxpdmUgZm9ybSwgY2FsbCB0aGUgdXBkYXRlIGZ1bmN0aW9uIHdpdGggc2VsZWN0ZWQgaXRlbVxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuZWRpdG1vZGUgPT09ICdmb3JtJyB8fCB0aGlzLnRhYmxlLmVkaXRtb2RlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgICAgIHJvdyA9IGV2dCB8fCB0aGlzLnRhYmxlLnNlbGVjdGVkSXRlbXNbMF07XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5ncmlkT3B0aW9ucy5iZWZvcmVSb3dVcGRhdGUocm93KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0gdG8gZ2V0IHVwZGF0ZWRcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcm93ID0gdGhpcy50YWJsZS5kYXRhZ3JpZEVsZW1lbnQuZmluZCgndHIuYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3cubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgndG9nZ2xlRWRpdFJvdycsIHVuZGVmaW5lZCwgeyRyb3c6IHJvdywgYWN0aW9uOiAnZWRpdCd9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFibGUuX3RyaWdnZXJlZEJ5VXNlciA9IHRydWU7XG4gICAgICAgIC8vICBGaXggZm9yIFtXTVMtMjMyNjNdOiBzZXQgJ2lzRGF0YVVwZGF0ZWRCeVVzZXInIGZsYWcgdG8gZmFsc2Ugc2luY2UgZGF0YXNldCBpcyBub3QgYmVpbmcgdXBkYXRlZCBmcm9tIHNjcmlwdFxuICAgICAgICB0aGlzLnRhYmxlLmdyaWRPcHRpb25zLnNldElzRGF0YVVwZGF0ZWRCeVVzZXIoZmFsc2UpO1xuICAgIH1cblxuICAgIGFkZE5ld1JvdygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmlzR3JpZEVkaXRNb2RlKSB7IC8vIElmIGdyaWQgaXMgYWxyZWFkeSBpbiBlZGl0IG1vZGUsIGRvIG5vdCBhZGQgbmV3IHJvd1xuICAgICAgICAgICAgdGhpcy50YWJsZS5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vICBGaXggZm9yIFtXTVMtMjMyNjNdOiBzZXQgJ2lzRGF0YVVwZGF0ZWRCeVVzZXInIGZsYWcgdG8gZmFsc2Ugc2luY2UgZGF0YXNldCBpcyBub3QgYmVpbmcgdXBkYXRlZCBmcm9tIHNjcmlwdFxuICAgICAgICAgICAgdGhpcy50YWJsZS5ncmlkT3B0aW9ucy5zZXRJc0RhdGFVcGRhdGVkQnlVc2VyKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdhZGROZXdSb3cnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLl9saXZlVGFibGVQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLl9saXZlVGFibGVQYXJlbnQuYWRkTmV3Um93KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGFibGUuX2lzRGVwZW5kZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyV01FdmVudCgnaW5zZXJ0Jyk7XG4gICAgICAgICAgICAgICAgLy90aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnYWRkTmV3Um93Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJXTUV2ZW50KGV2ZW50TmFtZSwgZGF0YVNvdXJjZT8pIHtcbiAgICAgICAgJGludm9rZVdhdGNoZXJzKHRydWUpO1xuICAgICAgICB0aGlzLmFwcC5ub3RpZnkoJ3dtLWV2ZW50Jywge2V2ZW50TmFtZSwgd2lkZ2V0TmFtZTogdGhpcy50YWJsZS5uYW1lLCByb3c6IHRoaXMudGFibGUuc2VsZWN0ZWRpdGVtLCBkYXRhU291cmNlOiBkYXRhU291cmNlfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlUm93KGV2dCkge1xuICAgICAgICBsZXQgcm93O1xuICAgICAgICBpZiAoZXZ0ICYmIGV2dC50YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FsbERhdGFHcmlkTWV0aG9kKCdkZWxldGVSb3dBbmRVcGRhdGVTZWxlY3RBbGwnLCBldnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0gdG8gZ2V0IHVwZGF0ZWRcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJvdyA9IGV2dCB8fCB0aGlzLnRhYmxlLnNlbGVjdGVkSXRlbXNbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVSZWNvcmQoe3Jvd30pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50YWJsZS5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICAgICAgLy8gIEZpeCBmb3IgW1dNUy0yMzI2M106IHNldCAnaXNEYXRhVXBkYXRlZEJ5VXNlcicgZmxhZyB0byBmYWxzZSBzaW5jZSBkYXRhc2V0IGlzIG5vdCBiZWluZyB1cGRhdGVkIGZyb20gc2NyaXB0XG4gICAgICAgIHRoaXMudGFibGUuZ3JpZE9wdGlvbnMuc2V0SXNEYXRhVXBkYXRlZEJ5VXNlcihmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gRnVuY3Rpb24gdG8gaGlkZSB0aGUgZWRpdGVkIHJvd1xuICAgIGhpZGVFZGl0Um93KCkge1xuICAgICAgICBjb25zdCAkcm93ID0gdGhpcy50YWJsZS5kYXRhZ3JpZEVsZW1lbnQuZmluZCgndHIucm93LWVkaXRpbmcnKTtcbiAgICAgICAgaWYgKCRyb3cubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnaGlkZVJvd0VkaXRNb2RlJywgJHJvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGdW5jdGlvbiB0byBzYXZlIHRoZSByb3dcbiAgICBzYXZlUm93KCkge1xuICAgICAgICB0aGlzLnRhYmxlLmNhbGxEYXRhR3JpZE1ldGhvZCgnc2F2ZVJvdycpO1xuICAgIH1cblxuICAgIC8vIEZ1bmN0aW9uIHRvIGNhbmNlbCB0aGUgZWRpdFxuICAgIGNhbmNlbFJvdygpIHtcbiAgICAgICAgY29uc3QgJHJvdyA9IHRoaXMudGFibGUuZGF0YWdyaWRFbGVtZW50LmZpbmQoJ3RyLnJvdy1lZGl0aW5nJyk7XG4gICAgICAgIGlmICgkcm93Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZS5jYWxsRGF0YUdyaWRNZXRob2QoJ2NhbmNlbEVkaXQnLCAkcm93KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==