@vef-framework/starter 1.0.135 → 2.0.1

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 (600) hide show
  1. package/README +15 -0
  2. package/dist/cjs/components/access-denied/access-denied-icon.cjs +210 -0
  3. package/dist/cjs/components/access-denied/index.cjs +47 -0
  4. package/dist/cjs/components/app/index.cjs +47 -0
  5. package/dist/cjs/components/app/props.cjs +3 -0
  6. package/dist/cjs/components/base-layout/index.cjs +45 -0
  7. package/dist/cjs/components/base-layout/props.cjs +3 -0
  8. package/dist/cjs/components/base-layout/styles.cjs +57 -0
  9. package/dist/cjs/components/base-layout/use-base-layout.cjs +41 -0
  10. package/dist/cjs/components/crud/components/action-button-group.cjs +20 -0
  11. package/dist/cjs/components/crud/components/index.cjs +20 -0
  12. package/dist/cjs/components/crud/components/main.cjs +57 -0
  13. package/dist/cjs/components/crud/components/mutation-holder.cjs +40 -0
  14. package/dist/cjs/components/crud/components/operation-button-group.cjs +22 -0
  15. package/dist/cjs/components/crud/components/scene-form.cjs +84 -0
  16. package/dist/cjs/components/crud/components/selection-indicator.cjs +83 -0
  17. package/dist/cjs/components/crud/components/toolbar-actions.cjs +19 -0
  18. package/dist/cjs/components/crud/components/toolbar.cjs +38 -0
  19. package/dist/cjs/components/crud/event.cjs +12 -0
  20. package/dist/cjs/components/crud/helpers.cjs +26 -0
  21. package/dist/cjs/components/crud/hooks/index.cjs +14 -0
  22. package/dist/cjs/components/crud/hooks/use-query-observer.cjs +37 -0
  23. package/dist/cjs/components/crud/hooks/use-search-values.cjs +12 -0
  24. package/dist/cjs/components/crud/hooks/use-selected-rows.cjs +12 -0
  25. package/dist/cjs/components/crud/index.cjs +46 -0
  26. package/dist/cjs/components/crud/props.cjs +3 -0
  27. package/dist/cjs/components/crud/store.cjs +93 -0
  28. package/dist/cjs/components/crud/styles.cjs +34 -0
  29. package/dist/cjs/components/crud-page/index.cjs +19 -0
  30. package/dist/cjs/components/crud-page/props.cjs +3 -0
  31. package/dist/cjs/components/error/error-icon.cjs +179 -0
  32. package/dist/cjs/components/error/index.cjs +69 -0
  33. package/dist/cjs/components/flex-card/index.cjs +18 -0
  34. package/dist/cjs/components/flex-card/props.cjs +3 -0
  35. package/dist/cjs/components/flex-card/styles.cjs +26 -0
  36. package/dist/cjs/components/form-drawer/components/form-actions.cjs +38 -0
  37. package/dist/cjs/components/form-drawer/components/index.cjs +10 -0
  38. package/dist/cjs/components/form-drawer/index.cjs +112 -0
  39. package/dist/cjs/components/form-modal/components/form-actions.cjs +38 -0
  40. package/dist/cjs/components/form-modal/components/index.cjs +10 -0
  41. package/dist/cjs/components/form-modal/index.cjs +88 -0
  42. package/dist/cjs/components/index.cjs +45 -0
  43. package/dist/cjs/components/layout/components/footer.cjs +27 -0
  44. package/dist/cjs/components/layout/components/header/boy-icon.cjs +20 -0
  45. package/dist/cjs/components/layout/components/header/breadcrumb-navigation.cjs +90 -0
  46. package/dist/cjs/components/layout/components/header/color-scheme.cjs +40 -0
  47. package/dist/cjs/components/layout/components/header/fullscreen.cjs +23 -0
  48. package/dist/cjs/components/layout/components/header/girl-icon.cjs +21 -0
  49. package/dist/cjs/components/layout/components/header/index.cjs +88 -0
  50. package/dist/cjs/components/layout/components/header/menu-burger.cjs +24 -0
  51. package/dist/cjs/components/layout/components/header/menu-fold-left-icon.cjs +20 -0
  52. package/dist/cjs/components/layout/components/header/menu-unfold-left-icon.cjs +20 -0
  53. package/dist/cjs/components/layout/components/header/search.cjs +22 -0
  54. package/dist/cjs/components/layout/components/header/theme-config.cjs +23 -0
  55. package/dist/cjs/components/layout/components/header/user-avatar.cjs +86 -0
  56. package/dist/cjs/components/layout/components/honeycomb-pattern.cjs +39 -0
  57. package/dist/cjs/components/layout/components/index.cjs +20 -0
  58. package/dist/cjs/components/layout/components/logo.cjs +60 -0
  59. package/dist/cjs/components/layout/components/menu.cjs +95 -0
  60. package/dist/cjs/components/layout/components/search/index.cjs +79 -0
  61. package/dist/cjs/components/layout/components/search/keyboard-arrow-down-icon.cjs +15 -0
  62. package/dist/cjs/components/layout/components/search/keyboard-arrow-up-icon.cjs +15 -0
  63. package/dist/cjs/components/layout/components/search/keyboard-control-icon.cjs +15 -0
  64. package/dist/cjs/components/layout/components/search/keyboard-esc-icon.cjs +15 -0
  65. package/dist/cjs/components/layout/components/search/keyboard-help.cjs +46 -0
  66. package/dist/cjs/components/layout/components/search/keyboard-return-icon.cjs +15 -0
  67. package/dist/cjs/components/layout/components/search/keyboard-shift-icon.cjs +15 -0
  68. package/dist/cjs/components/layout/components/search/keyboard.cjs +32 -0
  69. package/dist/cjs/components/layout/components/search/letter-s-icon.cjs +15 -0
  70. package/dist/cjs/components/layout/components/search/search-result-item.cjs +69 -0
  71. package/dist/cjs/components/layout/components/search/search-result.cjs +135 -0
  72. package/dist/cjs/components/layout/components/sidebar.cjs +54 -0
  73. package/dist/cjs/components/layout/components/tabs/context-menu.cjs +96 -0
  74. package/dist/cjs/components/layout/components/tabs/index.cjs +40 -0
  75. package/dist/cjs/components/layout/components/tabs/main-content-maximum.cjs +23 -0
  76. package/dist/cjs/components/layout/components/tabs/reload.cjs +21 -0
  77. package/dist/cjs/components/layout/components/tabs/tab-item.cjs +84 -0
  78. package/dist/cjs/components/layout/components/tabs/tab-list.cjs +91 -0
  79. package/dist/cjs/components/layout/components/tabs/tabs-container.cjs +85 -0
  80. package/dist/cjs/components/layout/components/theme-config/color-scheme-switcher.cjs +49 -0
  81. package/dist/cjs/components/layout/components/theme-config/color-scheme.cjs +57 -0
  82. package/dist/cjs/components/layout/components/theme-config/config-item.cjs +27 -0
  83. package/dist/cjs/components/layout/components/theme-config/index.cjs +59 -0
  84. package/dist/cjs/components/layout/components/theme-config/menu-layout-card.cjs +75 -0
  85. package/dist/cjs/components/layout/components/theme-config/menu-layout.cjs +33 -0
  86. package/dist/cjs/components/layout/components/theme-config/operations.cjs +22 -0
  87. package/dist/cjs/components/layout/components/theme-config/theme-color-picker.cjs +33 -0
  88. package/dist/cjs/components/layout/components/theme-config/theme-colors.cjs +29 -0
  89. package/dist/cjs/components/layout/hooks/index.cjs +14 -0
  90. package/dist/cjs/components/layout/hooks/use-color-scheme-updater.cjs +72 -0
  91. package/dist/cjs/components/layout/hooks/use-menu-navigate.cjs +29 -0
  92. package/dist/cjs/components/layout/hooks/use-tab-navigate.cjs +39 -0
  93. package/dist/cjs/components/layout/index.cjs +81 -0
  94. package/dist/cjs/components/layout/props.cjs +3 -0
  95. package/dist/cjs/components/layout/store.cjs +23 -0
  96. package/dist/cjs/components/layout/styles.cjs +16 -0
  97. package/dist/cjs/components/login/icon-login.cjs +149 -0
  98. package/dist/cjs/components/login/index.cjs +162 -0
  99. package/dist/cjs/components/login/payload.cjs +3 -0
  100. package/dist/cjs/components/login/props.cjs +3 -0
  101. package/dist/cjs/components/login/styles.cjs +97 -0
  102. package/dist/cjs/components/login/welcome-messages.cjs +135 -0
  103. package/dist/cjs/components/logo-icon/index.cjs +22 -0
  104. package/dist/cjs/components/logo-icon/props.cjs +3 -0
  105. package/dist/cjs/components/n-progress/components/bar.cjs +53 -0
  106. package/dist/cjs/components/n-progress/components/container.cjs +25 -0
  107. package/dist/cjs/components/n-progress/components/index.cjs +12 -0
  108. package/dist/cjs/components/n-progress/event.cjs +10 -0
  109. package/dist/cjs/components/n-progress/index.cjs +34 -0
  110. package/dist/cjs/components/not-found/index.cjs +47 -0
  111. package/dist/cjs/components/not-found/not-found-icon.cjs +205 -0
  112. package/dist/cjs/components/page/index.cjs +58 -0
  113. package/dist/cjs/components/page/props.cjs +3 -0
  114. package/dist/cjs/components/page/scroll-content.cjs +65 -0
  115. package/dist/cjs/components/page/styles.cjs +86 -0
  116. package/dist/cjs/components/page/use-page-key.cjs +22 -0
  117. package/dist/cjs/components/page/viewport-context.cjs +19 -0
  118. package/dist/cjs/components/pro-search/components/advanced-search-toggler.cjs +23 -0
  119. package/dist/cjs/components/pro-search/components/advanced-search.cjs +30 -0
  120. package/dist/cjs/components/pro-search/components/index.cjs +14 -0
  121. package/dist/cjs/components/pro-search/components/search-actions.cjs +36 -0
  122. package/dist/cjs/components/pro-search/index.cjs +70 -0
  123. package/dist/cjs/components/pro-search/styles.cjs +65 -0
  124. package/dist/cjs/components/pro-table/components/index.cjs +17 -0
  125. package/dist/cjs/components/pro-table/components/operation-button-group.cjs +22 -0
  126. package/dist/cjs/components/pro-table/components/ref.cjs +24 -0
  127. package/dist/cjs/components/pro-table/components/table-subscriber.cjs +25 -0
  128. package/dist/cjs/components/pro-table/components/table-summary.cjs +15 -0
  129. package/dist/cjs/components/pro-table/components/table-title.cjs +15 -0
  130. package/dist/cjs/components/pro-table/components/table.cjs +132 -0
  131. package/dist/cjs/components/pro-table/context.cjs +15 -0
  132. package/dist/cjs/components/pro-table/event.cjs +12 -0
  133. package/dist/cjs/components/pro-table/hooks/index.cjs +12 -0
  134. package/dist/cjs/components/pro-table/hooks/use-row-selection.cjs +43 -0
  135. package/dist/cjs/components/pro-table/hooks/use-table-columns.cjs +60 -0
  136. package/dist/cjs/components/pro-table/index.cjs +53 -0
  137. package/dist/cjs/components/pro-table/store.cjs +40 -0
  138. package/dist/cjs/components/router-provider/context.cjs +15 -0
  139. package/dist/cjs/components/router-provider/index.cjs +29 -0
  140. package/dist/cjs/components/router-provider/props.cjs +3 -0
  141. package/dist/cjs/components/theme-config-provider/global-style.cjs +20 -0
  142. package/dist/cjs/components/theme-config-provider/index.cjs +19 -0
  143. package/dist/cjs/components/theme-config-provider/use-color-mode-effect.cjs +35 -0
  144. package/dist/cjs/components/theme-config-provider/use-theme-config.cjs +73 -0
  145. package/dist/cjs/constants/event.cjs +8 -0
  146. package/dist/cjs/constants/index.cjs +23 -0
  147. package/dist/cjs/constants/router.cjs +18 -0
  148. package/dist/cjs/constants/storage.cjs +10 -0
  149. package/dist/cjs/constants/symbols.cjs +10 -0
  150. package/dist/cjs/helpers/api.cjs +50 -0
  151. package/dist/cjs/helpers/app-version.cjs +227 -0
  152. package/dist/cjs/helpers/app.cjs +37 -0
  153. package/dist/cjs/helpers/auth.cjs +24 -0
  154. package/dist/cjs/helpers/event.cjs +24 -0
  155. package/dist/cjs/helpers/index.cjs +25 -0
  156. package/dist/cjs/helpers/query.cjs +27 -0
  157. package/dist/cjs/helpers/router.cjs +110 -0
  158. package/dist/cjs/hooks/index.cjs +10 -0
  159. package/dist/cjs/hooks/use-route-full-path.cjs +32 -0
  160. package/dist/cjs/index.cjs +83 -0
  161. package/dist/cjs/routes/access-denied.cjs +31 -0
  162. package/dist/cjs/routes/index.cjs +16 -0
  163. package/dist/cjs/routes/layout.cjs +140 -0
  164. package/dist/cjs/routes/login.cjs +41 -0
  165. package/dist/cjs/routes/root.cjs +35 -0
  166. package/dist/cjs/stores/app.cjs +25 -0
  167. package/dist/cjs/stores/index.cjs +14 -0
  168. package/dist/cjs/stores/tab.cjs +101 -0
  169. package/dist/cjs/stores/theme.cjs +32 -0
  170. package/dist/es/components/access-denied/access-denied-icon.js +206 -0
  171. package/dist/es/components/access-denied/index.js +43 -0
  172. package/dist/es/components/app/index.js +43 -0
  173. package/dist/es/components/app/props.js +1 -0
  174. package/dist/es/components/base-layout/index.js +41 -0
  175. package/dist/es/components/base-layout/props.js +1 -0
  176. package/dist/es/components/base-layout/styles.js +47 -0
  177. package/dist/es/components/base-layout/use-base-layout.js +37 -0
  178. package/dist/es/components/crud/components/action-button-group.js +16 -0
  179. package/dist/es/components/crud/components/index.js +7 -0
  180. package/dist/es/components/crud/components/main.js +53 -0
  181. package/dist/es/components/crud/components/mutation-holder.js +36 -0
  182. package/dist/es/components/crud/components/operation-button-group.js +18 -0
  183. package/dist/es/components/crud/components/scene-form.js +80 -0
  184. package/dist/es/components/crud/components/selection-indicator.js +79 -0
  185. package/dist/es/components/crud/components/toolbar-actions.js +15 -0
  186. package/dist/es/components/crud/components/toolbar.js +34 -0
  187. package/dist/es/components/crud/event.js +8 -0
  188. package/dist/es/components/crud/helpers.js +22 -0
  189. package/dist/es/components/crud/hooks/index.js +4 -0
  190. package/dist/es/components/crud/hooks/use-query-observer.js +33 -0
  191. package/dist/es/components/crud/hooks/use-search-values.js +8 -0
  192. package/dist/es/components/crud/hooks/use-selected-rows.js +8 -0
  193. package/dist/es/components/crud/index.js +41 -0
  194. package/dist/es/components/crud/props.js +1 -0
  195. package/dist/es/components/crud/store.js +87 -0
  196. package/dist/es/components/crud/styles.js +28 -0
  197. package/dist/es/components/crud-page/index.js +15 -0
  198. package/dist/es/components/crud-page/props.js +1 -0
  199. package/dist/es/components/error/error-icon.js +175 -0
  200. package/dist/es/components/error/index.js +65 -0
  201. package/dist/es/components/flex-card/index.js +14 -0
  202. package/dist/es/components/flex-card/props.js +1 -0
  203. package/dist/es/components/flex-card/styles.js +22 -0
  204. package/dist/es/components/form-drawer/components/form-actions.js +34 -0
  205. package/dist/es/components/form-drawer/components/index.js +2 -0
  206. package/dist/es/components/form-drawer/index.js +108 -0
  207. package/dist/es/components/form-modal/components/form-actions.js +34 -0
  208. package/dist/es/components/form-modal/components/index.js +2 -0
  209. package/dist/es/components/form-modal/index.js +84 -0
  210. package/dist/es/components/index.js +20 -0
  211. package/dist/es/components/layout/components/footer.js +23 -0
  212. package/dist/es/components/layout/components/header/boy-icon.js +16 -0
  213. package/dist/es/components/layout/components/header/breadcrumb-navigation.js +86 -0
  214. package/dist/es/components/layout/components/header/color-scheme.js +36 -0
  215. package/dist/es/components/layout/components/header/fullscreen.js +19 -0
  216. package/dist/es/components/layout/components/header/girl-icon.js +17 -0
  217. package/dist/es/components/layout/components/header/index.js +84 -0
  218. package/dist/es/components/layout/components/header/menu-burger.js +20 -0
  219. package/dist/es/components/layout/components/header/menu-fold-left-icon.js +16 -0
  220. package/dist/es/components/layout/components/header/menu-unfold-left-icon.js +16 -0
  221. package/dist/es/components/layout/components/header/search.js +18 -0
  222. package/dist/es/components/layout/components/header/theme-config.js +19 -0
  223. package/dist/es/components/layout/components/header/user-avatar.js +82 -0
  224. package/dist/es/components/layout/components/honeycomb-pattern.js +35 -0
  225. package/dist/es/components/layout/components/index.js +7 -0
  226. package/dist/es/components/layout/components/logo.js +56 -0
  227. package/dist/es/components/layout/components/menu.js +91 -0
  228. package/dist/es/components/layout/components/search/index.js +75 -0
  229. package/dist/es/components/layout/components/search/keyboard-arrow-down-icon.js +11 -0
  230. package/dist/es/components/layout/components/search/keyboard-arrow-up-icon.js +11 -0
  231. package/dist/es/components/layout/components/search/keyboard-control-icon.js +11 -0
  232. package/dist/es/components/layout/components/search/keyboard-esc-icon.js +11 -0
  233. package/dist/es/components/layout/components/search/keyboard-help.js +42 -0
  234. package/dist/es/components/layout/components/search/keyboard-return-icon.js +11 -0
  235. package/dist/es/components/layout/components/search/keyboard-shift-icon.js +11 -0
  236. package/dist/es/components/layout/components/search/keyboard.js +28 -0
  237. package/dist/es/components/layout/components/search/letter-s-icon.js +11 -0
  238. package/dist/es/components/layout/components/search/search-result-item.js +65 -0
  239. package/dist/es/components/layout/components/search/search-result.js +131 -0
  240. package/dist/es/components/layout/components/sidebar.js +50 -0
  241. package/dist/es/components/layout/components/tabs/context-menu.js +92 -0
  242. package/dist/es/components/layout/components/tabs/index.js +36 -0
  243. package/dist/es/components/layout/components/tabs/main-content-maximum.js +19 -0
  244. package/dist/es/components/layout/components/tabs/reload.js +17 -0
  245. package/dist/es/components/layout/components/tabs/tab-item.js +80 -0
  246. package/dist/es/components/layout/components/tabs/tab-list.js +87 -0
  247. package/dist/es/components/layout/components/tabs/tabs-container.js +81 -0
  248. package/dist/es/components/layout/components/theme-config/color-scheme-switcher.js +45 -0
  249. package/dist/es/components/layout/components/theme-config/color-scheme.js +53 -0
  250. package/dist/es/components/layout/components/theme-config/config-item.js +23 -0
  251. package/dist/es/components/layout/components/theme-config/index.js +55 -0
  252. package/dist/es/components/layout/components/theme-config/menu-layout-card.js +71 -0
  253. package/dist/es/components/layout/components/theme-config/menu-layout.js +29 -0
  254. package/dist/es/components/layout/components/theme-config/operations.js +18 -0
  255. package/dist/es/components/layout/components/theme-config/theme-color-picker.js +29 -0
  256. package/dist/es/components/layout/components/theme-config/theme-colors.js +25 -0
  257. package/dist/es/components/layout/hooks/index.js +4 -0
  258. package/dist/es/components/layout/hooks/use-color-scheme-updater.js +68 -0
  259. package/dist/es/components/layout/hooks/use-menu-navigate.js +25 -0
  260. package/dist/es/components/layout/hooks/use-tab-navigate.js +35 -0
  261. package/dist/es/components/layout/index.js +77 -0
  262. package/dist/es/components/layout/props.js +1 -0
  263. package/dist/es/components/layout/store.js +18 -0
  264. package/dist/es/components/layout/styles.js +12 -0
  265. package/dist/es/components/login/icon-login.js +145 -0
  266. package/dist/es/components/login/index.js +158 -0
  267. package/dist/es/components/login/payload.js +1 -0
  268. package/dist/es/components/login/props.js +1 -0
  269. package/dist/es/components/login/styles.js +85 -0
  270. package/dist/es/components/login/welcome-messages.js +130 -0
  271. package/dist/es/components/logo-icon/index.js +18 -0
  272. package/dist/es/components/logo-icon/props.js +1 -0
  273. package/dist/es/components/n-progress/components/bar.js +49 -0
  274. package/dist/es/components/n-progress/components/container.js +21 -0
  275. package/dist/es/components/n-progress/components/index.js +3 -0
  276. package/dist/es/components/n-progress/event.js +6 -0
  277. package/dist/es/components/n-progress/index.js +29 -0
  278. package/dist/es/components/not-found/index.js +43 -0
  279. package/dist/es/components/not-found/not-found-icon.js +201 -0
  280. package/dist/es/components/page/index.js +53 -0
  281. package/dist/es/components/page/props.js +1 -0
  282. package/dist/es/components/page/scroll-content.js +61 -0
  283. package/dist/es/components/page/styles.js +73 -0
  284. package/dist/es/components/page/use-page-key.js +18 -0
  285. package/dist/es/components/page/viewport-context.js +14 -0
  286. package/dist/es/components/pro-search/components/advanced-search-toggler.js +19 -0
  287. package/dist/es/components/pro-search/components/advanced-search.js +26 -0
  288. package/dist/es/components/pro-search/components/index.js +4 -0
  289. package/dist/es/components/pro-search/components/search-actions.js +32 -0
  290. package/dist/es/components/pro-search/index.js +66 -0
  291. package/dist/es/components/pro-search/styles.js +57 -0
  292. package/dist/es/components/pro-table/components/index.js +5 -0
  293. package/dist/es/components/pro-table/components/operation-button-group.js +18 -0
  294. package/dist/es/components/pro-table/components/ref.js +20 -0
  295. package/dist/es/components/pro-table/components/table-subscriber.js +21 -0
  296. package/dist/es/components/pro-table/components/table-summary.js +11 -0
  297. package/dist/es/components/pro-table/components/table-title.js +11 -0
  298. package/dist/es/components/pro-table/components/table.js +127 -0
  299. package/dist/es/components/pro-table/context.js +10 -0
  300. package/dist/es/components/pro-table/event.js +8 -0
  301. package/dist/es/components/pro-table/hooks/index.js +3 -0
  302. package/dist/es/components/pro-table/hooks/use-row-selection.js +39 -0
  303. package/dist/es/components/pro-table/hooks/use-table-columns.js +56 -0
  304. package/dist/es/components/pro-table/index.js +49 -0
  305. package/dist/es/components/pro-table/store.js +34 -0
  306. package/dist/es/components/router-provider/context.js +10 -0
  307. package/dist/es/components/router-provider/index.js +25 -0
  308. package/dist/es/components/router-provider/props.js +1 -0
  309. package/dist/es/components/theme-config-provider/global-style.js +16 -0
  310. package/dist/es/components/theme-config-provider/index.js +15 -0
  311. package/dist/es/components/theme-config-provider/use-color-mode-effect.js +31 -0
  312. package/dist/es/components/theme-config-provider/use-theme-config.js +69 -0
  313. package/dist/es/constants/event.js +4 -0
  314. package/dist/es/constants/index.js +5 -0
  315. package/dist/es/constants/router.js +9 -0
  316. package/dist/es/constants/storage.js +5 -0
  317. package/dist/es/constants/symbols.js +5 -0
  318. package/dist/es/helpers/api.js +46 -0
  319. package/dist/es/helpers/app-version.js +223 -0
  320. package/dist/es/helpers/app.js +33 -0
  321. package/dist/es/helpers/auth.js +20 -0
  322. package/dist/es/helpers/event.js +18 -0
  323. package/dist/es/helpers/index.js +8 -0
  324. package/dist/es/helpers/query.js +22 -0
  325. package/dist/es/helpers/router.js +106 -0
  326. package/dist/es/hooks/index.js +2 -0
  327. package/dist/es/hooks/use-route-full-path.js +28 -0
  328. package/dist/es/index.js +36 -0
  329. package/dist/es/routes/access-denied.js +27 -0
  330. package/dist/es/routes/index.js +5 -0
  331. package/dist/es/routes/layout.js +136 -0
  332. package/dist/es/routes/login.js +37 -0
  333. package/dist/es/routes/root.js +31 -0
  334. package/dist/es/stores/app.js +21 -0
  335. package/dist/es/stores/index.js +4 -0
  336. package/dist/es/stores/tab.js +97 -0
  337. package/dist/es/stores/theme.js +28 -0
  338. package/dist/types/components/access-denied/access-denied-icon.d.ts +2 -0
  339. package/dist/types/components/access-denied/index.d.ts +1 -0
  340. package/dist/types/components/app/index.d.ts +4 -0
  341. package/dist/types/components/app/props.d.ts +21 -0
  342. package/dist/types/components/base-layout/index.d.ts +3 -0
  343. package/dist/types/components/base-layout/props.d.ts +70 -0
  344. package/dist/types/components/base-layout/styles.d.ts +8 -0
  345. package/dist/types/components/base-layout/use-base-layout.d.ts +9 -0
  346. package/dist/types/components/crud/components/action-button-group.d.ts +8 -0
  347. package/dist/types/components/crud/components/index.d.ts +6 -0
  348. package/dist/types/components/crud/components/main.d.ts +6 -0
  349. package/dist/types/components/crud/components/mutation-holder.d.ts +10 -0
  350. package/dist/types/components/crud/components/operation-button-group.d.ts +8 -0
  351. package/dist/types/components/crud/components/scene-form.d.ts +7 -0
  352. package/dist/types/components/crud/components/selection-indicator.d.ts +6 -0
  353. package/dist/types/components/crud/components/toolbar-actions.d.ts +6 -0
  354. package/dist/types/components/crud/components/toolbar.d.ts +8 -0
  355. package/dist/types/components/crud/event.d.ts +3 -0
  356. package/dist/types/components/crud/helpers.d.ts +18 -0
  357. package/dist/types/components/crud/hooks/index.d.ts +3 -0
  358. package/dist/types/components/crud/hooks/use-query-observer.d.ts +11 -0
  359. package/dist/types/components/crud/hooks/use-search-values.d.ts +2 -0
  360. package/dist/types/components/crud/hooks/use-selected-rows.d.ts +2 -0
  361. package/dist/types/components/crud/index.d.ts +7 -0
  362. package/dist/types/components/crud/props.d.ts +153 -0
  363. package/dist/types/components/crud/store.d.ts +145 -0
  364. package/dist/types/components/crud/styles.d.ts +4 -0
  365. package/dist/types/components/crud/types.d.ts +48 -0
  366. package/dist/types/components/crud-page/index.d.ts +3 -0
  367. package/dist/types/components/crud-page/props.d.ts +20 -0
  368. package/dist/types/components/error/error-icon.d.ts +2 -0
  369. package/dist/types/components/error/index.d.ts +2 -0
  370. package/dist/types/components/error/props.d.ts +6 -0
  371. package/dist/types/components/flex-card/index.d.ts +3 -0
  372. package/dist/types/components/flex-card/props.d.ts +3 -0
  373. package/dist/types/components/flex-card/styles.d.ts +2 -0
  374. package/dist/types/components/form-drawer/components/form-actions.d.ts +18 -0
  375. package/dist/types/components/form-drawer/components/index.d.ts +1 -0
  376. package/dist/types/components/form-drawer/index.d.ts +5 -0
  377. package/dist/types/components/form-drawer/props.d.ts +70 -0
  378. package/dist/types/components/form-modal/components/form-actions.d.ts +18 -0
  379. package/dist/types/components/form-modal/components/index.d.ts +1 -0
  380. package/dist/types/components/form-modal/index.d.ts +5 -0
  381. package/dist/types/components/form-modal/props.d.ts +66 -0
  382. package/dist/types/components/index.d.ts +19 -0
  383. package/dist/types/components/layout/components/footer.d.ts +1 -0
  384. package/dist/types/components/layout/components/header/boy-icon.d.ts +2 -0
  385. package/dist/types/components/layout/components/header/breadcrumb-navigation.d.ts +2 -0
  386. package/dist/types/components/layout/components/header/color-scheme.d.ts +5 -0
  387. package/dist/types/components/layout/components/header/fullscreen.d.ts +5 -0
  388. package/dist/types/components/layout/components/header/girl-icon.d.ts +2 -0
  389. package/dist/types/components/layout/components/header/index.d.ts +5 -0
  390. package/dist/types/components/layout/components/header/menu-burger.d.ts +5 -0
  391. package/dist/types/components/layout/components/header/menu-fold-left-icon.d.ts +2 -0
  392. package/dist/types/components/layout/components/header/menu-unfold-left-icon.d.ts +2 -0
  393. package/dist/types/components/layout/components/header/search.d.ts +5 -0
  394. package/dist/types/components/layout/components/header/theme-config.d.ts +5 -0
  395. package/dist/types/components/layout/components/header/user-avatar.d.ts +6 -0
  396. package/dist/types/components/layout/components/honeycomb-pattern.d.ts +1 -0
  397. package/dist/types/components/layout/components/index.d.ts +6 -0
  398. package/dist/types/components/layout/components/logo.d.ts +8 -0
  399. package/dist/types/components/layout/components/menu.d.ts +7 -0
  400. package/dist/types/components/layout/components/search/index.d.ts +1 -0
  401. package/dist/types/components/layout/components/search/keyboard-arrow-down-icon.d.ts +2 -0
  402. package/dist/types/components/layout/components/search/keyboard-arrow-up-icon.d.ts +2 -0
  403. package/dist/types/components/layout/components/search/keyboard-control-icon.d.ts +2 -0
  404. package/dist/types/components/layout/components/search/keyboard-esc-icon.d.ts +2 -0
  405. package/dist/types/components/layout/components/search/keyboard-help.d.ts +1 -0
  406. package/dist/types/components/layout/components/search/keyboard-return-icon.d.ts +2 -0
  407. package/dist/types/components/layout/components/search/keyboard-shift-icon.d.ts +2 -0
  408. package/dist/types/components/layout/components/search/keyboard.d.ts +6 -0
  409. package/dist/types/components/layout/components/search/letter-s-icon.d.ts +2 -0
  410. package/dist/types/components/layout/components/search/search-result-item.d.ts +8 -0
  411. package/dist/types/components/layout/components/search/search-result.d.ts +5 -0
  412. package/dist/types/components/layout/components/sidebar.d.ts +6 -0
  413. package/dist/types/components/layout/components/tabs/context-menu.d.ts +6 -0
  414. package/dist/types/components/layout/components/tabs/index.d.ts +1 -0
  415. package/dist/types/components/layout/components/tabs/main-content-maximum.d.ts +5 -0
  416. package/dist/types/components/layout/components/tabs/reload.d.ts +5 -0
  417. package/dist/types/components/layout/components/tabs/tab-item.d.ts +10 -0
  418. package/dist/types/components/layout/components/tabs/tab-list.d.ts +1 -0
  419. package/dist/types/components/layout/components/tabs/tabs-container.d.ts +1 -0
  420. package/dist/types/components/layout/components/theme-config/color-scheme-switcher.d.ts +1 -0
  421. package/dist/types/components/layout/components/theme-config/color-scheme.d.ts +1 -0
  422. package/dist/types/components/layout/components/theme-config/config-item.d.ts +7 -0
  423. package/dist/types/components/layout/components/theme-config/index.d.ts +1 -0
  424. package/dist/types/components/layout/components/theme-config/menu-layout-card.d.ts +7 -0
  425. package/dist/types/components/layout/components/theme-config/menu-layout.d.ts +1 -0
  426. package/dist/types/components/layout/components/theme-config/operations.d.ts +1 -0
  427. package/dist/types/components/layout/components/theme-config/theme-color-picker.d.ts +6 -0
  428. package/dist/types/components/layout/components/theme-config/theme-colors.d.ts +1 -0
  429. package/dist/types/components/layout/hooks/index.d.ts +3 -0
  430. package/dist/types/components/layout/hooks/use-color-scheme-updater.d.ts +13 -0
  431. package/dist/types/components/layout/hooks/use-menu-navigate.d.ts +7 -0
  432. package/dist/types/components/layout/hooks/use-tab-navigate.d.ts +11 -0
  433. package/dist/types/components/layout/index.d.ts +3 -0
  434. package/dist/types/components/layout/props.d.ts +28 -0
  435. package/dist/types/components/layout/store.d.ts +17 -0
  436. package/dist/types/components/layout/styles.d.ts +2 -0
  437. package/dist/types/components/login/icon-login.d.ts +2 -0
  438. package/dist/types/components/login/index.d.ts +4 -0
  439. package/dist/types/components/login/payload.d.ts +45 -0
  440. package/dist/types/components/login/props.d.ts +27 -0
  441. package/dist/types/components/login/styles.d.ts +10 -0
  442. package/dist/types/components/login/welcome-messages.d.ts +11 -0
  443. package/dist/types/components/logo-icon/index.d.ts +3 -0
  444. package/dist/types/components/logo-icon/props.d.ts +10 -0
  445. package/dist/types/components/n-progress/components/bar.d.ts +5 -0
  446. package/dist/types/components/n-progress/components/container.d.ts +7 -0
  447. package/dist/types/components/n-progress/components/index.d.ts +2 -0
  448. package/dist/types/components/n-progress/event.d.ts +7 -0
  449. package/dist/types/components/n-progress/index.d.ts +2 -0
  450. package/dist/types/components/not-found/index.d.ts +1 -0
  451. package/dist/types/components/not-found/not-found-icon.d.ts +2 -0
  452. package/dist/types/components/page/index.d.ts +4 -0
  453. package/dist/types/components/page/props.d.ts +51 -0
  454. package/dist/types/components/page/scroll-content.d.ts +8 -0
  455. package/dist/types/components/page/styles.d.ts +11 -0
  456. package/dist/types/components/page/use-page-key.d.ts +1 -0
  457. package/dist/types/components/page/viewport-context.d.ts +7 -0
  458. package/dist/types/components/pro-search/components/advanced-search-toggler.d.ts +7 -0
  459. package/dist/types/components/pro-search/components/advanced-search.d.ts +6 -0
  460. package/dist/types/components/pro-search/components/index.d.ts +3 -0
  461. package/dist/types/components/pro-search/components/search-actions.d.ts +22 -0
  462. package/dist/types/components/pro-search/index.d.ts +5 -0
  463. package/dist/types/components/pro-search/props.d.ts +66 -0
  464. package/dist/types/components/pro-search/styles.d.ts +6 -0
  465. package/dist/types/components/pro-table/components/index.d.ts +4 -0
  466. package/dist/types/components/pro-table/components/operation-button-group.d.ts +7 -0
  467. package/dist/types/components/pro-table/components/ref.d.ts +3 -0
  468. package/dist/types/components/pro-table/components/table-subscriber.d.ts +9 -0
  469. package/dist/types/components/pro-table/components/table-summary.d.ts +7 -0
  470. package/dist/types/components/pro-table/components/table-title.d.ts +7 -0
  471. package/dist/types/components/pro-table/components/table.d.ts +6 -0
  472. package/dist/types/components/pro-table/context.d.ts +3 -0
  473. package/dist/types/components/pro-table/event.d.ts +16 -0
  474. package/dist/types/components/pro-table/hooks/index.d.ts +2 -0
  475. package/dist/types/components/pro-table/hooks/use-row-selection.d.ts +12 -0
  476. package/dist/types/components/pro-table/hooks/use-table-columns.d.ts +11 -0
  477. package/dist/types/components/pro-table/index.d.ts +11 -0
  478. package/dist/types/components/pro-table/props.d.ts +118 -0
  479. package/dist/types/components/pro-table/store.d.ts +35 -0
  480. package/dist/types/components/pro-table/types.d.ts +86 -0
  481. package/dist/types/components/router-provider/context.d.ts +6 -0
  482. package/dist/types/components/router-provider/index.d.ts +5 -0
  483. package/dist/types/components/router-provider/props.d.ts +7 -0
  484. package/dist/types/components/theme-config-provider/global-style.d.ts +2 -0
  485. package/dist/types/components/theme-config-provider/index.d.ts +2 -0
  486. package/dist/types/components/theme-config-provider/use-color-mode-effect.d.ts +1 -0
  487. package/dist/types/components/theme-config-provider/use-theme-config.d.ts +2 -0
  488. package/dist/types/constants/event.d.ts +4 -0
  489. package/dist/types/constants/index.d.ts +4 -0
  490. package/dist/types/constants/router.d.ts +24 -0
  491. package/dist/types/constants/storage.d.ts +8 -0
  492. package/dist/types/constants/symbols.d.ts +8 -0
  493. package/dist/types/helpers/api.d.ts +9 -0
  494. package/dist/types/helpers/app-version.d.ts +88 -0
  495. package/dist/types/helpers/app.d.ts +24 -0
  496. package/dist/types/helpers/auth.d.ts +7 -0
  497. package/dist/types/helpers/event.d.ts +16 -0
  498. package/dist/types/helpers/index.d.ts +7 -0
  499. package/dist/types/helpers/query.d.ts +33 -0
  500. package/dist/types/helpers/router.d.ts +28 -0
  501. package/dist/types/hooks/index.d.ts +1 -0
  502. package/dist/types/hooks/use-route-full-path.d.ts +6 -0
  503. package/dist/types/index.d.ts +6 -0
  504. package/dist/types/models/index.d.ts +1 -0
  505. package/dist/types/routes/access-denied.d.ts +13 -0
  506. package/dist/types/routes/index.d.ts +4 -0
  507. package/dist/types/routes/layout.d.ts +25 -0
  508. package/dist/types/routes/login.d.ts +18 -0
  509. package/dist/types/routes/root.d.ts +13 -0
  510. package/dist/types/stores/app.d.ts +38 -0
  511. package/dist/types/stores/index.d.ts +6 -0
  512. package/dist/types/stores/tab.d.ts +73 -0
  513. package/dist/types/stores/theme.d.ts +46 -0
  514. package/dist/types/types/api.d.ts +67 -0
  515. package/dist/types/types/common.d.ts +81 -0
  516. package/dist/types/types/index.d.ts +3 -0
  517. package/dist/types/types/router.d.ts +9 -0
  518. package/package.json +61 -44
  519. package/README.md +0 -25
  520. package/cjs/api.cjs +0 -2
  521. package/cjs/app.cjs +0 -2
  522. package/cjs/components/index.cjs +0 -2
  523. package/cjs/components/vef-access-denied-page/index.cjs +0 -2
  524. package/cjs/components/vef-access-denied-page/props.cjs +0 -2
  525. package/cjs/components/vef-app/index.cjs +0 -2
  526. package/cjs/components/vef-app/props.cjs +0 -2
  527. package/cjs/components/vef-dev-assistant/index.cjs +0 -31
  528. package/cjs/components/vef-dev-assistant/props.cjs +0 -2
  529. package/cjs/components/vef-error-page/index.cjs +0 -2
  530. package/cjs/components/vef-error-page/props.cjs +0 -2
  531. package/cjs/components/vef-login-page/index.cjs +0 -2
  532. package/cjs/components/vef-login-page/props.cjs +0 -2
  533. package/cjs/components/vef-not-found-page/index.cjs +0 -2
  534. package/cjs/components/vef-not-found-page/props.cjs +0 -2
  535. package/cjs/components/vef-router-provider/index.cjs +0 -2
  536. package/cjs/components/vef-router-provider/props.cjs +0 -2
  537. package/cjs/constants.cjs +0 -2
  538. package/cjs/helper.cjs +0 -2
  539. package/cjs/index.cjs +0 -2
  540. package/cjs/router.cjs +0 -2
  541. package/cjs/routes/access-denied.cjs +0 -2
  542. package/cjs/routes/index.cjs +0 -2
  543. package/cjs/routes/layout.cjs +0 -2
  544. package/cjs/routes/login.cjs +0 -2
  545. package/cjs/routes/root.cjs +0 -2
  546. package/cjs/store.cjs +0 -2
  547. package/esm/api.js +0 -2
  548. package/esm/app.js +0 -2
  549. package/esm/components/index.js +0 -2
  550. package/esm/components/vef-access-denied-page/index.js +0 -2
  551. package/esm/components/vef-access-denied-page/props.js +0 -2
  552. package/esm/components/vef-app/index.js +0 -2
  553. package/esm/components/vef-app/props.js +0 -2
  554. package/esm/components/vef-dev-assistant/index.js +0 -31
  555. package/esm/components/vef-dev-assistant/props.js +0 -2
  556. package/esm/components/vef-error-page/index.js +0 -2
  557. package/esm/components/vef-error-page/props.js +0 -2
  558. package/esm/components/vef-login-page/index.js +0 -2
  559. package/esm/components/vef-login-page/props.js +0 -2
  560. package/esm/components/vef-not-found-page/index.js +0 -2
  561. package/esm/components/vef-not-found-page/props.js +0 -2
  562. package/esm/components/vef-router-provider/index.js +0 -2
  563. package/esm/components/vef-router-provider/props.js +0 -2
  564. package/esm/constants.js +0 -2
  565. package/esm/helper.js +0 -2
  566. package/esm/index.js +0 -2
  567. package/esm/router.js +0 -2
  568. package/esm/routes/access-denied.js +0 -2
  569. package/esm/routes/index.js +0 -2
  570. package/esm/routes/layout.js +0 -2
  571. package/esm/routes/login.js +0 -2
  572. package/esm/routes/root.js +0 -2
  573. package/esm/store.js +0 -2
  574. package/types/api.d.ts +0 -9
  575. package/types/app.d.ts +0 -15
  576. package/types/components/index.d.ts +0 -7
  577. package/types/components/vef-access-denied-page/index.d.ts +0 -4
  578. package/types/components/vef-access-denied-page/props.d.ts +0 -5
  579. package/types/components/vef-app/index.d.ts +0 -4
  580. package/types/components/vef-app/props.d.ts +0 -7
  581. package/types/components/vef-dev-assistant/index.d.ts +0 -4
  582. package/types/components/vef-dev-assistant/props.d.ts +0 -5
  583. package/types/components/vef-error-page/index.d.ts +0 -4
  584. package/types/components/vef-error-page/props.d.ts +0 -6
  585. package/types/components/vef-login-page/index.d.ts +0 -4
  586. package/types/components/vef-login-page/props.d.ts +0 -7
  587. package/types/components/vef-not-found-page/index.d.ts +0 -4
  588. package/types/components/vef-not-found-page/props.d.ts +0 -6
  589. package/types/components/vef-router-provider/index.d.ts +0 -4
  590. package/types/components/vef-router-provider/props.d.ts +0 -16
  591. package/types/constants.d.ts +0 -24
  592. package/types/helper.d.ts +0 -9
  593. package/types/index.d.ts +0 -8
  594. package/types/router.d.ts +0 -23
  595. package/types/routes/access-denied.d.ts +0 -9
  596. package/types/routes/index.d.ts +0 -4
  597. package/types/routes/layout.d.ts +0 -33
  598. package/types/routes/login.d.ts +0 -27
  599. package/types/routes/root.d.ts +0 -7
  600. package/types/store.d.ts +0 -34
