@cuby-ui/core 0.0.563 → 0.0.564

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 (539) hide show
  1. package/README.md +811 -811
  2. package/components/filter-bar/components/date-filter/date-filter.component.d.ts +1 -1
  3. package/components/notification/notification.component.d.ts +2 -2
  4. package/directives/tooltip/tooltip.component.d.ts +1 -1
  5. package/esm2022/animations/animations.mjs +1 -1
  6. package/esm2022/animations/index.mjs +1 -1
  7. package/esm2022/classes/accessors.mjs +1 -1
  8. package/esm2022/classes/driver.mjs +1 -1
  9. package/esm2022/classes/index.mjs +1 -1
  10. package/esm2022/classes/vehicle.mjs +1 -1
  11. package/esm2022/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  12. package/esm2022/components/accordion/accordion-item/accordion-item.options.mjs +1 -1
  13. package/esm2022/components/accordion/accordion.component.mjs +3 -3
  14. package/esm2022/components/accordion/accordion.directive.mjs +1 -1
  15. package/esm2022/components/accordion/accordion.module.mjs +1 -1
  16. package/esm2022/components/accordion/index.mjs +1 -1
  17. package/esm2022/components/alert/alert.component.mjs +3 -3
  18. package/esm2022/components/alert/alert.interfaces.mjs +1 -1
  19. package/esm2022/components/alert/alert.module.mjs +1 -1
  20. package/esm2022/components/alert/alert.service.mjs +1 -1
  21. package/esm2022/components/alert/alert.tokens.mjs +1 -1
  22. package/esm2022/components/alert/alert.types.mjs +1 -1
  23. package/esm2022/components/alert/alerts.component.mjs +3 -3
  24. package/esm2022/components/alert/index.mjs +1 -1
  25. package/esm2022/components/alert-hint/alert-hint.component.mjs +3 -3
  26. package/esm2022/components/alert-hint/error-status.mjs +1 -1
  27. package/esm2022/components/alert-hint/index.mjs +1 -1
  28. package/esm2022/components/badge/badge.component.mjs +3 -3
  29. package/esm2022/components/badge/badge.module.mjs +1 -1
  30. package/esm2022/components/badge/badge.options.mjs +1 -1
  31. package/esm2022/components/badge/index.mjs +1 -1
  32. package/esm2022/components/banner/banner.component.mjs +3 -3
  33. package/esm2022/components/banner/banner.module.mjs +1 -1
  34. package/esm2022/components/banner/banner.options.mjs +1 -1
  35. package/esm2022/components/banner/index.mjs +1 -1
  36. package/esm2022/components/breadcrumbs/breadcrumb/breadcrumb.component.mjs +3 -3
  37. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  38. package/esm2022/components/breadcrumbs/breadcrumbs.module.mjs +1 -1
  39. package/esm2022/components/breadcrumbs/index.mjs +1 -1
  40. package/esm2022/components/button/button.component.mjs +3 -3
  41. package/esm2022/components/button/button.module.mjs +1 -1
  42. package/esm2022/components/button/button.options.mjs +1 -1
  43. package/esm2022/components/button/index.mjs +1 -1
  44. package/esm2022/components/button-group/button-group.component.mjs +3 -3
  45. package/esm2022/components/button-group/button-group.module.mjs +1 -1
  46. package/esm2022/components/button-group/index.mjs +1 -1
  47. package/esm2022/components/card-wrapper/card-wrapper.component.mjs +3 -3
  48. package/esm2022/components/card-wrapper/index.mjs +1 -1
  49. package/esm2022/components/checkbox/checkbox.component.mjs +1 -1
  50. package/esm2022/components/checkbox/checkbox.module.mjs +1 -1
  51. package/esm2022/components/checkbox/index.mjs +1 -1
  52. package/esm2022/components/content-header/content-header.component.mjs +3 -3
  53. package/esm2022/components/content-header/index.mjs +1 -1
  54. package/esm2022/components/content-wrapper/content-wrapper.component.mjs +3 -3
  55. package/esm2022/components/content-wrapper/index.mjs +1 -1
  56. package/esm2022/components/context-menu/context-menu.component.mjs +3 -3
  57. package/esm2022/components/context-menu/context-menu.module.mjs +1 -1
  58. package/esm2022/components/context-menu/index.mjs +1 -1
  59. package/esm2022/components/date-range-calendar/date-range-calendar.component.mjs +3 -3
  60. package/esm2022/components/date-range-calendar/date-range-calendar.interfaces.mjs +1 -1
  61. package/esm2022/components/date-range-calendar/date-range-calendar.module.mjs +1 -1
  62. package/esm2022/components/date-range-calendar/index.mjs +1 -1
  63. package/esm2022/components/dialog/dialog-actions/dialog-actions.component.mjs +3 -3
  64. package/esm2022/components/dialog/dialog-header/dialog-header.component.mjs +3 -3
  65. package/esm2022/components/dialog/dialog.component.mjs +3 -3
  66. package/esm2022/components/dialog/dialog.interfaces.mjs +1 -1
  67. package/esm2022/components/dialog/dialog.module.mjs +1 -1
  68. package/esm2022/components/dialog/dialog.service.mjs +1 -1
  69. package/esm2022/components/dialog/dialog.tokens.mjs +1 -1
  70. package/esm2022/components/dialog/dialogs.component.mjs +3 -3
  71. package/esm2022/components/dialog/index.mjs +1 -1
  72. package/esm2022/components/dropdown/dropdown.interfaces.mjs +1 -1
  73. package/esm2022/components/dropdown/index.mjs +1 -1
  74. package/esm2022/components/empty-state/empty-state.component.mjs +3 -3
  75. package/esm2022/components/empty-state/index.mjs +1 -1
  76. package/esm2022/components/file-icon/file-icon.component.mjs +3 -3
  77. package/esm2022/components/file-icon/file-icon.options.mjs +1 -1
  78. package/esm2022/components/file-icon/index.mjs +1 -1
  79. package/esm2022/components/filter-bar/components/add-filter-button/add-filter-button.component.mjs +3 -3
  80. package/esm2022/components/filter-bar/components/date-filter/date-filter.component.mjs +3 -3
  81. package/esm2022/components/filter-bar/components/filter-remove-button/filter-remove-button.component.mjs +3 -3
  82. package/esm2022/components/filter-bar/components/index.mjs +1 -1
  83. package/esm2022/components/filter-bar/components/multiselect-filter/multiselect-filter.component.mjs +3 -3
  84. package/esm2022/components/filter-bar/components/range-filter/range-filter.component.mjs +3 -3
  85. package/esm2022/components/filter-bar/components/select-filter/select-filter.component.mjs +3 -3
  86. package/esm2022/components/filter-bar/components/string-filter/string-filter.component.mjs +3 -3
  87. package/esm2022/components/filter-bar/filter-bar.component.mjs +3 -3
  88. package/esm2022/components/filter-bar/filter-bar.interfaces.mjs +1 -1
  89. package/esm2022/components/filter-bar/filter-bar.module.mjs +1 -1
  90. package/esm2022/components/filter-bar/filter-bar.utils.mjs +1 -1
  91. package/esm2022/components/filter-bar/index.mjs +1 -1
  92. package/esm2022/components/form-field/form-field.component.mjs +3 -3
  93. package/esm2022/components/form-field/form-field.module.mjs +1 -1
  94. package/esm2022/components/form-field/index.mjs +1 -1
  95. package/esm2022/components/ghost-input/ghost-input.component.mjs +1 -1
  96. package/esm2022/components/ghost-input/index.mjs +1 -1
  97. package/esm2022/components/hint/hint.component.mjs +3 -3
  98. package/esm2022/components/hint/hint.module.mjs +1 -1
  99. package/esm2022/components/hint/index.mjs +1 -1
  100. package/esm2022/components/icon-button/icon-button.component.mjs +3 -3
  101. package/esm2022/components/icon-button/icon-button.module.mjs +1 -1
  102. package/esm2022/components/icon-button/index.mjs +1 -1
  103. package/esm2022/components/index.mjs +1 -1
  104. package/esm2022/components/input-number/index.mjs +1 -1
  105. package/esm2022/components/input-number/input-number.component.mjs +3 -3
  106. package/esm2022/components/input-number/input-number.module.mjs +1 -1
  107. package/esm2022/components/input-password/index.mjs +1 -1
  108. package/esm2022/components/input-password/input-password.component.mjs +3 -3
  109. package/esm2022/components/input-password/input-password.module.mjs +1 -1
  110. package/esm2022/components/input-text/index.mjs +1 -1
  111. package/esm2022/components/input-text/input-text.component.mjs +3 -3
  112. package/esm2022/components/input-text/input-text.module.mjs +1 -1
  113. package/esm2022/components/input-time/index.mjs +1 -1
  114. package/esm2022/components/input-time/input-time.component.mjs +3 -3
  115. package/esm2022/components/input-time/input-time.module.mjs +1 -1
  116. package/esm2022/components/input-time/input-time.options.mjs +1 -1
  117. package/esm2022/components/label/index.mjs +1 -1
  118. package/esm2022/components/label/label.component.mjs +3 -3
  119. package/esm2022/components/label/label.module.mjs +1 -1
  120. package/esm2022/components/layout/index.mjs +1 -1
  121. package/esm2022/components/layout/layout.component.mjs +3 -3
  122. package/esm2022/components/letter-box/index.mjs +1 -1
  123. package/esm2022/components/letter-box/letter-box.component.mjs +3 -3
  124. package/esm2022/components/letter-box/letter-box.interfaces.mjs +1 -1
  125. package/esm2022/components/notification/index.mjs +1 -1
  126. package/esm2022/components/notification/notification.component.mjs +3 -3
  127. package/esm2022/components/notification/notification.module.mjs +1 -1
  128. package/esm2022/components/notification/notification.options.mjs +1 -1
  129. package/esm2022/components/options-button/index.mjs +1 -1
  130. package/esm2022/components/options-button/options-button.component.mjs +3 -3
  131. package/esm2022/components/radio/index.mjs +1 -1
  132. package/esm2022/components/radio/radio.component.mjs +1 -1
  133. package/esm2022/components/radio/radio.module.mjs +1 -1
  134. package/esm2022/components/render-dynamic-components/index.mjs +1 -1
  135. package/esm2022/components/render-dynamic-components/render-dynamic-components.component.mjs +3 -3
  136. package/esm2022/components/render-dynamic-components/render-dynamic-components.options.mjs +1 -1
  137. package/esm2022/components/render-dynamic-components/render-dynamic-components.service.mjs +1 -1
  138. package/esm2022/components/root/index.mjs +1 -1
  139. package/esm2022/components/root/root.component.mjs +3 -3
  140. package/esm2022/components/root/root.module.mjs +1 -1
  141. package/esm2022/components/root/root.options.mjs +1 -1
  142. package/esm2022/components/select/index.mjs +1 -1
  143. package/esm2022/components/select/select.component.mjs +3 -3
  144. package/esm2022/components/select/select.module.mjs +1 -1
  145. package/esm2022/components/sidebar/index.mjs +1 -1
  146. package/esm2022/components/sidebar/sidebar-container/index.mjs +1 -1
  147. package/esm2022/components/sidebar/sidebar-container/sidebar-container.component.mjs +3 -3
  148. package/esm2022/components/sidebar/sidebar-header/index.mjs +1 -1
  149. package/esm2022/components/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  150. package/esm2022/components/sidebar/sidebar-navigation/index.mjs +1 -1
  151. package/esm2022/components/sidebar/sidebar-navigation/sidebar-navigation.component.mjs +3 -3
  152. package/esm2022/components/sidebar/sidebar-navigation-container/index.mjs +1 -1
  153. package/esm2022/components/sidebar/sidebar-navigation-container/sidebar-navigation-container.component.mjs +3 -3
  154. package/esm2022/components/sidebar/sidebar-navigation-item/index.mjs +1 -1
  155. package/esm2022/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.mjs +3 -3
  156. package/esm2022/components/sidebar/sidebar.options.mjs +1 -1
  157. package/esm2022/components/sidebar/sidebar.service.mjs +1 -1
  158. package/esm2022/components/svg/index.mjs +1 -1
  159. package/esm2022/components/svg/svg.component.mjs +3 -3
  160. package/esm2022/components/svg/svg.module.mjs +1 -1
  161. package/esm2022/components/tab/index.mjs +1 -1
  162. package/esm2022/components/tab/tab.component.mjs +1 -1
  163. package/esm2022/components/tabs/components/abstract-tabs/abstract-tabs.component.mjs +3 -3
  164. package/esm2022/components/tabs/components/abstract-tabs/index.mjs +1 -1
  165. package/esm2022/components/tabs/components/index.mjs +1 -1
  166. package/esm2022/components/tabs/index.mjs +1 -1
  167. package/esm2022/components/tabs/services/index.mjs +1 -1
  168. package/esm2022/components/tabs/services/tabs.service.mjs +1 -1
  169. package/esm2022/components/tabs/tabs.component.mjs +3 -3
  170. package/esm2022/components/tabs/tabs.options.mjs +1 -1
  171. package/esm2022/components/tabs/tabs.provider.mjs +1 -1
  172. package/esm2022/components/textarea/index.mjs +1 -1
  173. package/esm2022/components/textarea/textarea.component.mjs +1 -1
  174. package/esm2022/components/textarea/textarea.module.mjs +1 -1
  175. package/esm2022/components/toggle/index.mjs +1 -1
  176. package/esm2022/components/toggle/toggle.component.mjs +1 -1
  177. package/esm2022/components/toggle/toggle.module.mjs +1 -1
  178. package/esm2022/directives/index.mjs +1 -1
  179. package/esm2022/directives/skeleton/constants/fade.const.mjs +1 -1
  180. package/esm2022/directives/skeleton/constants/index.mjs +1 -1
  181. package/esm2022/directives/skeleton/constants/max-placeholder-length-limiter.const.mjs +1 -1
  182. package/esm2022/directives/skeleton/constants/min-placeholder-length-limiter.const.mjs +1 -1
  183. package/esm2022/directives/skeleton/index.mjs +1 -1
  184. package/esm2022/directives/skeleton/skeleton.directive.mjs +1 -1
  185. package/esm2022/directives/text-field-controller/index.mjs +1 -1
  186. package/esm2022/directives/text-field-controller/text-field-controller.module.mjs +1 -1
  187. package/esm2022/directives/text-field-controller/text-field-controller.provider.mjs +1 -1
  188. package/esm2022/directives/text-field-controller/text-field-icon-left.directive.mjs +1 -1
  189. package/esm2022/directives/text-field-controller/text-field-id.directive.mjs +1 -1
  190. package/esm2022/directives/text-field-controller/text-field-is-error.directive.mjs +1 -1
  191. package/esm2022/directives/text-field-controller/text-field-placeholder.directive.mjs +1 -1
  192. package/esm2022/directives/text-field-controller/text-field-size.directive.mjs +1 -1
  193. package/esm2022/directives/text-field-controller/text-field.controller.mjs +1 -1
  194. package/esm2022/directives/tooltip/index.mjs +1 -1
  195. package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +1 -1
  196. package/esm2022/directives/tooltip/tooltip-driver.directive.mjs +1 -1
  197. package/esm2022/directives/tooltip/tooltip-host.directive.mjs +1 -1
  198. package/esm2022/directives/tooltip/tooltip-hover.directive.mjs +1 -1
  199. package/esm2022/directives/tooltip/tooltip-manual.directive.mjs +1 -1
  200. package/esm2022/directives/tooltip/tooltip-options.directive.mjs +1 -1
  201. package/esm2022/directives/tooltip/tooltip-overflow.directive.mjs +1 -1
  202. package/esm2022/directives/tooltip/tooltip-pointer.directive.mjs +1 -1
  203. package/esm2022/directives/tooltip/tooltip-position.directive.mjs +1 -1
  204. package/esm2022/directives/tooltip/tooltip-unstyled.component.mjs +1 -1
  205. package/esm2022/directives/tooltip/tooltip.component.mjs +13 -13
  206. package/esm2022/directives/tooltip/tooltip.directive.mjs +1 -1
  207. package/esm2022/directives/tooltip/tooltip.mjs +1 -1
  208. package/esm2022/directives/tooltip/tooltip.providers.mjs +1 -1
  209. package/esm2022/directives/tooltip/tooltip.service.mjs +1 -1
  210. package/esm2022/directives/tooltip/tooltips.component.mjs +3 -3
  211. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +3 -3
  212. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +1 -1
  213. package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +3 -3
  214. package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +3 -3
  215. package/esm2022/editor/components/marker-select/marker-select.component.mjs +3 -3
  216. package/esm2022/editor/config/custom-elements.mjs +1 -1
  217. package/esm2022/editor/editor.component.mjs +25 -9
  218. package/esm2022/editor/interfaces/angular-element.mjs +1 -1
  219. package/esm2022/editor/interfaces/chunk-descriptor.mjs +1 -1
  220. package/esm2022/editor/interfaces/custom-element.mjs +1 -1
  221. package/esm2022/editor/interfaces/editor-service.mjs +1 -1
  222. package/esm2022/editor/providers/index.mjs +1 -1
  223. package/esm2022/editor/services/editor.service.mjs +3 -3
  224. package/esm2022/editor/tools/combined-text-block.tool.mjs +2 -2
  225. package/esm2022/editor/tools/role-marker.tool.mjs +3 -3
  226. package/esm2022/editor/tools/tool-marker.tool.mjs +1 -1
  227. package/esm2022/editor/utils/copy-text-to-clipboard.mjs +1 -1
  228. package/esm2022/editor/utils/create-tools-data.mjs +1 -1
  229. package/esm2022/editor/utils/merge-small-chunks.mjs +1 -1
  230. package/esm2022/editor/utils/open-file-in-browser.mjs +1 -1
  231. package/esm2022/editor/utils/preset-config-token.mjs +1 -1
  232. package/esm2022/editor/utils/set-loading.mjs +1 -1
  233. package/esm2022/editor/utils/url.validator.mjs +1 -1
  234. package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +3 -3
  235. package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +3 -3
  236. package/esm2022/editor/widgets/editor-modal/index.mjs +1 -1
  237. package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +1 -1
  238. package/esm2022/editor/widgets/editor-readonly/editor-resize-observer.directive.mjs +1 -1
  239. package/esm2022/editor/widgets/index.mjs +1 -1
  240. package/esm2022/i18n/index.mjs +1 -1
  241. package/esm2022/index.mjs +1 -1
  242. package/esm2022/interceptors/auth.interceptor.mjs +1 -1
  243. package/esm2022/interceptors/error-handler.interceptor.mjs +1 -1
  244. package/esm2022/interceptors/sse-stream-reader.interceptor.mjs +1 -1
  245. package/esm2022/interceptors/x-ndjson.interceptor.mjs +1 -1
  246. package/esm2022/interfaces/context-menu-item.mjs +1 -1
  247. package/esm2022/interfaces/error-notification-service.mjs +1 -1
  248. package/esm2022/interfaces/error-stategy.mjs +1 -1
  249. package/esm2022/interfaces/image.mjs +1 -1
  250. package/esm2022/interfaces/index.mjs +1 -1
  251. package/esm2022/interfaces/option.mjs +1 -1
  252. package/esm2022/operators/handle-error.mjs +1 -1
  253. package/esm2022/operators/index.mjs +1 -1
  254. package/esm2022/pipes/index.mjs +1 -1
  255. package/esm2022/pipes/time.pipe.mjs +1 -1
  256. package/esm2022/providers/auth.options.mjs +1 -1
  257. package/esm2022/providers/auth.provider.mjs +1 -1
  258. package/esm2022/providers/error-handler.options.mjs +1 -1
  259. package/esm2022/providers/error-handler.provider.mjs +1 -1
  260. package/esm2022/providers/index.mjs +1 -1
  261. package/esm2022/services/auth.service.mjs +1 -1
  262. package/esm2022/services/browser-auth.service.mjs +1 -1
  263. package/esm2022/services/error-resolver-factory.service.mjs +1 -1
  264. package/esm2022/services/global-handler-error.service.mjs +1 -1
  265. package/esm2022/services/hybrid-storage.service.mjs +1 -1
  266. package/esm2022/services/index.mjs +1 -1
  267. package/esm2022/services/loader.options.mjs +1 -1
  268. package/esm2022/services/mobile-auth.service.mjs +1 -1
  269. package/esm2022/services/position.service.mjs +1 -1
  270. package/esm2022/services/theme.options.mjs +1 -1
  271. package/esm2022/services/theme.service.mjs +1 -1
  272. package/esm2022/services/token.options.mjs +1 -1
  273. package/esm2022/services/token.service.mjs +1 -1
  274. package/esm2022/services/visual-viewport.service.mjs +1 -1
  275. package/esm2022/tokens/animations-speed.mjs +1 -1
  276. package/esm2022/tokens/error-notification-service.mjs +1 -1
  277. package/esm2022/tokens/error-translation-prefix.mjs +1 -1
  278. package/esm2022/tokens/index.mjs +1 -1
  279. package/esm2022/tokens/reduced-motion.mjs +1 -1
  280. package/esm2022/tokens/should-handle-error.mjs +1 -1
  281. package/esm2022/tokens/viewport.mjs +1 -1
  282. package/esm2022/types/appearance.mjs +1 -1
  283. package/esm2022/types/button-theme.mjs +1 -1
  284. package/esm2022/types/hint-type.mjs +1 -1
  285. package/esm2022/types/index.mjs +1 -1
  286. package/esm2022/types/point.mjs +1 -1
  287. package/esm2022/types/portal-item.mjs +1 -1
  288. package/esm2022/types/position.mjs +1 -1
  289. package/esm2022/types/resizing.mjs +1 -1
  290. package/esm2022/types/shape.mjs +1 -1
  291. package/esm2022/types/should-handle-error.type.mjs +1 -1
  292. package/esm2022/types/size.mjs +1 -1
  293. package/esm2022/types/status.mjs +1 -1
  294. package/esm2022/utils/check-fixed-position.mjs +1 -1
  295. package/esm2022/utils/default-validators/create-default-validators.mjs +1 -1
  296. package/esm2022/utils/default-validators/create-default-validators.options.mjs +1 -1
  297. package/esm2022/utils/default-validators/extra-spaces.options.mjs +1 -1
  298. package/esm2022/utils/default-validators/extra-spaces.validators.mjs +1 -1
  299. package/esm2022/utils/default-validators/index.mjs +1 -1
  300. package/esm2022/utils/format/index.mjs +1 -1
  301. package/esm2022/utils/format/remove-spaces.mjs +1 -1
  302. package/esm2022/utils/format/replace.mjs +1 -1
  303. package/esm2022/utils/index.mjs +1 -1
  304. package/esm2022/utils/miscellaneous/index.mjs +1 -1
  305. package/esm2022/utils/miscellaneous/is-obscured.mjs +1 -1
  306. package/esm2022/utils/miscellaneous/override-options.mjs +1 -1
  307. package/esm2022/utils/miscellaneous/to-animation-options.mjs +1 -1
  308. package/esm2022/widgets/assets/constants/index.mjs +1 -1
  309. package/esm2022/widgets/assets/constants/translations.mjs +1 -1
  310. package/esm2022/widgets/assets/index.mjs +1 -1
  311. package/esm2022/widgets/index.mjs +1 -1
  312. package/esm2022/widgets/model/index.mjs +1 -1
  313. package/esm2022/widgets/model/loader.options.mjs +1 -1
  314. package/esm2022/widgets/model/resource-state-service.interface.mjs +1 -1
  315. package/esm2022/widgets/model/resource-state-service.token.mjs +1 -1
  316. package/esm2022/widgets/model/resources-block.options.mjs +1 -1
  317. package/esm2022/widgets/model/subject-modal-service.interface.mjs +1 -1
  318. package/esm2022/widgets/model/subject-modal-service.token.mjs +1 -1
  319. package/esm2022/widgets/model/used-elements-service.interface.mjs +1 -1
  320. package/esm2022/widgets/model/used-elements-service.token.mjs +1 -1
  321. package/esm2022/widgets/model/utility-service.interface.mjs +1 -1
  322. package/esm2022/widgets/model/utility-service.token.mjs +1 -1
  323. package/esm2022/widgets/service/index.mjs +1 -1
  324. package/esm2022/widgets/service/resource-state-base.service.mjs +1 -1
  325. package/esm2022/widgets/service/subject-modal-base.service.mjs +1 -1
  326. package/esm2022/widgets/service/used-elements-base.service.mjs +1 -1
  327. package/esm2022/widgets/service/utility-base.service.mjs +1 -1
  328. package/esm2022/widgets/ui/assignee-role-item/assignee-role-item.component.mjs +3 -3
  329. package/esm2022/widgets/ui/assignee-role-item/index.mjs +1 -1
  330. package/esm2022/widgets/ui/assignee-roles-tabs/assignee-roles-tabs.component.mjs +3 -3
  331. package/esm2022/widgets/ui/assignee-roles-tabs/index.mjs +1 -1
  332. package/esm2022/widgets/ui/button-change-theme/button-change-theme.component.mjs +3 -3
  333. package/esm2022/widgets/ui/button-change-theme/index.mjs +1 -1
  334. package/esm2022/widgets/ui/categories/categories.component.mjs +3 -3
  335. package/esm2022/widgets/ui/categories/components/categories-list/categories-list.component.mjs +3 -3
  336. package/esm2022/widgets/ui/categories/components/categories-list/index.mjs +1 -1
  337. package/esm2022/widgets/ui/categories/components/category-form/category-form.component.mjs +3 -3
  338. package/esm2022/widgets/ui/categories/components/category-form/index.mjs +1 -1
  339. package/esm2022/widgets/ui/categories/components/category-item/category-item.component.mjs +3 -3
  340. package/esm2022/widgets/ui/categories/components/category-item/index.mjs +1 -1
  341. package/esm2022/widgets/ui/categories/components/create-category-item/create-category-item.component.mjs +3 -3
  342. package/esm2022/widgets/ui/categories/components/create-category-item/index.mjs +1 -1
  343. package/esm2022/widgets/ui/categories/components/index.mjs +1 -1
  344. package/esm2022/widgets/ui/categories/index.mjs +1 -1
  345. package/esm2022/widgets/ui/categories/services/index.mjs +1 -1
  346. package/esm2022/widgets/ui/categories/services/selected-category.service.mjs +1 -1
  347. package/esm2022/widgets/ui/checklist-block/checklist-block.component.mjs +3 -3
  348. package/esm2022/widgets/ui/checklist-block/checklist-block.options.mjs +1 -1
  349. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list/checklist-block-list.component.mjs +3 -3
  350. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list/index.mjs +1 -1
  351. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-card/checklist-block-list-item-action-card.component.mjs +3 -3
  352. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-card/index.mjs +1 -1
  353. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-with-verification/checklist-block-list-item-action-with-verification.component.mjs +3 -3
  354. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-with-verification/index.mjs +1 -1
  355. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-without-verification/checklist-block-list-item-action-without-verification.component.mjs +3 -3
  356. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-action-without-verification/index.mjs +1 -1
  357. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.mjs +3 -3
  358. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.mjs +1 -1
  359. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-container/index.mjs +1 -1
  360. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.mjs +3 -3
  361. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.options.mjs +1 -1
  362. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation/index.mjs +1 -1
  363. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.mjs +3 -3
  364. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.options.mjs +1 -1
  365. package/esm2022/widgets/ui/checklist-block/components/checklist-block-list-item-evaluation-criteria/index.mjs +1 -1
  366. package/esm2022/widgets/ui/checklist-block/components/checklist-block-title-control/checklist-block-title-control.component.mjs +3 -3
  367. package/esm2022/widgets/ui/checklist-block/components/checklist-block-title-control/index.mjs +1 -1
  368. package/esm2022/widgets/ui/checklist-block/components/index.mjs +1 -1
  369. package/esm2022/widgets/ui/checklist-block/index.mjs +1 -1
  370. package/esm2022/widgets/ui/checklist-block/services/checklist-block.service.mjs +1 -1
  371. package/esm2022/widgets/ui/checklist-block/services/index.mjs +1 -1
  372. package/esm2022/widgets/ui/consumable-form/components/consumable-form-item/consumable-form-item.component.mjs +3 -3
  373. package/esm2022/widgets/ui/consumable-form/components/consumable-form-item/default-control-delay.mjs +1 -1
  374. package/esm2022/widgets/ui/consumable-form/components/consumable-form-item/index.mjs +1 -1
  375. package/esm2022/widgets/ui/consumable-form/components/consumable-form-item-readonly/consumable-form-item-readonly.component.mjs +3 -3
  376. package/esm2022/widgets/ui/consumable-form/components/consumable-form-item-readonly/index.mjs +1 -1
  377. package/esm2022/widgets/ui/consumable-form/components/index.mjs +1 -1
  378. package/esm2022/widgets/ui/consumable-form/consumable-form.component.mjs +3 -3
  379. package/esm2022/widgets/ui/consumable-form/consumable-form.options.mjs +1 -1
  380. package/esm2022/widgets/ui/consumable-form/index.mjs +1 -1
  381. package/esm2022/widgets/ui/criterion-info/criterion-info.component.mjs +3 -3
  382. package/esm2022/widgets/ui/criterion-info/index.mjs +1 -1
  383. package/esm2022/widgets/ui/criterion-info-form/criterion-info-form.component.mjs +3 -3
  384. package/esm2022/widgets/ui/criterion-info-form/criterion-info-form.options.mjs +1 -1
  385. package/esm2022/widgets/ui/criterion-info-form/index.mjs +1 -1
  386. package/esm2022/widgets/ui/criterion-readonly-info/criterion-readonly-info.component.mjs +3 -3
  387. package/esm2022/widgets/ui/criterion-readonly-info/index.mjs +1 -1
  388. package/esm2022/widgets/ui/delete-modal/delete-modal.component.mjs +3 -3
  389. package/esm2022/widgets/ui/delete-modal/delete-modal.options.mjs +1 -1
  390. package/esm2022/widgets/ui/delete-modal/index.mjs +1 -1
  391. package/esm2022/widgets/ui/framer-preview/framer-preview.component.mjs +3 -3
  392. package/esm2022/widgets/ui/framer-preview/framer-preview.options.mjs +1 -1
  393. package/esm2022/widgets/ui/framer-preview/index.mjs +1 -1
  394. package/esm2022/widgets/ui/general-control-error-hint/general-control-error-hint.component.mjs +3 -3
  395. package/esm2022/widgets/ui/general-control-error-hint/index.mjs +1 -1
  396. package/esm2022/widgets/ui/index.mjs +1 -1
  397. package/esm2022/widgets/ui/inserted/index.mjs +1 -1
  398. package/esm2022/widgets/ui/inserted/inserted.component.mjs +3 -3
  399. package/esm2022/widgets/ui/instruction-info/index.mjs +1 -1
  400. package/esm2022/widgets/ui/instruction-info/instruction-info.component.mjs +3 -3
  401. package/esm2022/widgets/ui/instruction-info-form/index.mjs +1 -1
  402. package/esm2022/widgets/ui/instruction-info-form/instruction-info-form.component.mjs +3 -3
  403. package/esm2022/widgets/ui/instruction-info-form/instruction-info-form.options.mjs +1 -1
  404. package/esm2022/widgets/ui/instruction-readonly-info/index.mjs +1 -1
  405. package/esm2022/widgets/ui/instruction-readonly-info/instruction-readonly-info.component.mjs +3 -3
  406. package/esm2022/widgets/ui/loader/components/circle-loader/circle-loader.component.mjs +3 -3
  407. package/esm2022/widgets/ui/loader/components/circle-loader/index.mjs +1 -1
  408. package/esm2022/widgets/ui/loader/components/index.mjs +1 -1
  409. package/esm2022/widgets/ui/loader/components/linear-loader/index.mjs +1 -1
  410. package/esm2022/widgets/ui/loader/components/linear-loader/linear-loader.component.mjs +3 -3
  411. package/esm2022/widgets/ui/loader/components/pulse-loader/index.mjs +1 -1
  412. package/esm2022/widgets/ui/loader/components/pulse-loader/pulse-loader.component.mjs +3 -3
  413. package/esm2022/widgets/ui/loader/components/stated-loader/index.mjs +1 -1
  414. package/esm2022/widgets/ui/loader/components/stated-loader/stated-loader.component.mjs +3 -3
  415. package/esm2022/widgets/ui/loader/index.mjs +1 -1
  416. package/esm2022/widgets/ui/loader/loader.component.mjs +3 -3
  417. package/esm2022/widgets/ui/modal-criteria-tab/index.mjs +1 -1
  418. package/esm2022/widgets/ui/modal-criteria-tab/modal-criteria-tab.component.mjs +3 -3
  419. package/esm2022/widgets/ui/modal-divided-section/index.mjs +1 -1
  420. package/esm2022/widgets/ui/modal-divided-section/modal-divided-section.component.mjs +3 -3
  421. package/esm2022/widgets/ui/modal-divided-section/modal-divided-section.interfaces.mjs +1 -1
  422. package/esm2022/widgets/ui/modal-header/index.mjs +1 -1
  423. package/esm2022/widgets/ui/modal-header/modal-header.component.mjs +3 -3
  424. package/esm2022/widgets/ui/modal-header-inserted-buttons/index.mjs +1 -1
  425. package/esm2022/widgets/ui/modal-header-inserted-buttons/modal-header-inserted-buttons.component.mjs +3 -3
  426. package/esm2022/widgets/ui/modal-header-tabs/index.mjs +1 -1
  427. package/esm2022/widgets/ui/modal-header-tabs/modal-header-tabs.component.mjs +3 -3
  428. package/esm2022/widgets/ui/modal-info-tab/index.mjs +1 -1
  429. package/esm2022/widgets/ui/modal-info-tab/modal-info-tab.component.mjs +3 -3
  430. package/esm2022/widgets/ui/modal-info-tab/modal-info-tab.options.mjs +1 -1
  431. package/esm2022/widgets/ui/modal-instructions-tab/index.mjs +1 -1
  432. package/esm2022/widgets/ui/modal-instructions-tab/modal-instructions-tab.component.mjs +3 -3
  433. package/esm2022/widgets/ui/modal-operation-part/index.mjs +1 -1
  434. package/esm2022/widgets/ui/modal-operation-part/modal-operation-part.component.mjs +3 -3
  435. package/esm2022/widgets/ui/modal-resources-tab/index.mjs +1 -1
  436. package/esm2022/widgets/ui/modal-resources-tab/modal-resources-tab.component.mjs +3 -3
  437. package/esm2022/widgets/ui/render-dynamic-modal/index.mjs +1 -1
  438. package/esm2022/widgets/ui/render-dynamic-modal/render-dynamic-modal.component.mjs +3 -3
  439. package/esm2022/widgets/ui/render-dynamic-modal/render-dynamic-modal.option.mjs +1 -1
  440. package/esm2022/widgets/ui/resources-block/components/index.mjs +1 -1
  441. package/esm2022/widgets/ui/resources-block/components/resources-block-consumables/index.mjs +1 -1
  442. package/esm2022/widgets/ui/resources-block/components/resources-block-consumables/resources-block-consumables.component.mjs +3 -3
  443. package/esm2022/widgets/ui/resources-block/components/resources-block-consumables/resources-block-consumables.options.mjs +1 -1
  444. package/esm2022/widgets/ui/resources-block/components/resources-block-content/index.mjs +1 -1
  445. package/esm2022/widgets/ui/resources-block/components/resources-block-content/resources-block-content.component.mjs +3 -3
  446. package/esm2022/widgets/ui/resources-block/components/resources-block-part/index.mjs +1 -1
  447. package/esm2022/widgets/ui/resources-block/components/resources-block-part/resources-block-part.component.mjs +3 -3
  448. package/esm2022/widgets/ui/resources-block/components/resources-block-part/resources-block-part.options.mjs +1 -1
  449. package/esm2022/widgets/ui/resources-block/components/resources-block-tabs/index.mjs +1 -1
  450. package/esm2022/widgets/ui/resources-block/components/resources-block-tabs/resources-block-tabs.component.mjs +3 -3
  451. package/esm2022/widgets/ui/resources-block/components/resources-block-tabs/resources-block-tabs.options.mjs +1 -1
  452. package/esm2022/widgets/ui/resources-block/components/resources-block-toolbox/index.mjs +1 -1
  453. package/esm2022/widgets/ui/resources-block/components/resources-block-toolbox/resources-block-toolbox.component.mjs +3 -3
  454. package/esm2022/widgets/ui/resources-block/components/resources-block-toolbox/resources-block-toolbox.options.mjs +1 -1
  455. package/esm2022/widgets/ui/resources-block/components/resources-options/index.mjs +1 -1
  456. package/esm2022/widgets/ui/resources-block/components/resources-options/resources-options.component.mjs +3 -3
  457. package/esm2022/widgets/ui/resources-block/index.mjs +1 -1
  458. package/esm2022/widgets/ui/resources-block/resources-block.component.mjs +3 -3
  459. package/esm2022/widgets/ui/resources-block-tabs/index.mjs +1 -1
  460. package/esm2022/widgets/ui/resources-block-tabs/resources-block-tabs.component.mjs +3 -3
  461. package/esm2022/widgets/ui/resources-block-tabs/resources-block-tabs.options.mjs +1 -1
  462. package/esm2022/widgets/ui/select-modal/components/index.mjs +1 -1
  463. package/esm2022/widgets/ui/select-modal/components/select-modal-folder/index.mjs +1 -1
  464. package/esm2022/widgets/ui/select-modal/components/select-modal-folder/select-modal-folder.component.mjs +3 -3
  465. package/esm2022/widgets/ui/select-modal/components/select-modal-search/index.mjs +1 -1
  466. package/esm2022/widgets/ui/select-modal/components/select-modal-search/select-modal-search.component.mjs +3 -3
  467. package/esm2022/widgets/ui/select-modal/index.mjs +1 -1
  468. package/esm2022/widgets/ui/select-modal/select-modal.component.mjs +3 -3
  469. package/esm2022/widgets/ui/select-modal/select-modal.interfaces.mjs +1 -1
  470. package/esm2022/widgets/ui/select-modal/select-modal.service.mjs +1 -1
  471. package/esm2022/widgets/ui/storage-list/components/index.mjs +1 -1
  472. package/esm2022/widgets/ui/storage-list/components/storage-list-item/index.mjs +1 -1
  473. package/esm2022/widgets/ui/storage-list/components/storage-list-item/storage-list-item.component.mjs +3 -3
  474. package/esm2022/widgets/ui/storage-list/index.mjs +1 -1
  475. package/esm2022/widgets/ui/storage-list/storage-list.component.mjs +3 -3
  476. package/esm2022/widgets/ui/storage-list/storage-list.options.mjs +1 -1
  477. package/esm2022/widgets/ui/toolbox-form/components/index.mjs +1 -1
  478. package/esm2022/widgets/ui/toolbox-form/components/tool-form-readonly/index.mjs +1 -1
  479. package/esm2022/widgets/ui/toolbox-form/components/tool-form-readonly/tool-form-readonly.component.mjs +3 -3
  480. package/esm2022/widgets/ui/toolbox-form/index.mjs +1 -1
  481. package/esm2022/widgets/ui/toolbox-form/tool-form.component.mjs +3 -3
  482. package/esm2022/widgets/ui/toolbox-form/tool-form.options.mjs +1 -1
  483. package/esm2022/widgets/ui/user-action-context-menu/activity-item/activity-item.component.mjs +3 -3
  484. package/esm2022/widgets/ui/user-action-context-menu/activity-item/index.mjs +1 -1
  485. package/esm2022/widgets/ui/user-action-context-menu/company-item/company-item.component.mjs +3 -3
  486. package/esm2022/widgets/ui/user-action-context-menu/company-item/index.mjs +1 -1
  487. package/esm2022/widgets/ui/user-action-context-menu/index.mjs +1 -1
  488. package/esm2022/widgets/ui/user-action-context-menu/services/activity-base.service.mjs +1 -1
  489. package/esm2022/widgets/ui/user-action-context-menu/services/activity.service.mjs +1 -1
  490. package/esm2022/widgets/ui/user-action-context-menu/services/index.mjs +1 -1
  491. package/esm2022/widgets/ui/user-action-context-menu/user-action-context-menu.component.mjs +3 -3
  492. package/esm2022/widgets/ui/user-action-context-menu/user-action-context.option.mjs +1 -1
  493. package/esm2022/widgets/ui/utility-info-readonly/index.mjs +1 -1
  494. package/esm2022/widgets/ui/utility-info-readonly/utility-info-readonly.component.mjs +3 -3
  495. package/esm2022/widgets/ui/utility-info-readonly/utility-info-readonly.options.mjs +1 -1
  496. package/esm2022/widgets/ui/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +3 -3
  497. package/esm2022/widgets/ui/utility-modal/components/criterion-modal-create/index.mjs +1 -1
  498. package/esm2022/widgets/ui/utility-modal/components/index.mjs +1 -1
  499. package/esm2022/widgets/ui/utility-modal/components/instruction-modal-create/index.mjs +1 -1
  500. package/esm2022/widgets/ui/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +3 -3
  501. package/esm2022/widgets/ui/utility-modal/components/readonly-criterion-modal/index.mjs +1 -1
  502. package/esm2022/widgets/ui/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.mjs +3 -3
  503. package/esm2022/widgets/ui/utility-modal/components/readonly-instruction-modal/index.mjs +1 -1
  504. package/esm2022/widgets/ui/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +3 -3
  505. package/esm2022/widgets/ui/utility-modal/components/readonly-utility-modal/index.mjs +1 -1
  506. package/esm2022/widgets/ui/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +3 -3
  507. package/esm2022/widgets/ui/utility-modal/components/utility-modal-create/index.mjs +1 -1
  508. package/esm2022/widgets/ui/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +3 -3
  509. package/esm2022/widgets/ui/utility-modal/index.mjs +1 -1
  510. package/esm2022/widgets/ui/utility-modal/utility-modal.component.mjs +3 -3
  511. package/esm2022/widgets/ui/utility-modal/utility-modal.options.mjs +1 -1
  512. package/esm2022/widgets/ui/utility-readonly-thumbnail/index.mjs +1 -1
  513. package/esm2022/widgets/ui/utility-readonly-thumbnail/utility-readonly-thumbnail.component.mjs +3 -3
  514. package/esm2022/widgets/ui/utility-thumbnail/index.mjs +1 -1
  515. package/esm2022/widgets/ui/utility-thumbnail/utility-thumbnail.component.mjs +3 -3
  516. package/fesm2022/cuby-ui-core.mjs +306 -290
  517. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  518. package/fonts/Inter-Bold.svg +25443 -25443
  519. package/fonts/Inter-Medium.svg +25400 -25400
  520. package/fonts/Inter-Regular.svg +24341 -24341
  521. package/fonts/Inter-SemiBold.svg +25459 -25459
  522. package/fonts/Nunito-ExtraBoldItalic.svg +9508 -9508
  523. package/package.json +4 -4
  524. package/providers/auth.options.d.ts +1 -1
  525. package/styles/direcive/flex-container.scss +3 -3
  526. package/styles/fonts.scss +69 -69
  527. package/styles/global.scss +10 -10
  528. package/styles/mixins/buttons.scss +13 -13
  529. package/styles/mixins/flex.scss +10 -10
  530. package/styles/mixins/headings.scss +115 -115
  531. package/styles/mixins/inputs.scss +101 -101
  532. package/styles/mixins/lists.scss +41 -41
  533. package/styles/mixins/paddings.scss +35 -35
  534. package/styles/mixins/shadows.scss +42 -42
  535. package/styles/mixins/texts.scss +224 -224
  536. package/styles/theme.scss +608 -608
  537. package/styles/variables/colors.scss +396 -396
  538. package/styles/variables/fonts.scss +2 -2
  539. package/widgets/ui/user-action-context-menu/activity-item/activity-item.component.d.ts +1 -1
