@cuby-ui/core 0.0.386 → 0.0.388

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 (264) hide show
  1. package/README.md +2 -1
  2. package/components/tabs/index.d.ts +1 -0
  3. package/components/tabs/tabs.options.d.ts +2 -2
  4. package/components/tabs/tabs.provider.d.ts +3 -0
  5. package/editor/config/custom-elements.d.ts +1 -1
  6. package/editor/interfaces/editor-service.d.ts +1 -1
  7. package/editor/providers/editor-provider.options.d.ts +1 -1
  8. package/editor/providers/editor.provider.d.ts +1 -1
  9. package/editor/services/editor-base.service.d.ts +2 -2
  10. package/editor/services/editor-tools.service.d.ts +1 -1
  11. package/editor/utils/create-tools-data.d.ts +1 -1
  12. package/editor/widgets/editor-readonly/editor-readonly.options.d.ts +1 -1
  13. package/esm2022/animations/animations.mjs +77 -121
  14. package/esm2022/animations/index.mjs +1 -1
  15. package/esm2022/classes/accessors.mjs +2 -2
  16. package/esm2022/classes/driver.mjs +2 -2
  17. package/esm2022/classes/index.mjs +1 -1
  18. package/esm2022/classes/vehicle.mjs +1 -1
  19. package/esm2022/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  20. package/esm2022/components/accordion/accordion.component.mjs +1 -1
  21. package/esm2022/components/accordion/accordion.directive.mjs +1 -1
  22. package/esm2022/components/accordion/accordion.module.mjs +6 -22
  23. package/esm2022/components/accordion/index.mjs +1 -1
  24. package/esm2022/components/alert/alert.component.mjs +3 -3
  25. package/esm2022/components/alert/alert.interfaces.mjs +1 -1
  26. package/esm2022/components/alert/alert.module.mjs +6 -25
  27. package/esm2022/components/alert/alert.service.mjs +1 -1
  28. package/esm2022/components/alert/alert.tokens.mjs +1 -1
  29. package/esm2022/components/alert/alert.types.mjs +1 -1
  30. package/esm2022/components/alert/alerts.component.mjs +5 -7
  31. package/esm2022/components/badge/badge.component.mjs +3 -3
  32. package/esm2022/components/badge/badge.module.mjs +1 -1
  33. package/esm2022/components/banner/banner.component.mjs +4 -4
  34. package/esm2022/components/banner/banner.module.mjs +4 -14
  35. package/esm2022/components/banner/banner.options.mjs +1 -1
  36. package/esm2022/components/breadcrumbs/breadcrumb/breadcrumb.component.mjs +1 -1
  37. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  38. package/esm2022/components/breadcrumbs/breadcrumbs.module.mjs +6 -19
  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 +4 -9
  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 +1 -1
  45. package/esm2022/components/button-group/button-group.module.mjs +1 -1
  46. package/esm2022/components/card-wrapper/card-wrapper.component.mjs +1 -1
  47. package/esm2022/components/checkbox/checkbox.component.mjs +1 -1
  48. package/esm2022/components/checkbox/checkbox.module.mjs +1 -1
  49. package/esm2022/components/checkbox/index.mjs +1 -1
  50. package/esm2022/components/context-menu/context-menu.component.mjs +6 -11
  51. package/esm2022/components/context-menu/context-menu.module.mjs +4 -9
  52. package/esm2022/components/dialog/dialog-actions/dialog-actions.component.mjs +3 -3
  53. package/esm2022/components/dialog/dialog-header/dialog-header.component.mjs +3 -3
  54. package/esm2022/components/dialog/dialog.component.mjs +5 -5
  55. package/esm2022/components/dialog/dialog.interfaces.mjs +1 -1
  56. package/esm2022/components/dialog/dialog.module.mjs +6 -31
  57. package/esm2022/components/dialog/dialog.service.mjs +1 -1
  58. package/esm2022/components/dialog/dialog.tokens.mjs +1 -1
  59. package/esm2022/components/dialog/dialogs.component.mjs +6 -8
  60. package/esm2022/components/dropdown/dropdown-wrapper.component.mjs +3 -3
  61. package/esm2022/components/dropdown/dropdown.directive.mjs +2 -2
  62. package/esm2022/components/empty-state/empty-state.component.mjs +1 -1
  63. package/esm2022/components/form-field/form-field.component.mjs +1 -1
  64. package/esm2022/components/form-field/form-field.module.mjs +1 -1
  65. package/esm2022/components/hint/hint.component.mjs +1 -1
  66. package/esm2022/components/hint/hint.module.mjs +1 -1
  67. package/esm2022/components/icon-button/icon-button.component.mjs +3 -3
  68. package/esm2022/components/icon-button/icon-button.module.mjs +4 -9
  69. package/esm2022/components/icon-button/index.mjs +1 -1
  70. package/esm2022/components/input-number/input-number.component.mjs +3 -9
  71. package/esm2022/components/input-number/input-number.module.mjs +5 -19
  72. package/esm2022/components/input-password/input-password.component.mjs +3 -9
  73. package/esm2022/components/input-password/input-password.module.mjs +5 -17
  74. package/esm2022/components/input-text/input-text.component.mjs +3 -9
  75. package/esm2022/components/input-text/input-text.module.mjs +5 -17
  76. package/esm2022/components/input-time/index.mjs +1 -1
  77. package/esm2022/components/input-time/input-time.component.mjs +3 -9
  78. package/esm2022/components/input-time/input-time.module.mjs +5 -19
  79. package/esm2022/components/input-time/input-time.options.mjs +1 -1
  80. package/esm2022/components/label/label.component.mjs +3 -3
  81. package/esm2022/components/label/label.module.mjs +1 -1
  82. package/esm2022/components/layout/layout.component.mjs +1 -1
  83. package/esm2022/components/notification/notification.component.mjs +3 -3
  84. package/esm2022/components/notification/notification.module.mjs +4 -9
  85. package/esm2022/components/notification/notification.options.mjs +4 -4
  86. package/esm2022/components/radio/radio.component.mjs +1 -1
  87. package/esm2022/components/radio/radio.module.mjs +1 -1
  88. package/esm2022/components/root/root.component.mjs +4 -5
  89. package/esm2022/components/root/root.module.mjs +4 -14
  90. package/esm2022/components/root/root.options.mjs +1 -1
  91. package/esm2022/components/select/select.component.mjs +12 -13
  92. package/esm2022/components/select/select.module.mjs +5 -16
  93. package/esm2022/components/sidebar/index.mjs +1 -1
  94. package/esm2022/components/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  95. package/esm2022/components/sidebar/sidebar-navigation/sidebar-navigation.component.mjs +3 -3
  96. package/esm2022/components/sidebar/sidebar-navigation-container/sidebar-navigation-container.component.mjs +1 -1
  97. package/esm2022/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.mjs +3 -3
  98. package/esm2022/components/sidebar/sidebar.options.mjs +1 -1
  99. package/esm2022/components/svg/svg.component.mjs +4 -6
  100. package/esm2022/components/svg/svg.module.mjs +1 -1
  101. package/esm2022/components/tab/tab.component.mjs +2 -2
  102. package/esm2022/components/tabs/index.mjs +2 -1
  103. package/esm2022/components/tabs/services/tabs.service.mjs +1 -1
  104. package/esm2022/components/tabs/tabs.component.mjs +4 -4
  105. package/esm2022/components/tabs/tabs.options.mjs +1 -1
  106. package/esm2022/components/tabs/tabs.provider.mjs +10 -0
  107. package/esm2022/components/textarea/textarea.component.mjs +1 -1
  108. package/esm2022/components/textarea/textarea.module.mjs +1 -1
  109. package/esm2022/components/toggle/index.mjs +1 -1
  110. package/esm2022/components/toggle/toggle.component.mjs +1 -1
  111. package/esm2022/components/toggle/toggle.module.mjs +1 -1
  112. package/esm2022/directives/text-field-controller/text-field-controller.module.mjs +1 -1
  113. package/esm2022/directives/text-field-controller/text-field-controller.provider.mjs +1 -1
  114. package/esm2022/directives/text-field-controller/text-field-icon-left.directive.mjs +1 -1
  115. package/esm2022/directives/text-field-controller/text-field-id.directive.mjs +1 -1
  116. package/esm2022/directives/text-field-controller/text-field-is-error.directive.mjs +1 -1
  117. package/esm2022/directives/text-field-controller/text-field-placeholder.directive.mjs +1 -1
  118. package/esm2022/directives/text-field-controller/text-field-size.directive.mjs +1 -1
  119. package/esm2022/directives/text-field-controller/text-field.controller.mjs +1 -1
  120. package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +4 -4
  121. package/esm2022/directives/tooltip/tooltip-driver.directive.mjs +2 -2
  122. package/esm2022/directives/tooltip/tooltip-host.directive.mjs +2 -2
  123. package/esm2022/directives/tooltip/tooltip-hover.directive.mjs +6 -9
  124. package/esm2022/directives/tooltip/tooltip-manual.directive.mjs +2 -2
  125. package/esm2022/directives/tooltip/tooltip-options.directive.mjs +6 -6
  126. package/esm2022/directives/tooltip/tooltip-overflow.directive.mjs +5 -5
  127. package/esm2022/directives/tooltip/tooltip-pointer.directive.mjs +3 -3
  128. package/esm2022/directives/tooltip/tooltip-position.directive.mjs +6 -14
  129. package/esm2022/directives/tooltip/tooltip-unstyled.component.mjs +5 -5
  130. package/esm2022/directives/tooltip/tooltip.component.mjs +21 -25
  131. package/esm2022/directives/tooltip/tooltip.directive.mjs +9 -9
  132. package/esm2022/directives/tooltip/tooltip.mjs +2 -2
  133. package/esm2022/directives/tooltip/tooltip.providers.mjs +1 -1
  134. package/esm2022/directives/tooltip/tooltip.service.mjs +2 -2
  135. package/esm2022/directives/tooltip/tooltips.component.mjs +5 -5
  136. package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.component.mjs +3 -3
  137. package/esm2022/editor/components/editor-image-tool/editor-image-tool.component.mjs +3 -3
  138. package/esm2022/editor/components/editor-image-tool/editor-image-tool.options.mjs +1 -1
  139. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +1 -1
  140. package/esm2022/editor/components/editor-tooltip/editor-tooltip.component.mjs +3 -3
  141. package/esm2022/editor/components/editor-video-tool/editor-video-tool.component.mjs +3 -3
  142. package/esm2022/editor/components/editor-video-tool/editor-video-tool.options.mjs +1 -1
  143. package/esm2022/editor/components/index.mjs +1 -1
  144. package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +3 -3
  145. package/esm2022/editor/components/marker-modal/marker-modal.interfaces.mjs +1 -1
  146. package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +3 -3
  147. package/esm2022/editor/components/marker-select/marker-select.component.mjs +3 -3
  148. package/esm2022/editor/config/custom-elements.mjs +2 -2
  149. package/esm2022/editor/config/editor.provider.mjs +3 -3
  150. package/esm2022/editor/constants/editor.constants.mjs +2 -2
  151. package/esm2022/editor/editor.component.mjs +2 -2
  152. package/esm2022/editor/index.mjs +1 -1
  153. package/esm2022/editor/interfaces/blocks-request-data.mjs +1 -1
  154. package/esm2022/editor/interfaces/combined-block-adding-event.mjs +1 -1
  155. package/esm2022/editor/interfaces/combined-block-data.mjs +1 -1
  156. package/esm2022/editor/interfaces/combined-part-block-data.mjs +1 -1
  157. package/esm2022/editor/interfaces/editor-service.mjs +1 -1
  158. package/esm2022/editor/interfaces/file-response-data.mjs +1 -1
  159. package/esm2022/editor/interfaces/full-block-data.mjs +1 -1
  160. package/esm2022/editor/interfaces/index.mjs +1 -1
  161. package/esm2022/editor/interfaces/main-editor-config.mjs +1 -1
  162. package/esm2022/editor/interfaces/mutation-actions.mjs +1 -1
  163. package/esm2022/editor/interfaces/parent.mjs +1 -1
  164. package/esm2022/editor/interfaces/tune.mjs +1 -1
  165. package/esm2022/editor/providers/editor-provider.options.mjs +2 -2
  166. package/esm2022/editor/providers/editor.provider.mjs +2 -2
  167. package/esm2022/editor/services/editor-base.service.mjs +5 -5
  168. package/esm2022/editor/services/editor-tools.service.mjs +2 -2
  169. package/esm2022/editor/services/editor.service.mjs +1 -1
  170. package/esm2022/editor/services/jtext-api.service.mjs +1 -1
  171. package/esm2022/editor/tools/attaches.tool.mjs +1 -1
  172. package/esm2022/editor/tools/combined-text-block.tool.mjs +1 -1
  173. package/esm2022/editor/tools/custom-marker.tool.mjs +1 -1
  174. package/esm2022/editor/tools/image.tool.mjs +2 -2
  175. package/esm2022/editor/tools/link-marker.tool.mjs +1 -1
  176. package/esm2022/editor/tools/marker.tool.mjs +1 -1
  177. package/esm2022/editor/tools/selection-base.tool.mjs +1 -1
  178. package/esm2022/editor/tools/video.tool.mjs +2 -2
  179. package/esm2022/editor/utils/copy-text-to-clipboard.mjs +1 -1
  180. package/esm2022/editor/utils/create-tools-data.mjs +2 -2
  181. package/esm2022/editor/utils/file-uploader.mjs +1 -1
  182. package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +1 -1
  183. package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +2 -7
  184. package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +3 -3
  185. package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +1 -1
  186. package/esm2022/interfaces/context-menu-item.mjs +1 -1
  187. package/esm2022/interfaces/option.mjs +1 -1
  188. package/esm2022/services/auth.service.mjs +1 -1
  189. package/esm2022/services/index.mjs +1 -1
  190. package/esm2022/services/loader.options.mjs +1 -1
  191. package/esm2022/services/loader.service.mjs +1 -1
  192. package/esm2022/services/position.service.mjs +1 -1
  193. package/esm2022/services/theme.options.mjs +1 -1
  194. package/esm2022/services/theme.service.mjs +3 -3
  195. package/esm2022/services/token.service.mjs +3 -2
  196. package/esm2022/services/visual-viewport.service.mjs +3 -3
  197. package/esm2022/tokens/animations-speed.mjs +2 -2
  198. package/esm2022/tokens/index.mjs +1 -1
  199. package/esm2022/tokens/reduced-motion.mjs +2 -3
  200. package/esm2022/tokens/viewport.mjs +4 -4
  201. package/esm2022/types/point.mjs +1 -1
  202. package/esm2022/types/portal-item.mjs +1 -1
  203. package/esm2022/utils/default-validators/create-default-validators.options.mjs +1 -1
  204. package/esm2022/utils/default-validators/index.mjs +1 -1
  205. package/esm2022/utils/format/remove-spaces.mjs +1 -1
  206. package/esm2022/utils/format/replace.mjs +1 -1
  207. package/esm2022/utils/index.mjs +1 -1
  208. package/esm2022/utils/miscellaneous/is-obscured.mjs +1 -1
  209. package/esm2022/utils/miscellaneous/override-options.mjs +1 -1
  210. package/esm2022/utils/miscellaneous/to-animation-options.mjs +3 -3
  211. package/esm2022/widgets/categories/categories.component.mjs +1 -1
  212. package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +1 -1
  213. package/esm2022/widgets/checklist-block/checklist-block.component.mjs +1 -1
  214. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-card/checklist-block-list-item-action-card.component.mjs +1 -1
  215. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/checklist-block-list-item-action-with-verification.component.mjs +1 -1
  216. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/checklist-block-list-item-action-without-verification.component.mjs +1 -1
  217. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.mjs +1 -1
  218. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.mjs +1 -1
  219. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.mjs +1 -1
  220. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.mjs +3 -3
  221. package/esm2022/widgets/criterion-info-form/criterion-info-form.component.mjs +2 -2
  222. package/esm2022/widgets/criterion-readonly-info/criterion-readonly-info.component.mjs +3 -3
  223. package/esm2022/widgets/delete-modal/delete-modal.component.mjs +2 -2
  224. package/esm2022/widgets/instruction-info/instruction-info.component.mjs +1 -1
  225. package/esm2022/widgets/instruction-readonly-info/instruction-readonly-info.component.mjs +3 -3
  226. package/esm2022/widgets/loader/loader.component.mjs +1 -1
  227. package/esm2022/widgets/select-modal/components/select-modal-search/select-modal-search.component.mjs +3 -3
  228. package/esm2022/widgets/user-action-context-menu/activity-item/activity-item.component.mjs +13 -10
  229. package/esm2022/widgets/user-action-context-menu/constants/index.mjs +1 -1
  230. package/esm2022/widgets/user-action-context-menu/constants/translations.mjs +2 -2
  231. package/esm2022/widgets/user-action-context-menu/services/activity-base.service.mjs +3 -2
  232. package/esm2022/widgets/user-action-context-menu/services/activity.service.mjs +3 -3
  233. package/esm2022/widgets/user-action-context-menu/user-action-context-menu.component.mjs +7 -9
  234. package/esm2022/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +5 -4
  235. package/esm2022/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +3 -2
  236. package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +3 -3
  237. package/esm2022/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +3 -2
  238. package/esm2022/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +2 -2
  239. package/esm2022/widgets/utility-modal/utility-modal.options.mjs +2 -2
  240. package/esm2022/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.mjs +1 -1
  241. package/fesm2022/cuby-ui-core.mjs +347 -612
  242. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  243. package/package.json +4 -4
  244. package/styles/fonts.scss +44 -40
  245. package/styles/mixins/buttons.scss +11 -11
  246. package/styles/mixins/flex.scss +13 -13
  247. package/styles/mixins/inputs.scss +70 -70
  248. package/styles/mixins/lists.scss +1 -1
  249. package/styles/mixins/paddings.scss +24 -24
  250. package/styles/mixins/shadows.scss +16 -12
  251. package/styles/mixins/texts.scss +102 -103
  252. package/styles/reset.scss +72 -72
  253. package/styles/theme.scss +135 -135
  254. package/styles/variables/colors.scss +1 -1
  255. package/styles/variables/fonts.scss +1 -1
  256. package/utils/default-validators/create-default-validators.options.d.ts +1 -1
  257. package/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.d.ts +2 -2
  258. package/widgets/user-action-context-menu/activity-item/activity-item.component.d.ts +1 -1
  259. package/widgets/user-action-context-menu/constants/translations.d.ts +1 -1
  260. package/widgets/user-action-context-menu/services/activity-base.service.d.ts +1 -1
  261. package/widgets/user-action-context-menu/services/activity.service.d.ts +1 -1
  262. package/widgets/user-action-context-menu/user-action-context-menu.component.d.ts +0 -1
  263. package/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.d.ts +1 -1
  264. package/widgets/utility-modal/utility-modal.options.d.ts +3 -3