@@ -0,0 +1,223 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import { jsxs, jsx, Fragment } from '@emotion/react/jsx-runtime';
3
+ import { css } from '@emotion/react';
4
+ import { globalCssVars, showInfoNotification, Group, Button, Icon, Text } from '@vef-framework/components';
5
+ import { joinPaths } from '@vef-framework/shared';
6
+ import { compareVersions } from 'compare-versions';
7
+ import { CircleArrowUpIcon } from 'lucide-react';
8
+
9
+ const versionStyle = /* @__PURE__ */ css({
10
+ fontSize: "inherit",
11
+ fontFamily: globalCssVars.fontFamilyCode
12
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrR3FCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
13
+ const mainDescriptionStyle = /* @__PURE__ */ css({
14
+ marginBottom: globalCssVars.spacingSm
15
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RzZCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
16
+ const changelogDescStyle = /* @__PURE__ */ css({
17
+ marginBottom: globalCssVars.spacingSm,
18
+ padding: globalCssVars.spacingSm,
19
+ backgroundColor: globalCssVars.colorFillQuaternary,
20
+ borderLeft: `3px solid ${globalCssVars.colorPrimary}`,
21
+ borderRadius: globalCssVars.borderRadius
22
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRzJCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
23
+ const changesTitleStyle = /* @__PURE__ */ css({
24
+ fontWeight: 600,
25
+ color: globalCssVars.colorInfo,
26
+ display: "flex",
27
+ alignItems: "center",
28
+ gap: globalCssVars.spacingXxs
29
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrSDBCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
30
+ const changesListStyle = /* @__PURE__ */ css({
31
+ paddingLeft: globalCssVars.spacingXl,
32
+ fontSize: `calc(${globalCssVars.fontSize} - 1px)`,
33
+ marginTop: globalCssVars.spacingXxs,
34
+ marginBottom: globalCssVars.spacingSm,
35
+ "& > li": {
36
+ color: globalCssVars.colorTextSecondary
37
+ }
38
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SHlCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
39
+ const dateInfoStyle = /* @__PURE__ */ css({
40
+ textAlign: "right",
41
+ borderTop: `${globalCssVars.lineWidth} ${globalCssVars.lineType} ${globalCssVars.colorBorderSecondary}`,
42
+ paddingTop: globalCssVars.spacingXxs,
43
+ "> .vef-typography": {
44
+ fontSize: globalCssVars.fontSizeSm
45
+ }
46
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSXNCIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL2FwcC12ZXJzaW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVOdWxsLCBNYXliZVVuZGVmaW5lZCB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBnbG9iYWxDc3NWYXJzLCBHcm91cCwgSWNvbiwgc2hvd0luZm9Ob3RpZmljYXRpb24sIFRleHQgfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgam9pblBhdGhzIH0gZnJvbSBcIkB2ZWYtZnJhbWV3b3JrL3NoYXJlZFwiO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSBcImNvbXBhcmUtdmVyc2lvbnNcIjtcbmltcG9ydCB7IENpcmNsZUFycm93VXBJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNoYW5nZWxvZyBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBDaGFuZ2Vsb2cge1xuICAvKipcbiAgICogVmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGVhc2UgZGF0ZVxuICAgKi9cbiAgZGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERldGFpbGVkIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICovXG4gIGNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIExhdGVzdFZlcnNpb25JbmZvIHtcbiAgLyoqXG4gICAqIExhdGVzdCB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIExhdGVzdCBjaGFuZ2Vsb2cgaW5mb3JtYXRpb24gKGlmIGF2YWlsYWJsZSlcbiAgICovXG4gIGNoYW5nZWxvZz86IEFwcENoYW5nZWxvZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFwcCB2ZXJzaW9uIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFZlcnNpb25Ob3RpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGRhdGUgZGV0ZWN0aW9uXG4gICAqXG4gICAqIFJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIGBpbXBvcnQubWV0YS5lbnYuUFJPRGAgaW4geW91ciBhcHBsaWNhdGlvbixcbiAgICogc28gaXQgb25seSBydW5zIGluIHByb2R1Y3Rpb24gYnVpbGRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGFsbCByZXF1ZXN0cyAoZS5nLiwgXCIvYXBwXCIsIFwiL3N0YXRpY1wiKVxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBVUkwgcmVxdWVzdHMgZm9yIGluZGV4Lmh0bWwgYW5kIGNoYW5nZWxvZy5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCAoaW4gc2Vjb25kcykgdG8gY2hlY2sgZm9yIHVwZGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgNjBcbiAgICovXG4gIGNoZWNrSW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDdXN0b20gbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqL1xuICB0aXRsZT86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEN1c3RvbSBub3RpZmljYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNvbmZpcm0gYnV0dG9uIHRleHRcbiAgICovXG4gIGNvbmZpcm1UZXh0PzogUmVhY3ROb2RlO1xuICAvKipcbiAgICogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dFxuICAgKi9cbiAgY2FuY2VsVGV4dD86IFJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gdXNlciBjb25maXJtcyB1cGRhdGVcbiAgICovXG4gIG9uQ29uZmlybT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHVzZXIgY2FuY2VscyB1cGRhdGVcbiAgICovXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgdmVyc2lvblN0eWxlID0gY3NzKHtcbiAgZm9udFNpemU6IFwiaW5oZXJpdFwiLFxuICBmb250RmFtaWx5OiBnbG9iYWxDc3NWYXJzLmZvbnRGYW1pbHlDb2RlXG59KTtcblxuY29uc3QgbWFpbkRlc2NyaXB0aW9uU3R5bGUgPSBjc3Moe1xuICBtYXJnaW5Cb3R0b206IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtXG59KTtcbmNvbnN0IGNoYW5nZWxvZ0Rlc2NTdHlsZSA9IGNzcyh7XG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG4gIHBhZGRpbmc6IGdsb2JhbENzc1ZhcnMuc3BhY2luZ1NtLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JGaWxsUXVhdGVybmFyeSxcbiAgYm9yZGVyTGVmdDogYDNweCBzb2xpZCAke2dsb2JhbENzc1ZhcnMuY29sb3JQcmltYXJ5fWAsXG4gIGJvcmRlclJhZGl1czogZ2xvYmFsQ3NzVmFycy5ib3JkZXJSYWRpdXNcbn0pO1xuXG5jb25zdCBjaGFuZ2VzVGl0bGVTdHlsZSA9IGNzcyh7XG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgY29sb3I6IGdsb2JhbENzc1ZhcnMuY29sb3JJbmZvLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgZ2FwOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHNcbn0pO1xuY29uc3QgY2hhbmdlc0xpc3RTdHlsZSA9IGNzcyh7XG4gIHBhZGRpbmdMZWZ0OiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYbCxcbiAgZm9udFNpemU6IGBjYWxjKCR7Z2xvYmFsQ3NzVmFycy5mb250U2l6ZX0gLSAxcHgpYCxcbiAgbWFyZ2luVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG4gIG1hcmdpbkJvdHRvbTogZ2xvYmFsQ3NzVmFycy5zcGFjaW5nU20sXG5cbiAgXCImID4gbGlcIjoge1xuICAgIGNvbG9yOiBnbG9iYWxDc3NWYXJzLmNvbG9yVGV4dFNlY29uZGFyeVxuICB9XG59KTtcblxuY29uc3QgZGF0ZUluZm9TdHlsZSA9IGNzcyh7XG4gIHRleHRBbGlnbjogXCJyaWdodFwiLFxuICBib3JkZXJUb3A6IGAke2dsb2JhbENzc1ZhcnMubGluZVdpZHRofSAke2dsb2JhbENzc1ZhcnMubGluZVR5cGV9ICR7Z2xvYmFsQ3NzVmFycy5jb2xvckJvcmRlclNlY29uZGFyeX1gLFxuICBwYWRkaW5nVG9wOiBnbG9iYWxDc3NWYXJzLnNwYWNpbmdYeHMsXG5cbiAgXCI+IC52ZWYtdHlwb2dyYXBoeVwiOiB7XG4gICAgZm9udFNpemU6IGdsb2JhbENzc1ZhcnMuZm9udFNpemVTbVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXR1cCBhdXRvbWF0aWMgYXBwIHZlcnNpb24gbm90aWZpY2F0aW9uXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtb25pdG9ycyBmb3IgYXBwIHZlcnNpb24gY2hhbmdlcyBieSBjb21wYXJpbmcgdGhlIGN1cnJlbnQgdmVyc2lvblxuICogd2l0aCB0aGUgdmVyc2lvbiBpbiB0aGUgZGVwbG95ZWQgSFRNTCBmaWxlLiBXaGVuIGEgbmV3IHZlcnNpb24gaXMgZGV0ZWN0ZWQsXG4gKiBpdCBzaG93cyBhIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gcmVmcmVzaCB0aGUgcGFnZS5cbiAqXG4gKiBUaGUgdmVyc2lvbiBpcyBvYnRhaW5lZCBmcm9tIHRoZSBgPG1ldGEgbmFtZT1cImFwcC12ZXJzaW9uXCI+YCB0YWcgaW4gdGhlIEhUTUwuXG4gKiBJdCB1c2VzIHNlbWFudGljIHZlcnNpb25pbmcgY29tcGFyaXNvbiB2aWEgdGhlIGBjb21wYXJlLXZlcnNpb25zYCBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGNsZWFudXAgZnVuY3Rpb24gdG8gc3RvcCB2ZXJzaW9uIGNoZWNraW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEFwcFZlcnNpb25Ob3RpZmljYXRpb24ob3B0aW9uczogQXBwVmVyc2lvbk5vdGlmaWNhdGlvbk9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IGZhbHNlLFxuICAgIGJhc2VQYXRoID0gXCIvXCIsXG4gICAgY2hlY2tJbnRlcnZhbCA9IDYwLFxuICAgIHRpdGxlID0gXCLlj5HnjrDmlrDniYjmnKxcIixcbiAgICBkZXNjcmlwdGlvbiA9IFwi5qOA5rWL5Yiw5bqU55So5pyJ5paw54mI5pys77yM5bu66K6u5Yi35paw6aG16Z2i5Lul6I635Y+W5pyA5paw5Yqf6IO95ZKM5L+u5aSN77yI5rOo5oSP77ya5aaC5p6c5oKo5q2j5Zyo57yW6L6R5pWw5o2u77yM6K+35Zyo5pu05paw5YmN6K+35LiA5a6a6KaB5YWI5L+d5a2YL+aPkOS6pO+8iVwiLFxuICAgIGNvbmZpcm1UZXh0ID0gXCLnq4vljbPmm7TmlrBcIixcbiAgICBjYW5jZWxUZXh0ID0gXCLnqI3lkI7lho3or7RcIixcbiAgICBvbkNvbmZpcm0sXG4gICAgb25DYW5jZWxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGlzTm90aWZpY2F0aW9uU2hvd24gPSBmYWxzZTtcbiAgbGV0IGNoZWNrVGltZXI6IE1heWJlTnVsbDxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+ID0gbnVsbDtcblxuICBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZSgpIHtcbiAgICBpZiAoaXNOb3RpZmljYXRpb25TaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBjb25zdCB7IHZlcnNpb246IGxhdGVzdFZlcnNpb24sIGNoYW5nZWxvZyB9ID0gYXdhaXQgZ2V0TGF0ZXN0VmVyc2lvbkluZm8oYmFzZVBhdGgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWZXJzaW9uIHx8ICFsYXRlc3RWZXJzaW9uIHx8IGN1cnJlbnRWZXJzaW9uID09PSBsYXRlc3RWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBhcmVWZXJzaW9ucyhsYXRlc3RWZXJzaW9uLCBjdXJyZW50VmVyc2lvbikgPT09IDEpIHtcbiAgICAgICAgc2hvd1VwZGF0ZU5vdGlmaWNhdGlvbihjaGFuZ2Vsb2chKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFwiW0FwcCBWZXJzaW9uIENoZWNrXSBGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydENoZWNrVGltZXIoKSB7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcblxuICAgIGlmIChjaGVja0ludGVydmFsID4gMCkge1xuICAgICAgY2hlY2tUaW1lciA9IHNldEludGVydmFsKGNoZWNrRm9yVXBkYXRlLCBjaGVja0ludGVydmFsICogMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcENoZWNrVGltZXIoKSB7XG4gICAgaWYgKGNoZWNrVGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tUaW1lcik7XG4gICAgICBjaGVja1RpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzaG93VXBkYXRlTm90aWZpY2F0aW9uKGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKSB7XG4gICAgaXNOb3RpZmljYXRpb25TaG93biA9IHRydWU7XG4gICAgc3RvcENoZWNrVGltZXIoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkNvbnRlbnQgPSBidWlsZERlc2NyaXB0aW9uQ29udGVudChjaGFuZ2Vsb2cpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHNob3dJbmZvTm90aWZpY2F0aW9uKFxuICAgICAgZGVzY3JpcHRpb25Db250ZW50LFxuICAgICAge1xuICAgICAgICBpY29uOiBcIvCfjolcIixcbiAgICAgICAgdGl0bGU6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtcIiAtIFwifVxuXG4gICAgICAgICAgICA8VGV4dCBzdHJvbmcgY3NzPXt2ZXJzaW9uU3R5bGV9IHR5cGU9XCJzdWNjZXNzXCI+XG4gICAgICAgICAgICAgIHZcbiAgICAgICAgICAgICAge2NoYW5nZWxvZy52ZXJzaW9ufVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiAoXG4gICAgICAgICAgPEdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPy4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhbmNlbFRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgICAgICAgICAgaWNvbj17PEljb24gY29tcG9uZW50PXtDaXJjbGVBcnJvd1VwSWNvbn0gLz59XG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9uQ29uZmlybSkge1xuICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0oKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y29uZmlybVRleHR9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkRGVzY3JpcHRpb25Db250ZW50KGNoYW5nZWxvZzogQXBwQ2hhbmdlbG9nKTogUmVhY3ROb2RlIHtcbiAgICBjb25zdCBwYXJ0czogUmVhY3ROb2RlW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkZXNjcmlwdGlvblwiIGNzcz17bWFpbkRlc2NyaXB0aW9uU3R5bGV9PlxuICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGVzY3JpcHRpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIDxkaXYga2V5PVwiY2hhbmdlbG9nLWRlc2NcIiBjc3M9e2NoYW5nZWxvZ0Rlc2NTdHlsZX0+XG4gICAgICAgICAge2NoYW5nZWxvZy5kZXNjcmlwdGlvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuY2hhbmdlcyAmJiBjaGFuZ2Vsb2cuY2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8ZGl2IGtleT1cImNoYW5nZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjc3M9e2NoYW5nZXNUaXRsZVN0eWxlfT5cbiAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj7mnKzmrKHmm7TmlrDlhoXlrrnvvJo8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dWwgY3NzPXtjaGFuZ2VzTGlzdFN0eWxlfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nXG4gICAgICAgICAgICAgICAgLmNoYW5nZXNcbiAgICAgICAgICAgICAgICAubWFwKGNoYW5nZSA9PiA8bGkga2V5PXtjaGFuZ2V9PntjaGFuZ2V9PC9saT4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2Vsb2cuZGF0ZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPGRpdiBrZXk9XCJkYXRlLWluZm9cIiBjc3M9e2RhdGVJbmZvU3R5bGV9PlxuICAgICAgICAgIDxUZXh0IHR5cGU9XCJzZWNvbmRhcnlcIj57Y2hhbmdlbG9nLmRhdGV9PC9UZXh0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDw+e3BhcnRzfTwvPjtcbiAgfVxuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xuICAgICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICAgIHN0YXJ0Q2hlY2tUaW1lcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gSW5pdGlhbCBjaGVjayBhbmQgc3RhcnQgdGltZXIgaWYgcGFnZSBpcyB2aXNpYmxlXG4gIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgY2hlY2tGb3JVcGRhdGUoKTtcbiAgICBzdGFydENoZWNrVGltZXIoKTtcbiAgfVxuXG4gIC8vIENsZWFudXAgZnVuY3Rpb25cbiAgcmV0dXJuICgpID0+IHtcbiAgICBzdG9wQ2hlY2tUaW1lcigpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvbigpIHtcbiAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1ldGFbbmFtZT1cImFwcC12ZXJzaW9uXCJdYCk7XG4gIHJldHVybiBtZXRhPy5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xufVxuXG4vKipcbiAqIEdldCBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiAodmVyc2lvbiArIGNoYW5nZWxvZylcbiAqXG4gKiBAcGFyYW0gYmFzZVBhdGggLSBCYXNlIHBhdGggZm9yIHJlcXVlc3RzXG4gKiBAcmV0dXJucyBMYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdmVyc2lvbiBudW1iZXIgYW5kIGNoYW5nZWxvZ1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uSW5mbyhiYXNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxMYXRlc3RWZXJzaW9uSW5mbz4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBMYXRlc3RWZXJzaW9uSW5mbyA9IHt9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBcImluZGV4Lmh0bWxcIik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt1cmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIEhUTUw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAvLyBFeHRyYWN0IHZlcnNpb24gbnVtYmVyXG4gICAgY29uc3QgdmVyc2lvbk1ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLXZlcnNpb25cIltePl0qPi8pO1xuICAgIGNvbnN0IHZlcnNpb25Db250ZW50TWF0Y2ggPSB2ZXJzaW9uTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzx2ZXJzaW9uPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uQ29udGVudE1hdGNoPy5ncm91cHM/LnZlcnNpb24gfHwgXCJcIjtcbiAgICBkZWZhdWx0UmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gRXh0cmFjdCBjaGFuZ2Vsb2cgcGF0aFxuICAgIGNvbnN0IGNoYW5nZWxvZ01ldGFNYXRjaCA9IGh0bWwubWF0Y2goLzxtZXRhW14+XSpuYW1lPVwiYXBwLWNoYW5nZWxvZ1wiW14+XSo+Lyk7XG4gICAgY29uc3QgY2hhbmdlbG9nQ29udGVudE1hdGNoID0gY2hhbmdlbG9nTWV0YU1hdGNoPy5bMF0ubWF0Y2goL2NvbnRlbnQ9XCIoPzxwYXRoPlteXCJdKylcIi8pO1xuICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBjaGFuZ2Vsb2dDb250ZW50TWF0Y2g/Lmdyb3Vwcz8ucGF0aDtcblxuICAgIGxldCBjaGFuZ2Vsb2c6IE1heWJlVW5kZWZpbmVkPEFwcENoYW5nZWxvZz47XG5cbiAgICBpZiAoY2hhbmdlbG9nUGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nVXJsID0gam9pblBhdGhzKGJhc2VQYXRoLCBjaGFuZ2Vsb2dQYXRoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlbG9nUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtjaGFuZ2Vsb2dVcmx9P3Q9JHtEYXRlLm5vdygpfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgUHJhZ21hOiBcIm5vLWNhY2hlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjaGFuZ2Vsb2dSZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWxvZ3MgPSBhd2FpdCBjaGFuZ2Vsb2dSZXNwb25zZS5qc29uKCkgYXMgQXBwQ2hhbmdlbG9nW107XG4gICAgICAgICAgY2hhbmdlbG9nID0gY2hhbmdlbG9ncy5maW5kKGNoYW5nZWxvZyA9PiBjaGFuZ2Vsb2cudmVyc2lvbiA9PT0gdmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIltBcHAgVmVyc2lvbiBDaGVja10gRmFpbGVkIHRvIGZldGNoIGNoYW5nZWxvZzpcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgY2hhbmdlbG9nXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbQXBwIFZlcnNpb24gQ2hlY2tdIEZhaWxlZCB0byBnZXQgbGF0ZXN0IHZlcnNpb24gaW5mbzpcIiwgZXJyb3IpO1xuXG4gICAgaWYgKGRlZmF1bHRSZXN1bHQudmVyc2lvbikge1xuICAgICAgZGVmYXVsdFJlc3VsdC5jaGFuZ2Vsb2cgPSB7XG4gICAgICAgIHZlcnNpb246IGRlZmF1bHRSZXN1bHQudmVyc2lvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFJlc3VsdDtcbiAgfVxufVxuIl19 */");
47
+ function setupAppVersionNotification(options = {}) {
48
+ const {
49
+ enabled = false,
50
+ basePath = "/",
51
+ checkInterval = 60,
52
+ title = "发现新版本",
53
+ description = "检测到应用有新版本,建议刷新页面以获取最新功能和修复(注意:如果您正在编辑数据,请在更新前请一定要先保存/提交)",
54
+ confirmText = "立即更新",
55
+ cancelText = "稍后再说",
56
+ onConfirm,
57
+ onCancel
58
+ } = options;
59
+ if (!enabled) {
60
+ return;
61
+ }
62
+ let isNotificationShown = false;
63
+ let checkTimer = null;
64
+ async function checkForUpdate() {
65
+ if (isNotificationShown) {
66
+ return;
67
+ }
68
+ try {
69
+ const currentVersion = getCurrentVersion();
70
+ const {
71
+ version: latestVersion,
72
+ changelog
73
+ } = await getLatestVersionInfo(basePath);
74
+ if (!currentVersion || !latestVersion || currentVersion === latestVersion) {
75
+ return;
76
+ }
77
+ if (compareVersions(latestVersion, currentVersion) === 1) {
78
+ showUpdateNotification(changelog);
79
+ }
80
+ } catch (error) {
81
+ console.warn("[App Version Check] Failed to check for updates:", error);
82
+ }
83
+ }
84
+ function startCheckTimer() {
85
+ stopCheckTimer();
86
+ if (checkInterval > 0) {
87
+ checkTimer = setInterval(checkForUpdate, checkInterval * 1e3);
88
+ }
89
+ }
90
+ function stopCheckTimer() {
91
+ if (checkTimer) {
92
+ clearInterval(checkTimer);
93
+ checkTimer = null;
94
+ }
95
+ }
96
+ function showUpdateNotification(changelog) {
97
+ isNotificationShown = true;
98
+ stopCheckTimer();
99
+ const descriptionContent = buildDescriptionContent(changelog);
100
+ const notification = showInfoNotification(descriptionContent, {
101
+ icon: "🎉",
102
+ title: /* @__PURE__ */ jsxs(Fragment, { children: [
103
+ /* @__PURE__ */ jsx("span", { children: title }),
104
+ " - ",
105
+ /* @__PURE__ */ jsxs(Text, { strong: true, css: versionStyle, type: "success", children: [
106
+ "v",
107
+ changelog.version
108
+ ] })
109
+ ] }),
110
+ duration: 0,
111
+ closable: false,
112
+ actions: /* @__PURE__ */ jsxs(Group, { children: [
113
+ /* @__PURE__ */ jsx(Button, { onClick: () => {
114
+ notification.close();
115
+ onCancel?.();
116
+ }, children: cancelText }, "cancel"),
117
+ /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(Icon, { component: CircleArrowUpIcon }), type: "primary", onClick: () => {
118
+ if (onConfirm) {
119
+ onConfirm();
120
+ } else {
121
+ location.reload();
122
+ }
123
+ }, children: confirmText }, "confirm")
124
+ ] })
125
+ });
126
+ }
127
+ function buildDescriptionContent(changelog) {
128
+ const parts = [];
129
+ if (description) {
130
+ parts.push(/* @__PURE__ */ jsx("div", { css: mainDescriptionStyle, children: description }, "description"));
131
+ }
132
+ if (changelog.description) {
133
+ parts.push(/* @__PURE__ */ jsx("div", { css: changelogDescStyle, children: changelog.description }, "changelog-desc"));
134
+ }
135
+ if (changelog.changes && changelog.changes.length > 0) {
136
+ parts.push(/* @__PURE__ */ jsxs("div", { children: [
137
+ /* @__PURE__ */ jsxs("div", { css: changesTitleStyle, children: [
138
+ /* @__PURE__ */ jsx("span", { children: "📋" }),
139
+ /* @__PURE__ */ jsx("span", { children: "本次更新内容:" })
140
+ ] }),
141
+ /* @__PURE__ */ jsx("ul", { css: changesListStyle, children: changelog.changes.map((change) => /* @__PURE__ */ jsx("li", { children: change }, change)) })
142
+ ] }, "changes-container"));
143
+ }
144
+ if (changelog.date) {
145
+ parts.push(/* @__PURE__ */ jsx("div", { css: dateInfoStyle, children: /* @__PURE__ */ jsx(Text, { type: "secondary", children: changelog.date }) }, "date-info"));
146
+ }
147
+ return /* @__PURE__ */ jsx(Fragment, { children: parts });
148
+ }
149
+ document.addEventListener("visibilitychange", () => {
150
+ if (document.visibilityState === "visible") {
151
+ checkForUpdate();
152
+ startCheckTimer();
153
+ } else {
154
+ stopCheckTimer();
155
+ }
156
+ });
157
+ if (document.visibilityState === "visible") {
158
+ checkForUpdate();
159
+ startCheckTimer();
160
+ }
161
+ return () => {
162
+ stopCheckTimer();
163
+ };
164
+ }
165
+ function getCurrentVersion() {
166
+ const meta = document.querySelector(`meta[name="app-version"]`);
167
+ return meta?.getAttribute("content");
168
+ }
169
+ async function getLatestVersionInfo(basePath) {
170
+ const defaultResult = {};
171
+ try {
172
+ const url = joinPaths(basePath, "index.html");
173
+ const response = await fetch(`${url}?t=${Date.now()}`, {
174
+ headers: {
175
+ "Cache-Control": "no-cache",
176
+ Pragma: "no-cache"
177
+ }
178
+ });
179
+ if (!response.ok) {
180
+ throw new Error(`Failed to fetch HTML: ${response.status}`);
181
+ }
182
+ const html = await response.text();
183
+ const versionMetaMatch = html.match(/<meta[^>]*name="app-version"[^>]*>/);
184
+ const versionContentMatch = versionMetaMatch?.[0].match(/content="(?<version>[^"]+)"/);
185
+ const version = versionContentMatch?.groups?.version || "";
186
+ defaultResult.version = version;
187
+ const changelogMetaMatch = html.match(/<meta[^>]*name="app-changelog"[^>]*>/);
188
+ const changelogContentMatch = changelogMetaMatch?.[0].match(/content="(?<path>[^"]+)"/);
189
+ const changelogPath = changelogContentMatch?.groups?.path;
190
+ let changelog;
191
+ if (changelogPath) {
192
+ try {
193
+ const changelogUrl = joinPaths(basePath, changelogPath);
194
+ const changelogResponse = await fetch(`${changelogUrl}?t=${Date.now()}`, {
195
+ headers: {
196
+ "Cache-Control": "no-cache",
197
+ Pragma: "no-cache"
198
+ }
199
+ });
200
+ if (changelogResponse.ok) {
201
+ const changelogs = await changelogResponse.json();
202
+ changelog = changelogs.find((changelog2) => changelog2.version === version);
203
+ }
204
+ } catch (error) {
205
+ console.warn("[App Version Check] Failed to fetch changelog:", error);
206
+ }
207
+ }
208
+ return {
209
+ version,
210
+ changelog
211
+ };
212
+ } catch (error) {
213
+ console.warn("[App Version Check] Failed to get latest version info:", error);
214
+ if (defaultResult.version) {
215
+ defaultResult.changelog = {
216
+ version: defaultResult.version
217
+ };
218
+ }
219
+ return defaultResult;
220
+ }
221
+ }
222
+
223
+ export { setupAppVersionNotification };
@@ -0,0 +1,33 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import { jsx } from '@emotion/react/jsx-runtime';
3
+ import { StrictMode } from 'react';
4
+ import { createRoot } from 'react-dom/client';
5
+ import '../components/index.js';
6
+ import { App } from '../components/app/index.js';
7
+ import { RouterContextHookProvider } from '../components/router-provider/context.js';
8
+
9
+ function createApp({
10
+ strictMode = true,
11
+ useRouterContext
12
+ } = {}) {
13
+ const root = createRoot(document.querySelector("#root"), {
14
+ identifierPrefix: "vef-"
15
+ });
16
+ return {
17
+ render(props) {
18
+ let app = /* @__PURE__ */ jsx(App, { ...props });
19
+ if (useRouterContext) {
20
+ app = /* @__PURE__ */ jsx(RouterContextHookProvider, { value: useRouterContext, children: app });
21
+ }
22
+ if (strictMode) {
23
+ app = /* @__PURE__ */ jsx(StrictMode, { children: app });
24
+ }
25
+ root.render(app);
26
+ },
27
+ unmount() {
28
+ root.unmount();
29
+ }
30
+ };
31
+ }
32
+
33
+ export { createApp };
@@ -0,0 +1,20 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import '../constants/index.js';
3
+ import '../stores/index.js';
4
+ import { useAppStore } from '../stores/app.js';
5
+ import { LOGIN_ROUTE_PATH } from '../constants/router.js';
6
+
7
+ async function handleClientLogout(router) {
8
+ useAppStore.setState({
9
+ isAuthenticated: false
10
+ }, true);
11
+ await router.navigate({
12
+ to: LOGIN_ROUTE_PATH
13
+ });
14
+ router.invalidate({
15
+ sync: true,
16
+ forcePending: true
17
+ });
18
+ }
19
+
20
+ export { handleClientLogout };
@@ -0,0 +1,18 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import { createEventEmitter } from '@vef-framework/shared';
3
+ import '../constants/index.js';
4
+ import { RELOAD_PAGE_EVENT } from '../constants/event.js';
5
+
6
+ const eventEmitter = createEventEmitter();
7
+ function dispatchCustomEvent(type, options) {
8
+ if (typeof document === "undefined") {
9
+ return false;
10
+ }
11
+ const event = new CustomEvent(type, options);
12
+ return document.dispatchEvent(event);
13
+ }
14
+ function reloadPage(key) {
15
+ eventEmitter.emit(RELOAD_PAGE_EVENT, key);
16
+ }
17
+
18
+ export { dispatchCustomEvent, eventEmitter, reloadPage };
@@ -0,0 +1,8 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ export { createApiClient } from './api.js';
3
+ export { createApp } from './app.js';
4
+ export { setupAppVersionNotification } from './app-version.js';
5
+ export { handleClientLogout } from './auth.js';
6
+ export { dispatchCustomEvent, eventEmitter, reloadPage } from './event.js';
7
+ export { extractQueryParams, noopMutationFn } from './query.js';
8
+ export { createRouter } from './router.js';
@@ -0,0 +1,22 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import '../constants/index.js';
3
+ import { SYMBOL_PAGINATION, SYMBOL_SORT } from '../constants/symbols.js';
4
+
5
+ function noopMutationFn(..._args) {
6
+ return Promise.resolve(void 0);
7
+ }
8
+ noopMutationFn.key = "__noop_mutation_fn";
9
+ function extractQueryParams(queryParams) {
10
+ const {
11
+ [SYMBOL_PAGINATION]: pagination,
12
+ [SYMBOL_SORT]: sort,
13
+ ...params
14
+ } = queryParams;
15
+ return {
16
+ params,
17
+ pagination,
18
+ sort
19
+ };
20
+ }
21
+
22
+ export { extractQueryParams, noopMutationFn };
@@ -0,0 +1,106 @@
1
+ /*! @vef-framework/starter v2.0.0 made with ❤️ by Venus | 2025-11-25T10:06:38.668Z */
2
+ import { jsx } from '@emotion/react/jsx-runtime';
3
+ import { createRouter as createRouter$1, createHashHistory, createBrowserHistory } from '@tanstack/react-router';
4
+ import { showErrorNotification, Loader } from '@vef-framework/components';
5
+ import { getSanitizedErrorStack, hashKey } from '@vef-framework/shared';
6
+ import '../components/index.js';
7
+ import '../stores/index.js';
8
+ import { NotFound } from '../components/not-found/index.js';
9
+ import { Error } from '../components/error/index.js';
10
+ import { nProgressEventEmitter } from '../components/n-progress/event.js';
11
+ import { useAppStore } from '../stores/app.js';
12
+ import { useTabStore } from '../stores/tab.js';
13
+
14
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() {
15
+ return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
16
+ }
17
+ const defaultGcTime = 10 * 60 * 1e3;
18
+ var _ref = process.env.NODE_ENV === "production" ? {
19
+ name: "1089mxj",
20
+ styles: "white-space:pre-wrap"
21
+ } : {
22
+ name: "1089mxj",
23
+ styles: "white-space:pre-wrap/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL3JvdXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEVlIiwiZmlsZSI6Ii9Vc2Vycy92ZW51cy9WRUYvdmVmLWZyYW1ld29yay1yZWFjdC9wYWNrYWdlcy9zdGFydGVyL3NyYy9oZWxwZXJzL3JvdXRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFueVJvdXRlV2l0aENvbnRleHQgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiO1xuXG5pbXBvcnQgdHlwZSB7IFJvdXRlckNvbnRleHQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnksIGNyZWF0ZUhhc2hIaXN0b3J5LCBjcmVhdGVSb3V0ZXIgYXMgY3JlYXRlUm91dGVySW50ZXJuYWwgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiO1xuaW1wb3J0IHsgTG9hZGVyLCBzaG93RXJyb3JOb3RpZmljYXRpb24gfSBmcm9tIFwiQHZlZi1mcmFtZXdvcmsvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgZ2V0U2FuaXRpemVkRXJyb3JTdGFjaywgaGFzaEtleSB9IGZyb20gXCJAdmVmLWZyYW1ld29yay9zaGFyZWRcIjtcblxuaW1wb3J0IHsgRXJyb3IsIE5vdEZvdW5kLCBuUHJvZ3Jlc3NFdmVudEVtaXR0ZXIgfSBmcm9tIFwiLi4vY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdXNlQXBwU3RvcmUsIHVzZVRhYlN0b3JlIH0gZnJvbSBcIi4uL3N0b3Jlc1wiO1xuXG4vKipcbiAqIFRoZSBvcHRpb25zIGZvciBjcmVhdGluZyBhIHJvdXRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBoaXN0b3J5IG1vZGUgdG8gdXNlLlxuICAgKi9cbiAgaGlzdG9yeTogXCJoYXNoXCIgfCBcImJyb3dzZXJcIjtcbiAgLyoqXG4gICAqIFRoZSByb3V0ZSB0cmVlIHRvIGNyZWF0ZSB0aGUgcm91dGVyIGZyb20uXG4gICAqL1xuICByb3V0ZVRyZWU6IEFueVJvdXRlV2l0aENvbnRleHQ8Um91dGVyQ29udGV4dD47XG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCB0byB1c2UgZm9yIHRoZSByb3V0ZXIuXG4gICAqL1xuICBjb250ZXh0OiBSb3V0ZXJDb250ZXh0O1xufVxuXG5jb25zdCBkZWZhdWx0R2NUaW1lID0gMTAgKiA2MCAqIDEwMDA7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJvdXRlci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIHJvdXRlci5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHJvdXRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlcih7XG4gIGhpc3RvcnksXG4gIHJvdXRlVHJlZSxcbiAgY29udGV4dFxufTogUm91dGVyT3B0aW9ucykge1xuICBjb25zdCByb3V0ZXIgPSBjcmVhdGVSb3V0ZXJJbnRlcm5hbCh7XG4gICAgcm91dGVUcmVlLFxuICAgIGNvbnRleHQsXG4gICAgdHJhaWxpbmdTbGFzaDogXCJuZXZlclwiLFxuICAgIGNhc2VTZW5zaXRpdmU6IHRydWUsXG4gICAgaGlzdG9yeTogaGlzdG9yeSA9PT0gXCJoYXNoXCIgPyBjcmVhdGVIYXNoSGlzdG9yeSgpIDogY3JlYXRlQnJvd3Nlckhpc3RvcnkoKSxcbiAgICBzZWFyY2g6IHtcbiAgICAgIHN0cmljdDogdHJ1ZVxuICAgIH0sXG4gICAgbm90Rm91bmRNb2RlOiBcInJvb3RcIixcbiAgICBkZWZhdWx0UGVuZGluZ0NvbXBvbmVudDogKCkgPT4gKFxuICAgICAgPExvYWRlclxuICAgICAgICBkZXNjcmlwdGlvbj1cIueOqeWRveWKoOi9veS4rSwg6K+356iN5a6J5Yu/6LqBLi4uXCJcbiAgICAgICAgZGVzY3JpcHRpb25TaXplPXsxOH1cbiAgICAgICAgc2l6ZT17NDh9XG4gICAgICAvPlxuICAgICksXG4gICAgZGVmYXVsdEVycm9yQ29tcG9uZW50OiBFcnJvcixcbiAgICBkZWZhdWx0Tm90Rm91bmRDb21wb25lbnQ6IE5vdEZvdW5kLFxuICAgIGRlZmF1bHRQZW5kaW5nTXM6IDUwMCxcbiAgICBkZWZhdWx0UGVuZGluZ01pbk1zOiAzMDAsXG4gICAgZGVmYXVsdFN0cnVjdHVyYWxTaGFyaW5nOiB0cnVlLFxuICAgIGRlZmF1bHRIYXNoU2Nyb2xsSW50b1ZpZXc6IHtcbiAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgYmxvY2s6IFwic3RhcnRcIixcbiAgICAgIGlubGluZTogXCJjZW50ZXJcIlxuICAgIH0sXG4gICAgZGVmYXVsdFByZWxvYWQ6IFwiaW50ZW50XCIsXG4gICAgZGVmYXVsdFByZWxvYWREZWxheTogNTAsXG4gICAgZGVmYXVsdFByZWxvYWRHY1RpbWU6IGRlZmF1bHRHY1RpbWUsXG4gICAgZGVmYXVsdEdjVGltZSxcbiAgICBkZWZhdWx0Vmlld1RyYW5zaXRpb246IGZhbHNlLFxuICAgIGFzeW5jIGRlZmF1bHRPbkNhdGNoKGVycm9yKSB7XG4gICAgICBjb25zdCBzdGFjayA9IGF3YWl0IGdldFNhbml0aXplZEVycm9yU3RhY2soZXJyb3IpO1xuICAgICAgc2hvd0Vycm9yTm90aWZpY2F0aW9uKFxuICAgICAgICAoXG4gICAgICAgICAgPHByZSBjc3M9e3sgd2hpdGVTcGFjZTogXCJwcmUtd3JhcFwiIH19PlxuICAgICAgICAgICAge3N0YWNrfVxuICAgICAgICAgIDwvcHJlPlxuICAgICAgICApLFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLnN1YnNjcmliZShcIm9uQmVmb3JlTG9hZFwiLCAoeyBwYXRoQ2hhbmdlZCB9KSA9PiB7XG4gICAgaWYgKHBhdGhDaGFuZ2VkKSB7XG4gICAgICBuUHJvZ3Jlc3NFdmVudEVtaXR0ZXIuZW1pdChcInN0YXJ0XCIpO1xuICAgIH1cbiAgfSk7XG4gIHJvdXRlci5zdWJzY3JpYmUoXCJvbkxvYWRcIiwgKCkgPT4gblByb2dyZXNzRXZlbnRFbWl0dGVyLmVtaXQoXCJjb21wbGV0ZVwiKSk7XG5cbiAgcm91dGVyLnN1YnNjcmliZShcIm9uTG9hZFwiLCBldmVudCA9PiB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBldmVudC50b0xvY2F0aW9uO1xuICAgIGNvbnN0IHtcbiAgICAgIGZ1bGxQYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgc2VhcmNoLFxuICAgICAgY29udGV4dFxuICAgIH0gPSByb3V0ZXJcbiAgICAgIC5tYXRjaFJvdXRlcyhcbiAgICAgICAgbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIGxvY2F0aW9uLnNlYXJjaCxcbiAgICAgICAge1xuICAgICAgICAgIHByZWxvYWQ6IGZhbHNlLFxuICAgICAgICAgIHRocm93T25FcnJvcjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLmF0KC0xKSE7XG5cbiAgICBjb25zdCB7IHVzZXJNZW51TWFwIH0gPSB1c2VBcHBTdG9yZS5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHsgYWRkVGFiLCBzZXRBY3RpdmVUYWJJZCB9ID0gdXNlVGFiU3RvcmUuZ2V0U3RhdGUoKTtcblxuICAgIGNvbnN0IGlkID0gYCR7ZnVsbFBhdGh9fCR7aGFzaEtleShzZWFyY2gpfXwke2hhc2hLZXkocGFyYW1zKX1gO1xuICAgIGNvbnN0IHVzZXJNZW51ID0gdXNlck1lbnVNYXA/LmdldChmdWxsUGF0aCk7XG5cbiAgICBpZiAodXNlck1lbnUpIHtcbiAgICAgIGFkZFRhYih7XG4gICAgICAgIGlkLFxuICAgICAgICBmdWxsUGF0aCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGxhYmVsOiBjb250ZXh0LnRpdGxlIHx8IHVzZXJNZW51Lm5hbWVcbiAgICAgIH0pO1xuICAgICAgc2V0QWN0aXZlVGFiSWQoaWQpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcjtcbn1cbiJdfQ== */",
24
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
25
+ };
26
+ function createRouter({
27
+ history,
28
+ routeTree,
29
+ context
30
+ }) {
31
+ const router = createRouter$1({
32
+ routeTree,
33
+ context,
34
+ trailingSlash: "never",
35
+ caseSensitive: true,
36
+ history: history === "hash" ? createHashHistory() : createBrowserHistory(),
37
+ search: {
38
+ strict: true
39
+ },
40
+ notFoundMode: "root",
41
+ defaultPendingComponent: () => /* @__PURE__ */ jsx(Loader, { description: "玩命加载中, 请稍安勿躁...", descriptionSize: 18, size: 48 }),
42
+ defaultErrorComponent: Error,
43
+ defaultNotFoundComponent: NotFound,
44
+ defaultPendingMs: 500,
45
+ defaultPendingMinMs: 300,
46
+ defaultStructuralSharing: true,
47
+ defaultHashScrollIntoView: {
48
+ behavior: "smooth",
49
+ block: "start",
50
+ inline: "center"
51
+ },
52
+ defaultPreload: "intent",
53
+ defaultPreloadDelay: 50,
54
+ defaultPreloadGcTime: defaultGcTime,
55
+ defaultGcTime,
56
+ defaultViewTransition: false,
57
+ async defaultOnCatch(error) {
58
+ const stack = await getSanitizedErrorStack(error);
59
+ showErrorNotification(/* @__PURE__ */ jsx("pre", { css: _ref, children: stack }), {
60
+ title: error.message || error.name
61
+ });
62
+ }
63
+ });
64
+ router.subscribe("onBeforeLoad", ({
65
+ pathChanged
66
+ }) => {
67
+ if (pathChanged) {
68
+ nProgressEventEmitter.emit("start");
69
+ }
70
+ });
71
+ router.subscribe("onLoad", () => nProgressEventEmitter.emit("complete"));
72
+ router.subscribe("onLoad", (event) => {
73
+ const location = event.toLocation;
74
+ const {
75
+ fullPath,
76
+ params,
77
+ search,
78
+ context: context2
79
+ } = router.matchRoutes(location.pathname, location.search, {
80
+ preload: false,
81
+ throwOnError: false
82
+ }).at(-1);
83
+ const {
84
+ userMenuMap
85
+ } = useAppStore.getState();
86
+ const {
87
+ addTab,
88
+ setActiveTabId
89
+ } = useTabStore.getState();
90
+ const id = `${fullPath}|${hashKey(search)}|${hashKey(params)}`;
91
+ const userMenu = userMenuMap?.get(fullPath);
92
+ if (userMenu) {
93
+ addTab({
94
+ id,
95
+ fullPath,
96
+ params,
97
+ search,
98
+ label: context2.title || userMenu.name
99
+ });
100
+ setActiveTabId(id);
101
+ }
102
+ });
103
+ return router;
104
+ }
105
+
106
+ export { createRouter };