@@ -427,7 +427,7 @@ export class CuiCombinedTextBlockTool {
427
427
  return;
428
428
  }
429
429
  const item = this.wrapper.children.item(0);
430
- const isItemEmpty = !item.textContent?.length;
430
+ const isItemEmpty = !item?.textContent?.length;
431
431
  this.wrapper.dataset['empty'] = `${isItemEmpty}`;
432
432
  }
433
433
  getPlaceholder(config) {
@@ -437,4 +437,4 @@ export class CuiCombinedTextBlockTool {
437
437
  return config.placeholder ?? DEFAULT_PLACEHOLDER;
438
438
  }
439
439
  }
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtdGV4dC1ibG9jay50b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvdG9vbHMvY29tYmluZWQtdGV4dC1ibG9jay50b29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUNuQixNQUFNLGNBQWMsQ0FBQztBQU90QixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRSxNQUFNLE9BQU8sd0JBQXdCO0lBc0JqQyxZQUFZLE9BQWdCO1FBckJYLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFDYixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQiw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFDOUIsK0JBQTBCLEdBQUcsbUJBQW1CLENBQUM7UUFFakQsbUJBQWMsR0FBRztZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLElBQUk7U0FDdEIsQ0FBQztRQVFlLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTdCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQW1LbEIsd0JBQW1CLEdBQUcsQ0FBQyxJQUFZLEVBQXVCLEVBQUU7WUFDekUsSUFBSSxTQUFTLEdBQStDLElBQUksQ0FBQztZQUVqRSxPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNaLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztnQkFFRCxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxl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QWMsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV0RyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ2pGLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFrQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSw0QkFBNEIsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsV0FBVyxJQUFJLG1CQUFtQixDQUFDO0lBQ3JELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHR5cGUgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgdHlwZSB7IEFQSSwgQmxvY2tUb29sLCBCbG9ja1Rvb2xDb25zdHJ1Y3Rvck9wdGlvbnMsIFRvb2xDb25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuXG5pbXBvcnQge1xuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0ssXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19BRERFRCxcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUsXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19QQVJULFxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfUkVNT1ZFRCxcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX1VQREFURUQsXG4gICAgREVGQVVMVF9QTEFDRUhPTERFUixcbiAgICBERUZBVUxUX1JFQURPTkxZX1BMQUNFSE9MREVSLFxuICAgIFNQTElUX01BWF9MRU5HVEhcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtcbiAgICBDdWlDb21iaW5lZEJsb2NrVG9vbERhdGEsXG4gICAgQ3VpQ29tYmluZWRQYXJ0QmxvY2ssXG4gICAgQ3VpTXV0YXRpb25BY3Rpb25zLFxuICAgIEN1aU11dGF0aW9uQ2FsbGJhY2tcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkLCBtZXJnZVNtYWxsQ2h1bmtzLCBzcGxpdEhUTUwgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDdWlDb21iaW5lZFRleHRCbG9ja1Rvb2wgaW1wbGVtZW50cyBCbG9ja1Rvb2wge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVEFHID0gJ3NwYW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREVCT1VOQ0VfVElNRSA9IDM1MDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9DSElMRF9DT1VOVF9GT1JfRU1QVFkgPSAxO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUExBQ0VIT0xERVJfQVRUUklCVVRFX05BTUUgPSAncGxhY2Vob2xkZXJBY3RpdmUnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdXRhdGlvbkNvbmZpZyA9IHtcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlXG4gICAgfTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwaTogQVBJO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YTogQ3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBwcml2YXRlIHdyYXBwZXI/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgICBwcml2YXRlIGxhc3RCbG9ja0VsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZXMgPSBuZXcgTWFwKCk7XG5cbiAgICBwcml2YXRlIHNraXBOZXh0VXBkYXRlRW1pdCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogdW5rbm93bikge1xuICAgICAgICBjb25zdCBib2R5ID0gb3B0aW9ucyBhcyBCbG9ja1Rvb2xDb25zdHJ1Y3Rvck9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBib2R5LmRhdGE7XG5cbiAgICAgICAgdGhpcy5yZWFkT25seSA9IGJvZHkucmVhZE9ubHk7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLmdldFBsYWNlaG9sZGVyKGJvZHkuY29uZmlnKTtcbiAgICAgICAgdGhpcy5hcGkgPSBib2R5LmFwaTtcbiAgICAgICAgdGhpcy5kYXRhID0ge1xuICAgICAgICAgICAgaWQ6IGRhdGEuaWQgfHwgZ2VuZXJhdGVJZCgpLFxuICAgICAgICAgICAgdGV4dEJsb2NrczogZGF0YS50ZXh0QmxvY2tzIHx8IFtdXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5jb252ZXJ0RGVmYXVsdERhdGFUb0N1c3RvbShkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGlzUmVhZE9ubHlTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGVuYWJsZUxpbmVCcmVha3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCB0b29sYm94KCk6IHsgaWNvbjogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWNvbjogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk04IDlWNy4yQzggNy4wODk1NCA4LjA4OTU0IDcgOC4yIDdMMTIgN00xNiA5VjcuMkMxNiA3LjA4OTU0IDE1LjkxMDUgNyAxNS44IDdMMTIgN00xMiA3TDEyIDE3TTEyIDE3SDEwTTEyIDE3SDE0XCI+PC9wYXRoPjwvc3ZnPicsXG4gICAgICAgICAgICB0aXRsZTogJ1RleHQnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgcGFzdGVDb25maWcoKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhZ3M6IFsnUCddXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIG9uUGFzdGUoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50eXBlICE9PSAndGFnJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IGV2ZW50LmRldGFpbC5kYXRhLnRleHRDb250ZW50O1xuICAgICAgICBjb25zdCBsYXN0QmxvY2tJbmRleCA9IHRoaXMuZGF0YS50ZXh0QmxvY2tzLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGxhc3RCbG9jayA9IHRoaXMuZGF0YS50ZXh0QmxvY2tzW2xhc3RCbG9ja0luZGV4XTtcbiAgICAgICAgY29uc3QgYmxvY2tJZCA9IGxhc3RCbG9jaz8uaWQgfHwgZ2VuZXJhdGVJZCgpO1xuXG4gICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzLnNwbGljZShsYXN0QmxvY2tJbmRleCwgMSwgdGhpcy5nZXRCbG9ja1BhcnRPYmplY3QoYmxvY2tJZCwgdGV4dCkpO1xuXG4gICAgICAgIHRoaXMuc2tpcE5leHRVcGRhdGVFbWl0ID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUV4aXN0aW5nQmxvY2soYmxvY2tJZCwgdGV4dCwgQm9vbGVhbihsYXN0QmxvY2s/LmlkKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHRoaXMud3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLndyYXBwZXIuY2xhc3NMaXN0LmFkZChDT01CSU5FRF9URVhUX0JMT0NLKTtcbiAgICAgICAgdGhpcy53cmFwcGVyLmRhdGFzZXRbdGhpcy5QTEFDRUhPTERFUl9BVFRSSUJVVEVfTkFNRV0gPSB0aGlzLmFwaS5pMThuLnQodGhpcy5wbGFjZWhvbGRlcik7XG5cbiAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIuY29udGVudEVkaXRhYmxlID0gJ3RydWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNFbXB0eUJsb2NrID0gIXRoaXMuZGF0YS50ZXh0QmxvY2tzLmxlbmd0aDtcblxuICAgICAgICBpZiAoaXNFbXB0eUJsb2NrKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2Nrcy5wdXNoKHRoaXMuZ2V0QmxvY2tQYXJ0T2JqZWN0KGdlbmVyYXRlSWQoKSwgJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVuZGVyQmxvY2tzKHRoaXMuZGF0YS50ZXh0QmxvY2tzKTtcbiAgICAgICAgdGhpcy5jaGVja0lzRWRpdG9yRW1wdHkoKTtcblxuICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gdGhpcy5nZXRNdXRhdGlvbkNhbGxiYWNrKHRoaXMuREVCT1VOQ0VfVElNRSk7XG5cbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLm9uTXV0YXRpb25FdmVudC5iaW5kKHRoaXMsIGNhbGxiYWNrKSk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyLCB0aGlzLm11dGF0aW9uQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLndyYXBwZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG1lcmdlKGJsb2Nrc0RhdGE6IEN1aUNvbWJpbmVkUGFydEJsb2NrW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBibG9ja3NUZXh0Q29udGVudCA9ICcnO1xuICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2NrcyA9IFtdO1xuXG4gICAgICAgIGJsb2Nrc0RhdGEuZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgIGJsb2Nrc1RleHRDb250ZW50ICs9IGJsb2NrLmRhdGEudGV4dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndyYXBwZXIuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMud3JhcHBlci5jaGlsZE5vZGVzLml0ZW0oaSk7XG5cbiAgICAgICAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBIVE1MU3BhbkVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpLS07XG4gICAgICAgICAgICBibG9ja3NUZXh0Q29udGVudCA9IG5vZGUuaW5uZXJIVE1MICsgYmxvY2tzVGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBub2RlLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFydHMgPSBibG9ja3NUZXh0Q29udGVudC5sZW5ndGggPCBTUExJVF9NQVhfTEVOR1RIID8gW2Jsb2Nrc1RleHRDb250ZW50XSA6IHNwbGl0SFRNTChibG9ja3NUZXh0Q29udGVudCk7XG5cbiAgICAgICAgcGFydHMuZm9yRWFjaCgocGFydDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9ja09iamVjdCA9IHRoaXMuZ2V0QmxvY2tQYXJ0T2JqZWN0KGdlbmVyYXRlSWQoKSwgcGFydCk7XG5cbiAgICAgICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzLnB1c2goYmxvY2tPYmplY3QpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbmRlckJsb2Nrcyh0aGlzLmRhdGEudGV4dEJsb2Nrcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoYmxvY2tDb250ZW50OiBIVE1MRWxlbWVudCk6IEN1aUNvbWJpbmVkUGFydEJsb2NrW10ge1xuICAgICAgICBjb25zdCB0ZXh0QmxvY2tzOiBDdWlDb21iaW5lZFBhcnRCbG9ja1tdID0gW107XG5cbiAgICAgICAgYmxvY2tDb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5UQUcpLmZvckVhY2goKHNwYW46IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICB0ZXh0QmxvY2tzLnB1c2godGhpcy5nZXRCbG9ja1BhcnRPYmplY3Qoc3Bhbi5kYXRhc2V0Wydsb2NhbElkJ10hLCBzcGFuLmlubmVySFRNTCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGV4dEJsb2NrcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IGJsb2NrSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgdGhpcy5kYXRhLnRleHRCbG9ja3MuZm9yRWFjaCgoYmxvY2s6IEN1aUNvbWJpbmVkUGFydEJsb2NrKSA9PiB7XG4gICAgICAgICAgICBibG9ja0lkcy5hZGQoYmxvY2suaWQgfHwgJycpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbW92ZUJsb2NrcyhibG9ja0lkcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk11dGF0aW9uRXZlbnQoY2FsbGJhY2s6IChtdXRhdGlvbkxpc3Q6IE11dGF0aW9uUmVjb3JkW10pID0+IHZvaWQsIG11dGF0aW9uTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgICAgICBpZiAobXV0YXRpb25MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbXV0YXRpb25MaXN0LmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24ucmVtb3ZlZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlcy5zZXQoZ2VuZXJhdGVJZCgpLCBtdXRhdGlvbik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlcy5zZXQobXV0YXRpb24udGFyZ2V0LCBtdXRhdGlvbik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbGxiYWNrKG11dGF0aW9uTGlzdCk7XG4gICAgICAgIHRoaXMuY2hlY2tJc0VkaXRvckVtcHR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBnZXRNdXRhdGlvbkNhbGxiYWNrID0gKHdhaXQ6IG51bWJlcik6IEN1aU11dGF0aW9uQ2FsbGJhY2sgPT4ge1xuICAgICAgICBsZXQgdGltZW91dElkOiBDdWlOdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4gPSBudWxsO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGltZW91dElkKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oYW5kbGVNdXRhdGlvbnMoKSwgd2FpdCk7XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHByaXZhdGUgaGFuZGxlTXV0YXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdXBkYXRlZEVsZW1lbnRzLCByZW1vdmVkRWxlbWVudHNJZHMgfSA9IHRoaXMuZ2V0TXV0YXRpb25BY3Rpb25zKFsuLi50aGlzLmNoYW5nZXMudmFsdWVzKCldKTtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVkUGFydHMgPSB0aGlzLnRha2VTcGxpdHRlZFBhcnRzUmVzdWx0KHVwZGF0ZWRFbGVtZW50cyk7XG4gICAgICAgICAgICBjb25zdCB7IHNwbGl0dGVkUGFydHNSZXN1bHQsIHVwZGF0ZWRFbGVtZW50c1Jlc3VsdCwgcmVtb3ZlZEVsZW1lbnRzSWRzUmVzdWx0IH0gPSB0aGlzLnRha2VNZXJnZWRSZXN1bHQoXG4gICAgICAgICAgICAgICAgc3BsaXR0ZWRQYXJ0cyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkRWxlbWVudHMsXG4gICAgICAgICAgICAgICAgcmVtb3ZlZEVsZW1lbnRzSWRzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmFkZEJsb2NrcyhzcGxpdHRlZFBhcnRzUmVzdWx0LCB1cGRhdGVkRWxlbWVudHNSZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCbG9ja3ModXBkYXRlZEVsZW1lbnRzUmVzdWx0KTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQmxvY2tzKHJlbW92ZWRFbGVtZW50c0lkc1Jlc3VsdCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMuY2xlYXIoKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGlmICghdGhpcy53cmFwcGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyPy5vYnNlcnZlKHRoaXMud3JhcHBlciwgdGhpcy5tdXRhdGlvbkNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRha2VNZXJnZWRSZXN1bHQoXG4gICAgICAgIHNwbGl0dGVkUGFydHM6IEhUTUxFbGVtZW50W10sXG4gICAgICAgIHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50PixcbiAgICAgICAgcmVtb3ZlZEVsZW1lbnRzSWRzOiBTZXQ8c3RyaW5nPlxuICAgICk6IHtcbiAgICAgICAgc3BsaXR0ZWRQYXJ0c1Jlc3VsdDogSFRNTEVsZW1lbnRbXTtcbiAgICAgICAgdXBkYXRlZEVsZW1lbnRzUmVzdWx0OiBTZXQ8SFRNTEVsZW1lbnQ+O1xuICAgICAgICByZW1vdmVkRWxlbWVudHNJZHNSZXN1bHQ6IFNldDxzdHJpbmc+O1xuICAgIH0ge1xuICAgICAgICBjb25zdCB7IHJlbW92ZWRJZHM6IG1lcmdlUmVtb3ZlZElkcywgdXBkYXRlZEVsZW1lbnRzOiBtZXJnZVVwZGF0ZWRFbGVtZW50cyB9ID0gdGhpcy5hcHBseU1lcmdlU21hbGxDaHVua3MoKTtcblxuICAgICAgICBjb25zdCBub3RSZW1vdmVkQnlNZXJnZSA9IChlbDogSFRNTEVsZW1lbnQpID0+ICFtZXJnZVJlbW92ZWRJZHMuaGFzKGVsLmRhdGFzZXRbJ2xvY2FsSWQnXSA/PyAnJyk7XG5cbiAgICAgICAgY29uc3Qgc3BsaXR0ZWRQYXJ0c1Jlc3VsdCA9IHNwbGl0dGVkUGFydHMuZmlsdGVyKG5vdFJlbW92ZWRCeU1lcmdlKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEVsZW1lbnRzSWRzUmVzdWx0ID0gbmV3IFNldDxzdHJpbmc+KFsuLi5yZW1vdmVkRWxlbWVudHNJZHMsIC4uLm1lcmdlUmVtb3ZlZElkc10pO1xuICAgICAgICBjb25zdCB1cGRhdGVkRWxlbWVudHNSZXN1bHQgPSBuZXcgU2V0PEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgIFsuLi51cGRhdGVkRWxlbWVudHMsIC4uLm1lcmdlVXBkYXRlZEVsZW1lbnRzXS5maWx0ZXIobm90UmVtb3ZlZEJ5TWVyZ2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHsgc3BsaXR0ZWRQYXJ0c1Jlc3VsdCwgdXBkYXRlZEVsZW1lbnRzUmVzdWx0LCByZW1vdmVkRWxlbWVudHNJZHNSZXN1bHQgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRha2VTcGxpdHRlZFBhcnRzUmVzdWx0KHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50Pik6IEhUTUxFbGVtZW50W10ge1xuICAgICAgICBjb25zdCBzcGxpdHRlZFBhcnRzOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgICAgICAgdXBkYXRlZEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50Q29udGVudDogc3RyaW5nID0gZWxlbWVudC5pbm5lckhUTUw7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50Q29udGVudC5sZW5ndGggPCBTUExJVF9NQVhfTEVOR1RIKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHNwbGl0SFRNTChlbGVtZW50Q29udGVudCk7XG5cbiAgICAgICAgICAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja0lkID0gZ2VuZXJhdGVJZCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHRFbGVtZW50ID0gdGhpcy5jcmVhdGVCbG9jayhibG9ja0lkLCBwYXJ0KTtcblxuICAgICAgICAgICAgICAgIHNwbGl0dGVkUGFydHMucHVzaCh0ZXh0RWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBwYXJ0c1swXTtcbiAgICAgICAgICAgIGVsZW1lbnQuYWZ0ZXIoLi4uc3BsaXR0ZWRQYXJ0cyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzcGxpdHRlZFBhcnRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlNZXJnZVNtYWxsQ2h1bmtzKCk6IHtcbiAgICAgICAgcmVtb3ZlZElkczogU2V0PHN0cmluZz47XG4gICAgICAgIHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50PjtcbiAgICB9IHtcbiAgICAgICAgY29uc3QgZW1wdHkgPSB7IHJlbW92ZWRJZHM6IG5ldyBTZXQ8c3RyaW5nPigpLCB1cGRhdGVkRWxlbWVudHM6IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCkgfTtcblxuICAgICAgICBpZiAoIXRoaXMud3JhcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2h1bmtFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy53cmFwcGVyLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcuJyArIENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkpO1xuICAgICAgICBjb25zdCBjaHVua0VsZW1lbnRzTWFwID0gbmV3IE1hcChjaHVua0VsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gW2VsZW1lbnQuZGF0YXNldFsnbG9jYWxJZCddISwgZWxlbWVudF0pKTtcbiAgICAgICAgY29uc3QgeyBjaHVua3MsIHJlbW92ZWRJZHMgfSA9IG1lcmdlU21hbGxDaHVua3MoXG4gICAgICAgICAgICBjaHVua0VsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICBpZDogZWxlbWVudC5kYXRhc2V0Wydsb2NhbElkJ10hLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGVsZW1lbnQuaW5uZXJIVE1MXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICByZW1vdmVkSWRzLmZvckVhY2goKGlkKSA9PiBjaHVua0VsZW1lbnRzTWFwLmdldChpZCk/LnJlbW92ZSgpKTtcblxuICAgICAgICBjb25zdCB1cGRhdGVkRWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG4gICAgICAgIGNodW5rcy5mb3JFYWNoKChjaHVuaykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGNodW5rRWxlbWVudHNNYXAuZ2V0KGNodW5rLmlkKTtcblxuICAgICAgICAgICAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQuaW5uZXJIVE1MID09PSBjaHVuay5jb250ZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGNodW5rLmNvbnRlbnQ7XG4gICAgICAgICAgICB1cGRhdGVkRWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4geyByZW1vdmVkSWRzOiBuZXcgU2V0KHJlbW92ZWRJZHMpLCB1cGRhdGVkRWxlbWVudHMgfTtcbiAgICB9XG5cbiAgICAvLyBSSVAgMTMuMDEuMjAyNiAtIHByaXZhdGUgZ2V0TmV4dEluZGV4KCk6IG51bWJlclxuXG4gICAgcHJpdmF0ZSBnZXRCbG9ja1BhcnRPYmplY3QoYmxvY2tJZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpOiBDdWlDb21iaW5lZFBhcnRCbG9jayB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogYmxvY2tJZCxcbiAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgIHBhcmVudElkOiB0aGlzLmRhdGEuaWQsXG4gICAgICAgICAgICAgICAgcGFyZW50VHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNdXRhdGlvbkFjdGlvbnMobXV0YXRpb25MaXN0OiBNdXRhdGlvblJlY29yZFtdKTogQ3VpTXV0YXRpb25BY3Rpb25zIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEVsZW1lbnRzSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPdXRzaWRlRWxlbWVudHM6IE5vZGVbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMubGFzdEJsb2NrRWxlbWVudCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBtdXRhdGlvbkxpc3QuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVVwZGF0ZWRCbG9ja3MobXV0YXRpb24sIHVwZGF0ZWRFbGVtZW50cywgY2hhbmdlZE91dHNpZGVFbGVtZW50cyk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlbW92ZWRCbG9ja3MobXV0YXRpb24sIHJlbW92ZWRFbGVtZW50c0lkcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmxhc3RCbG9ja0VsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RCbG9ja0VsZW1lbnQgPSB0aGlzLmxhc3RCbG9ja0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGxhc3RCbG9ja0VsZW1lbnQuYXBwZW5kKC4uLmNoYW5nZWRPdXRzaWRlRWxlbWVudHMpO1xuICAgICAgICAgICAgdXBkYXRlZEVsZW1lbnRzLmFkZChsYXN0QmxvY2tFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRUb0Jsb2Nrc0VuZChsYXN0QmxvY2tFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cGRhdGVkRWxlbWVudHMsXG4gICAgICAgICAgICByZW1vdmVkRWxlbWVudHNJZHNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhcmV0VG9CbG9ja3NFbmQoYmxvY2s6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuXG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KGJsb2NrLCBibG9jay5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgICAgIHNlbGVjdGlvbj8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlVXBkYXRlZEJsb2NrcyhcbiAgICAgICAgbXV0YXRpb246IE11dGF0aW9uUmVjb3JkLFxuICAgICAgICB1cGRhdGVkRWxlbWVudHM6IFNldDxIVE1MRWxlbWVudD4sXG4gICAgICAgIG91dHNpZGVDaGFuZ2VzOiBOb2RlW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKG11dGF0aW9uLnRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBtdXRhdGlvbi50YXJnZXQucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNwYW4gPSBlbGVtZW50Py5jbG9zZXN0KCcuJyArIENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHNwYW4pIHtcbiAgICAgICAgICAgIHVwZGF0ZWRFbGVtZW50cy5hZGQoc3Bhbik7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlc091dHNpZGVCbG9jayhlbGVtZW50LCBvdXRzaWRlQ2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVDaGFuZ2VzT3V0c2lkZUJsb2NrKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvdXRzaWRlQ2hhbmdlczogTm9kZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICghZWxlbWVudCB8fCB0aGlzLmxhc3RCbG9ja0VsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChibG9jaykgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tFbGVtZW50ID0gYmxvY2sgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChibG9ja0VsZW1lbnQuY2xhc3NMaXN0Py5jb250YWlucyhDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0QmxvY2tFbGVtZW50ID0gYmxvY2tFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvdXRzaWRlQ2hhbmdlcy5wdXNoKGJsb2NrKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCbG9ja3Moc3BsaWNlZFBhcnRzOiBIVE1MRWxlbWVudFtdLCB1cGRhdGVkRWxlbWVudHM6IFNldDxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFzcGxpY2VkUGFydHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRlZEJsb2NrczogQ3VpQ29tYmluZWRQYXJ0QmxvY2tbXSA9IHNwbGljZWRQYXJ0cy5tYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9ja0lkID0gYmxvY2suZGF0YXNldFsnbG9jYWxJZCddO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkLFxuICAgICAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGJsb2NrLmlubmVySFRNTCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXMuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50VHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gdXBkYXRlZEVsZW1lbnRzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgICAgY29uc3QgaWQgPSBwcmV2aW91c0VsZW1lbnQ/LmRhdGFzZXRbJ2xvY2FsSWQnXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIocHJldmlvdXNFbGVtZW50Py5kYXRhc2V0WydpbmRleCddKSArIDE7XG4gICAgICAgIGNvbnN0IGJsb2NrSW5kZXggPSB0aGlzLmRhdGEudGV4dEJsb2Nrcy5maW5kSW5kZXgoKGJsb2NrKSA9PiBibG9jay5pZCA9PT0gaWQpO1xuXG4gICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzLnNwbGljZShibG9ja0luZGV4LCAwLCAuLi5hZGRlZEJsb2Nrcyk7XG4gICAgICAgIHRoaXMuYXBpLmV2ZW50cy5lbWl0KENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgYmxvY2tJbmRleCxcbiAgICAgICAgICAgIGJsb2NrczogYWRkZWRCbG9ja3MsXG4gICAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEudGV4dEJsb2Nrc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUJsb2Nrcyh1cGRhdGVkRWxlbWVudHM6IFNldDxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF1cGRhdGVkRWxlbWVudHMuc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHRVcGRhdGVFbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0VXBkYXRlRW1pdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVkQmxvY2tzID0gWy4uLnVwZGF0ZWRFbGVtZW50cy52YWx1ZXMoKV0ubWFwKChibG9jaykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogYmxvY2suZGF0YXNldFsnbG9jYWxJZCddLFxuICAgICAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGJsb2NrLmlubmVySFRNTCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXMuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50VHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcGkuZXZlbnRzLmVtaXQoQ09NQklORURfVEVYVF9CTE9DS19VUERBVEVELCB1cGRhdGVkQmxvY2tzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUV4aXN0aW5nQmxvY2soYmxvY2tJZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIGlzQmxvY2tFeGlzdHM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRWxlbWVudCA9IHRoaXMud3JhcHBlci5xdWVyeVNlbGVjdG9yKGBbZGF0YS1sb2NhbC1pZD1cIiR7YmxvY2tJZH1cIl1gKTtcblxuICAgICAgICBpZiAoIWV4aXN0aW5nRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmxvY2sgPSB0aGlzLmdldEJsb2NrUGFydE9iamVjdChibG9ja0lkLCB0ZXh0KTtcblxuICAgICAgICBleGlzdGluZ0VsZW1lbnQuaW5uZXJIVE1MID0gdGV4dDtcblxuICAgICAgICBpZiAoaXNCbG9ja0V4aXN0cykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGkuZXZlbnRzLmVtaXQoQ09NQklORURfVEVYVF9CTE9DS19VUERBVEVELCBbYmxvY2tdKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBpLmV2ZW50cy5lbWl0KENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIHtcbiAgICAgICAgICAgICAgICBibG9ja3M6IFtibG9ja11cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVJlbW92ZWRCbG9ja3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkLCByZW1vdmVkRWxlbWVudHNJZHM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtdXRhdGlvbi5yZW1vdmVkTm9kZXMuZm9yRWFjaCgobm9kZTogTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYmxvY2tJZCA9IChub2RlIGFzIEhUTUxFbGVtZW50KS5kYXRhc2V0Wydsb2NhbElkJ107XG5cbiAgICAgICAgICAgIGlmICghYmxvY2tJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVtb3ZlZEVsZW1lbnRzSWRzLmFkZChibG9ja0lkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVCbG9ja3MoaWRzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBpZiAoIWlkcy5zaXplKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZW1vdmVkRWxlbWVudElkcyA9IFsuLi5pZHMudmFsdWVzKCldO1xuXG4gICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzID0gdGhpcy5kYXRhLnRleHRCbG9ja3MuZmlsdGVyKChibG9jaykgPT4gIWlkcy5oYXMoYmxvY2suaWQgfHwgJycpKTtcbiAgICAgICAgdGhpcy5hcGkuZXZlbnRzLmVtaXQoQ09NQklORURfVEVYVF9CTE9DS19SRU1PVkVELCByZW1vdmVkRWxlbWVudElkcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJCbG9ja3MoYmxvY2tzOiBDdWlDb21iaW5lZFBhcnRCbG9ja1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghYmxvY2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2tzLmZvckVhY2goKGJsb2NrOiBDdWlDb21iaW5lZFBhcnRCbG9jaykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSB0aGlzLmNyZWF0ZUJsb2NrKGJsb2NrLmlkIHx8IGdlbmVyYXRlSWQoKSwgYmxvY2suZGF0YS50ZXh0KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLndyYXBwZXIucXVlcnlTZWxlY3RvcignLicgKyBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyLmFwcGVuZCh0ZXh0RWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5yZXBsYWNlQ2hpbGRyZW4odGV4dEVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBpLmV2ZW50cy5lbWl0KENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIHtcbiAgICAgICAgICAgICAgICBibG9ja3NcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUJsb2NrKGlkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuVEFHKTtcblxuICAgICAgICB0ZXh0RWxlbWVudC5jbGFzc0xpc3QuYWRkKENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCk7XG4gICAgICAgIHRleHRFbGVtZW50LmlubmVySFRNTCA9IHRleHQ7XG4gICAgICAgIHRleHRFbGVtZW50LmRhdGFzZXRbJ2lkJ10gPSBpZDtcbiAgICAgICAgdGV4dEVsZW1lbnQuZGF0YXNldFsnbG9jYWxJZCddID0gaWQ7XG5cbiAgICAgICAgcmV0dXJuIHRleHRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydERlZmF1bHREYXRhVG9DdXN0b20oZGF0YTogeyB0ZXh0OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhLnRleHRCbG9ja3MgPSBkYXRhLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICBibG9jay5pZCA9IGdlbmVyYXRlSWQoKTtcbiAgICAgICAgICAgICAgICBibG9jay5kYXRhLnBhcmVudElkID0gdGhpcy5kYXRhLmlkO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRhdGEudGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChkYXRhLnRleHQpO1xuICAgICAgICBsZXQgZWxlbWVudENvbnRlbnQgPSAnJztcblxuICAgICAgICBmcmFnbWVudC5jaGlsZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250ZW50ICs9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRDb250ZW50ICs9IChub2RlIGFzIEhUTUxFbGVtZW50KS5pbm5lckhUTUw7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gZWxlbWVudENvbnRlbnQubGVuZ3RoIDwgU1BMSVRfTUFYX0xFTkdUSCA/IFtlbGVtZW50Q29udGVudF0gOiBzcGxpdEhUTUwoZWxlbWVudENvbnRlbnQpO1xuXG4gICAgICAgIHBhcnRzLmZvckVhY2goKHBhcnQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tPYmplY3QgPSB0aGlzLmdldEJsb2NrUGFydE9iamVjdChnZW5lcmF0ZUlkKCksIHBhcnQpO1xuXG4gICAgICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2Nrcy5wdXNoKGJsb2NrT2JqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0lzRWRpdG9yRW1wdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy53cmFwcGVyIHx8IHRoaXMud3JhcHBlci5jaGlsZHJlbi5sZW5ndGggPiB0aGlzLk1BWF9DSElMRF9DT1VOVF9GT1JfRU1QVFkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLndyYXBwZXIuY2hpbGRyZW4uaXRlbSgwKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNJdGVtRW1wdHkgPSAhaXRlbS50ZXh0Q29udGVudD8ubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5kYXRhc2V0WydlbXB0eSddID0gYCR7aXNJdGVtRW1wdHl9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBsYWNlaG9sZGVyKGNvbmZpZzogVG9vbENvbmZpZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnLnJlYWRvbmx5UGxhY2Vob2xkZXIgPz8gREVGQVVMVF9SRUFET05MWV9QTEFDRUhPTERFUjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWcucGxhY2Vob2xkZXIgPz8gREVGQVVMVF9QTEFDRUhPTERFUjtcbiAgICB9XG59XG4iXX0=
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtdGV4dC1ibG9jay50b29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvdG9vbHMvY29tYmluZWQtdGV4dC1ibG9jay50b29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUNuQixNQUFNLGNBQWMsQ0FBQztBQU90QixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuRSxNQUFNLE9BQU8sd0JBQXdCO0lBc0JqQyxZQUFZLE9BQWdCO1FBckJYLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFDYixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQiw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFDOUIsK0JBQTBCLEdBQUcsbUJBQW1CLENBQUM7UUFFakQsbUJBQWMsR0FBRztZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLElBQUk7U0FDdEIsQ0FBQztRQVFlLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTdCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQW1LbEIsd0JBQW1CLEdBQUcsQ0FBQyxJQUFZLEVBQXVCLEVBQUU7WUFDekUsSUFBSSxTQUFTLEdBQStDLElBQUksQ0FBQztZQUVqRSxPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNaLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztnQkFFRCxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxl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QWMsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV0RyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ2pGLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBRS9DLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFrQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSw0QkFBNEIsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsV0FBVyxJQUFJLG1CQUFtQixDQUFDO0lBQ3JELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHR5cGUgeyBBUEksIEJsb2NrVG9vbCwgQmxvY2tUb29sQ29uc3RydWN0b3JPcHRpb25zLCBUb29sQ29uZmlnIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLLFxyXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19BRERFRCxcclxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSxcclxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcclxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfUkVNT1ZFRCxcclxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfVVBEQVRFRCxcclxuICAgIERFRkFVTFRfUExBQ0VIT0xERVIsXHJcbiAgICBERUZBVUxUX1JFQURPTkxZX1BMQUNFSE9MREVSLFxyXG4gICAgU1BMSVRfTUFYX0xFTkdUSFxyXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB0eXBlIHtcclxuICAgIEN1aUNvbWJpbmVkQmxvY2tUb29sRGF0YSxcclxuICAgIEN1aUNvbWJpbmVkUGFydEJsb2NrLFxyXG4gICAgQ3VpTXV0YXRpb25BY3Rpb25zLFxyXG4gICAgQ3VpTXV0YXRpb25DYWxsYmFja1xyXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBnZW5lcmF0ZUlkLCBtZXJnZVNtYWxsQ2h1bmtzLCBzcGxpdEhUTUwgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VpQ29tYmluZWRUZXh0QmxvY2tUb29sIGltcGxlbWVudHMgQmxvY2tUb29sIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgVEFHID0gJ3NwYW4nO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBERUJPVU5DRV9USU1FID0gMzUwO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBNQVhfQ0hJTERfQ09VTlRfRk9SX0VNUFRZID0gMTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgUExBQ0VIT0xERVJfQVRUUklCVVRFX05BTUUgPSAncGxhY2Vob2xkZXJBY3RpdmUnO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXV0YXRpb25Db25maWcgPSB7XHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZVxyXG4gICAgfTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpOiBBUEk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGE6IEN1aUNvbWJpbmVkQmxvY2tUb29sRGF0YTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIHByaXZhdGUgd3JhcHBlcj86IEhUTUxFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBvYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgICBwcml2YXRlIGxhc3RCbG9ja0VsZW1lbnQ/OiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VzID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHByaXZhdGUgc2tpcE5leHRVcGRhdGVFbWl0ID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogdW5rbm93bikge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSBvcHRpb25zIGFzIEJsb2NrVG9vbENvbnN0cnVjdG9yT3B0aW9ucztcclxuICAgICAgICBjb25zdCBkYXRhID0gYm9keS5kYXRhO1xyXG5cclxuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gYm9keS5yZWFkT25seTtcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcihib2R5LmNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5hcGkgPSBib2R5LmFwaTtcclxuICAgICAgICB0aGlzLmRhdGEgPSB7XHJcbiAgICAgICAgICAgIGlkOiBkYXRhLmlkIHx8IGdlbmVyYXRlSWQoKSxcclxuICAgICAgICAgICAgdGV4dEJsb2NrczogZGF0YS50ZXh0QmxvY2tzIHx8IFtdXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RGVmYXVsdERhdGFUb0N1c3RvbShkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgaXNSZWFkT25seVN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBlbmFibGVMaW5lQnJlYWtzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCB0b29sYm94KCk6IHsgaWNvbjogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGljb246ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIGQ9XCJNOCA5VjcuMkM4IDcuMDg5NTQgOC4wODk1NCA3IDguMiA3TDEyIDdNMTYgOVY3LjJDMTYgNy4wODk1NCAxNS45MTA1IDcgMTUuOCA3TDEyIDdNMTIgN0wxMiAxN00xMiAxN0gxME0xMiAxN0gxNFwiPjwvcGF0aD48L3N2Zz4nLFxyXG4gICAgICAgICAgICB0aXRsZTogJ1RleHQnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBwYXN0ZUNvbmZpZygpOiBvYmplY3Qge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHRhZ3M6IFsnUCddXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25QYXN0ZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ3RhZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdGV4dCA9IGV2ZW50LmRldGFpbC5kYXRhLnRleHRDb250ZW50O1xyXG4gICAgICAgIGNvbnN0IGxhc3RCbG9ja0luZGV4ID0gdGhpcy5kYXRhLnRleHRCbG9ja3MubGVuZ3RoIC0gMTtcclxuICAgICAgICBjb25zdCBsYXN0QmxvY2sgPSB0aGlzLmRhdGEudGV4dEJsb2Nrc1tsYXN0QmxvY2tJbmRleF07XHJcbiAgICAgICAgY29uc3QgYmxvY2tJZCA9IGxhc3RCbG9jaz8uaWQgfHwgZ2VuZXJhdGVJZCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2Nrcy5zcGxpY2UobGFzdEJsb2NrSW5kZXgsIDEsIHRoaXMuZ2V0QmxvY2tQYXJ0T2JqZWN0KGJsb2NrSWQsIHRleHQpKTtcclxuXHJcbiAgICAgICAgdGhpcy5za2lwTmV4dFVwZGF0ZUVtaXQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUV4aXN0aW5nQmxvY2soYmxvY2tJZCwgdGV4dCwgQm9vbGVhbihsYXN0QmxvY2s/LmlkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbmRlcigpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgdGhpcy53cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgdGhpcy53cmFwcGVyLmNsYXNzTGlzdC5hZGQoQ09NQklORURfVEVYVF9CTE9DSyk7XHJcbiAgICAgICAgdGhpcy53cmFwcGVyLmRhdGFzZXRbdGhpcy5QTEFDRUhPTERFUl9BVFRSSUJVVEVfTkFNRV0gPSB0aGlzLmFwaS5pMThuLnQodGhpcy5wbGFjZWhvbGRlcik7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xyXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIuY29udGVudEVkaXRhYmxlID0gJ3RydWUnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgaXNFbXB0eUJsb2NrID0gIXRoaXMuZGF0YS50ZXh0QmxvY2tzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKGlzRW1wdHlCbG9jaykge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2Nrcy5wdXNoKHRoaXMuZ2V0QmxvY2tQYXJ0T2JqZWN0KGdlbmVyYXRlSWQoKSwgJycpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyQmxvY2tzKHRoaXMuZGF0YS50ZXh0QmxvY2tzKTtcclxuICAgICAgICB0aGlzLmNoZWNrSXNFZGl0b3JFbXB0eSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkpIHtcclxuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSB0aGlzLmdldE11dGF0aW9uQ2FsbGJhY2sodGhpcy5ERUJPVU5DRV9USU1FKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLm9uTXV0YXRpb25FdmVudC5iaW5kKHRoaXMsIGNhbGxiYWNrKSk7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndyYXBwZXIsIHRoaXMubXV0YXRpb25Db25maWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMud3JhcHBlcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbWVyZ2UoYmxvY2tzRGF0YTogQ3VpQ29tYmluZWRQYXJ0QmxvY2tbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy53cmFwcGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBibG9ja3NUZXh0Q29udGVudCA9ICcnO1xyXG4gICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzID0gW107XHJcblxyXG4gICAgICAgIGJsb2Nrc0RhdGEuZm9yRWFjaCgoYmxvY2spID0+IHtcclxuICAgICAgICAgICAgYmxvY2tzVGV4dENvbnRlbnQgKz0gYmxvY2suZGF0YS50ZXh0O1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud3JhcHBlci5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLndyYXBwZXIuY2hpbGROb2Rlcy5pdGVtKGkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEhUTUxTcGFuRWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICBibG9ja3NUZXh0Q29udGVudCA9IG5vZGUuaW5uZXJIVE1MICsgYmxvY2tzVGV4dENvbnRlbnQ7XHJcbiAgICAgICAgICAgIG5vZGUucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGJsb2Nrc1RleHRDb250ZW50Lmxlbmd0aCA8IFNQTElUX01BWF9MRU5HVEggPyBbYmxvY2tzVGV4dENvbnRlbnRdIDogc3BsaXRIVE1MKGJsb2Nrc1RleHRDb250ZW50KTtcclxuXHJcbiAgICAgICAgcGFydHMuZm9yRWFjaCgocGFydDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrT2JqZWN0ID0gdGhpcy5nZXRCbG9ja1BhcnRPYmplY3QoZ2VuZXJhdGVJZCgpLCBwYXJ0KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzLnB1c2goYmxvY2tPYmplY3QpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlckJsb2Nrcyh0aGlzLmRhdGEudGV4dEJsb2Nrcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNhdmUoYmxvY2tDb250ZW50OiBIVE1MRWxlbWVudCk6IEN1aUNvbWJpbmVkUGFydEJsb2NrW10ge1xyXG4gICAgICAgIGNvbnN0IHRleHRCbG9ja3M6IEN1aUNvbWJpbmVkUGFydEJsb2NrW10gPSBbXTtcclxuXHJcbiAgICAgICAgYmxvY2tDb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5UQUcpLmZvckVhY2goKHNwYW46IEhUTUxFbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRleHRCbG9ja3MucHVzaCh0aGlzLmdldEJsb2NrUGFydE9iamVjdChzcGFuLmRhdGFzZXRbJ2xvY2FsSWQnXSEsIHNwYW4uaW5uZXJIVE1MKSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0ZXh0QmxvY2tzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuXHJcbiAgICAgICAgY29uc3QgYmxvY2tJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLnRleHRCbG9ja3MuZm9yRWFjaCgoYmxvY2s6IEN1aUNvbWJpbmVkUGFydEJsb2NrKSA9PiB7XHJcbiAgICAgICAgICAgIGJsb2NrSWRzLmFkZChibG9jay5pZCB8fCAnJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQmxvY2tzKGJsb2NrSWRzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uTXV0YXRpb25FdmVudChjYWxsYmFjazogKG11dGF0aW9uTGlzdDogTXV0YXRpb25SZWNvcmRbXSkgPT4gdm9pZCwgbXV0YXRpb25MaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbXV0YXRpb25MaXN0LmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZXMuc2V0KGdlbmVyYXRlSWQoKSwgbXV0YXRpb24pO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLnNldChtdXRhdGlvbi50YXJnZXQsIG11dGF0aW9uKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY2FsbGJhY2sobXV0YXRpb25MaXN0KTtcclxuICAgICAgICB0aGlzLmNoZWNrSXNFZGl0b3JFbXB0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2V0TXV0YXRpb25DYWxsYmFjayA9ICh3YWl0OiBudW1iZXIpOiBDdWlNdXRhdGlvbkNhbGxiYWNrID0+IHtcclxuICAgICAgICBsZXQgdGltZW91dElkOiBDdWlOdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4gPSBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGltZW91dElkKSB7XHJcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmhhbmRsZU11dGF0aW9ucygpLCB3YWl0KTtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU11dGF0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdXBkYXRlZEVsZW1lbnRzLCByZW1vdmVkRWxlbWVudHNJZHMgfSA9IHRoaXMuZ2V0TXV0YXRpb25BY3Rpb25zKFsuLi50aGlzLmNoYW5nZXMudmFsdWVzKCldKTtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRQYXJ0cyA9IHRoaXMudGFrZVNwbGl0dGVkUGFydHNSZXN1bHQodXBkYXRlZEVsZW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3QgeyBzcGxpdHRlZFBhcnRzUmVzdWx0LCB1cGRhdGVkRWxlbWVudHNSZXN1bHQsIHJlbW92ZWRFbGVtZW50c0lkc1Jlc3VsdCB9ID0gdGhpcy50YWtlTWVyZ2VkUmVzdWx0KFxyXG4gICAgICAgICAgICAgICAgc3BsaXR0ZWRQYXJ0cyxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRFbGVtZW50cyxcclxuICAgICAgICAgICAgICAgIHJlbW92ZWRFbGVtZW50c0lkc1xyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGRCbG9ja3Moc3BsaXR0ZWRQYXJ0c1Jlc3VsdCwgdXBkYXRlZEVsZW1lbnRzUmVzdWx0KTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVCbG9ja3ModXBkYXRlZEVsZW1lbnRzUmVzdWx0KTtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja3MocmVtb3ZlZEVsZW1lbnRzSWRzUmVzdWx0KTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmNsZWFyKCk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLndyYXBwZXIsIHRoaXMubXV0YXRpb25Db25maWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRha2VNZXJnZWRSZXN1bHQoXHJcbiAgICAgICAgc3BsaXR0ZWRQYXJ0czogSFRNTEVsZW1lbnRbXSxcclxuICAgICAgICB1cGRhdGVkRWxlbWVudHM6IFNldDxIVE1MRWxlbWVudD4sXHJcbiAgICAgICAgcmVtb3ZlZEVsZW1lbnRzSWRzOiBTZXQ8c3RyaW5nPlxyXG4gICAgKToge1xyXG4gICAgICAgIHNwbGl0dGVkUGFydHNSZXN1bHQ6IEhUTUxFbGVtZW50W107XHJcbiAgICAgICAgdXBkYXRlZEVsZW1lbnRzUmVzdWx0OiBTZXQ8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICAgIHJlbW92ZWRFbGVtZW50c0lkc1Jlc3VsdDogU2V0PHN0cmluZz47XHJcbiAgICB9IHtcclxuICAgICAgICBjb25zdCB7IHJlbW92ZWRJZHM6IG1lcmdlUmVtb3ZlZElkcywgdXBkYXRlZEVsZW1lbnRzOiBtZXJnZVVwZGF0ZWRFbGVtZW50cyB9ID0gdGhpcy5hcHBseU1lcmdlU21hbGxDaHVua3MoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgbm90UmVtb3ZlZEJ5TWVyZ2UgPSAoZWw6IEhUTUxFbGVtZW50KSA9PiAhbWVyZ2VSZW1vdmVkSWRzLmhhcyhlbC5kYXRhc2V0Wydsb2NhbElkJ10gPz8gJycpO1xyXG5cclxuICAgICAgICBjb25zdCBzcGxpdHRlZFBhcnRzUmVzdWx0ID0gc3BsaXR0ZWRQYXJ0cy5maWx0ZXIobm90UmVtb3ZlZEJ5TWVyZ2UpO1xyXG4gICAgICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50c0lkc1Jlc3VsdCA9IG5ldyBTZXQ8c3RyaW5nPihbLi4ucmVtb3ZlZEVsZW1lbnRzSWRzLCAuLi5tZXJnZVJlbW92ZWRJZHNdKTtcclxuICAgICAgICBjb25zdCB1cGRhdGVkRWxlbWVudHNSZXN1bHQgPSBuZXcgU2V0PEhUTUxFbGVtZW50PihcclxuICAgICAgICAgICAgWy4uLnVwZGF0ZWRFbGVtZW50cywgLi4ubWVyZ2VVcGRhdGVkRWxlbWVudHNdLmZpbHRlcihub3RSZW1vdmVkQnlNZXJnZSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4geyBzcGxpdHRlZFBhcnRzUmVzdWx0LCB1cGRhdGVkRWxlbWVudHNSZXN1bHQsIHJlbW92ZWRFbGVtZW50c0lkc1Jlc3VsdCB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdGFrZVNwbGl0dGVkUGFydHNSZXN1bHQodXBkYXRlZEVsZW1lbnRzOiBTZXQ8SFRNTEVsZW1lbnQ+KTogSFRNTEVsZW1lbnRbXSB7XHJcbiAgICAgICAgY29uc3Qgc3BsaXR0ZWRQYXJ0czogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuICAgICAgICB1cGRhdGVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudENvbnRlbnQ6IHN0cmluZyA9IGVsZW1lbnQuaW5uZXJIVE1MO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250ZW50Lmxlbmd0aCA8IFNQTElUX01BWF9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBzcGxpdEhUTUwoZWxlbWVudENvbnRlbnQpO1xyXG5cclxuICAgICAgICAgICAgcGFydHMuZm9yRWFjaCgocGFydCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja0lkID0gZ2VuZXJhdGVJZCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSB0aGlzLmNyZWF0ZUJsb2NrKGJsb2NrSWQsIHBhcnQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHNwbGl0dGVkUGFydHMucHVzaCh0ZXh0RWxlbWVudCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBwYXJ0c1swXTtcclxuICAgICAgICAgICAgZWxlbWVudC5hZnRlciguLi5zcGxpdHRlZFBhcnRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVkUGFydHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBseU1lcmdlU21hbGxDaHVua3MoKToge1xyXG4gICAgICAgIHJlbW92ZWRJZHM6IFNldDxzdHJpbmc+O1xyXG4gICAgICAgIHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50PjtcclxuICAgIH0ge1xyXG4gICAgICAgIGNvbnN0IGVtcHR5ID0geyByZW1vdmVkSWRzOiBuZXcgU2V0PHN0cmluZz4oKSwgdXBkYXRlZEVsZW1lbnRzOiBuZXcgU2V0PEhUTUxFbGVtZW50PigpIH07XHJcblxyXG4gICAgICAgIGlmICghdGhpcy53cmFwcGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbXB0eTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNodW5rRWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMud3JhcHBlci5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignLicgKyBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpKTtcclxuICAgICAgICBjb25zdCBjaHVua0VsZW1lbnRzTWFwID0gbmV3IE1hcChjaHVua0VsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gW2VsZW1lbnQuZGF0YXNldFsnbG9jYWxJZCddISwgZWxlbWVudF0pKTtcclxuICAgICAgICBjb25zdCB7IGNodW5rcywgcmVtb3ZlZElkcyB9ID0gbWVyZ2VTbWFsbENodW5rcyhcclxuICAgICAgICAgICAgY2h1bmtFbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBpZDogZWxlbWVudC5kYXRhc2V0Wydsb2NhbElkJ10hLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogZWxlbWVudC5pbm5lckhUTUxcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmVtb3ZlZElkcy5mb3JFYWNoKChpZCkgPT4gY2h1bmtFbGVtZW50c01hcC5nZXQoaWQpPy5yZW1vdmUoKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XHJcblxyXG4gICAgICAgIGNodW5rcy5mb3JFYWNoKChjaHVuaykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gY2h1bmtFbGVtZW50c01hcC5nZXQoY2h1bmsuaWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQuaW5uZXJIVE1MID09PSBjaHVuay5jb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gY2h1bmsuY29udGVudDtcclxuICAgICAgICAgICAgdXBkYXRlZEVsZW1lbnRzLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgcmVtb3ZlZElkczogbmV3IFNldChyZW1vdmVkSWRzKSwgdXBkYXRlZEVsZW1lbnRzIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUklQIDEzLjAxLjIwMjYgLSBwcml2YXRlIGdldE5leHRJbmRleCgpOiBudW1iZXJcclxuXHJcbiAgICBwcml2YXRlIGdldEJsb2NrUGFydE9iamVjdChibG9ja0lkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IEN1aUNvbWJpbmVkUGFydEJsb2NrIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogYmxvY2tJZCxcclxuICAgICAgICAgICAgdHlwZTogQ09NQklORURfVEVYVF9CTE9DS19QQVJULFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXMuZGF0YS5pZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudFR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE11dGF0aW9uQWN0aW9ucyhtdXRhdGlvbkxpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiBDdWlNdXRhdGlvbkFjdGlvbnMge1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZEVsZW1lbnRzSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICAgICAgY29uc3QgY2hhbmdlZE91dHNpZGVFbGVtZW50czogTm9kZVtdID0gW107XHJcblxyXG4gICAgICAgIHRoaXMubGFzdEJsb2NrRWxlbWVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgbXV0YXRpb25MaXN0LmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVVwZGF0ZWRCbG9ja3MobXV0YXRpb24sIHVwZGF0ZWRFbGVtZW50cywgY2hhbmdlZE91dHNpZGVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVtb3ZlZEJsb2NrcyhtdXRhdGlvbiwgcmVtb3ZlZEVsZW1lbnRzSWRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubGFzdEJsb2NrRWxlbWVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0QmxvY2tFbGVtZW50ID0gdGhpcy5sYXN0QmxvY2tFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgbGFzdEJsb2NrRWxlbWVudC5hcHBlbmQoLi4uY2hhbmdlZE91dHNpZGVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRFbGVtZW50cy5hZGQobGFzdEJsb2NrRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRUb0Jsb2Nrc0VuZChsYXN0QmxvY2tFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRFbGVtZW50cyxcclxuICAgICAgICAgICAgcmVtb3ZlZEVsZW1lbnRzSWRzXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldENhcmV0VG9CbG9ja3NFbmQoYmxvY2s6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcclxuXHJcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoYmxvY2ssIGJsb2NrLmNoaWxkTm9kZXMubGVuZ3RoKTtcclxuICAgICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UocmFuZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlVXBkYXRlZEJsb2NrcyhcclxuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQsXHJcbiAgICAgICAgdXBkYXRlZEVsZW1lbnRzOiBTZXQ8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIG91dHNpZGVDaGFuZ2VzOiBOb2RlW11cclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gbXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAobXV0YXRpb24udGFyZ2V0Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xyXG4gICAgICAgICAgICBlbGVtZW50ID0gbXV0YXRpb24udGFyZ2V0LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzcGFuID0gZWxlbWVudD8uY2xvc2VzdCgnLicgKyBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoc3Bhbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkRWxlbWVudHMuYWRkKHNwYW4pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VzT3V0c2lkZUJsb2NrKGVsZW1lbnQsIG91dHNpZGVDaGFuZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUNoYW5nZXNPdXRzaWRlQmxvY2soZWxlbWVudDogSFRNTEVsZW1lbnQsIG91dHNpZGVDaGFuZ2VzOiBOb2RlW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgdGhpcy5sYXN0QmxvY2tFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChibG9jaykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBibG9ja0VsZW1lbnQgPSBibG9jayBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmIChibG9ja0VsZW1lbnQuY2xhc3NMaXN0Py5jb250YWlucyhDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RCbG9ja0VsZW1lbnQgPSBibG9ja0VsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBvdXRzaWRlQ2hhbmdlcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZEJsb2NrcyhzcGxpY2VkUGFydHM6IEhUTUxFbGVtZW50W10sIHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgICAgIGlmICghc3BsaWNlZFBhcnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhZGRlZEJsb2NrczogQ3VpQ29tYmluZWRQYXJ0QmxvY2tbXSA9IHNwbGljZWRQYXJ0cy5tYXAoKGJsb2NrKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrSWQgPSBibG9jay5kYXRhc2V0Wydsb2NhbElkJ107XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGJsb2NrSWQsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogYmxvY2suaW5uZXJIVE1MLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiB0aGlzLmRhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50VHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IHVwZGF0ZWRFbGVtZW50cy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XHJcbiAgICAgICAgY29uc3QgaWQgPSBwcmV2aW91c0VsZW1lbnQ/LmRhdGFzZXRbJ2xvY2FsSWQnXTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihwcmV2aW91c0VsZW1lbnQ/LmRhdGFzZXRbJ2luZGV4J10pICsgMTtcclxuICAgICAgICBjb25zdCBibG9ja0luZGV4ID0gdGhpcy5kYXRhLnRleHRCbG9ja3MuZmluZEluZGV4KChibG9jaykgPT4gYmxvY2suaWQgPT09IGlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLnRleHRCbG9ja3Muc3BsaWNlKGJsb2NrSW5kZXgsIDAsIC4uLmFkZGVkQmxvY2tzKTtcclxuICAgICAgICB0aGlzLmFwaS5ldmVudHMuZW1pdChDT01CSU5FRF9URVhUX0JMT0NLX0FEREVELCB7XHJcbiAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICBibG9ja0luZGV4LFxyXG4gICAgICAgICAgICBibG9ja3M6IGFkZGVkQmxvY2tzLFxyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEudGV4dEJsb2Nrc1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQmxvY2tzKHVwZGF0ZWRFbGVtZW50czogU2V0PEhUTUxFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdXBkYXRlZEVsZW1lbnRzLnNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHRVcGRhdGVFbWl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHRVcGRhdGVFbWl0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1cGRhdGVkQmxvY2tzID0gWy4uLnVwZGF0ZWRFbGVtZW50cy52YWx1ZXMoKV0ubWFwKChibG9jaykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGJsb2NrLmRhdGFzZXRbJ2xvY2FsSWQnXSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBibG9jay5pbm5lckhUTUwsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXMuZGF0YS5pZCxcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRUeXBlOiBDT01CSU5FRF9URVhUX0JMT0NLX05BTUVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hcGkuZXZlbnRzLmVtaXQoQ09NQklORURfVEVYVF9CTE9DS19VUERBVEVELCB1cGRhdGVkQmxvY2tzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV4aXN0aW5nQmxvY2soYmxvY2tJZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIGlzQmxvY2tFeGlzdHM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMud3JhcHBlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBleGlzdGluZ0VsZW1lbnQgPSB0aGlzLndyYXBwZXIucXVlcnlTZWxlY3RvcihgW2RhdGEtbG9jYWwtaWQ9XCIke2Jsb2NrSWR9XCJdYCk7XHJcblxyXG4gICAgICAgIGlmICghZXhpc3RpbmdFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJsb2NrID0gdGhpcy5nZXRCbG9ja1BhcnRPYmplY3QoYmxvY2tJZCwgdGV4dCk7XHJcblxyXG4gICAgICAgIGV4aXN0aW5nRWxlbWVudC5pbm5lckhUTUwgPSB0ZXh0O1xyXG5cclxuICAgICAgICBpZiAoaXNCbG9ja0V4aXN0cykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBpLmV2ZW50cy5lbWl0KENPTUJJTkVEX1RFWFRfQkxPQ0tfVVBEQVRFRCwgW2Jsb2NrXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBpLmV2ZW50cy5lbWl0KENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIHtcclxuICAgICAgICAgICAgICAgIGJsb2NrczogW2Jsb2NrXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZVJlbW92ZWRCbG9ja3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkLCByZW1vdmVkRWxlbWVudHNJZHM6IFNldDxzdHJpbmc+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbXV0YXRpb24ucmVtb3ZlZE5vZGVzLmZvckVhY2goKG5vZGU6IE5vZGUpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBibG9ja0lkID0gKG5vZGUgYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXRbJ2xvY2FsSWQnXTtcclxuXHJcbiAgICAgICAgICAgIGlmICghYmxvY2tJZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZW1vdmVkRWxlbWVudHNJZHMuYWRkKGJsb2NrSWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlQmxvY2tzKGlkczogU2V0PHN0cmluZz4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWlkcy5zaXplKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50SWRzID0gWy4uLmlkcy52YWx1ZXMoKV07XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS50ZXh0QmxvY2tzID0gdGhpcy5kYXRhLnRleHRCbG9ja3MuZmlsdGVyKChibG9jaykgPT4gIWlkcy5oYXMoYmxvY2suaWQgfHwgJycpKTtcclxuICAgICAgICB0aGlzLmFwaS5ldmVudHMuZW1pdChDT01CSU5FRF9URVhUX0JMT0NLX1JFTU9WRUQsIHJlbW92ZWRFbGVtZW50SWRzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbmRlckJsb2NrcyhibG9ja3M6IEN1aUNvbWJpbmVkUGFydEJsb2NrW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYmxvY2tzLmZvckVhY2goKGJsb2NrOiBDdWlDb21iaW5lZFBhcnRCbG9jaykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IHRoaXMuY3JlYXRlQmxvY2soYmxvY2suaWQgfHwgZ2VuZXJhdGVJZCgpLCBibG9jay5kYXRhLnRleHQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLndyYXBwZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMud3JhcHBlci5xdWVyeVNlbGVjdG9yKCcuJyArIENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5hcHBlbmQodGV4dEVsZW1lbnQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy53cmFwcGVyLnJlcGxhY2VDaGlsZHJlbih0ZXh0RWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFwaS5ldmVudHMuZW1pdChDT01CSU5FRF9URVhUX0JMT0NLX0FEREVELCB7XHJcbiAgICAgICAgICAgICAgICBibG9ja3NcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVCbG9jayhpZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuVEFHKTtcclxuXHJcbiAgICAgICAgdGV4dEVsZW1lbnQuY2xhc3NMaXN0LmFkZChDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpO1xyXG4gICAgICAgIHRleHRFbGVtZW50LmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICAgICAgdGV4dEVsZW1lbnQuZGF0YXNldFsnaWQnXSA9IGlkO1xyXG4gICAgICAgIHRleHRFbGVtZW50LmRhdGFzZXRbJ2xvY2FsSWQnXSA9IGlkO1xyXG5cclxuICAgICAgICByZXR1cm4gdGV4dEVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb252ZXJ0RGVmYXVsdERhdGFUb0N1c3RvbShkYXRhOiB7IHRleHQ6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhLnRleHRCbG9ja3MgPSBkYXRhLm1hcCgoYmxvY2spID0+IHtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmlkID0gZ2VuZXJhdGVJZCgpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZGF0YS5wYXJlbnRJZCA9IHRoaXMuZGF0YS5pZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2s7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFkYXRhLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChkYXRhLnRleHQpO1xyXG4gICAgICAgIGxldCBlbGVtZW50Q29udGVudCA9ICcnO1xyXG5cclxuICAgICAgICBmcmFnbWVudC5jaGlsZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGVudCArPSBub2RlLnRleHRDb250ZW50O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxlbWVudENvbnRlbnQgKz0gKG5vZGUgYXMgSFRNTEVsZW1lbnQpLmlubmVySFRNTDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFydHMgPSBlbGVtZW50Q29udGVudC5sZW5ndGggPCBTUExJVF9NQVhfTEVOR1RIID8gW2VsZW1lbnRDb250ZW50XSA6IHNwbGl0SFRNTChlbGVtZW50Q29udGVudCk7XHJcblxyXG4gICAgICAgIHBhcnRzLmZvckVhY2goKHBhcnQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBibG9ja09iamVjdCA9IHRoaXMuZ2V0QmxvY2tQYXJ0T2JqZWN0KGdlbmVyYXRlSWQoKSwgcGFydCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRhdGEudGV4dEJsb2Nrcy5wdXNoKGJsb2NrT2JqZWN0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrSXNFZGl0b3JFbXB0eSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMud3JhcHBlciB8fCB0aGlzLndyYXBwZXIuY2hpbGRyZW4ubGVuZ3RoID4gdGhpcy5NQVhfQ0hJTERfQ09VTlRfRk9SX0VNUFRZKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLndyYXBwZXIuY2hpbGRyZW4uaXRlbSgwKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCBpc0l0ZW1FbXB0eSA9ICFpdGVtPy50ZXh0Q29udGVudD8ubGVuZ3RoO1xyXG5cclxuICAgICAgICB0aGlzLndyYXBwZXIuZGF0YXNldFsnZW1wdHknXSA9IGAke2lzSXRlbUVtcHR5fWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQbGFjZWhvbGRlcihjb25maWc6IFRvb2xDb25maWcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb25maWcucmVhZG9ubHlQbGFjZWhvbGRlciA/PyBERUZBVUxUX1JFQURPTkxZX1BMQUNFSE9MREVSO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wbGFjZWhvbGRlciA/PyBERUZBVUxUX1BMQUNFSE9MREVSO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -7,11 +7,11 @@ export class CuiRoleMarker extends CuiCustomMarkerTool {
7
7
  render() {
8
8
  super.render();
9
9
  /* eslint-disable */
10
- this.button.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="-3 -3 24 24" fill="none">
11
- <path d="M13.3335 17.5V15.8333C13.3335 14.9493 12.9823 14.1014 12.3572 13.4763C11.7321 12.8512 10.8842 12.5 10.0002 12.5H4.16683C3.28277 12.5 2.43493 12.8512 1.80981 13.4763C1.18469 14.1014 0.833496 14.9493 0.833496 15.8333V17.5M16.6668 6.66667V11.6667M19.1668 9.16667H14.1668M10.4168 5.83333C10.4168 7.67428 8.92445 9.16667 7.0835 9.16667C5.24255 9.16667 3.75016 7.67428 3.75016 5.83333C3.75016 3.99238 5.24255 2.5 7.0835 2.5C8.92445 2.5 10.4168 3.99238 10.4168 5.83333Z" stroke="#595E6A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
10
+ this.button.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="-3 -3 24 24" fill="none">
11
+ <path d="M13.3335 17.5V15.8333C13.3335 14.9493 12.9823 14.1014 12.3572 13.4763C11.7321 12.8512 10.8842 12.5 10.0002 12.5H4.16683C3.28277 12.5 2.43493 12.8512 1.80981 13.4763C1.18469 14.1014 0.833496 14.9493 0.833496 15.8333V17.5M16.6668 6.66667V11.6667M19.1668 9.16667H14.1668M10.4168 5.83333C10.4168 7.67428 8.92445 9.16667 7.0835 9.16667C5.24255 9.16667 3.75016 7.67428 3.75016 5.83333C3.75016 3.99238 5.24255 2.5 7.0835 2.5C8.92445 2.5 10.4168 3.99238 10.4168 5.83333Z" stroke="#595E6A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12
12
  </svg>`;
13
13
  /* eslint-enable */
14
14
  return this.button;
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1tYXJrZXIudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3JvbGUtbWFya2VyLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFHbEQsWUFBWSxJQUFrQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFIWSxVQUFLLEdBQUcsYUFBYSxDQUFDO0lBSWxELENBQUM7SUFFZSxNQUFNO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVmLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRzs7ZUFFakIsQ0FBQztRQUNSLG1CQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcblxuaW1wb3J0IHsgQ3VpQ3VzdG9tTWFya2VyVG9vbCB9IGZyb20gJy4vY3VzdG9tLW1hcmtlci50b29sJztcblxuZXhwb3J0IGNsYXNzIEN1aVJvbGVNYXJrZXIgZXh0ZW5kcyBDdWlDdXN0b21NYXJrZXJUb29sIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgQ0xBU1MgPSAncm9sZS1tYXJrZXInO1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogSW5saW5lVG9vbENvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVuZGVyKCk6IEhUTUxCdXR0b25FbGVtZW50IHtcbiAgICAgICAgc3VwZXIucmVuZGVyKCk7XG5cbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgdGhpcy5idXR0b24uaW5uZXJIVE1MID0gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCItMyAtMyAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjMzMzUgMTcuNVYxNS44MzMzQzEzLjMzMzUgMTQuOTQ5MyAxMi45ODIzIDE0LjEwMTQgMTIuMzU3MiAxMy40NzYzQzExLjczMjEgMTIuODUxMiAxMC44ODQyIDEyLjUgMTAuMDAwMiAxMi41SDQuMTY2ODNDMy4yODI3NyAxMi41IDIuNDM0OTMgMTIuODUxMiAxLjgwOTgxIDEzLjQ3NjNDMS4xODQ2OSAxNC4xMDE0IDAuODMzNDk2IDE0Ljk0OTMgMC44MzM0OTYgMTUuODMzM1YxNy41TTE2LjY2NjggNi42NjY2N1YxMS42NjY3TTE5LjE2NjggOS4xNjY2N0gxNC4xNjY4TTEwLjQxNjggNS44MzMzM0MxMC40MTY4IDcuNjc0MjggOC45MjQ0NSA5LjE2NjY3IDcuMDgzNSA5LjE2NjY3QzUuMjQyNTUgOS4xNjY2NyAzLjc1MDE2IDcuNjc0MjggMy43NTAxNiA1LjgzMzMzQzMuNzUwMTYgMy45OTIzOCA1LjI0MjU1IDIuNSA3LjA4MzUgMi41QzguOTI0NDUgMi41IDEwLjQxNjggMy45OTIzOCAxMC40MTY4IDUuODMzMzNaXCIgc3Ryb2tlPVwiIzU5NUU2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPC9zdmc+YDtcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbjtcbiAgICB9XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1tYXJrZXIudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3JvbGUtbWFya2VyLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFHbEQsWUFBWSxJQUFrQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFIWSxVQUFLLEdBQUcsYUFBYSxDQUFDO0lBSWxELENBQUM7SUFFZSxNQUFNO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVmLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRzs7ZUFFakIsQ0FBQztRQUNSLG1CQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuXHJcbmltcG9ydCB7IEN1aUN1c3RvbU1hcmtlclRvb2wgfSBmcm9tICcuL2N1c3RvbS1tYXJrZXIudG9vbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VpUm9sZU1hcmtlciBleHRlbmRzIEN1aUN1c3RvbU1hcmtlclRvb2wge1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IENMQVNTID0gJ3JvbGUtbWFya2VyJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlbmRlcigpOiBIVE1MQnV0dG9uRWxlbWVudCB7XHJcbiAgICAgICAgc3VwZXIucmVuZGVyKCk7XHJcblxyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICAgICAgdGhpcy5idXR0b24uaW5uZXJIVE1MID0gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCItMyAtMyAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuMzMzNSAxNy41VjE1LjgzMzNDMTMuMzMzNSAxNC45NDkzIDEyLjk4MjMgMTQuMTAxNCAxMi4zNTcyIDEzLjQ3NjNDMTEuNzMyMSAxMi44NTEyIDEwLjg4NDIgMTIuNSAxMC4wMDAyIDEyLjVINC4xNjY4M0MzLjI4Mjc3IDEyLjUgMi40MzQ5MyAxMi44NTEyIDEuODA5ODEgMTMuNDc2M0MxLjE4NDY5IDE0LjEwMTQgMC44MzM0OTYgMTQuOTQ5MyAwLjgzMzQ5NiAxNS44MzMzVjE3LjVNMTYuNjY2OCA2LjY2NjY3VjExLjY2NjdNMTkuMTY2OCA5LjE2NjY3SDE0LjE2NjhNMTAuNDE2OCA1LjgzMzMzQzEwLjQxNjggNy42NzQyOCA4LjkyNDQ1IDkuMTY2NjcgNy4wODM1IDkuMTY2NjdDNS4yNDI1NSA5LjE2NjY3IDMuNzUwMTYgNy42NzQyOCAzLjc1MDE2IDUuODMzMzNDMy43NTAxNiAzLjk5MjM4IDUuMjQyNTUgMi41IDcuMDgzNSAyLjVDOC45MjQ0NSAyLjUgMTAuNDE2OCAzLjk5MjM4IDEwLjQxNjggNS44MzMzM1pcIiBzdHJva2U9XCIjNTk1RTZBXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDwvc3ZnPmA7XHJcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5idXR0b247XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -11,4 +11,4 @@ export class CuiToolMarker extends CuiCustomMarkerTool {
11
11
  return this.button;
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1tYXJrZXIudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3Rvb2wtbWFya2VyLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFHbEQsWUFBWSxJQUFrQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFIWSxVQUFLLEdBQUcsYUFBYSxDQUFDO0lBSWxELENBQUM7SUFFZSxNQUFNO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQix1MERBQXUwRCxDQUFDO1FBRTUwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcblxuaW1wb3J0IHsgQ3VpQ3VzdG9tTWFya2VyVG9vbCB9IGZyb20gJy4vY3VzdG9tLW1hcmtlci50b29sJztcblxuZXhwb3J0IGNsYXNzIEN1aVRvb2xNYXJrZXIgZXh0ZW5kcyBDdWlDdXN0b21NYXJrZXJUb29sIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgQ0xBU1MgPSAndG9vbC1tYXJrZXInO1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogSW5saW5lVG9vbENvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVuZGVyKCk6IEhUTUxCdXR0b25FbGVtZW50IHtcbiAgICAgICAgc3VwZXIucmVuZGVyKCk7XG5cbiAgICAgICAgdGhpcy5idXR0b24uaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCItMiAtMyAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxnIGlkPVwidGVjaG5vbG9naWVzLXRvb2xzXCI+PHBhdGggaWQ9XCJWZWN0b3JcIiBkPVwiTTE2LjM1ODEgMTUuMzk2NkwxNi4zNTgxIDExLjQ3MjlDMTYuMzU4MSAxMS40MTU4IDE2LjM0NjkgMTEuMzU5MiAxNi4zMjUgMTEuMzA2NEMxNi4zMDMxIDExLjI1MzYgMTYuMjcxMSAxMS4yMDU2IDE2LjIzMDcgMTEuMTY1MkMxNi4xOTAzIDExLjEyNDggMTYuMTQyMyAxMS4wOTI4IDE2LjA4OTUgMTEuMDcwOUMxNi4wMzY4IDExLjA0OTEgMTUuOTgwMiAxMS4wMzc4IDE1LjkyMyAxMS4wMzc4SDEzLjI1NzRMMTMuMjU5MyAxMS4wMzcyQzEzLjIwMDcgMTEuMDM0OCAxMy4xNDIyIDExLjA0NDMgMTMuMDg3NCAxMS4wNjUxQzEzLjAzMjYgMTEuMDg1OSAxMi45ODI1IDExLjExNzYgMTIuOTQwMiAxMS4xNTgyQzEyLjg5OCAxMS4xOTg5IDEyLjg2NDMgMTEuMjQ3NiAxMi44NDE0IDExLjMwMTZDMTIuODE4NCAxMS4zNTU2IDEyLjgwNjYgMTEuNDEzNiAxMi44MDY3IDExLjQ3MjNMMTIuODA2NyAxNS4zOTcyTTE0LjU4NCAxMS4wMzM0VjUuODMzNE0xNi4zNTgyIDE1LjEwMjJMMTYuMzU4MiAxNy4wNjQ3QzE2LjM1ODMgMTcuMTIzNCAxNi4zNDY1IDE3LjE4MTQgMTYuMzIzNSAxNy4yMzU0QzE2LjMwMDYgMTcuMjg5MyAxNi4yNjY5IDE3LjMzODEgMTYuMjI0NyAxNy4zNzg3QzE2LjE4MjQgMTcuNDE5NCAxNi4xMzIzIDE3LjQ1MTEgMTYuMDc3NSAxNy40NzE5QzE2LjAyMjcgMTcuNDkyNyAxNS45NjQyIDE3LjUwMjIgMTUuOTA1NiAxNy40OTk4TDE1LjkwNzUgMTcuNDk5MkgxMy4yNDE5QzEzLjE4NDcgMTcuNDk5MiAxMy4xMjgyIDE3LjQ4NzkgMTMuMDc1NCAxNy40NjZDMTMuMDIyNiAxNy40NDQyIDEyLjk3NDYgMTcuNDEyMSAxMi45MzQyIDE3LjM3MTdDMTIuODkzOCAxNy4zMzEzIDEyLjg2MTggMTcuMjgzNCAxMi44Mzk5IDE3LjIzMDZDMTIuODE4IDE3LjE3NzggMTIuODA2OCAxNy4xMjEyIDEyLjgwNjggMTcuMDY0MUwxMi44MDY4IDE1LjEwMjJNNS41OTYzNiA5Ljg4NzE5TDUuNTk2MzYgMTUuOTI4NEM1LjU5NjI3IDE2LjA4NzIgNS42Mjc0OCAxNi4yNDQ1IDUuNjg4MjEgMTYuMzkxMkM1Ljc0ODk1IDE2LjUzNzkgNS44MzggMTYuNjcxMyA1Ljk1MDMgMTYuNzgzNkM2LjA2MjU5IDE2Ljg5NTkgNi4xOTU5MSAxNi45ODQ5IDYuMzQyNjUgMTcuMDQ1NkM2LjQ4OTM4IDE3LjEwNjQgNi42NDY2NSAxNy4xMzc2IDYuODA1NDUgMTcuMTM3NUM3LjEyNTg5IDE3LjEzNzUgNy40MzMxOCAxNy4wMTAxIDcuNjU5NzYgMTYuNzgzNkM3Ljg4NjM0IDE2LjU1NyA4LjAxMzY1IDE2LjI0OTcgOC4wMTM3IDE1LjkyOTNMOC4wMTI4NCA5Ljg4NzE5QzkuMjkzMjkgOS4zMjc5MyAxMC40Mjk4IDguMDUwNDcgMTAuNDI5OCA2LjU2MzY3QzEwLjQzMDIgNS4wNzcyOSA5LjIyMTk0IDMuNTQyNjQgOC4wMTI4NCAzLjI0MUw4LjAxMzI3IDUuODM5MDdMNi44MDQ2IDcuMjg4N0w1LjU5NjM2IDUuODM4NjRMNS41OTYzNiAzLjI0MUM0LjM4NzY5IDMuNTQzMDYgMy4xNzkwMiA1LjA3NzI5IDMuMTc5MDIgNi41NjQxQzMuMTc5NDQgOC4wNTA0OCA0LjMxNTkxIDkuMzI3OTMgNS41OTYzNiA5Ljg4NzE5Wk0xNC45OTE2IDUuNTY1NDVMMTQuMTI1MyA1LjU2NTQ1TDEzLjI1ODkgNC42OTkwOUwxMy42OTIxIDIuNTMzMkwxNS40MjQ4IDIuNTMzMkwxNS44NTggNC42OTkwOUwxNC45OTE2IDUuNTY1NDVaXCIgc3Ryb2tlPVwiIzU5NUU2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PC9zdmc+JztcblxuICAgICAgICByZXR1cm4gdGhpcy5idXR0b247XG4gICAgfVxufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1tYXJrZXIudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3Rvb2wtbWFya2VyLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFHbEQsWUFBWSxJQUFrQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFIWSxVQUFLLEdBQUcsYUFBYSxDQUFDO0lBSWxELENBQUM7SUFFZSxNQUFNO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQix1MERBQXUwRCxDQUFDO1FBRTUwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuXHJcbmltcG9ydCB7IEN1aUN1c3RvbU1hcmtlclRvb2wgfSBmcm9tICcuL2N1c3RvbS1tYXJrZXIudG9vbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VpVG9vbE1hcmtlciBleHRlbmRzIEN1aUN1c3RvbU1hcmtlclRvb2wge1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IENMQVNTID0gJ3Rvb2wtbWFya2VyJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlbmRlcigpOiBIVE1MQnV0dG9uRWxlbWVudCB7XHJcbiAgICAgICAgc3VwZXIucmVuZGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYnV0dG9uLmlubmVySFRNTCA9XHJcbiAgICAgICAgICAgICc8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCItMiAtMyAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxnIGlkPVwidGVjaG5vbG9naWVzLXRvb2xzXCI+PHBhdGggaWQ9XCJWZWN0b3JcIiBkPVwiTTE2LjM1ODEgMTUuMzk2NkwxNi4zNTgxIDExLjQ3MjlDMTYuMzU4MSAxMS40MTU4IDE2LjM0NjkgMTEuMzU5MiAxNi4zMjUgMTEuMzA2NEMxNi4zMDMxIDExLjI1MzYgMTYuMjcxMSAxMS4yMDU2IDE2LjIzMDcgMTEuMTY1MkMxNi4xOTAzIDExLjEyNDggMTYuMTQyMyAxMS4wOTI4IDE2LjA4OTUgMTEuMDcwOUMxNi4wMzY4IDExLjA0OTEgMTUuOTgwMiAxMS4wMzc4IDE1LjkyMyAxMS4wMzc4SDEzLjI1NzRMMTMuMjU5MyAxMS4wMzcyQzEzLjIwMDcgMTEuMDM0OCAxMy4xNDIyIDExLjA0NDMgMTMuMDg3NCAxMS4wNjUxQzEzLjAzMjYgMTEuMDg1OSAxMi45ODI1IDExLjExNzYgMTIuOTQwMiAxMS4xNTgyQzEyLjg5OCAxMS4xOTg5IDEyLjg2NDMgMTEuMjQ3NiAxMi44NDE0IDExLjMwMTZDMTIuODE4NCAxMS4zNTU2IDEyLjgwNjYgMTEuNDEzNiAxMi44MDY3IDExLjQ3MjNMMTIuODA2NyAxNS4zOTcyTTE0LjU4NCAxMS4wMzM0VjUuODMzNE0xNi4zNTgyIDE1LjEwMjJMMTYuMzU4MiAxNy4wNjQ3QzE2LjM1ODMgMTcuMTIzNCAxNi4zNDY1IDE3LjE4MTQgMTYuMzIzNSAxNy4yMzU0QzE2LjMwMDYgMTcuMjg5MyAxNi4yNjY5IDE3LjMzODEgMTYuMjI0NyAxNy4zNzg3QzE2LjE4MjQgMTcuNDE5NCAxNi4xMzIzIDE3LjQ1MTEgMTYuMDc3NSAxNy40NzE5QzE2LjAyMjcgMTcuNDkyNyAxNS45NjQyIDE3LjUwMjIgMTUuOTA1NiAxNy40OTk4TDE1LjkwNzUgMTcuNDk5MkgxMy4yNDE5QzEzLjE4NDcgMTcuNDk5MiAxMy4xMjgyIDE3LjQ4NzkgMTMuMDc1NCAxNy40NjZDMTMuMDIyNiAxNy40NDQyIDEyLjk3NDYgMTcuNDEyMSAxMi45MzQyIDE3LjM3MTdDMTIuODkzOCAxNy4zMzEzIDEyLjg2MTggMTcuMjgzNCAxMi44Mzk5IDE3LjIzMDZDMTIuODE4IDE3LjE3NzggMTIuODA2OCAxNy4xMjEyIDEyLjgwNjggMTcuMDY0MUwxMi44MDY4IDE1LjEwMjJNNS41OTYzNiA5Ljg4NzE5TDUuNTk2MzYgMTUuOTI4NEM1LjU5NjI3IDE2LjA4NzIgNS42Mjc0OCAxNi4yNDQ1IDUuNjg4MjEgMTYuMzkxMkM1Ljc0ODk1IDE2LjUzNzkgNS44MzggMTYuNjcxMyA1Ljk1MDMgMTYuNzgzNkM2LjA2MjU5IDE2Ljg5NTkgNi4xOTU5MSAxNi45ODQ5IDYuMzQyNjUgMTcuMDQ1NkM2LjQ4OTM4IDE3LjEwNjQgNi42NDY2NSAxNy4xMzc2IDYuODA1NDUgMTcuMTM3NUM3LjEyNTg5IDE3LjEzNzUgNy40MzMxOCAxNy4wMTAxIDcuNjU5NzYgMTYuNzgzNkM3Ljg4NjM0IDE2LjU1NyA4LjAxMzY1IDE2LjI0OTcgOC4wMTM3IDE1LjkyOTNMOC4wMTI4NCA5Ljg4NzE5QzkuMjkzMjkgOS4zMjc5MyAxMC40Mjk4IDguMDUwNDcgMTAuNDI5OCA2LjU2MzY3QzEwLjQzMDIgNS4wNzcyOSA5LjIyMTk0IDMuNTQyNjQgOC4wMTI4NCAzLjI0MUw4LjAxMzI3IDUuODM5MDdMNi44MDQ2IDcuMjg4N0w1LjU5NjM2IDUuODM4NjRMNS41OTYzNiAzLjI0MUM0LjM4NzY5IDMuNTQzMDYgMy4xNzkwMiA1LjA3NzI5IDMuMTc5MDIgNi41NjQxQzMuMTc5NDQgOC4wNTA0OCA0LjMxNTkxIDkuMzI3OTMgNS41OTYzNiA5Ljg4NzE5Wk0xNC45OTE2IDUuNTY1NDVMMTQuMTI1MyA1LjU2NTQ1TDEzLjI1ODkgNC42OTkwOUwxMy42OTIxIDIuNTMzMkwxNS40MjQ4IDIuNTMzMkwxNS44NTggNC42OTkwOUwxNC45OTE2IDUuNTY1NDVaXCIgc3Ryb2tlPVwiIzU5NUU2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PC9zdmc+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -14,4 +14,4 @@ function copyTextToClipboardFallback(text) {
14
14
  document.execCommand('copy');
15
15
  document.body.removeChild(textarea);
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS10ZXh0LXRvLWNsaXBib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL2NvcHktdGV4dC10by1jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDNUMsSUFBSSxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLFNBQVMsMkJBQTJCLENBQUMsSUFBWTtJQUM3QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXBELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvcHlUZXh0VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdz8ubmF2aWdhdG9yLmNsaXBib2FyZCAmJiB3aW5kb3cuaXNTZWN1cmVDb250ZXh0KSB7XG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICB9XG5cbiAgICBjb3B5VGV4dFRvQ2xpcGJvYXJkRmFsbGJhY2sodGV4dCk7XG59XG5cbi8vIFRPRE86IFJlbW92ZSB3aGVuIHN3aXRjaCB0byBodHRwc1xuZnVuY3Rpb24gY29weVRleHRUb0NsaXBib2FyZEZhbGxiYWNrKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcblxuICAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICB0ZXh0YXJlYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgdGV4dGFyZWEuc2VsZWN0KCk7XG5cbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS10ZXh0LXRvLWNsaXBib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL2NvcHktdGV4dC10by1jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDNUMsSUFBSSxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLFNBQVMsMkJBQTJCLENBQUMsSUFBWTtJQUM3QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXBELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvcHlUZXh0VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAod2luZG93Py5uYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHdpbmRvdy5pc1NlY3VyZUNvbnRleHQpIHtcclxuICAgICAgICB3aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29weVRleHRUb0NsaXBib2FyZEZhbGxiYWNrKHRleHQpO1xyXG59XHJcblxyXG4vLyBUT0RPOiBSZW1vdmUgd2hlbiBzd2l0Y2ggdG8gaHR0cHNcclxuZnVuY3Rpb24gY29weVRleHRUb0NsaXBib2FyZEZhbGxiYWNrKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG5cclxuICAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO1xyXG4gICAgdGV4dGFyZWEuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xyXG4gICAgdGV4dGFyZWEuc2VsZWN0KCk7XHJcblxyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xyXG59XHJcbiJdfQ==
@@ -53,4 +53,4 @@ export function createEditorTools(config, resourceUrl) {
53
53
  ...(tools ?? {})
54
54
  };
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvb2xzLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9jcmVhdGUtdG9vbHMtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFrQyxFQUFFLFdBQW9CO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV2RCxPQUFPO1FBQ0gsTUFBTSxFQUFFO1lBQ0osS0FBSyxFQUFFLGFBQWE7WUFDcEIsTUFBTSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixZQUFZLEVBQUUsQ0FBQzthQUNsQjtZQUNELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsV0FBVztZQUNsQixhQUFhLEVBQUUsSUFBSTtZQUNuQixNQUFNLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLFdBQVc7YUFDNUI7WUFDRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzdCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sS0FBSyxFQUFFLGVBQWU7WUFDdEIsTUFBTSxFQUFFO2dCQUNKLFFBQVE7Z0JBQ1IsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxVQUFVO2dCQUNoQixXQUFXLEVBQUUsaUJBQWlCO2FBQ2pDO1lBQ0QsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixJQUFJLEVBQUUsVUFBVTthQUNuQjtZQUNELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7UUFDRCxLQUFLLEVBQUU7WUFDSCxLQUFLLEVBQUUsWUFBWTtZQUNuQixNQUFNLEVBQUU7Z0JBQ0osUUFBUTtnQkFDUixLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlCO1FBQ0QsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7S0FDbkIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aVRvb2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlBdHRhY2hlc1Rvb2wsIEN1aUhlYWRlclRvb2wsIEN1aUltYWdlVG9vbCwgQ3VpTGlzdFRvb2wsIEN1aVZpZGVvVG9vbCB9IGZyb20gJy4uL3Rvb2xzJztcbmltcG9ydCB7IG9wZW5GaWxlSW5Ccm93c2VyIH0gZnJvbSAnLi9vcGVuLWZpbGUtaW4tYnJvd3Nlcic7XG5pbXBvcnQgeyBzZXRMb2FkaW5nIH0gZnJvbSAnLi9zZXQtbG9hZGluZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFZGl0b3JUb29scyhyZXNvdXJjZVVybDogc3RyaW5nKTogQ3VpVG9vbHM7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWRpdG9yVG9vbHMoY29uZmlnOiBQYXJ0aWFsPEN1aVRvb2xzPiwgcmVzb3VyY2VVcmw/OiBzdHJpbmcpOiBDdWlUb29scztcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFZGl0b3JUb29scyhjb25maWc6IFBhcnRpYWw8Q3VpVG9vbHM+IHwgc3RyaW5nLCByZXNvdXJjZVVybD86IHN0cmluZyk6IEN1aVRvb2xzIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnID8gY29uZmlnIDogcmVzb3VyY2VVcmw7XG4gICAgY29uc3QgdG9vbHMgPSB0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJyA/IGNvbmZpZyA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgICBjbGFzczogQ3VpSGVhZGVyVG9vbCxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGxldmVsczogWzIsIDMsIDRdLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRMZXZlbDogMlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLih0b29scz8uWydoZWFkZXInXSA/PyB7fSlcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgY2xhc3M6IEN1aUxpc3RUb29sLFxuICAgICAgICAgICAgaW5saW5lVG9vbGJhcjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRTdHlsZTogJ3Vub3JkZXJlZCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi4odG9vbHM/LlsnbGlzdCddID8/IHt9KVxuICAgICAgICB9LFxuICAgICAgICBhdHRhY2hlczoge1xuICAgICAgICAgICAgY2xhc3M6IEN1aUF0dGFjaGVzVG9vbCxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgIHR5cGVzOiAnLnBkZiwuZG9jLC5kb2N4JyxcbiAgICAgICAgICAgICAgICBsb2FkOiBzZXRMb2FkaW5nLFxuICAgICAgICAgICAgICAgIGZpbGVDbGlja2VkOiBvcGVuRmlsZUluQnJvd3NlclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLih0b29scz8uWydhdHRhY2hlcyddID8/IHt9KVxuICAgICAgICB9LFxuICAgICAgICB2aWRlbzoge1xuICAgICAgICAgICAgY2xhc3M6IEN1aVZpZGVvVG9vbCxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgIGxvYWQ6IHNldExvYWRpbmdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi4odG9vbHM/LlsndmlkZW8nXSA/PyB7fSlcbiAgICAgICAgfSxcbiAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIGNsYXNzOiBDdWlJbWFnZVRvb2wsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICBsb2FkOiBzZXRMb2FkaW5nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uKHRvb2xzPy5bJ2ltYWdlJ10gPz8ge30pXG4gICAgICAgIH0sXG4gICAgICAgIC4uLih0b29scyA/PyB7fSlcbiAgICB9O1xufVxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvb2xzLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9jcmVhdGUtdG9vbHMtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFrQyxFQUFFLFdBQW9CO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV2RCxPQUFPO1FBQ0gsTUFBTSxFQUFFO1lBQ0osS0FBSyxFQUFFLGFBQWE7WUFDcEIsTUFBTSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixZQUFZLEVBQUUsQ0FBQzthQUNsQjtZQUNELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsV0FBVztZQUNsQixhQUFhLEVBQUUsSUFBSTtZQUNuQixNQUFNLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLFdBQVc7YUFDNUI7WUFDRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzdCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sS0FBSyxFQUFFLGVBQWU7WUFDdEIsTUFBTSxFQUFFO2dCQUNKLFFBQVE7Z0JBQ1IsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxVQUFVO2dCQUNoQixXQUFXLEVBQUUsaUJBQWlCO2FBQ2pDO1lBQ0QsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixJQUFJLEVBQUUsVUFBVTthQUNuQjtZQUNELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7UUFDRCxLQUFLLEVBQUU7WUFDSCxLQUFLLEVBQUUsWUFBWTtZQUNuQixNQUFNLEVBQUU7Z0JBQ0osUUFBUTtnQkFDUixLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlCO1FBQ0QsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7S0FDbkIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aVRvb2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEN1aUF0dGFjaGVzVG9vbCwgQ3VpSGVhZGVyVG9vbCwgQ3VpSW1hZ2VUb29sLCBDdWlMaXN0VG9vbCwgQ3VpVmlkZW9Ub29sIH0gZnJvbSAnLi4vdG9vbHMnO1xyXG5pbXBvcnQgeyBvcGVuRmlsZUluQnJvd3NlciB9IGZyb20gJy4vb3Blbi1maWxlLWluLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBzZXRMb2FkaW5nIH0gZnJvbSAnLi9zZXQtbG9hZGluZyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWRpdG9yVG9vbHMocmVzb3VyY2VVcmw6IHN0cmluZyk6IEN1aVRvb2xzO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWRpdG9yVG9vbHMoY29uZmlnOiBQYXJ0aWFsPEN1aVRvb2xzPiwgcmVzb3VyY2VVcmw/OiBzdHJpbmcpOiBDdWlUb29scztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVkaXRvclRvb2xzKGNvbmZpZzogUGFydGlhbDxDdWlUb29scz4gfCBzdHJpbmcsIHJlc291cmNlVXJsPzogc3RyaW5nKTogQ3VpVG9vbHMge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSB0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJyA/IGNvbmZpZyA6IHJlc291cmNlVXJsO1xyXG4gICAgY29uc3QgdG9vbHMgPSB0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJyA/IGNvbmZpZyA6IHt9O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaGVhZGVyOiB7XHJcbiAgICAgICAgICAgIGNsYXNzOiBDdWlIZWFkZXJUb29sLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGxldmVsczogWzIsIDMsIDRdLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdExldmVsOiAyXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLih0b29scz8uWydoZWFkZXInXSA/PyB7fSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxpc3Q6IHtcclxuICAgICAgICAgICAgY2xhc3M6IEN1aUxpc3RUb29sLFxyXG4gICAgICAgICAgICBpbmxpbmVUb29sYmFyOiB0cnVlLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRTdHlsZTogJ3Vub3JkZXJlZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4uKHRvb2xzPy5bJ2xpc3QnXSA/PyB7fSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGF0dGFjaGVzOiB7XHJcbiAgICAgICAgICAgIGNsYXNzOiBDdWlBdHRhY2hlc1Rvb2wsXHJcbiAgICAgICAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3Jlc291cmNlJyxcclxuICAgICAgICAgICAgICAgIHR5cGVzOiAnLnBkZiwuZG9jLC5kb2N4JyxcclxuICAgICAgICAgICAgICAgIGxvYWQ6IHNldExvYWRpbmcsXHJcbiAgICAgICAgICAgICAgICBmaWxlQ2xpY2tlZDogb3BlbkZpbGVJbkJyb3dzZXJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4uKHRvb2xzPy5bJ2F0dGFjaGVzJ10gPz8ge30pXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2aWRlbzoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpVmlkZW9Ub29sLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdyZXNvdXJjZScsXHJcbiAgICAgICAgICAgICAgICBsb2FkOiBzZXRMb2FkaW5nXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC4uLih0b29scz8uWyd2aWRlbyddID8/IHt9KVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaW1hZ2U6IHtcclxuICAgICAgICAgICAgY2xhc3M6IEN1aUltYWdlVG9vbCxcclxuICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxyXG4gICAgICAgICAgICAgICAgbG9hZDogc2V0TG9hZGluZ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi4odG9vbHM/LlsnaW1hZ2UnXSA/PyB7fSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLih0b29scyA/PyB7fSlcclxuICAgIH07XHJcbn1cclxuIl19
@@ -24,4 +24,4 @@ function checkIsAvailableToMerge(current, next) {
24
24
  return (combinedLength < SPLIT_MAX_LENGTH &&
25
25
  (current.content.length < MERGE_MIN_LENGTH || next.content.length < MERGE_MIN_LENGTH));
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utc21hbGwtY2h1bmtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvdXRpbHMvbWVyZ2Utc21hbGwtY2h1bmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdsRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBeUI7SUFDdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFDaEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRS9ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLElBQUksdUJBQXVCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXpCLFNBQVM7UUFDYixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLE9BQXdCLEVBQUUsSUFBcUI7SUFDNUUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFFcEUsT0FBTyxDQUNILGNBQWMsR0FBRyxnQkFBZ0I7UUFDakMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxDQUN4RixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1FUkdFX01JTl9MRU5HVEgsIFNQTElUX01BWF9MRU5HVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2h1bmtEZXNjcmlwdG9yLCBDaHVua0Rlc2NyaXB0b3JzTWVyZ2VSZXN1bHQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU21hbGxDaHVua3MoY2h1bmtzOiBDaHVua0Rlc2NyaXB0b3JbXSk6IENodW5rRGVzY3JpcHRvcnNNZXJnZVJlc3VsdCB7XG4gICAgaWYgKGNodW5rcy5sZW5ndGggPD0gMSkge1xuICAgICAgICByZXR1cm4geyBjaHVua3M6IFsuLi5jaHVua3NdLCByZW1vdmVkSWRzOiBbXSB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogQ2h1bmtEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBjb25zdCByZW1vdmVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50ID0geyBpZDogY2h1bmtzWzBdLmlkLCBjb250ZW50OiBjaHVua3NbMF0uY29udGVudCB9O1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IGNodW5rc1tpXTtcblxuICAgICAgICBpZiAoY2hlY2tJc0F2YWlsYWJsZVRvTWVyZ2UoY3VycmVudCwgbmV4dCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB7IGlkOiBjdXJyZW50LmlkLCBjb250ZW50OiBjdXJyZW50LmNvbnRlbnQgKyBuZXh0LmNvbnRlbnQgfTtcbiAgICAgICAgICAgIHJlbW92ZWRJZHMucHVzaChuZXh0LmlkKTtcblxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgY3VycmVudCA9IHsgaWQ6IG5leHQuaWQsIGNvbnRlbnQ6IG5leHQuY29udGVudCB9O1xuICAgIH1cblxuICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuXG4gICAgcmV0dXJuIHsgY2h1bmtzOiByZXN1bHQsIHJlbW92ZWRJZHMgfTtcbn1cblxuZnVuY3Rpb24gY2hlY2tJc0F2YWlsYWJsZVRvTWVyZ2UoY3VycmVudDogQ2h1bmtEZXNjcmlwdG9yLCBuZXh0OiBDaHVua0Rlc2NyaXB0b3IpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb21iaW5lZExlbmd0aCA9IGN1cnJlbnQuY29udGVudC5sZW5ndGggKyBuZXh0LmNvbnRlbnQubGVuZ3RoO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgY29tYmluZWRMZW5ndGggPCBTUExJVF9NQVhfTEVOR1RIICYmXG4gICAgICAgIChjdXJyZW50LmNvbnRlbnQubGVuZ3RoIDwgTUVSR0VfTUlOX0xFTkdUSCB8fCBuZXh0LmNvbnRlbnQubGVuZ3RoIDwgTUVSR0VfTUlOX0xFTkdUSClcbiAgICApO1xufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utc21hbGwtY2h1bmtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvdXRpbHMvbWVyZ2Utc21hbGwtY2h1bmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdsRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBeUI7SUFDdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFDaEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRS9ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLElBQUksdUJBQXVCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXpCLFNBQVM7UUFDYixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLE9BQXdCLEVBQUUsSUFBcUI7SUFDNUUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFFcEUsT0FBTyxDQUNILGNBQWMsR0FBRyxnQkFBZ0I7UUFDakMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxDQUN4RixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1FUkdFX01JTl9MRU5HVEgsIFNQTElUX01BWF9MRU5HVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDaHVua0Rlc2NyaXB0b3IsIENodW5rRGVzY3JpcHRvcnNNZXJnZVJlc3VsdCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU21hbGxDaHVua3MoY2h1bmtzOiBDaHVua0Rlc2NyaXB0b3JbXSk6IENodW5rRGVzY3JpcHRvcnNNZXJnZVJlc3VsdCB7XHJcbiAgICBpZiAoY2h1bmtzLmxlbmd0aCA8PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgY2h1bmtzOiBbLi4uY2h1bmtzXSwgcmVtb3ZlZElkczogW10gfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IENodW5rRGVzY3JpcHRvcltdID0gW107XHJcbiAgICBjb25zdCByZW1vdmVkSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnQgPSB7IGlkOiBjaHVua3NbMF0uaWQsIGNvbnRlbnQ6IGNodW5rc1swXS5jb250ZW50IH07XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjaHVua3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gY2h1bmtzW2ldO1xyXG5cclxuICAgICAgICBpZiAoY2hlY2tJc0F2YWlsYWJsZVRvTWVyZ2UoY3VycmVudCwgbmV4dCkpIHtcclxuICAgICAgICAgICAgY3VycmVudCA9IHsgaWQ6IGN1cnJlbnQuaWQsIGNvbnRlbnQ6IGN1cnJlbnQuY29udGVudCArIG5leHQuY29udGVudCB9O1xyXG4gICAgICAgICAgICByZW1vdmVkSWRzLnB1c2gobmV4dC5pZCk7XHJcblxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xyXG4gICAgICAgIGN1cnJlbnQgPSB7IGlkOiBuZXh0LmlkLCBjb250ZW50OiBuZXh0LmNvbnRlbnQgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQucHVzaChjdXJyZW50KTtcclxuXHJcbiAgICByZXR1cm4geyBjaHVua3M6IHJlc3VsdCwgcmVtb3ZlZElkcyB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjaGVja0lzQXZhaWxhYmxlVG9NZXJnZShjdXJyZW50OiBDaHVua0Rlc2NyaXB0b3IsIG5leHQ6IENodW5rRGVzY3JpcHRvcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY29tYmluZWRMZW5ndGggPSBjdXJyZW50LmNvbnRlbnQubGVuZ3RoICsgbmV4dC5jb250ZW50Lmxlbmd0aDtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIGNvbWJpbmVkTGVuZ3RoIDwgU1BMSVRfTUFYX0xFTkdUSCAmJlxyXG4gICAgICAgIChjdXJyZW50LmNvbnRlbnQubGVuZ3RoIDwgTUVSR0VfTUlOX0xFTkdUSCB8fCBuZXh0LmNvbnRlbnQubGVuZ3RoIDwgTUVSR0VfTUlOX0xFTkdUSClcclxuICAgICk7XHJcbn1cclxuIl19
@@ -6,4 +6,4 @@ export async function openFileInBrowser(file) {
6
6
  const googleViewerUrl = `https://docs.google.com/viewer?url=${encodedUrl}&embedded=true`;
7
7
  window.open(googleViewerUrl, '_blank');
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1maWxlLWluLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9vcGVuLWZpbGUtaW4tYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQWlCO0lBQ3JELElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPO0lBQ1gsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxNQUFNLGVBQWUsR0FBRyxzQ0FBc0MsVUFBVSxnQkFBZ0IsQ0FBQztJQUV6RixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VpRmlsZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5GaWxlSW5Ccm93c2VyKGZpbGU6IEN1aUZpbGVEYXRhKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFmaWxlPy51cmwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVuY29kZWRVcmwgPSBlbmNvZGVVUklDb21wb25lbnQoZmlsZS51cmwpO1xuICAgIGNvbnN0IGdvb2dsZVZpZXdlclVybCA9IGBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS92aWV3ZXI/dXJsPSR7ZW5jb2RlZFVybH0mZW1iZWRkZWQ9dHJ1ZWA7XG5cbiAgICB3aW5kb3cub3Blbihnb29nbGVWaWV3ZXJVcmwsICdfYmxhbmsnKTtcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1maWxlLWluLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9vcGVuLWZpbGUtaW4tYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQWlCO0lBQ3JELElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPO0lBQ1gsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxNQUFNLGVBQWUsR0FBRyxzQ0FBc0MsVUFBVSxnQkFBZ0IsQ0FBQztJQUV6RixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VpRmlsZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuRmlsZUluQnJvd3NlcihmaWxlOiBDdWlGaWxlRGF0YSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFmaWxlPy51cmwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IGVuY29kZVVSSUNvbXBvbmVudChmaWxlLnVybCk7XHJcbiAgICBjb25zdCBnb29nbGVWaWV3ZXJVcmwgPSBgaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vdmlld2VyP3VybD0ke2VuY29kZWRVcmx9JmVtYmVkZGVkPXRydWVgO1xyXG5cclxuICAgIHdpbmRvdy5vcGVuKGdvb2dsZVZpZXdlclVybCwgJ19ibGFuaycpO1xyXG59XHJcbiJdfQ==
@@ -40,4 +40,4 @@ export function presetConfigToken() {
40
40
  }
41
41
  });
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LWNvbmZpZy10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL3ByZXNldC1jb25maWctdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUM3QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEQsTUFBTSx3QkFBd0IsR0FBRztRQUM3QixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7S0FDbkMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFFBQVEsRUFBRTtZQUNOLEtBQUssRUFBRSxlQUFlO1lBQ3RCLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxVQUFVO2dCQUNoQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5Qix3QkFBd0I7YUFDM0I7U0FDSjtRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxVQUFVO2dCQUNoQix3QkFBd0I7YUFDM0I7U0FDSjtRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxVQUFVO2dCQUNoQix3QkFBd0I7YUFDM0I7U0FDSjtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ3VpQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMnO1xuaW1wb3J0IHR5cGUgeyBDdWlUb29scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VpQXR0YWNoZXNUb29sLCBDdWlJbWFnZVRvb2wsIEN1aVZpZGVvVG9vbCB9IGZyb20gJy4uL3Rvb2xzJztcbmltcG9ydCB7IG9wZW5GaWxlSW5Ccm93c2VyIH0gZnJvbSAnLi9vcGVuLWZpbGUtaW4tYnJvd3Nlcic7XG5pbXBvcnQgeyBzZXRMb2FkaW5nIH0gZnJvbSAnLi9zZXQtbG9hZGluZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVzZXRDb25maWdUb2tlbigpOiAocmVzb3VyY2VVcmw6IHN0cmluZykgPT4gUGFydGlhbDxDdWlUb29scz4ge1xuICAgIGNvbnN0IHRva2VuID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWBcbiAgICB9O1xuXG4gICAgcmV0dXJuIChyZXNvdXJjZVVybDogc3RyaW5nKSA9PiAoe1xuICAgICAgICBhdHRhY2hlczoge1xuICAgICAgICAgICAgY2xhc3M6IEN1aUF0dGFjaGVzVG9vbCxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50OiByZXNvdXJjZVVybCxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICB0eXBlczogJy5wZGYsLmRvYywuZG9jeCcsXG4gICAgICAgICAgICAgICAgbG9hZDogc2V0TG9hZGluZyxcbiAgICAgICAgICAgICAgICBmaWxlQ2xpY2tlZDogb3BlbkZpbGVJbkJyb3dzZXIsXG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpZGVvOiB7XG4gICAgICAgICAgICBjbGFzczogQ3VpVmlkZW9Ub29sLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHJlc291cmNlVXJsLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgIGxvYWQ6IHNldExvYWRpbmcsXG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICBjbGFzczogQ3VpSW1hZ2VUb29sLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHJlc291cmNlVXJsLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgIGxvYWQ6IHNldExvYWRpbmcsXG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LWNvbmZpZy10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL3ByZXNldC1jb25maWctdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUM3QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEQsTUFBTSx3QkFBd0IsR0FBRztRQUM3QixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7S0FDbkMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFFBQVEsRUFBRTtZQUNOLEtBQUssRUFBRSxlQUFlO1lBQ3RCLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxVQUFVO2dCQUNoQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5Qix3QkFBd0I7YUFDM0I7U0FDSjtRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxVQUFVO2dCQUNoQix3QkFBd0I7YUFDM0I7U0FDSjtRQUNELEtBQUssRUFBRTtZQUNILEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixRQUFRLEVBQUUsV0FBVztnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxVQUFVO2dCQUNoQix3QkFBd0I7YUFDM0I7U0FDSjtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzJztcclxuaW1wb3J0IHR5cGUgeyBDdWlUb29scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDdWlBdHRhY2hlc1Rvb2wsIEN1aUltYWdlVG9vbCwgQ3VpVmlkZW9Ub29sIH0gZnJvbSAnLi4vdG9vbHMnO1xyXG5pbXBvcnQgeyBvcGVuRmlsZUluQnJvd3NlciB9IGZyb20gJy4vb3Blbi1maWxlLWluLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBzZXRMb2FkaW5nIH0gZnJvbSAnLi9zZXQtbG9hZGluZyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJlc2V0Q29uZmlnVG9rZW4oKTogKHJlc291cmNlVXJsOiBzdHJpbmcpID0+IFBhcnRpYWw8Q3VpVG9vbHM+IHtcclxuICAgIGNvbnN0IHRva2VuID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKS5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgY29uc3QgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzID0ge1xyXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAocmVzb3VyY2VVcmw6IHN0cmluZykgPT4gKHtcclxuICAgICAgICBhdHRhY2hlczoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpQXR0YWNoZXNUb29sLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiByZXNvdXJjZVVybCxcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxyXG4gICAgICAgICAgICAgICAgdHlwZXM6ICcucGRmLC5kb2MsLmRvY3gnLFxyXG4gICAgICAgICAgICAgICAgbG9hZDogc2V0TG9hZGluZyxcclxuICAgICAgICAgICAgICAgIGZpbGVDbGlja2VkOiBvcGVuRmlsZUluQnJvd3NlcixcclxuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVyc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB2aWRlbzoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpVmlkZW9Ub29sLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiByZXNvdXJjZVVybCxcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxyXG4gICAgICAgICAgICAgICAgbG9hZDogc2V0TG9hZGluZyxcclxuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVyc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbWFnZToge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpSW1hZ2VUb29sLFxyXG4gICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiByZXNvdXJjZVVybCxcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAncmVzb3VyY2UnLFxyXG4gICAgICAgICAgICAgICAgbG9hZDogc2V0TG9hZGluZyxcclxuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVyc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuIl19
@@ -11,4 +11,4 @@ export function setLoading(status) {
11
11
  };