package/README.md CHANGED
@@ -5,7 +5,8 @@ This library was generated with [Angular CLI](https://github.com/angular/angular
5
5
  ## Code scaffolding
6
6
 
7
7
  Run `ng generate component component-name --project core` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project core`.
8
- > Note: Don't forget to add `--project core` or else it will be added to the default project in your `angular.json` file.
8
+
9
+ > Note: Don't forget to add `--project core` or else it will be added to the default project in your `angular.json` file.
9
10
 
10
11
  ## Build
11
12
 
@@ -1,2 +1,3 @@
1
1
  export { CuiTabsComponent } from './tabs.component';
2
2
  export { CuiTabOptions, CuiTabsService, CUI_TABS_SERVICE_TOKEN } from './tabs.options';
3
+ export { provideCuiTabs } from './tabs.provider';
@@ -2,8 +2,8 @@ import { InjectionToken, Signal, type TemplateRef } from '@angular/core';
2
2
  import { CuiNullable } from '@cuby-ui/cdk';
3
3
  export declare const CUI_TABS_SERVICE_TOKEN: InjectionToken<CuiAbstractTabsService>;
4
4
  export declare abstract class CuiAbstractTabsService implements CuiTabsService {
5
- readonly abstract tabs: Signal<CuiTabOptions[]>;
6
- readonly abstract activeTab: Signal<CuiNullable<CuiTabOptions>>;
5
+ abstract readonly tabs: Signal<CuiTabOptions[]>;
6
+ abstract readonly activeTab: Signal<CuiNullable<CuiTabOptions>>;
7
7
  abstract set(tab: CuiTabOptions): void;
8
8
  abstract addTab(tab: CuiTabOptions): void;
9
9
  abstract removeTab(tabId: string): void;
@@ -0,0 +1,3 @@
1
+ import { Provider, Type } from '@angular/core';
2
+ import { CuiAbstractTabsService } from './tabs.options';
3
+ export declare function provideCuiTabs(Implementation?: Type<CuiAbstractTabsService>): Provider;
@@ -1,2 +1,2 @@
1
- import { CuiCustomElement } from "../interfaces";
1
+ import { CuiCustomElement } from '../interfaces';
2
2
  export declare const EDITOR_CUSTOM_ELEMENTS: readonly CuiCustomElement[];
@@ -1,4 +1,4 @@
1
- import { CuiTools } from "./tools";
1
+ import { CuiTools } from './tools';
2
2
  export interface EditorData {
3
3
  readonly tools: CuiTools;
4
4
  }
@@ -1,2 +1,2 @@
1
- import { InjectionToken } from "@angular/core";
1
+ import { InjectionToken } from '@angular/core';
2
2
  export declare const CUI_RESOURCE_URL: InjectionToken<string>;
@@ -1,2 +1,2 @@
1
- import { Provider } from "@angular/core";
1
+ import { Provider } from '@angular/core';
2
2
  export declare function provideCuiEditorResourceUrl(resourceUrl: string): Provider;
@@ -1,5 +1,5 @@
1
- import { EditorData } from "../interfaces/editor-service";
2
- import { CuiFileData, CuiTools } from "../interfaces";
1
+ import { EditorData } from '../interfaces/editor-service';
2
+ import { CuiFileData, CuiTools } from '../interfaces';
3
3
  export declare abstract class EditorBaseService implements EditorData {
4
4
  private readonly editorResourceUrl;
5
5
  readonly TOOLS: CuiTools;
@@ -1,5 +1,5 @@
1
1
  import { EditorBaseService } from './editor-base.service';
2
- import { CuiFileData } from "../interfaces";
2
+ import { CuiFileData } from '../interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class CuiEditorToolsService extends EditorBaseService {
5
5
  constructor();
@@ -1,2 +1,2 @@
1
- import type { CuiTools } from "../interfaces";
1
+ import type { CuiTools } from '../interfaces';
2
2
  export declare function getEditorTools(resourceUrl: string): CuiTools;
@@ -1,4 +1,4 @@
1
- import { CuiEditorConfig } from "../../interfaces";
1
+ import { CuiEditorConfig } from '../../interfaces';
2
2
  export type CuiEditorReadonlyConfig = Exclude<CuiEditorConfig, {
3
3
  readOnly: boolean;
4
4
  withoutPreload: boolean;
@@ -1,4 +1,4 @@
1
- import { animate, animateChild, query, stagger, style, transition, trigger, } from '@angular/animations';
1
+ import { animate, animateChild, query, stagger, style, transition, trigger } from '@angular/animations';
2
2
  const TRANSITION = '{{duration}}ms ease-in-out';
3
3
  const DURATION = { params: { duration: 300 } };
4
4
  const STAGGER = 300;
@@ -6,267 +6,223 @@ const STAGGER = 300;
6
6
  * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)
7
7
  */
8
8
  export const cuiParentAnimation = trigger('cuiParentAnimation', [
9
- transition(':leave', [query(':scope > *', [animateChild()], { optional: true })]),
9
+ transition(':leave', [query(':scope > *', [animateChild()], { optional: true })])
10
10
  ]);
11
11
  /**
12
12
  * Add on parent to stop initial :enter animation for children
13
13
  */
14
14
  export const cuiParentStop = trigger('cuiParentStop', [transition(':enter', [])]);
15
15
  export const cuiHost = trigger('cuiHost', [
16
- transition(':enter', [
17
- style({ overflow: 'clip' }),
18
- query(':scope > *', [animateChild()], { optional: true }),
19
- ]),
20
- transition(':leave', [query(':scope > *', [animateChild()], { optional: true })]),
16
+ transition(':enter', [style({ overflow: 'clip' }), query(':scope > *', [animateChild()], { optional: true })]),
17
+ transition(':leave', [query(':scope > *', [animateChild()], { optional: true })])
21
18
  ]);
22
19
  export const cuiHeightCollapse = trigger('cuiHeightCollapse', [
23
20
  transition(':enter', [style({ height: 0 }), animate(TRANSITION, style({ height: '*' }))], DURATION),
24
- transition(':leave', [style({ height: '*' }), animate(TRANSITION, style({ height: 0 }))], DURATION),
21
+ transition(':leave', [style({ height: '*' }), animate(TRANSITION, style({ height: 0 }))], DURATION)
25
22
  ]);
26
23
  export const cuiHeightCollapseList = trigger('cuiHeightCollapseList', [
27
24
  transition('* => *', [
28
- query(':enter', [
29
- style({ height: 0 }),
30
- stagger(STAGGER, [animate(TRANSITION, style({ height: '*' }))]),
31
- ], {
32
- optional: true,
33
- }),
34
- query(':leave', [
35
- style({ height: '*' }),
36
- stagger(STAGGER, [animate(TRANSITION, style({ height: 0 }))]),
37
- ], {
38
- optional: true,
25
+ query(':enter', [style({ height: 0 }), stagger(STAGGER, [animate(TRANSITION, style({ height: '*' }))])], {
26
+ optional: true
39
27
  }),
40
- ], DURATION),
28
+ query(':leave', [style({ height: '*' }), stagger(STAGGER, [animate(TRANSITION, style({ height: 0 }))])], {
29
+ optional: true
30
+ })
31
+ ], DURATION)
41
32
  ]);
42
33
  export const cuiWidthCollapse = trigger('cuiWidthCollapse', [
43
34
  transition(':enter', [style({ width: 0 }), animate(TRANSITION, style({ width: '*' }))], DURATION),
44
- transition(':leave', [style({ width: '*' }), animate(TRANSITION, style({ width: 0 }))], DURATION),
35
+ transition(':leave', [style({ width: '*' }), animate(TRANSITION, style({ width: 0 }))], DURATION)
45
36
  ]);
46
37
  export const cuiWidthCollapseList = trigger('cuiWidthCollapseList', [
47
38
  transition('* => *', [
48
- query(':enter', [
49
- style({ width: 0 }),
50
- stagger(STAGGER, [animate(TRANSITION, style({ width: '*' }))]),
51
- ], {
52
- optional: true,
53
- }),
54
- query(':leave', [
55
- style({ width: '*' }),
56
- stagger(STAGGER, [animate(TRANSITION, style({ width: 0 }))]),
57
- ], {
58
- optional: true,
39
+ query(':enter', [style({ width: 0 }), stagger(STAGGER, [animate(TRANSITION, style({ width: '*' }))])], {
40
+ optional: true
59
41
  }),
60
- ], DURATION),
42
+ query(':leave', [style({ width: '*' }), stagger(STAGGER, [animate(TRANSITION, style({ width: 0 }))])], {
43
+ optional: true
44
+ })
45
+ ], DURATION)
61
46
  ]);
62
47
  export const cuiFadeIn = trigger('cuiFadeIn', [
63
48
  transition(':enter', [style({ opacity: 0 }), animate(TRANSITION, style({ opacity: 1 }))], DURATION),
64
- transition(':leave', [style({ opacity: 1 }), animate(TRANSITION, style({ opacity: 0 }))], DURATION),
49
+ transition(':leave', [style({ opacity: 1 }), animate(TRANSITION, style({ opacity: 0 }))], DURATION)
65
50
  ]);
66
51
  export const cuiFadeInList = trigger('cuiFadeInList', [
67
52
  transition('* => *', [
68
- query(':enter', [
69
- style({ opacity: 0 }),
70
- stagger(STAGGER, [animate(TRANSITION, style({ opacity: 1 }))]),
71
- ], {
72
- optional: true,
53
+ query(':enter', [style({ opacity: 0 }), stagger(STAGGER, [animate(TRANSITION, style({ opacity: 1 }))])], {
54
+ optional: true
73
55
  }),
74
- query(':leave', [
75
- style({ opacity: 1 }),
76
- stagger(STAGGER, [animate(TRANSITION, style({ opacity: 0 }))]),
77
- ], {
78
- optional: true,
79
- }),
80
- ], DURATION),
56
+ query(':leave', [style({ opacity: 1 }), stagger(STAGGER, [animate(TRANSITION, style({ opacity: 0 }))])], {
57
+ optional: true
58
+ })
59
+ ], DURATION)
81
60
  ]);
82
61
  export const cuiFadeInTop = trigger('cuiFadeInTop', [
83
62
  transition(':enter', [
84
63
  style({ transform: 'translateY(-{{start}}px)', opacity: 0 }),
85
- animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 })),
64
+ animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 }))
86
65
  ], { params: { end: 0, start: 10, duration: 300 } }),
87
66
  transition(':leave', [
88
67
  style({ transform: 'translateY({{end}})', opacity: 1 }),
89
- animate(TRANSITION, style({ transform: 'translateY(-{{start}}px)', opacity: 0 })),
90
- ], { params: { end: 0, start: 10, duration: 300 } }),
68
+ animate(TRANSITION, style({ transform: 'translateY(-{{start}}px)', opacity: 0 }))
69
+ ], { params: { end: 0, start: 10, duration: 300 } })
91
70
  ]);
92
71
  export const cuiFadeInBottom = trigger('cuiFadeInBottom', [
93
72
  transition(':enter', [
94
73
  style({ transform: 'translateY({{start}}px)', opacity: 0 }),
95
- animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 })),
74
+ animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 }))
96
75
  ], { params: { end: 0, start: 10, duration: 300 } }),
97
76
  transition(':leave', [
98
77
  style({ transform: 'translateY({{end}})', opacity: 1 }),
99
- animate(TRANSITION, style({ transform: 'translateY({{start}}px)', opacity: 0 })),
100
- ], { params: { end: 0, start: 10, duration: 300 } }),
78
+ animate(TRANSITION, style({ transform: 'translateY({{start}}px)', opacity: 0 }))
79
+ ], { params: { end: 0, start: 10, duration: 300 } })
101
80
  ]);
102
81
  export const cuiDropdownAnimation = trigger('cuiDropdownAnimation', [
103
82
  transition(':enter', [
104
83
  style({ transform: 'translateY(-{{start}}px)', opacity: 0 }),
105
- animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 })),
84
+ animate(TRANSITION, style({ transform: 'translateY({{end}})', opacity: 1 }))
106
85
  ], { params: { end: 0, start: 10, duration: 300 } }),
107
86
  transition(':leave', [
108
87
  style({ transform: 'translateY({{end}})', opacity: 1 }),
109
- animate(TRANSITION, style({ transform: 'translateY(-{{start}}px)', opacity: 0 })),
110
- ], { params: { end: 0, start: 10, duration: 300 } }),
88
+ animate(TRANSITION, style({ transform: 'translateY(-{{start}}px)', opacity: 0 }))
89
+ ], { params: { end: 0, start: 10, duration: 300 } })
111
90
  ]);
112
91
  export const cuiScaleIn = trigger('cuiScaleIn', [
113
92
  transition(':enter', [
114
93
  style({ transform: 'scale({{start}})' }),
115
- animate('{{duration}}ms {{easing}}', style({ transform: 'scale({{end}})' })),
94
+ animate('{{duration}}ms {{easing}}', style({ transform: 'scale({{end}})' }))
116
95
  ], { params: { end: 1, start: 0, duration: 300, easing: 'ease-in-out' } }),
117
- transition(':leave', [
118
- style({ transform: 'scale({{end}})' }),
119
- animate(TRANSITION, style({ transform: 'scale({{start}})' })),
120
- ], { params: { end: 1, start: 0, duration: 300 } }),
96
+ transition(':leave', [style({ transform: 'scale({{end}})' }), animate(TRANSITION, style({ transform: 'scale({{start}})' }))], { params: { end: 1, start: 0, duration: 300 } })
121
97
  ]);
122
98
  export const cuiPop = trigger('cuiPop', [
123
99
  transition(':enter', [
124
100
  style({ transform: 'scale({{start}})' }),
125
101
  animate(TRANSITION, style({ transform: 'scale({{middle}})' })),
126
- animate(TRANSITION, style({ transform: 'scale({{end}})' })),
102
+ animate(TRANSITION, style({ transform: 'scale({{end}})' }))
127
103
  ], { params: { end: 1, middle: 1.1, start: 0, duration: 300 } }),
128
104
  transition(':leave', [
129
105
  style({ transform: 'scale({{end}})' }),
130
106
  animate(TRANSITION, style({ transform: 'scale({{middle}})' })),
131
- animate(TRANSITION, style({ transform: 'scale({{start}})' })),
132
- ], { params: { end: 1, middle: 1.1, start: 0, duration: 300 } }),
107
+ animate(TRANSITION, style({ transform: 'scale({{start}})' }))
108
+ ], { params: { end: 1, middle: 1.1, start: 0, duration: 300 } })
133
109
  ]);
134
110
  export const cuiScaleInList = trigger('cuiScaleInList', [
135
111
  transition('* => *', [
136
112
  query(':enter', [
137
113
  style({ transform: 'scale({{start}})' }),
138
- stagger(STAGGER, [
139
- animate(TRANSITION, style({ transform: 'scale({{end}})' })),
140
- ]),
114
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'scale({{end}})' }))])
141
115
  ], { optional: true }),
142
116
  query(':leave', [
143
117
  style({ transform: 'scale({{end}})' }),
144
- stagger(STAGGER, [
145
- animate(TRANSITION, style({ transform: 'scale({{start}})' })),
146
- ]),
147
- ], { optional: true }),
148
- ], { params: { end: 1, start: 0, duration: 300 } }),
118
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'scale({{start}})' }))])
119
+ ], { optional: true })
120
+ ], { params: { end: 1, start: 0, duration: 300 } })
149
121
  ]);
150
122
  export const cuiSlideIn = trigger('cuiSlideIn', [
151
123
  transition('* => left', [
152
124
  style({ transform: 'translateX(-{{start}})' }),
153
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
125
+ animate(TRANSITION, style({ transform: 'translateX({{end}})' }))
154
126
  ], { params: { end: 0, start: '100%', duration: 300 } }),
155
127
  transition('left => *', [
156
128
  style({ transform: 'translateX({{end}})' }),
157
- animate(TRANSITION, style({ transform: 'translateX(-{{start}})' })),
129
+ animate(TRANSITION, style({ transform: 'translateX(-{{start}})' }))
158
130
  ], { params: { end: 0, start: '100%', duration: 300 } }),
159
131
  transition('* => right', [
160
132
  style({ transform: 'translateX({{start}})' }),
161
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
133
+ animate(TRANSITION, style({ transform: 'translateX({{end}})' }))
162
134
  ], { params: { end: 0, start: '100%', duration: 300 } }),
163
135
  transition('right => *', [
164
136
  style({ transform: 'translateX({{end}})' }),
165
- animate(TRANSITION, style({ transform: 'translateX({{start}})' })),
166
- ], { params: { end: 0, start: '100%', duration: 300 } }),
137
+ animate(TRANSITION, style({ transform: 'translateX({{start}})' }))
138
+ ], { params: { end: 0, start: '100%', duration: 300 } })
167
139
  ]);
168
140
  export const cuiSlideInLeft = trigger('cuiSlideInLeft', [
169
141
  transition(':enter', [
170
142
  style({ transform: 'translateX(-{{start}})' }),
171
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
143
+ animate(TRANSITION, style({ transform: 'translateX({{end}})' }))
172
144
  ], { params: { end: 0, start: '100%', duration: 300 } }),
173
145
  transition(':leave', [
174
146
  style({ transform: 'translateX({{end}})' }),
175
- animate(TRANSITION, style({ transform: 'translateX(-{{start}})' })),
176
- ], { params: { end: 0, start: '100%', duration: 300 } }),
147
+ animate(TRANSITION, style({ transform: 'translateX(-{{start}})' }))
148
+ ], { params: { end: 0, start: '100%', duration: 300 } })
177
149
  ]);
178
150
  export const cuiSlideInLeftList = trigger('cuiSlideInLeftList', [
179
151
  transition('* => *', [
180
152
  query(':enter', [
181
153
  style({ transform: 'translateX(-{{start}})' }),
182
- stagger(STAGGER, [
183
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
184
- ]),
154
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateX({{end}})' }))])
185
155
  ], { optional: true }),
186
156
  query(':leave', [
187
157
  style({ transform: 'translateX({{end}})' }),
188
- stagger(STAGGER, [
189
- animate(TRANSITION, style({ transform: 'translateX(-{{start}})' })),
190
- ]),
191
- ], { optional: true }),
192
- ], { params: { end: 0, start: '100%', duration: 300 } }),
158
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateX(-{{start}})' }))])
159
+ ], { optional: true })
160
+ ], { params: { end: 0, start: '100%', duration: 300 } })
193
161
  ]);
194
162
  export const cuiSlideInRight = trigger('cuiSlideInRight', [
195
163
  transition(':enter', [
196
164
  style({ transform: 'translateX({{start}})' }),
197
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
165
+ animate(TRANSITION, style({ transform: 'translateX({{end}})' }))
198
166
  ], { params: { end: 0, start: '100%', duration: 300 } }),
199
167
  transition(':leave', [
200
168
  style({ transform: 'translateX({{end}})' }),
201
- animate(TRANSITION, style({ transform: 'translateX({{start}})' })),
202
- ], { params: { end: 0, start: '100%', duration: 300 } }),
169
+ animate(TRANSITION, style({ transform: 'translateX({{start}})' }))
170
+ ], { params: { end: 0, start: '100%', duration: 300 } })
203
171
  ]);
204
172
  export const cuiSlideInRightList = trigger('cuiSlideInRightList', [
205
173
  transition('* => *', [
206
174
  query(':enter', [
207
175
  style({ transform: 'translateX({{start}})' }),
208
- stagger(STAGGER, [
209
- animate(TRANSITION, style({ transform: 'translateX({{end}})' })),
210
- ]),
176
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateX({{end}})' }))])
211
177
  ], { optional: true }),
212
178
  query(':leave', [
213
179
  style({ transform: 'translateX({{end}})' }),
214
- stagger(STAGGER, [
215
- animate(TRANSITION, style({ transform: 'translateX({{start}})' })),
216
- ]),
217
- ], { optional: true }),
218
- ], { params: { end: 0, start: '100%', duration: 300 } }),
180
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateX({{start}})' }))])
181
+ ], { optional: true })
182
+ ], { params: { end: 0, start: '100%', duration: 300 } })
219
183
  ]);
220
184
  export const cuiSlideInTop = trigger('cuiSlideInTop', [
221
185
  transition(':enter', [
222
186
  style({ transform: 'translate3d(0,{{start}},0)', pointerEvents: 'none' }),
223
- animate(TRANSITION, style({ transform: 'translate3d(0,{{end}},0)' })),
187
+ animate(TRANSITION, style({ transform: 'translate3d(0,{{end}},0)' }))
224
188
  ], { params: { end: 0, start: '100%', duration: 300 } }),
225
189
  transition(':leave', [
226
190
  style({ transform: 'translate3d(0,{{end}},0)' }),
227
- animate(TRANSITION, style({ transform: 'translate3d(0,{{start}},0)' })),
228
- ], { params: { end: 0, start: '100%', duration: 300 } }),
191
+ animate(TRANSITION, style({ transform: 'translate3d(0,{{start}},0)' }))
192
+ ], { params: { end: 0, start: '100%', duration: 300 } })
229
193
  ]);
230
194
  export const cuiSlideInTopList = trigger('cuiSlideInTopList', [
231
195
  transition('* => *', [
232
196
  query(':enter', [
233
197
  style({ transform: 'translateY({{start}})' }),
234
- stagger(STAGGER, [
235
- animate(TRANSITION, style({ transform: 'translateY({{end}})' })),
236
- ]),
198
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateY({{end}})' }))])
237
199
  ], { optional: true }),
238
200
  query(':leave', [
239
201
  style({ transform: 'translateY({{end}})' }),
240
- stagger(STAGGER, [
241
- animate(TRANSITION, style({ transform: 'translateY({{start}})' })),
242
- ]),
243
- ], { optional: true }),
244
- ], { params: { end: 0, start: '100%', duration: 300 } }),
202
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateY({{start}})' }))])
203
+ ], { optional: true })
204
+ ], { params: { end: 0, start: '100%', duration: 300 } })
245
205
  ]);
246
206
  export const cuiSlideInBottom = trigger('cuiSlideInBottom', [
247
207
  transition(':enter', [
248
208
  style({ transform: 'translateY(-{{start}})' }),
249
- animate(TRANSITION, style({ transform: 'translateY({{end}})' })),
209
+ animate(TRANSITION, style({ transform: 'translateY({{end}})' }))
250
210
  ], { params: { end: 0, start: '100%', duration: 300 } }),
251
211
  transition(':leave', [
252
212
  style({ transform: 'translateY({{end}})' }),
253
- animate(TRANSITION, style({ transform: 'translateY(-{{start}})' })),
254
- ], { params: { end: 0, start: '100%', duration: 300 } }),
213
+ animate(TRANSITION, style({ transform: 'translateY(-{{start}})' }))
214
+ ], { params: { end: 0, start: '100%', duration: 300 } })
255
215
  ]);
256
216
  export const cuiSlideInBottomList = trigger('cuiSlideInBottomList', [
257
217
  transition('* => *', [
258
218
  query(':enter', [
259
219
  style({ transform: 'translateY(-{{start}})' }),
260
- stagger(STAGGER, [
261
- animate(TRANSITION, style({ transform: 'translateY({{end}})' })),
262
- ]),
220
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateY({{end}})' }))])
263
221
  ], { optional: true }),
264
222
  query(':leave', [
265
223
  style({ transform: 'translateY({{end}})' }),
266
- stagger(STAGGER, [
267
- animate(TRANSITION, style({ transform: 'translateY(-{{start}})' })),
268
- ]),
269
- ], { optional: true }),
270
- ], { params: { end: 0, start: '100%', duration: 300 } }),
224
+ stagger(STAGGER, [animate(TRANSITION, style({ transform: 'translateY(-{{start}})' }))])
225
+ ], { optional: true })
226
+ ], { params: { end: 0, start: '100%', duration: 300 } })
271
227
  ]);
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvYW5pbWF0aW9ucy9hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRCxNQUFNLFFBQVEsR0FBRyxFQUFDLE1BQU0sRUFBRSxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUMsRUFBQyxDQUFDO0FBQzNDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQU9wQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM5RCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2hGLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRTtJQUN4QyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQztRQUN6QixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztLQUN4RCxDQUFD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QUFJLEVBQUMsQ0FDakI7S0FDRixFQUNELEVBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsRUFBQyxDQUNqRDtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIGFuaW1hdGVDaGlsZCxcbiAgcXVlcnksXG4gIHN0YWdnZXIsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuY29uc3QgVFJBTlNJVElPTiA9ICd7e2R1cmF0aW9ufX1tcyBlYXNlLWluLW91dCc7XG5jb25zdCBEVVJBVElPTiA9IHtwYXJhbXM6IHtkdXJhdGlvbjogMzAwfX07XG5jb25zdCBTVEFHR0VSID0gMzAwO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUR1cmF0aW9uT3B0aW9ucyB7XG4gIHBhcmFtczoge2R1cmF0aW9uOiBudW1iZXJ9O1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFkZCB0byBlbmFibGUgY2hpbGQgOmxlYXZlIGFuaW1hdGlvbiAoZml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU3NTMpXG4gKi9cbmV4cG9ydCBjb25zdCBjdWlQYXJlbnRBbmltYXRpb24gPSB0cmlnZ2VyKCdjdWlQYXJlbnRBbmltYXRpb24nLCBbXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtxdWVyeSgnOnNjb3BlID4gKicsIFthbmltYXRlQ2hpbGQoKV0sIHtvcHRpb25hbDogdHJ1ZX0pXSksXG5dKTtcblxuLyoqXG4gKiBBZGQgb24gcGFyZW50IHRvIHN0b3AgaW5pdGlhbCA6ZW50ZXIgYW5pbWF0aW9uIGZvciBjaGlsZHJlblxuICovXG5leHBvcnQgY29uc3QgY3VpUGFyZW50U3RvcCA9IHRyaWdnZXIoJ2N1aVBhcmVudFN0b3AnLCBbdHJhbnNpdGlvbignOmVudGVyJywgW10pXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlIb3N0ID0gdHJpZ2dlcignY3VpSG9zdCcsIFtcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgIHN0eWxlKHtvdmVyZmxvdzogJ2NsaXAnfSksXG4gICAgcXVlcnkoJzpzY29wZSA+IConLCBbYW5pbWF0ZUNoaWxkKCldLCB7b3B0aW9uYWw6IHRydWV9KSxcbiAgXSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtxdWVyeSgnOnNjb3BlID4gKicsIFthbmltYXRlQ2hpbGQoKV0sIHtvcHRpb25hbDogdHJ1ZX0pXSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aUhlaWdodENvbGxhcHNlID0gdHJpZ2dlcignY3VpSGVpZ2h0Q29sbGFwc2UnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW3N0eWxlKHtoZWlnaHQ6IDB9KSwgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7aGVpZ2h0OiAnKid9KSldLFxuICAgIERVUkFUSU9OLFxuICApLFxuICB0cmFuc2l0aW9uKFxuICAgICc6bGVhdmUnLFxuICAgIFtzdHlsZSh7aGVpZ2h0OiAnKid9KSwgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7aGVpZ2h0OiAwfSkpXSxcbiAgICBEVVJBVElPTixcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpSGVpZ2h0Q29sbGFwc2VMaXN0ID0gdHJpZ2dlcignY3VpSGVpZ2h0Q29sbGFwc2VMaXN0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IConLFxuICAgIFtcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHtoZWlnaHQ6IDB9KSxcbiAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHtoZWlnaHQ6ICcqJ30pKV0pLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICAgcXVlcnkoXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgc3R5bGUoe2hlaWdodDogJyonfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7aGVpZ2h0OiAwfSkpXSksXG4gICAgICAgIF0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgXSxcbiAgICBEVVJBVElPTixcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpV2lkdGhDb2xsYXBzZSA9IHRyaWdnZXIoJ2N1aVdpZHRoQ29sbGFwc2UnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW3N0eWxlKHt3aWR0aDogMH0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt3aWR0aDogJyonfSkpXSxcbiAgICBEVVJBVElPTixcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbc3R5bGUoe3dpZHRoOiAnKid9KSwgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7d2lkdGg6IDB9KSldLFxuICAgIERVUkFUSU9OLFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlXaWR0aENvbGxhcHNlTGlzdCA9IHRyaWdnZXIoJ2N1aVdpZHRoQ29sbGFwc2VMaXN0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IConLFxuICAgIFtcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt3aWR0aDogMH0pLFxuICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3dpZHRoOiAnKid9KSldKSxcbiAgICAgICAgXSxcbiAgICAgICAge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt3aWR0aDogJyonfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7d2lkdGg6IDB9KSldKSxcbiAgICAgICAgXSxcbiAgICAgICAge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICBdLFxuICAgIERVUkFUSU9OLFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlGYWRlSW4gPSB0cmlnZ2VyKCdjdWlGYWRlSW4nLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW3N0eWxlKHtvcGFjaXR5OiAwfSksIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe29wYWNpdHk6IDF9KSldLFxuICAgIERVUkFUSU9OLFxuICApLFxuICB0cmFuc2l0aW9uKFxuICAgICc6bGVhdmUnLFxuICAgIFtzdHlsZSh7b3BhY2l0eTogMX0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHtvcGFjaXR5OiAwfSkpXSxcbiAgICBEVVJBVElPTixcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpRmFkZUluTGlzdCA9IHRyaWdnZXIoJ2N1aUZhZGVJbkxpc3QnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJyogPT4gKicsXG4gICAgW1xuICAgICAgcXVlcnkoXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBbXG4gICAgICAgICAgc3R5bGUoe29wYWNpdHk6IDB9KSxcbiAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHtvcGFjaXR5OiAxfSkpXSksXG4gICAgICAgIF0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBxdWVyeShcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7b3BhY2l0eTogMX0pLFxuICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe29wYWNpdHk6IDB9KSldKSxcbiAgICAgICAgXSxcbiAgICAgICAge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICBdLFxuICAgIERVUkFUSU9OLFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlGYWRlSW5Ub3AgPSB0cmlnZ2VyKCdjdWlGYWRlSW5Ub3AnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLXt7c3RhcnR9fXB4KScsIG9wYWNpdHk6IDB9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tlbmR9fSknLCBvcGFjaXR5OiAxfSkpLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6IDEwLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG4gIHRyYW5zaXRpb24oXG4gICAgJzpsZWF2ZScsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tlbmR9fSknLCBvcGFjaXR5OiAxfSksXG4gICAgICBhbmltYXRlKFxuICAgICAgICBUUkFOU0lUSU9OLFxuICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSgte3tzdGFydH19cHgpJywgb3BhY2l0eTogMH0pLFxuICAgICAgKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAxMCwgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlGYWRlSW5Cb3R0b20gPSB0cmlnZ2VyKCdjdWlGYWRlSW5Cb3R0b20nLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tzdGFydH19cHgpJywgb3BhY2l0eTogMH0pLFxuICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDF9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogMTAsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDF9KSxcbiAgICAgIGFuaW1hdGUoXG4gICAgICAgIFRSQU5TSVRJT04sXG4gICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7c3RhcnR9fXB4KScsIG9wYWNpdHk6IDB9KSxcbiAgICAgICksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogMTAsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpRHJvcGRvd25BbmltYXRpb24gPSB0cmlnZ2VyKCdjdWlEcm9wZG93bkFuaW1hdGlvbicsIFtcbiAgdHJhbnNpdGlvbihcbiAgICAnOmVudGVyJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSgte3tzdGFydH19cHgpJywgb3BhY2l0eTogMH0pLFxuICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDF9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogMTAsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDF9KSxcbiAgICAgIGFuaW1hdGUoXG4gICAgICAgIFRSQU5TSVRJT04sXG4gICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX1weCknLCBvcGFjaXR5OiAwfSksXG4gICAgICApLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6IDEwLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNjYWxlSW4gPSB0cmlnZ2VyKCdjdWlTY2FsZUluJywgW1xuICB0cmFuc2l0aW9uKFxuICAgICc6ZW50ZXInLFxuICAgIFtcbiAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJ30pLFxuICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19bXMge3tlYXNpbmd9fScsIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAxLCBzdGFydDogMCwgZHVyYXRpb246IDMwMCwgZWFzaW5nOiAnZWFzZS1pbi1vdXQnfX0sXG4gICksXG4gIHRyYW5zaXRpb24oXG4gICAgJzpsZWF2ZScsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3NjYWxlKHt7ZW5kfX0pJ30pLFxuICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAnc2NhbGUoe3tzdGFydH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAxLCBzdGFydDogMCwgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlQb3AgPSB0cmlnZ2VyKCdjdWlQb3AnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3NjYWxlKHt7c3RhcnR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e21pZGRsZX19KSd9KSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAxLCBtaWRkbGU6IDEuMSwgc3RhcnQ6IDAsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAnc2NhbGUoe3tlbmR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e21pZGRsZX19KSd9KSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDEsIG1pZGRsZTogMS4xLCBzdGFydDogMCwgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTY2FsZUluTGlzdCA9IHRyaWdnZXIoJ2N1aVNjYWxlSW5MaXN0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IConLFxuICAgIFtcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJ30pLFxuICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW1xuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAnc2NhbGUoe3tlbmR9fSknfSkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdLFxuICAgICAgICB7b3B0aW9uYWw6IHRydWV9LFxuICAgICAgKSxcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KSd9KSxcbiAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFtcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3NjYWxlKHt7c3RhcnR9fSknfSkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdLFxuICAgICAgICB7b3B0aW9uYWw6IHRydWV9LFxuICAgICAgKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDEsIHN0YXJ0OiAwLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW4gPSB0cmlnZ2VyKCdjdWlTbGlkZUluJywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IGxlZnQnLFxuICAgIFtcbiAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC17e3N0YXJ0fX0pJ30pLFxuICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG4gIHRyYW5zaXRpb24oXG4gICAgJ2xlZnQgPT4gKicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tlbmR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC17e3N0YXJ0fX0pJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnKiA9PiByaWdodCcsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tlbmR9fSknfSkpLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMH19LFxuICApLFxuICB0cmFuc2l0aW9uKFxuICAgICdyaWdodCA9PiAqJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5MZWZ0ID0gdHJpZ2dlcignY3VpU2xpZGVJbkxlZnQnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknfSkpLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTbGlkZUluTGVmdExpc3QgPSB0cmlnZ2VyKCdjdWlTbGlkZUluTGVmdExpc3QnLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJyogPT4gKicsXG4gICAgW1xuICAgICAgcXVlcnkoXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBbXG4gICAgICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJ30pKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgXSxcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICAgICksXG4gICAgICBxdWVyeShcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSxcbiAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFtcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknfSkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdLFxuICAgICAgICB7b3B0aW9uYWw6IHRydWV9LFxuICAgICAgKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJblJpZ2h0ID0gdHJpZ2dlcignY3VpU2xpZGVJblJpZ2h0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICc6ZW50ZXInLFxuICAgIFtcbiAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7c3RhcnR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5SaWdodExpc3QgPSB0cmlnZ2VyKCdjdWlTbGlkZUluUmlnaHRMaXN0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IConLFxuICAgIFtcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7c3RhcnR9fSknfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJ30pKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgXSxcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICAgICksXG4gICAgICBxdWVyeShcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KSd9KSxcbiAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFtcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KSd9KSksXG4gICAgICAgICAgXSksXG4gICAgICAgIF0sXG4gICAgICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICAgICApLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTbGlkZUluVG9wID0gdHJpZ2dlcignY3VpU2xpZGVJblRvcCcsIFtcbiAgdHJhbnNpdGlvbihcbiAgICAnOmVudGVyJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCx7e3N0YXJ0fX0sMCknLCBwb2ludGVyRXZlbnRzOiAnbm9uZSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAse3tlbmR9fSwwKSd9KSksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG4gIHRyYW5zaXRpb24oXG4gICAgJzpsZWF2ZScsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAse3tlbmR9fSwwKSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAse3tzdGFydH19LDApJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJblRvcExpc3QgPSB0cmlnZ2VyKCdjdWlTbGlkZUluVG9wTGlzdCcsIFtcbiAgdHJhbnNpdGlvbihcbiAgICAnKiA9PiAqJyxcbiAgICBbXG4gICAgICBxdWVyeShcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e3N0YXJ0fX0pJ30pLFxuICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW1xuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KSd9KSksXG4gICAgICAgICAgXSksXG4gICAgICAgIF0sXG4gICAgICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICAgICApLFxuICAgICAgcXVlcnkoXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tlbmR9fSknfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7c3RhcnR9fSknfSkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdLFxuICAgICAgICB7b3B0aW9uYWw6IHRydWV9LFxuICAgICAgKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJbkJvdHRvbSA9IHRyaWdnZXIoJ2N1aVNsaWRlSW5Cb3R0b20nLCBbXG4gIHRyYW5zaXRpb24oXG4gICAgJzplbnRlcicsXG4gICAgW1xuICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLXt7c3RhcnR9fSknfSksXG4gICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJ30pKSxcbiAgICBdLFxuICAgIHtwYXJhbXM6IHtlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDB9fSxcbiAgKSxcbiAgdHJhbnNpdGlvbihcbiAgICAnOmxlYXZlJyxcbiAgICBbXG4gICAgICBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KSd9KSxcbiAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLXt7c3RhcnR9fSknfSkpLFxuICAgIF0sXG4gICAge3BhcmFtczoge2VuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMH19LFxuICApLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTbGlkZUluQm90dG9tTGlzdCA9IHRyaWdnZXIoJ2N1aVNsaWRlSW5Cb3R0b21MaXN0JywgW1xuICB0cmFuc2l0aW9uKFxuICAgICcqID0+IConLFxuICAgIFtcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX0pJ30pLFxuICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW1xuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KSd9KSksXG4gICAgICAgICAgXSksXG4gICAgICAgIF0sXG4gICAgICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICAgICApLFxuICAgICAgcXVlcnkoXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tlbmR9fSknfSksXG4gICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX0pJ30pKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgXSxcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICAgICksXG4gICAgXSxcbiAgICB7cGFyYW1zOiB7ZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwfX0sXG4gICksXG5dKTsiXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvYW5pbWF0aW9ucy9hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RyxNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRCxNQUFNLFFBQVEsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0FBQy9DLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQU9wQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM1RCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0NBQ3BGLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRTtJQUN0QyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Q0FDcEYsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFO0lBQzFELFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDbkcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztDQUN0RyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLEVBQUU7SUFDbEUsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JHLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRyxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO0tBQ0wsRUFDRCxRQUFRLENBQ1g7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7SUFDeEQsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztJQUNqRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO0NBQ3BHLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtJQUNoRSxVQUFVLENBQ04sUUFBUSxFQUNSO1FBQ0ksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkcsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQztRQUNGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25HLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7S0FDTCxFQUNELFFBQVEsQ0FDWDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO0lBQzFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDbkcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztDQUN0RyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFBRTtJQUNsRCxVQUFVLENBQ04sUUFBUSxFQUNSO1FBQ0ksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckcsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQztRQUNGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JHLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7S0FDTCxFQUNELFFBQVEsQ0FDWDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFO0lBQ2hELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzVELE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQy9FLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ25EO0lBQ0QsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDcEYsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDbkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixFQUFFO0lBQ3RELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzNELE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQy9FLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ25EO0lBQ0QsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbkYsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDbkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7SUFDaEUsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDNUQsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0UsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDbkQ7SUFDRCxVQUFVLENBQ04sUUFBUSxFQUNSO1FBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNwRixFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUNuRDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFO0lBQzVDLFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztLQUMvRSxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQ3pFO0lBQ0QsVUFBVSxDQUNOLFFBQVEsRUFDUixDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdkcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ2xEO0NBQ0osQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUU7SUFDcEMsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FDOUQsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUMvRDtJQUNELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0tBQ2hFLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDL0Q7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFO0lBQ3BELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQ0QsUUFBUSxFQUNSO1lBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEYsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDckI7UUFDRCxLQUFLLENBQ0QsUUFBUSxFQUNSO1lBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEYsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDckI7S0FDSixFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUNsRDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFO0lBQzVDLFVBQVUsQ0FDTixXQUFXLEVBQ1g7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7S0FDbkUsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7SUFDRCxVQUFVLENBQ04sV0FBVyxFQUNYO1FBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3ZEO0lBQ0QsVUFBVSxDQUNOLFlBQVksRUFDWjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztLQUNuRSxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUN2RDtJQUNELFVBQVUsQ0FDTixZQUFZLEVBQ1o7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7S0FDckUsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFO0lBQ3BELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7S0FDbkUsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7SUFDRCxVQUFVLENBQ04sUUFBUSxFQUNSO1FBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3ZEO0NBQ0osQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixFQUFFO0lBQzVELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQ0QsUUFBUSxFQUNSO1lBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFDOUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkYsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDckI7UUFDRCxLQUFLLENBQ0QsUUFBUSxFQUNSO1lBQ0ksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUM7WUFDM0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUYsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDckI7S0FDSixFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUN2RDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7SUFDdEQsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztLQUNuRSxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUN2RDtJQUNELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7S0FDckUsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUU7SUFDOUQsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FDRCxRQUFRLEVBQ1I7WUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RixFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQjtRQUNELEtBQUssQ0FDRCxRQUFRLEVBQ1I7WUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RixFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQjtLQUNKLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3ZEO0NBQ0osQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUU7SUFDbEQsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDekUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0tBQ3hFLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3ZEO0lBQ0QsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixFQUFFLENBQUMsQ0FBQztLQUMxRSxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUN2RDtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtJQUMxRCxVQUFVLENBQ04sUUFBUSxFQUNSO1FBQ0ksS0FBSyxDQUNELFFBQVEsRUFDUjtZQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQ3JCO1FBQ0QsS0FBSyxDQUNELFFBQVEsRUFDUjtZQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQ3JCO0tBQ0osRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7SUFDeEQsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztLQUNuRSxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUN2RDtJQUNELFVBQVUsQ0FDTixRQUFRLEVBQ1I7UUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7S0FDdEUsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDdkQ7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7SUFDaEUsVUFBVSxDQUNOLFFBQVEsRUFDUjtRQUNJLEtBQUssQ0FDRCxRQUFRLEVBQ1I7WUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RixFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQjtRQUNELEtBQUssQ0FDRCxRQUFRLEVBQ1I7WUFDSSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxRixFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQjtLQUNKLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ3ZEO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBxdWVyeSwgc3RhZ2dlciwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuY29uc3QgVFJBTlNJVElPTiA9ICd7e2R1cmF0aW9ufX1tcyBlYXNlLWluLW91dCc7XG5jb25zdCBEVVJBVElPTiA9IHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAzMDAgfSB9O1xuY29uc3QgU1RBR0dFUiA9IDMwMDtcblxuZXhwb3J0IGludGVyZmFjZSBDdWlEdXJhdGlvbk9wdGlvbnMge1xuICAgIHBhcmFtczogeyBkdXJhdGlvbjogbnVtYmVyIH07XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBZGQgdG8gZW5hYmxlIGNoaWxkIDpsZWF2ZSBhbmltYXRpb24gKGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NzUzKVxuICovXG5leHBvcnQgY29uc3QgY3VpUGFyZW50QW5pbWF0aW9uID0gdHJpZ2dlcignY3VpUGFyZW50QW5pbWF0aW9uJywgW1xuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtxdWVyeSgnOnNjb3BlID4gKicsIFthbmltYXRlQ2hpbGQoKV0sIHsgb3B0aW9uYWw6IHRydWUgfSldKVxuXSk7XG5cbi8qKlxuICogQWRkIG9uIHBhcmVudCB0byBzdG9wIGluaXRpYWwgOmVudGVyIGFuaW1hdGlvbiBmb3IgY2hpbGRyZW5cbiAqL1xuZXhwb3J0IGNvbnN0IGN1aVBhcmVudFN0b3AgPSB0cmlnZ2VyKCdjdWlQYXJlbnRTdG9wJywgW3RyYW5zaXRpb24oJzplbnRlcicsIFtdKV0pO1xuXG5leHBvcnQgY29uc3QgY3VpSG9zdCA9IHRyaWdnZXIoJ2N1aUhvc3QnLCBbXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3ZlcmZsb3c6ICdjbGlwJyB9KSwgcXVlcnkoJzpzY29wZSA+IConLCBbYW5pbWF0ZUNoaWxkKCldLCB7IG9wdGlvbmFsOiB0cnVlIH0pXSksXG4gICAgdHJhbnNpdGlvbignOmxlYXZlJywgW3F1ZXJ5KCc6c2NvcGUgPiAqJywgW2FuaW1hdGVDaGlsZCgpXSwgeyBvcHRpb25hbDogdHJ1ZSB9KV0pXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aUhlaWdodENvbGxhcHNlID0gdHJpZ2dlcignY3VpSGVpZ2h0Q29sbGFwc2UnLCBbXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgaGVpZ2h0OiAwIH0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpXSwgRFVSQVRJT04pLFxuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtzdHlsZSh7IGhlaWdodDogJyonIH0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKV0sIERVUkFUSU9OKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlIZWlnaHRDb2xsYXBzZUxpc3QgPSB0cmlnZ2VyKCdjdWlIZWlnaHRDb2xsYXBzZUxpc3QnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJyogPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHF1ZXJ5KCc6ZW50ZXInLCBbc3R5bGUoeyBoZWlnaHQ6IDAgfSksIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSldKV0sIHtcbiAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBxdWVyeSgnOmxlYXZlJywgW3N0eWxlKHsgaGVpZ2h0OiAnKicgfSksIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpXSldLCB7XG4gICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF0sXG4gICAgICAgIERVUkFUSU9OXG4gICAgKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlXaWR0aENvbGxhcHNlID0gdHJpZ2dlcignY3VpV2lkdGhDb2xsYXBzZScsIFtcbiAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyB3aWR0aDogMCB9KSwgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHdpZHRoOiAnKicgfSkpXSwgRFVSQVRJT04pLFxuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtzdHlsZSh7IHdpZHRoOiAnKicgfSksIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB3aWR0aDogMCB9KSldLCBEVVJBVElPTilcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpV2lkdGhDb2xsYXBzZUxpc3QgPSB0cmlnZ2VyKCdjdWlXaWR0aENvbGxhcHNlTGlzdCcsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnKiA9PiAqJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgcXVlcnkoJzplbnRlcicsIFtzdHlsZSh7IHdpZHRoOiAwIH0pLCBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgd2lkdGg6ICcqJyB9KSldKV0sIHtcbiAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBxdWVyeSgnOmxlYXZlJywgW3N0eWxlKHsgd2lkdGg6ICcqJyB9KSwgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHdpZHRoOiAwIH0pKV0pXSwge1xuICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICBdLFxuICAgICAgICBEVVJBVElPTlxuICAgIClcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpRmFkZUluID0gdHJpZ2dlcignY3VpRmFkZUluJywgW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0sIERVUkFUSU9OKSxcbiAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoeyBvcGFjaXR5OiAxIH0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgb3BhY2l0eTogMCB9KSldLCBEVVJBVElPTilcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpRmFkZUluTGlzdCA9IHRyaWdnZXIoJ2N1aUZhZGVJbkxpc3QnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJyogPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHF1ZXJ5KCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKV0sIHtcbiAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBxdWVyeSgnOmxlYXZlJywgW3N0eWxlKHsgb3BhY2l0eTogMSB9KSwgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXSldLCB7XG4gICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF0sXG4gICAgICAgIERVUkFUSU9OXG4gICAgKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlGYWRlSW5Ub3AgPSB0cmlnZ2VyKCdjdWlGYWRlSW5Ub3AnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgte3tzdGFydH19cHgpJywgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJywgb3BhY2l0eTogMSB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogMTAsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJywgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX1weCknLCBvcGFjaXR5OiAwIH0pKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDAsIHN0YXJ0OiAxMCwgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aUZhZGVJbkJvdHRvbSA9IHRyaWdnZXIoJ2N1aUZhZGVJbkJvdHRvbScsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7c3RhcnR9fXB4KScsIG9wYWNpdHk6IDAgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDEgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6IDEwLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e3N0YXJ0fX1weCknLCBvcGFjaXR5OiAwIH0pKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDAsIHN0YXJ0OiAxMCwgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aURyb3Bkb3duQW5pbWF0aW9uID0gdHJpZ2dlcignY3VpRHJvcGRvd25BbmltYXRpb24nLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgte3tzdGFydH19cHgpJywgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJywgb3BhY2l0eTogMSB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogMTAsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJywgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX1weCknLCBvcGFjaXR5OiAwIH0pKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDAsIHN0YXJ0OiAxMCwgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNjYWxlSW4gPSB0cmlnZ2VyKCdjdWlTY2FsZUluJywgW1xuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKHt7c3RhcnR9fSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19bXMge3tlYXNpbmd9fScsIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoe3tlbmR9fSknIH0pKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDEsIHN0YXJ0OiAwLCBkdXJhdGlvbjogMzAwLCBlYXNpbmc6ICdlYXNlLWluLW91dCcgfSB9XG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW3N0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoe3tlbmR9fSknIH0pLCBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoe3tzdGFydH19KScgfSkpXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAxLCBzdGFydDogMCwgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVBvcCA9IHRyaWdnZXIoJ2N1aVBvcCcsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e21pZGRsZX19KScgfSkpLFxuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKHt7ZW5kfX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAxLCBtaWRkbGU6IDEuMSwgc3RhcnQ6IDAsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoe3ttaWRkbGV9fSknIH0pKSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAxLCBtaWRkbGU6IDEuMSwgc3RhcnQ6IDAsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTY2FsZUluTGlzdCA9IHRyaWdnZXIoJ2N1aVNjYWxlSW5MaXN0JywgW1xuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICcqID0+IConLFxuICAgICAgICBbXG4gICAgICAgICAgICBxdWVyeShcbiAgICAgICAgICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoe3tzdGFydH19KScgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KScgfSkpXSlcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHF1ZXJ5KFxuICAgICAgICAgICAgICAgICc6bGVhdmUnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e2VuZH19KScgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSh7e3N0YXJ0fX0pJyB9KSldKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgeyBvcHRpb25hbDogdHJ1ZSB9XG4gICAgICAgICAgICApXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMSwgc3RhcnQ6IDAsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTbGlkZUluID0gdHJpZ2dlcignY3VpU2xpZGVJbicsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnKiA9PiBsZWZ0JyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC17e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJ2xlZnQgPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgte3tzdGFydH19KScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApLFxuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICcqID0+IHJpZ2h0JyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7c3RhcnR9fSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tlbmR9fSknIH0pKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAncmlnaHQgPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e3N0YXJ0fX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgIClcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJbkxlZnQgPSB0cmlnZ2VyKCdjdWlTbGlkZUluTGVmdCcsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC17e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgte3tzdGFydH19KScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5MZWZ0TGlzdCA9IHRyaWdnZXIoJ2N1aVNsaWRlSW5MZWZ0TGlzdCcsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnKiA9PiAqJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgcXVlcnkoXG4gICAgICAgICAgICAgICAgJzplbnRlcicsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSkpXSlcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHF1ZXJ5KFxuICAgICAgICAgICAgICAgICc6bGVhdmUnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7ZW5kfX0pJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLXt7c3RhcnR9fSknIH0pKV0pXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbmFsOiB0cnVlIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgIClcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJblJpZ2h0ID0gdHJpZ2dlcignY3VpU2xpZGVJblJpZ2h0JywgW1xuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApLFxuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6bGVhdmUnLFxuICAgICAgICBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tlbmR9fSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tzdGFydH19KScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5SaWdodExpc3QgPSB0cmlnZ2VyKCdjdWlTbGlkZUluUmlnaHRMaXN0JywgW1xuICAgIHRyYW5zaXRpb24oXG4gICAgICAgICcqID0+IConLFxuICAgICAgICBbXG4gICAgICAgICAgICBxdWVyeShcbiAgICAgICAgICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3tlbmR9fSknIH0pKV0pXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbmFsOiB0cnVlIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBxdWVyeShcbiAgICAgICAgICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7e2VuZH19KScgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7c3RhcnR9fSknIH0pKV0pXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbmFsOiB0cnVlIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgIClcbl0pO1xuXG5leHBvcnQgY29uc3QgY3VpU2xpZGVJblRvcCA9IHRyaWdnZXIoJ2N1aVNsaWRlSW5Ub3AnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzplbnRlcicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCx7e3N0YXJ0fX0sMCknLCBwb2ludGVyRXZlbnRzOiAnbm9uZScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCx7e2VuZH19LDApJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCx7e2VuZH19LDApJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLHt7c3RhcnR9fSwwKScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5Ub3BMaXN0ID0gdHJpZ2dlcignY3VpU2xpZGVJblRvcExpc3QnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJyogPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHF1ZXJ5KFxuICAgICAgICAgICAgICAgICc6ZW50ZXInLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7c3RhcnR9fSknIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdGFnZ2VyKFNUQUdHRVIsIFthbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScgfSkpXSlcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHF1ZXJ5KFxuICAgICAgICAgICAgICAgICc6bGVhdmUnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tzdGFydH19KScgfSkpXSlcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICAgICAgICAgICAgKVxuICAgICAgICBdLFxuICAgICAgICB7IHBhcmFtczogeyBlbmQ6IDAsIHN0YXJ0OiAnMTAwJScsIGR1cmF0aW9uOiAzMDAgfSB9XG4gICAgKVxuXSk7XG5cbmV4cG9ydCBjb25zdCBjdWlTbGlkZUluQm90dG9tID0gdHJpZ2dlcignY3VpU2xpZGVJbkJvdHRvbScsIFtcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW5kfX0pJyB9KSlcbiAgICAgICAgXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgZW5kOiAwLCBzdGFydDogJzEwMCUnLCBkdXJhdGlvbjogMzAwIH0gfVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJzpsZWF2ZScsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScgfSksXG4gICAgICAgICAgICBhbmltYXRlKFRSQU5TSVRJT04sIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgte3tzdGFydH19KScgfSkpXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcblxuZXhwb3J0IGNvbnN0IGN1aVNsaWRlSW5Cb3R0b21MaXN0ID0gdHJpZ2dlcignY3VpU2xpZGVJbkJvdHRvbUxpc3QnLCBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJyogPT4gKicsXG4gICAgICAgIFtcbiAgICAgICAgICAgIHF1ZXJ5KFxuICAgICAgICAgICAgICAgICc6ZW50ZXInLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX0pJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2dlcihTVEFHR0VSLCBbYW5pbWF0ZShUUkFOU0lUSU9OLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tlbmR9fSknIH0pKV0pXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbmFsOiB0cnVlIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBxdWVyeShcbiAgICAgICAgICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSh7e2VuZH19KScgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoU1RBR0dFUiwgW2FuaW1hdGUoVFJBTlNJVElPTiwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC17e3N0YXJ0fX0pJyB9KSldKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgeyBvcHRpb25hbDogdHJ1ZSB9XG4gICAgICAgICAgICApXG4gICAgICAgIF0sXG4gICAgICAgIHsgcGFyYW1zOiB7IGVuZDogMCwgc3RhcnQ6ICcxMDAlJywgZHVyYXRpb246IDMwMCB9IH1cbiAgICApXG5dKTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export * from './animations';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2FuaW1hdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGlvbnMnOyJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2FuaW1hdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGlvbnMnO1xuIl19