12
12
  return loadingActions[status]();
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWxvYWRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9zZXQtbG9hZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQTZCO0lBQ3BELE1BQU0sT0FBTyxHQUFHLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELE1BQU0sY0FBYyxHQUE4QztRQUM5RCxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDM0QsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDcEMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUM7S0FDSixDQUFDO0lBRUYsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ndWxhck91dHNpZGVMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpRmlsZVVwbG9hZGVyU3RhdHVzIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvYWRpbmcoc3RhdHVzOiBDdWlGaWxlVXBsb2FkZXJTdGF0dXMpOiB2b2lkIHtcbiAgICBjb25zdCBzZXJ2aWNlID0gQW5ndWxhck91dHNpZGVMb2FkZXJTZXJ2aWNlLmdldEluc3RhbmNlKCk7XG4gICAgY29uc3QgbG9hZGluZ0FjdGlvbnM6IFJlY29yZDxDdWlGaWxlVXBsb2FkZXJTdGF0dXMsICgpID0+IHZvaWQ+ID0ge1xuICAgICAgICBbQ3VpRmlsZVVwbG9hZGVyU3RhdHVzLkxvYWRpbmddOiAoKSA9PiBzZXJ2aWNlLnNldExvYWRpbmcoKSxcbiAgICAgICAgW0N1aUZpbGVVcGxvYWRlclN0YXR1cy5Db21wbGV0ZWRdOiAoKSA9PiB7XG4gICAgICAgICAgICBzZXJ2aWNlLnNldENvbXBsZXRlZCgpO1xuICAgICAgICAgICAgc2VydmljZS5oYW5kbGVDb21wbGV0ZWRSZXF1ZXN0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGxvYWRpbmdBY3Rpb25zW3N0YXR1c10oKTtcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWxvYWRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9zZXQtbG9hZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQTZCO0lBQ3BELE1BQU0sT0FBTyxHQUFHLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELE1BQU0sY0FBYyxHQUE4QztRQUM5RCxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDM0QsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDcEMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUM7S0FDSixDQUFDO0lBRUYsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ndWxhck91dHNpZGVMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDdWlGaWxlVXBsb2FkZXJTdGF0dXMgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXInO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldExvYWRpbmcoc3RhdHVzOiBDdWlGaWxlVXBsb2FkZXJTdGF0dXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBbmd1bGFyT3V0c2lkZUxvYWRlclNlcnZpY2UuZ2V0SW5zdGFuY2UoKTtcclxuICAgIGNvbnN0IGxvYWRpbmdBY3Rpb25zOiBSZWNvcmQ8Q3VpRmlsZVVwbG9hZGVyU3RhdHVzLCAoKSA9PiB2b2lkPiA9IHtcclxuICAgICAgICBbQ3VpRmlsZVVwbG9hZGVyU3RhdHVzLkxvYWRpbmddOiAoKSA9PiBzZXJ2aWNlLnNldExvYWRpbmcoKSxcclxuICAgICAgICBbQ3VpRmlsZVVwbG9hZGVyU3RhdHVzLkNvbXBsZXRlZF06ICgpID0+IHtcclxuICAgICAgICAgICAgc2VydmljZS5zZXRDb21wbGV0ZWQoKTtcclxuICAgICAgICAgICAgc2VydmljZS5oYW5kbGVDb21wbGV0ZWRSZXF1ZXN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbG9hZGluZ0FjdGlvbnNbc3RhdHVzXSgpO1xyXG59XHJcbiJdfQ==
@@ -9,4 +9,4 @@ export function urlValidator() {
9
9
  }
10
10
  };
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL3VybC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFtQixFQUEyQixFQUFFO1FBQzNELElBQUksQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWYsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNMLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoeyB2YWx1ZSB9OiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBuZXcgVVJMKHZhbHVlKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIHsgdXJsOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL3VybC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFtQixFQUEyQixFQUFFO1FBQzNELElBQUksQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWYsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNMLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXJsVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoeyB2YWx1ZSB9OiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbmV3IFVSTCh2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdXJsOiB0cnVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4iXX0=
@@ -46,7 +46,7 @@ export class CuiEditorBlockComponent {
46
46
  }, { allowSignalWrites: true });
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorBlockComponent, isStandalone: true, selector: "cui-editor-block", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"wrapper\">\n <span class=\"title\">\n {{ t('DESCRIPTION') }}\n @if (required()) {\n <span class=\"title__required\">*</span>\n }\n </span>\n <ng-template #button>\n <button\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\n cuiButton\n size=\"xxs\"\n type=\"button\"\n appearance=\"ghost\"\n icon=\"cuiIconMaximizeSm\"\n (click)=\"onToggleDescriptionModal()\"\n ></button>\n </ng-template>\n <cui-editor-modal\n [title]=\"title()\"\n [editorId]=\"editorId()\"\n [buttonTemplate]=\"button\"\n [config]=\"config()\"\n (modalClosed)=\"onToggleDescriptionModal()\"\n />\n </div>\n <div\n #editorContainer\n cuiContentWrapper\n class=\"editor\"\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\n >\n @if (!isDescriptionModalOpen() && editorConfig()) {\n <cui-editor\n #editorComponent\n [editorApiId]=\"editorId()\"\n [config]=\"editorConfig()!\"\n (editorEmpty)=\"onDescriptionChange($event)\"\n />\n }\n </div>\n @if (required() && isDescriptionEmpty()) {\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\n }\n</ng-container>\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "component", type: CuiEditorModalComponent, selector: "cui-editor-modal", inputs: ["title", "buttonTemplate", "config", "editorId"], outputs: ["editorCreated", "modalClosed"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "directive", type: i2.CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: i3.CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorBlockComponent, isStandalone: true, selector: "cui-editor-block", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"wrapper\">\r\n <span class=\"title\">\r\n {{ t('DESCRIPTION') }}\r\n @if (required()) {\r\n <span class=\"title__required\">*</span>\r\n }\r\n </span>\r\n <ng-template #button>\r\n <button\r\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\r\n cuiButton\r\n size=\"xxs\"\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n icon=\"cuiIconMaximizeSm\"\r\n (click)=\"onToggleDescriptionModal()\"\r\n ></button>\r\n </ng-template>\r\n <cui-editor-modal\r\n [title]=\"title()\"\r\n [editorId]=\"editorId()\"\r\n [buttonTemplate]=\"button\"\r\n [config]=\"config()\"\r\n (modalClosed)=\"onToggleDescriptionModal()\"\r\n />\r\n </div>\r\n <div\r\n #editorContainer\r\n cuiContentWrapper\r\n class=\"editor\"\r\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\r\n >\r\n @if (!isDescriptionModalOpen() && editorConfig()) {\r\n <cui-editor\r\n #editorComponent\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()!\"\r\n (editorEmpty)=\"onDescriptionChange($event)\"\r\n />\r\n }\r\n </div>\r\n @if (required() && isDescriptionEmpty()) {\r\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\r\n }\r\n</ng-container>\r\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "component", type: CuiEditorModalComponent, selector: "cui-editor-modal", inputs: ["title", "buttonTemplate", "config", "editorId"], outputs: ["editorCreated", "modalClosed"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "directive", type: i2.CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: i3.CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorBlockComponent, decorators: [{
52
52
  type: Component,
@@ -58,6 +58,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
58
58
  CuiContentWrapperComponent,
59
59
  CuiTooltip,
60
60
  CuiHintModule
61
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <div class=\"wrapper\">\n <span class=\"title\">\n {{ t('DESCRIPTION') }}\n @if (required()) {\n <span class=\"title__required\">*</span>\n }\n </span>\n <ng-template #button>\n <button\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\n cuiButton\n size=\"xxs\"\n type=\"button\"\n appearance=\"ghost\"\n icon=\"cuiIconMaximizeSm\"\n (click)=\"onToggleDescriptionModal()\"\n ></button>\n </ng-template>\n <cui-editor-modal\n [title]=\"title()\"\n [editorId]=\"editorId()\"\n [buttonTemplate]=\"button\"\n [config]=\"config()\"\n (modalClosed)=\"onToggleDescriptionModal()\"\n />\n </div>\n <div\n #editorContainer\n cuiContentWrapper\n class=\"editor\"\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\n >\n @if (!isDescriptionModalOpen() && editorConfig()) {\n <cui-editor\n #editorComponent\n [editorApiId]=\"editorId()\"\n [config]=\"editorConfig()!\"\n (editorEmpty)=\"onDescriptionChange($event)\"\n />\n }\n </div>\n @if (required() && isDescriptionEmpty()) {\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\n }\n</ng-container>\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"] }]
61
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"wrapper\">\r\n <span class=\"title\">\r\n {{ t('DESCRIPTION') }}\r\n @if (required()) {\r\n <span class=\"title__required\">*</span>\r\n }\r\n </span>\r\n <ng-template #button>\r\n <button\r\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\r\n cuiButton\r\n size=\"xxs\"\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n icon=\"cuiIconMaximizeSm\"\r\n (click)=\"onToggleDescriptionModal()\"\r\n ></button>\r\n </ng-template>\r\n <cui-editor-modal\r\n [title]=\"title()\"\r\n [editorId]=\"editorId()\"\r\n [buttonTemplate]=\"button\"\r\n [config]=\"config()\"\r\n (modalClosed)=\"onToggleDescriptionModal()\"\r\n />\r\n </div>\r\n <div\r\n #editorContainer\r\n cuiContentWrapper\r\n class=\"editor\"\r\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\r\n >\r\n @if (!isDescriptionModalOpen() && editorConfig()) {\r\n <cui-editor\r\n #editorComponent\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()!\"\r\n (editorEmpty)=\"onDescriptionChange($event)\"\r\n />\r\n }\r\n </div>\r\n @if (required() && isDescriptionEmpty()) {\r\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\r\n }\r\n</ng-container>\r\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"] }]
62
62
  }], ctorParameters: () => [] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3dpZGdldHMvZWRpdG9yLWJsb2NrL2VkaXRvci1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci93aWRnZXRzL2VkaXRvci1ibG9jay9lZGl0b3ItYmxvY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBa0JqRixNQUFNLE9BQU8sdUJBQXVCO0lBa0JoQztRQWpCUSx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFaEIsaUJBQVksR0FBRyxNQUFNLENBQStCLElBQUksQ0FBQyxDQUFDO1FBQzFELDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsb0JBQWUsR0FBRyxTQUFTLENBQWtDLGlCQUFpQixFQUFFO1lBQzVGLElBQUksRUFBRSxVQUFVO1NBQ25CLENBQUMsQ0FBQztRQUVhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNwQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUMzQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFHNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVTLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUVqQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQ3BCLEdBQUcsRUFBRTtZQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxhQUFhLENBQUM7WUFFdEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNYLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNOLENBQUM7K0dBcERRLHVCQUF1QjttR0FBdkIsdUJBQXVCLGt0QkFRdEIsVUFBVSw2Q0M1Q3hCLDJnREE4Q0Esb2pCRHZCUSxlQUFlLG9PQUNmLHVCQUF1QixtS0FDdkIsa0JBQWtCLG1JQUNsQixrQkFBa0IsZ01BQ2xCLDBCQUEwQiwrU0FFMUIsYUFBYTs7NEZBT1IsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDSSxrQkFBa0IsV0FDbkI7d0JBQ0wsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLFVBQVU7d0JBQ1YsYUFBYTtxQkFDaEIsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIHZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHsgQ3VpQnV0dG9uTW9kdWxlLCBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCwgQ3VpSGludE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpVG9vbHRpcCB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5pbXBvcnQgeyBDdWlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgQ3VpRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlFZGl0b3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci1tb2RhbC9lZGl0b3ItbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktZWRpdG9yLWJsb2NrJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ3VpRWRpdG9yTW9kYWxDb21wb25lbnQsXG4gICAgICAgIEN1aUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgQ3VpVG9vbHRpcCxcbiAgICAgICAgQ3VpSGludE1vZHVsZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0b3ItYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JCbG9ja0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBza2lwRmlyc3RWYWxpZGF0aW9uID0gdHJ1ZTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb25maWcgPSBzaWduYWw8Q3VpTnVsbGFibGU8Q3VpRWRpdG9yQ29uZmlnPj4obnVsbCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRGVzY3JpcHRpb25Nb2RhbE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uRW1wdHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvckNvbnRhaW5lciA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZWRpdG9yQ29udGFpbmVyJywge1xuICAgICAgICByZWFkOiBFbGVtZW50UmVmXG4gICAgfSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxDdWlFZGl0b3JDb25maWc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvckVtcHR5ID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0RWRpdG9yQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG9nZ2xlRGVzY3JpcHRpb25Nb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rlc2NyaXB0aW9uTW9kYWxPcGVuLnVwZGF0ZSgocHJldikgPT4gIXByZXYpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkRlc2NyaXB0aW9uQ2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yRW1wdHkuZW1pdCh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2tpcEZpcnN0VmFsaWRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5za2lwRmlyc3RWYWxpZGF0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbkVtcHR5LnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9yQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlZmZlY3RSZWYgPSBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWRpdG9yQ29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yQ29uZmlnLnNldCh7IGVsZW1lbnQsIC4uLnRoaXMuY29uZmlnKCkgfSk7XG4gICAgICAgICAgICAgICAgZWZmZWN0UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHQoJ0RFU0NSSVBUSU9OJykgfX1cbiAgICAgICAgICAgIEBpZiAocmVxdWlyZWQoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVfX3JlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbY3VpVG9vbHRpcF09XCJ0KCdFWFBBTkRfRURJVE9SX1RPX0ZVTExTQ1JFRU4nKVwiXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvbk1heGltaXplU21cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZURlc2NyaXB0aW9uTW9kYWwoKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxjdWktZWRpdG9yLW1vZGFsXG4gICAgICAgICAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgICAgICAgICBbZWRpdG9ySWRdPVwiZWRpdG9ySWQoKVwiXG4gICAgICAgICAgICBbYnV0dG9uVGVtcGxhdGVdPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnKClcIlxuICAgICAgICAgICAgKG1vZGFsQ2xvc2VkKT1cIm9uVG9nZ2xlRGVzY3JpcHRpb25Nb2RhbCgpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICNlZGl0b3JDb250YWluZXJcbiAgICAgICAgY3VpQ29udGVudFdyYXBwZXJcbiAgICAgICAgY2xhc3M9XCJlZGl0b3JcIlxuICAgICAgICBbY2xhc3MuZWRpdG9yX2ludmFsaWRdPVwicmVxdWlyZWQoKSAmJiBpc0Rlc2NyaXB0aW9uRW1wdHkoKVwiXG4gICAgPlxuICAgICAgICBAaWYgKCFpc0Rlc2NyaXB0aW9uTW9kYWxPcGVuKCkgJiYgZWRpdG9yQ29uZmlnKCkpIHtcbiAgICAgICAgICAgIDxjdWktZWRpdG9yXG4gICAgICAgICAgICAgICAgI2VkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtlZGl0b3JBcGlJZF09XCJlZGl0b3JJZCgpXCJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImVkaXRvckNvbmZpZygpIVwiXG4gICAgICAgICAgICAgICAgKGVkaXRvckVtcHR5KT1cIm9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChyZXF1aXJlZCgpICYmIGlzRGVzY3JpcHRpb25FbXB0eSgpKSB7XG4gICAgICAgIDxjdWktaGludCBoaW50VHlwZT1cImVycm9yXCI+e3sgdCgnREVTQ1JJUFRJT05fSVNfUkVRVUlSRUQnKSB9fTwvY3VpLWhpbnQ+XG4gICAgfVxuPC9uZy1jb250YWluZXI+XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3dpZGdldHMvZWRpdG9yLWJsb2NrL2VkaXRvci1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci93aWRnZXRzL2VkaXRvci1ibG9jay9lZGl0b3ItYmxvY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBa0JqRixNQUFNLE9BQU8sdUJBQXVCO0lBa0JoQztRQWpCUSx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFaEIsaUJBQVksR0FBRyxNQUFNLENBQStCLElBQUksQ0FBQyxDQUFDO1FBQzFELDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsb0JBQWUsR0FBRyxTQUFTLENBQWtDLGlCQUFpQixFQUFFO1lBQzVGLElBQUksRUFBRSxVQUFVO1NBQ25CLENBQUMsQ0FBQztRQUVhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNwQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUMzQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFHNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVTLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUVqQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQ3BCLEdBQUcsRUFBRTtZQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxhQUFhLENBQUM7WUFFdEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNYLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNOLENBQUM7K0dBcERRLHVCQUF1QjttR0FBdkIsdUJBQXVCLGt0QkFRdEIsVUFBVSw2Q0M1Q3hCLHVtREE4Q0Esb2pCRHZCUSxlQUFlLG9PQUNmLHVCQUF1QixtS0FDdkIsa0JBQWtCLG1JQUNsQixrQkFBa0IsZ01BQ2xCLDBCQUEwQiwrU0FFMUIsYUFBYTs7NEZBT1IsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDSSxrQkFBa0IsV0FDbkI7d0JBQ0wsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLFVBQVU7d0JBQ1YsYUFBYTtxQkFDaEIsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBlZmZlY3QsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgaW5wdXQsXHJcbiAgICBvdXRwdXQsXHJcbiAgICBzaWduYWwsXHJcbiAgICB2aWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRlbnRXcmFwcGVyQ29tcG9uZW50LCBDdWlIaW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aVRvb2x0aXAgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcclxuXHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgdHlwZSB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDdWlFZGl0b3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci1tb2RhbC9lZGl0b3ItbW9kYWwuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktZWRpdG9yLWJsb2NrJyxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQ3VpRWRpdG9yTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcclxuICAgICAgICBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCxcclxuICAgICAgICBDdWlUb29sdGlwLFxyXG4gICAgICAgIEN1aUhpbnRNb2R1bGVcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci1ibG9jay5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0b3ItYmxvY2suY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JCbG9ja0NvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHNraXBGaXJzdFZhbGlkYXRpb24gPSB0cnVlO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb25maWcgPSBzaWduYWw8Q3VpTnVsbGFibGU8Q3VpRWRpdG9yQ29uZmlnPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNjcmlwdGlvbk1vZGFsT3BlbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNjcmlwdGlvbkVtcHR5ID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yQ29udGFpbmVyID0gdmlld0NoaWxkPHN0cmluZywgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdlZGl0b3JDb250YWluZXInLCB7XHJcbiAgICAgICAgcmVhZDogRWxlbWVudFJlZlxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSByZXF1aXJlZCA9IGlucHV0KGZhbHNlKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yRW1wdHkgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmluaXRFZGl0b3JDb25maWcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVEZXNjcmlwdGlvbk1vZGFsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbk1vZGFsT3Blbi51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXNjcmlwdGlvbkNoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yRW1wdHkuZW1pdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNraXBGaXJzdFZhbGlkYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5za2lwRmlyc3RWYWxpZGF0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzRGVzY3JpcHRpb25FbXB0eS5zZXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEVkaXRvckNvbmZpZygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlZmZlY3RSZWYgPSBlZmZlY3QoXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVkaXRvckNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvckNvbmZpZy5zZXQoeyBlbGVtZW50LCAuLi50aGlzLmNvbmZpZygpIH0pO1xyXG4gICAgICAgICAgICAgICAgZWZmZWN0UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IHQoJ0RFU0NSSVBUSU9OJykgfX1cclxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlX19yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNidXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIFtjdWlUb29sdGlwXT1cInQoJ0VYUEFORF9FRElUT1JfVE9fRlVMTFNDUkVFTicpXCJcclxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvbk1heGltaXplU21cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlRGVzY3JpcHRpb25Nb2RhbCgpXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGN1aS1lZGl0b3ItbW9kYWxcclxuICAgICAgICAgICAgW3RpdGxlXT1cInRpdGxlKClcIlxyXG4gICAgICAgICAgICBbZWRpdG9ySWRdPVwiZWRpdG9ySWQoKVwiXHJcbiAgICAgICAgICAgIFtidXR0b25UZW1wbGF0ZV09XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZygpXCJcclxuICAgICAgICAgICAgKG1vZGFsQ2xvc2VkKT1cIm9uVG9nZ2xlRGVzY3JpcHRpb25Nb2RhbCgpXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgI2VkaXRvckNvbnRhaW5lclxyXG4gICAgICAgIGN1aUNvbnRlbnRXcmFwcGVyXHJcbiAgICAgICAgY2xhc3M9XCJlZGl0b3JcIlxyXG4gICAgICAgIFtjbGFzcy5lZGl0b3JfaW52YWxpZF09XCJyZXF1aXJlZCgpICYmIGlzRGVzY3JpcHRpb25FbXB0eSgpXCJcclxuICAgID5cclxuICAgICAgICBAaWYgKCFpc0Rlc2NyaXB0aW9uTW9kYWxPcGVuKCkgJiYgZWRpdG9yQ29uZmlnKCkpIHtcclxuICAgICAgICAgICAgPGN1aS1lZGl0b3JcclxuICAgICAgICAgICAgICAgICNlZGl0b3JDb21wb25lbnRcclxuICAgICAgICAgICAgICAgIFtlZGl0b3JBcGlJZF09XCJlZGl0b3JJZCgpXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnKCkhXCJcclxuICAgICAgICAgICAgICAgIChlZGl0b3JFbXB0eSk9XCJvbkRlc2NyaXB0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChyZXF1aXJlZCgpICYmIGlzRGVzY3JpcHRpb25FbXB0eSgpKSB7XHJcbiAgICAgICAgPGN1aS1oaW50IGhpbnRUeXBlPVwiZXJyb3JcIj57eyB0KCdERVNDUklQVElPTl9JU19SRVFVSVJFRCcpIH19PC9jdWktaGludD5cclxuICAgIH1cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==