livemark 0.24.1 → 0.26.0

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 (397) hide show
  1. package/README.md +3 -2
  2. package/build/actions/config/define.d.ts +6 -0
  3. package/build/actions/config/define.unit.js +8 -1
  4. package/build/actions/escape/copy.d.ts +11 -0
  5. package/build/actions/escape/copy.js +29 -0
  6. package/build/actions/escape/copy.unit.d.ts +1 -0
  7. package/build/actions/escape/copy.unit.js +37 -0
  8. package/build/actions/escape/list.d.ts +12 -0
  9. package/build/actions/escape/list.js +27 -0
  10. package/build/actions/escape/list.unit.d.ts +1 -0
  11. package/build/actions/escape/list.unit.js +36 -0
  12. package/build/actions/target/build.d.ts +9 -26
  13. package/build/actions/target/build.js +50 -71
  14. package/build/actions/target/build.unit.d.ts +1 -0
  15. package/build/actions/target/build.unit.js +76 -0
  16. package/build/actions/target/clear.d.ts +4 -0
  17. package/build/actions/target/clear.js +14 -0
  18. package/build/actions/target/clear.unit.d.ts +1 -0
  19. package/build/actions/target/clear.unit.js +23 -0
  20. package/build/commands/build.js +1 -2
  21. package/build/commands/clear.d.ts +5 -0
  22. package/build/commands/clear.js +15 -0
  23. package/build/commands/escape.d.ts +4 -3
  24. package/build/commands/escape.js +45 -48
  25. package/build/commands/preview.js +1 -2
  26. package/build/commands/start.js +1 -2
  27. package/build/components/Abbr.d.ts +1 -1
  28. package/build/components/Abbr.js +2 -4
  29. package/build/components/AnsiCode.d.ts +1 -1
  30. package/build/components/AnsiCode.js +2 -2
  31. package/build/components/Article.d.ts +2 -1
  32. package/build/components/Article.js +7 -14
  33. package/build/components/BackToTop.d.ts +1 -1
  34. package/build/components/Banner.d.ts +2 -2
  35. package/build/components/Banner.js +7 -3
  36. package/build/components/BlogIndex.d.ts +1 -1
  37. package/build/components/BlogIndex.js +2 -11
  38. package/build/components/Breadcrumbs.d.ts +1 -1
  39. package/build/components/Breadcrumbs.js +2 -3
  40. package/build/components/Callout.d.ts +1 -1
  41. package/build/components/Callout.js +5 -9
  42. package/build/components/Card.d.ts +1 -1
  43. package/build/components/Card.js +2 -3
  44. package/build/components/Cards.d.ts +1 -1
  45. package/build/components/ChangelogIndex.d.ts +1 -1
  46. package/build/components/ChangelogIndex.js +2 -11
  47. package/build/components/ChoiceList.d.ts +15 -0
  48. package/build/components/ChoiceList.js +13 -0
  49. package/build/components/CodeBlock.d.ts +1 -1
  50. package/build/components/CodeBlock.js +3 -16
  51. package/build/components/CodeTabs.d.ts +1 -1
  52. package/build/components/CodeTabs.js +2 -3
  53. package/build/components/Column.d.ts +1 -1
  54. package/build/components/Columns.d.ts +1 -1
  55. package/build/components/Content.d.ts +1 -1
  56. package/build/components/ContentTab.d.ts +1 -1
  57. package/build/components/ContentTabs.d.ts +1 -1
  58. package/build/components/ContentTabs.js +2 -3
  59. package/build/components/DefaultCatchBoundary.d.ts +1 -1
  60. package/build/components/DefaultCatchBoundary.js +5 -7
  61. package/build/components/DefinitionList.d.ts +3 -3
  62. package/build/components/Details.d.ts +1 -1
  63. package/build/components/Details.js +2 -5
  64. package/build/components/FileTree.d.ts +1 -1
  65. package/build/components/FileTree.js +3 -5
  66. package/build/components/Footer.d.ts +1 -1
  67. package/build/components/Footer.js +2 -5
  68. package/build/components/FootnoteRef.d.ts +1 -1
  69. package/build/components/FootnoteRef.js +2 -4
  70. package/build/components/Header.d.ts +6 -0
  71. package/build/components/Header.js +26 -0
  72. package/build/components/HeaderMenu.d.ts +2 -0
  73. package/build/components/HeaderMenu.js +27 -0
  74. package/build/components/HeaderNav.d.ts +6 -0
  75. package/build/components/HeaderNav.js +74 -0
  76. package/build/components/HeaderSearch.d.ts +4 -0
  77. package/build/components/HeaderSearch.js +33 -0
  78. package/build/components/Heading.d.ts +6 -6
  79. package/build/components/InlineBadge.d.ts +2 -2
  80. package/build/components/InlineBadge.js +1 -1
  81. package/build/components/InlineIcon.d.ts +1 -1
  82. package/build/components/InlineToc.d.ts +1 -1
  83. package/build/components/InlineToc.js +2 -4
  84. package/build/components/Layout.d.ts +2 -1
  85. package/build/components/Layout.js +5 -58
  86. package/build/components/LinkButton.d.ts +2 -2
  87. package/build/components/LinkButton.js +1 -1
  88. package/build/components/MenuSheet.d.ts +22 -0
  89. package/build/components/MenuSheet.js +27 -0
  90. package/build/components/Mermaid.d.ts +1 -1
  91. package/build/components/MermaidRenderer.d.ts +1 -1
  92. package/build/components/MermaidRenderer.js +20 -8
  93. package/build/components/NotFound.d.ts +1 -1
  94. package/build/components/NotFound.js +3 -6
  95. package/build/components/PackageTabs.d.ts +1 -1
  96. package/build/components/PackageTabs.js +3 -7
  97. package/build/components/PageToolbar.d.ts +1 -1
  98. package/build/components/PageToolbar.js +2 -10
  99. package/build/components/PrevNext.d.ts +1 -1
  100. package/build/components/PrevNext.js +2 -10
  101. package/build/components/Root.d.ts +4 -0
  102. package/build/components/Root.js +8 -0
  103. package/build/components/Search.d.ts +5 -2
  104. package/build/components/Search.js +11 -9
  105. package/build/components/SearchDialog.d.ts +1 -1
  106. package/build/components/SearchDialog.js +10 -133
  107. package/build/components/Section.d.ts +1 -1
  108. package/build/components/SectionHeader.d.ts +1 -1
  109. package/build/components/SheetPanel.d.ts +12 -0
  110. package/build/components/SheetPanel.js +19 -0
  111. package/build/components/Sidebar.d.ts +1 -1
  112. package/build/components/Sidebar.js +12 -14
  113. package/build/components/SidebarArticles.d.ts +4 -1
  114. package/build/components/SidebarArticles.js +5 -9
  115. package/build/components/SidebarLinks.d.ts +4 -1
  116. package/build/components/SidebarLinks.js +6 -9
  117. package/build/components/SidebarPosts.d.ts +4 -1
  118. package/build/components/SidebarPosts.js +7 -23
  119. package/build/components/SidebarReleases.d.ts +4 -1
  120. package/build/components/SidebarReleases.js +5 -15
  121. package/build/components/SidebarSectionPicker.d.ts +8 -0
  122. package/build/components/SidebarSectionPicker.js +31 -0
  123. package/build/components/SidebarSections.d.ts +1 -1
  124. package/build/components/SidebarSections.js +5 -9
  125. package/build/components/SiteLink.d.ts +1 -1
  126. package/build/components/SiteTitle.d.ts +1 -1
  127. package/build/components/SiteTitle.js +2 -6
  128. package/build/components/SortableTable.d.ts +1 -1
  129. package/build/components/SoundCloud.d.ts +1 -1
  130. package/build/components/SoundCloud.js +2 -2
  131. package/build/components/TagIndex.d.ts +1 -1
  132. package/build/components/TagIndex.js +2 -11
  133. package/build/components/Theme.d.ts +2 -1
  134. package/build/components/Theme.js +35 -15
  135. package/build/components/Toc.d.ts +5 -4
  136. package/build/components/Toc.js +35 -35
  137. package/build/components/YouTube.d.ts +1 -1
  138. package/build/components/YouTube.js +2 -2
  139. package/build/components/ZoomImage.d.ts +1 -1
  140. package/build/content-collections.js +5 -1
  141. package/build/elements/accordion.d.ts +4 -4
  142. package/build/elements/accordion.js +2 -3
  143. package/build/elements/alert-dialog.d.ts +12 -12
  144. package/build/elements/alert-dialog.js +2 -4
  145. package/build/elements/alert.d.ts +4 -4
  146. package/build/elements/alert.js +2 -2
  147. package/build/elements/aspect-ratio.d.ts +1 -1
  148. package/build/elements/avatar.d.ts +6 -6
  149. package/build/elements/badge.d.ts +1 -1
  150. package/build/elements/badge.js +3 -1
  151. package/build/elements/breadcrumb.d.ts +6 -6
  152. package/build/elements/breadcrumb.js +2 -4
  153. package/build/elements/button-group.d.ts +2 -2
  154. package/build/elements/button-group.js +5 -5
  155. package/build/elements/button.d.ts +2 -2
  156. package/build/elements/button.js +9 -7
  157. package/build/elements/calendar.d.ts +2 -2
  158. package/build/elements/calendar.js +2 -2
  159. package/build/elements/card.d.ts +7 -7
  160. package/build/elements/card.js +4 -4
  161. package/build/elements/carousel.d.ts +5 -5
  162. package/build/elements/carousel.js +3 -7
  163. package/build/elements/chart.d.ts +6 -6
  164. package/build/elements/chart.js +5 -11
  165. package/build/elements/checkbox.d.ts +1 -1
  166. package/build/elements/collapsible.d.ts +3 -3
  167. package/build/elements/command.d.ts +9 -9
  168. package/build/elements/command.js +5 -11
  169. package/build/elements/context-menu.d.ts +15 -15
  170. package/build/elements/context-menu.js +6 -9
  171. package/build/elements/dialog.d.ts +10 -10
  172. package/build/elements/dialog.js +2 -6
  173. package/build/elements/drawer.d.ts +14 -12
  174. package/build/elements/drawer.js +14 -15
  175. package/build/elements/dropdown-menu.d.ts +15 -15
  176. package/build/elements/dropdown-menu.js +7 -10
  177. package/build/elements/empty.d.ts +6 -6
  178. package/build/elements/empty.js +2 -2
  179. package/build/elements/field.d.ts +10 -10
  180. package/build/elements/field.js +3 -4
  181. package/build/elements/hover-card.d.ts +3 -3
  182. package/build/elements/hover-card.js +2 -2
  183. package/build/elements/input-group.d.ts +7 -7
  184. package/build/elements/input-group.js +5 -5
  185. package/build/elements/input-otp.d.ts +4 -4
  186. package/build/elements/input.d.ts +1 -1
  187. package/build/elements/input.js +2 -2
  188. package/build/elements/item.d.ts +9 -9
  189. package/build/elements/item.js +2 -2
  190. package/build/elements/kbd.d.ts +2 -2
  191. package/build/elements/label.d.ts +1 -1
  192. package/build/elements/menubar.d.ts +16 -16
  193. package/build/elements/menubar.js +9 -11
  194. package/build/elements/native-select.d.ts +3 -3
  195. package/build/elements/native-select.js +2 -4
  196. package/build/elements/navigation-menu.d.ts +8 -8
  197. package/build/elements/navigation-menu.js +3 -5
  198. package/build/elements/pagination.d.ts +7 -7
  199. package/build/elements/pagination.js +4 -10
  200. package/build/elements/popover.d.ts +6 -6
  201. package/build/elements/popover.js +2 -2
  202. package/build/elements/progress.d.ts +5 -5
  203. package/build/elements/progress.js +2 -3
  204. package/build/elements/radio-group.d.ts +2 -2
  205. package/build/elements/resizable.d.ts +3 -3
  206. package/build/elements/scroll-area.d.ts +2 -2
  207. package/build/elements/scroll-area.js +2 -4
  208. package/build/elements/select.d.ts +9 -9
  209. package/build/elements/select.js +4 -9
  210. package/build/elements/separator.d.ts +1 -1
  211. package/build/elements/sheet.d.ts +8 -8
  212. package/build/elements/sheet.js +2 -6
  213. package/build/elements/sidebar.d.ts +19 -19
  214. package/build/elements/sidebar.js +15 -37
  215. package/build/elements/skeleton.d.ts +1 -1
  216. package/build/elements/slider.d.ts +2 -1
  217. package/build/elements/slider.js +2 -3
  218. package/build/elements/sonner.d.ts +1 -1
  219. package/build/elements/spinner.d.ts +1 -1
  220. package/build/elements/switch.d.ts +1 -1
  221. package/build/elements/table.d.ts +8 -8
  222. package/build/elements/tabs.d.ts +4 -4
  223. package/build/elements/tabs.js +3 -3
  224. package/build/elements/textarea.d.ts +1 -1
  225. package/build/elements/textarea.js +2 -2
  226. package/build/elements/toggle-group.d.ts +3 -2
  227. package/build/elements/toggle-group.js +3 -3
  228. package/build/elements/toggle.d.ts +1 -1
  229. package/build/elements/toggle.js +2 -2
  230. package/build/elements/tooltip.d.ts +4 -4
  231. package/build/elements/tooltip.js +2 -3
  232. package/build/head.d.ts +4 -0
  233. package/build/head.js +6 -0
  234. package/build/helpers/article-search.d.ts +19 -0
  235. package/build/helpers/article-search.js +134 -0
  236. package/build/helpers/dependency-dir.d.ts +5 -0
  237. package/build/helpers/dependency-dir.js +20 -0
  238. package/build/helpers/dependency-dir.unit.d.ts +1 -0
  239. package/build/helpers/dependency-dir.unit.js +25 -0
  240. package/build/helpers/dynamic-icon-resolver.d.ts +1 -1
  241. package/build/helpers/dynamic-icon.d.ts +1 -1
  242. package/build/helpers/head.d.ts +53 -0
  243. package/build/helpers/head.js +69 -0
  244. package/build/helpers/head.unit.d.ts +1 -0
  245. package/build/helpers/head.unit.js +108 -0
  246. package/build/helpers/nav-items.d.ts +11 -0
  247. package/build/helpers/nav-items.js +65 -0
  248. package/build/helpers/render-inline-markdown.d.ts +1 -0
  249. package/build/helpers/render-inline-markdown.js +34 -0
  250. package/build/helpers/render-inline-markdown.unit.d.ts +1 -0
  251. package/build/helpers/render-inline-markdown.unit.js +20 -0
  252. package/build/helpers/search-highlight.d.ts +8 -0
  253. package/build/helpers/search-highlight.js +59 -0
  254. package/build/helpers/search-highlight.unit.d.ts +1 -0
  255. package/build/helpers/search-highlight.unit.js +36 -0
  256. package/build/helpers/target-export.d.ts +9 -0
  257. package/build/helpers/target-export.js +24 -0
  258. package/build/helpers/target-export.unit.d.ts +1 -0
  259. package/build/helpers/target-export.unit.js +25 -0
  260. package/build/helpers/theme.d.ts +6 -2
  261. package/build/helpers/theme.js +40 -7
  262. package/build/helpers/theme.unit.d.ts +1 -0
  263. package/build/helpers/theme.unit.js +30 -0
  264. package/build/hooks/hydrated.d.ts +2 -0
  265. package/build/hooks/hydrated.js +15 -0
  266. package/build/index.d.ts +1 -0
  267. package/build/index.js +1 -1
  268. package/build/models/config.d.ts +32 -6
  269. package/build/models/config.js +10 -1
  270. package/build/models/section.d.ts +4 -2
  271. package/build/models/section.js +1 -1
  272. package/build/plugins/vite-livemark.d.ts +4 -5
  273. package/build/plugins/vite-livemark.js +56 -90
  274. package/build/program.js +4 -2
  275. package/build/routes/$.d.ts +4 -1
  276. package/build/routes/$.js +20 -9
  277. package/build/routes/__root.js +29 -63
  278. package/build/settings.js +2 -1
  279. package/package.json +68 -66
  280. package/{.agents/skills → skills}/livemark-authoring/SKILL.md +2 -2
  281. package/{.agents/skills → skills}/livemark-configuration/SKILL.md +12 -5
  282. package/skills/livemark-customization/SKILL.md +145 -0
  283. package/source/actions/config/define.unit.ts +9 -0
  284. package/source/actions/escape/copy.ts +35 -0
  285. package/source/actions/escape/copy.unit.ts +51 -0
  286. package/source/actions/escape/list.ts +30 -0
  287. package/source/actions/escape/list.unit.ts +42 -0
  288. package/source/actions/target/build.ts +49 -69
  289. package/source/actions/target/build.unit.ts +95 -0
  290. package/source/actions/target/clear.ts +14 -0
  291. package/source/actions/target/clear.unit.ts +25 -0
  292. package/source/commands/build.ts +0 -1
  293. package/source/commands/clear.ts +15 -0
  294. package/source/commands/escape.ts +42 -59
  295. package/source/commands/preview.ts +0 -1
  296. package/source/commands/start.ts +0 -1
  297. package/source/components/AnsiCode.tsx +1 -1
  298. package/source/components/Article.tsx +8 -4
  299. package/source/components/Banner.tsx +12 -2
  300. package/source/components/BlogIndex.tsx +1 -1
  301. package/source/components/Callout.tsx +4 -6
  302. package/source/components/ChangelogIndex.tsx +1 -1
  303. package/source/components/ChoiceList.tsx +69 -0
  304. package/source/components/CodeBlock.tsx +6 -6
  305. package/source/components/CodeTabs.tsx +1 -1
  306. package/source/components/ContentTabs.tsx +1 -1
  307. package/source/components/DefaultCatchBoundary.tsx +4 -6
  308. package/source/components/Details.tsx +1 -1
  309. package/source/components/FileTree.tsx +1 -1
  310. package/source/components/Header.tsx +52 -0
  311. package/source/components/HeaderMenu.tsx +41 -0
  312. package/source/components/HeaderNav.tsx +145 -0
  313. package/source/components/HeaderSearch.tsx +77 -0
  314. package/source/components/InlineBadge.tsx +1 -1
  315. package/source/components/InlineToc.tsx +1 -1
  316. package/source/components/Layout.tsx +16 -160
  317. package/source/components/LinkButton.tsx +9 -1
  318. package/source/components/MenuSheet.tsx +92 -0
  319. package/source/components/MermaidRenderer.tsx +19 -8
  320. package/source/components/NotFound.tsx +3 -5
  321. package/source/components/PackageTabs.tsx +2 -2
  322. package/source/components/PageToolbar.tsx +11 -3
  323. package/source/components/PrevNext.tsx +2 -2
  324. package/source/components/Root.tsx +13 -0
  325. package/source/components/Search.tsx +28 -8
  326. package/source/components/SearchDialog.tsx +15 -189
  327. package/source/components/SheetPanel.tsx +69 -0
  328. package/source/components/Sidebar.tsx +27 -14
  329. package/source/components/SidebarArticles.tsx +4 -3
  330. package/source/components/SidebarLinks.tsx +3 -2
  331. package/source/components/SidebarPosts.tsx +3 -2
  332. package/source/components/SidebarReleases.tsx +3 -2
  333. package/source/components/SidebarSectionPicker.tsx +70 -0
  334. package/source/components/SiteTitle.tsx +5 -5
  335. package/source/components/SoundCloud.tsx +1 -1
  336. package/source/components/TagIndex.tsx +1 -1
  337. package/source/components/Theme.tsx +55 -29
  338. package/source/components/Toc.tsx +76 -55
  339. package/source/components/YouTube.tsx +1 -1
  340. package/source/content-collections.ts +4 -0
  341. package/source/elements/alert-dialog.tsx +1 -1
  342. package/source/elements/alert.tsx +1 -1
  343. package/source/elements/badge.tsx +4 -0
  344. package/source/elements/button-group.tsx +4 -4
  345. package/source/elements/button.tsx +10 -6
  346. package/source/elements/calendar.tsx +1 -1
  347. package/source/elements/card.tsx +3 -3
  348. package/source/elements/command.tsx +7 -4
  349. package/source/elements/context-menu.tsx +5 -5
  350. package/source/elements/dialog.tsx +1 -1
  351. package/source/elements/drawer.tsx +59 -43
  352. package/source/elements/dropdown-menu.tsx +6 -6
  353. package/source/elements/empty.tsx +1 -1
  354. package/source/elements/field.tsx +1 -1
  355. package/source/elements/hover-card.tsx +1 -1
  356. package/source/elements/input-group.tsx +4 -4
  357. package/source/elements/input.tsx +1 -1
  358. package/source/elements/item.tsx +1 -1
  359. package/source/elements/menubar.tsx +8 -8
  360. package/source/elements/native-select.tsx +1 -1
  361. package/source/elements/popover.tsx +1 -1
  362. package/source/elements/select.tsx +3 -3
  363. package/source/elements/sidebar.tsx +8 -21
  364. package/source/elements/tabs.tsx +2 -2
  365. package/source/elements/textarea.tsx +1 -1
  366. package/source/elements/toggle-group.tsx +2 -2
  367. package/source/elements/toggle.tsx +1 -1
  368. package/source/env.d.ts +1 -0
  369. package/source/head.ts +7 -0
  370. package/source/helpers/article-search.tsx +192 -0
  371. package/source/helpers/dependency-dir.ts +20 -0
  372. package/source/helpers/dependency-dir.unit.ts +39 -0
  373. package/source/helpers/head.ts +94 -0
  374. package/source/helpers/head.unit.ts +116 -0
  375. package/source/helpers/nav-items.tsx +102 -0
  376. package/source/helpers/render-inline-markdown.ts +44 -0
  377. package/source/helpers/render-inline-markdown.unit.ts +30 -0
  378. package/source/helpers/search-highlight.ts +73 -0
  379. package/source/helpers/search-highlight.unit.ts +42 -0
  380. package/source/helpers/target-export.ts +28 -0
  381. package/source/helpers/target-export.unit.ts +37 -0
  382. package/source/helpers/theme.ts +40 -6
  383. package/source/helpers/theme.unit.ts +32 -0
  384. package/source/hooks/hydrated.ts +18 -0
  385. package/source/index.ts +1 -0
  386. package/source/models/config.ts +13 -0
  387. package/source/models/section.ts +3 -0
  388. package/source/plugins/vite-livemark.ts +54 -95
  389. package/source/program.ts +2 -0
  390. package/source/routes/$.tsx +27 -9
  391. package/source/routes/__root.tsx +51 -71
  392. package/source/settings.ts +1 -0
  393. package/source/styles/general.css +59 -11
  394. package/source/styles/markdown.css +13 -7
  395. package/source/styles/shape.css +14 -0
  396. package/.agents/skills/change-review/SKILL.md +0 -47
  397. package/.agents/skills/livemark-customization/SKILL.md +0 -118
@@ -19,11 +19,7 @@ function SheetOverlay({ className, ...props }) {
19
19
  return (_jsx(SheetPrimitive.Backdrop, { "data-slot": "sheet-overlay", className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className), ...props }));
20
20
  }
21
21
  function SheetContent({ className, children, side = "right", showCloseButton = true, ...props }) {
22
- return (_jsxs(SheetPortal, { children: [
23
- _jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Popup, { "data-slot": "sheet-content", "data-side": side, className: cn("bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", className), ...props, children: [children, showCloseButton && (_jsxs(SheetPrimitive.Close, { "data-slot": "sheet-close", render: _jsx(Button, { variant: "ghost", className: "absolute top-4 right-4", size: "icon-sm" }), children: [
24
- _jsx(XIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })
25
- ] }))] })
26
- ] }));
22
+ return (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Popup, { "data-slot": "sheet-content", "data-side": side, className: cn("bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", className), ...props, children: [children, showCloseButton && (_jsxs(SheetPrimitive.Close, { "data-slot": "sheet-close", render: _jsx(Button, { variant: "ghost", className: "absolute top-4 right-4", size: "icon-sm" }), children: [_jsx(XIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })] }))] })] }));
27
23
  }
28
24
  function SheetHeader({ className, ...props }) {
29
25
  return (_jsx("div", { "data-slot": "sheet-header", className: cn("gap-1.5 p-4 flex flex-col", className), ...props }));
@@ -38,4 +34,4 @@ function SheetDescription({ className, ...props }) {
38
34
  return (_jsx(SheetPrimitive.Description, { "data-slot": "sheet-description", className: cn("text-muted-foreground text-sm", className), ...props }));
39
35
  }
40
36
  export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZWxlbWVudHMvc2hlZXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBRXJDLFNBQVMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQTZCO0lBQ3BELE9BQU8sS0FBQyxjQUFjLENBQUMsSUFBSSxpQkFBVyxPQUFPLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQWdDO0lBQzlELE9BQU8sS0FBQyxjQUFjLENBQUMsT0FBTyxpQkFBVyxlQUFlLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDeEUsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQThCO0lBQzFELE9BQU8sS0FBQyxjQUFjLENBQUMsS0FBSyxpQkFBVyxhQUFhLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDcEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQStCO0lBQzVELE9BQU8sS0FBQyxjQUFjLENBQUMsTUFBTSxpQkFBVyxjQUFjLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDdEUsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFpQztJQUMxRSxPQUFPLENBQ0wsS0FBQyxjQUFjLENBQUMsUUFBUSxpQkFDWixlQUFlLEVBQ3pCLFNBQVMsRUFBRSxFQUFFLENBQ1gseU9BQXlPLEVBQ3pPLFNBQVMsQ0FDVixLQUNHLEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsRUFDcEIsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEdBQUcsT0FBTyxFQUNkLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLEdBQUcsS0FBSyxFQUlUO0lBQ0MsT0FBTyxDQUNMLE1BQUMsV0FBVztZQUNWLEtBQUMsWUFBWSxLQUFHLEVBQ2hCLE1BQUMsY0FBYyxDQUFDLEtBQUssaUJBQ1QsZUFBZSxlQUNkLElBQUksRUFDZixTQUFTLEVBQUUsRUFBRSxDQUNYLHdtQ0FBd21DLEVBQ3htQyxTQUFTLENBQ1YsS0FDRyxLQUFLLGFBRVIsUUFBUSxFQUNSLGVBQWUsSUFBSSxDQUNsQixNQUFDLGNBQWMsQ0FBQyxLQUFLLGlCQUNULGFBQWEsRUFDdkIsTUFBTSxFQUNKLEtBQUMsTUFBTSxJQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLHdCQUF3QixFQUFDLElBQUksRUFBQyxTQUFTLEdBQUc7NEJBRzlFLEtBQUMsS0FBSyxLQUFHLEVBQ1QsZUFBTSxTQUFTLEVBQUMsU0FBUyxzQkFBYTs0QkFDakIsQ0FDeEIsSUFDb0I7WUFDWCxDQUNmLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQStCO0lBQ3ZFLE9BQU8sQ0FDTCwyQkFDWSxjQUFjLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLEtBQ2pELEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQStCO0lBQ3ZFLE9BQU8sQ0FDTCwyQkFDWSxjQUFjLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLENBQUMsaUNBQWlDLEVBQUUsU0FBUyxDQUFDLEtBQ3ZELEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQThCO0lBQ3JFLE9BQU8sQ0FDTCxLQUFDLGNBQWMsQ0FBQyxLQUFLLGlCQUNULGFBQWEsRUFDdkIsU0FBUyxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxTQUFTLENBQUMsS0FDbkQsS0FBSyxHQUNULENBQ0gsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFvQztJQUNqRixPQUFPLENBQ0wsS0FBQyxjQUFjLENBQUMsV0FBVyxpQkFDZixtQkFBbUIsRUFDN0IsU0FBUyxFQUFFLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsS0FDckQsS0FBSyxHQUNULENBQ0gsQ0FBQTtBQUNILENBQUM7QUFFRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nIGFzIFNoZWV0UHJpbWl0aXZlIH0gZnJvbSBcIkBiYXNlLXVpL3JlYWN0L2RpYWxvZ1wiXG5pbXBvcnQgeyBYSWNvbiB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgY24gfSBmcm9tIFwiY25cIlxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uLnRzeFwiXG5cbmZ1bmN0aW9uIFNoZWV0KHsgLi4ucHJvcHMgfTogU2hlZXRQcmltaXRpdmUuUm9vdC5Qcm9wcykge1xuICByZXR1cm4gPFNoZWV0UHJpbWl0aXZlLlJvb3QgZGF0YS1zbG90PVwic2hlZXRcIiB7Li4ucHJvcHN9IC8+XG59XG5cbmZ1bmN0aW9uIFNoZWV0VHJpZ2dlcih7IC4uLnByb3BzIH06IFNoZWV0UHJpbWl0aXZlLlRyaWdnZXIuUHJvcHMpIHtcbiAgcmV0dXJuIDxTaGVldFByaW1pdGl2ZS5UcmlnZ2VyIGRhdGEtc2xvdD1cInNoZWV0LXRyaWdnZXJcIiB7Li4ucHJvcHN9IC8+XG59XG5cbmZ1bmN0aW9uIFNoZWV0Q2xvc2UoeyAuLi5wcm9wcyB9OiBTaGVldFByaW1pdGl2ZS5DbG9zZS5Qcm9wcykge1xuICByZXR1cm4gPFNoZWV0UHJpbWl0aXZlLkNsb3NlIGRhdGEtc2xvdD1cInNoZWV0LWNsb3NlXCIgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBTaGVldFBvcnRhbCh7IC4uLnByb3BzIH06IFNoZWV0UHJpbWl0aXZlLlBvcnRhbC5Qcm9wcykge1xuICByZXR1cm4gPFNoZWV0UHJpbWl0aXZlLlBvcnRhbCBkYXRhLXNsb3Q9XCJzaGVldC1wb3J0YWxcIiB7Li4ucHJvcHN9IC8+XG59XG5cbmZ1bmN0aW9uIFNoZWV0T3ZlcmxheSh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogU2hlZXRQcmltaXRpdmUuQmFja2Ryb3AuUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8U2hlZXRQcmltaXRpdmUuQmFja2Ryb3BcbiAgICAgIGRhdGEtc2xvdD1cInNoZWV0LW92ZXJsYXlcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJkYXRhLW9wZW46YW5pbWF0ZS1pbiBkYXRhLWNsb3NlZDphbmltYXRlLW91dCBkYXRhLWNsb3NlZDpmYWRlLW91dC0wIGRhdGEtb3BlbjpmYWRlLWluLTAgYmctYmxhY2svMTAgZHVyYXRpb24tMTAwIGRhdGEtZW5kaW5nLXN0eWxlOm9wYWNpdHktMCBkYXRhLXN0YXJ0aW5nLXN0eWxlOm9wYWNpdHktMCBzdXBwb3J0cy1iYWNrZHJvcC1maWx0ZXI6YmFja2Ryb3AtYmx1ci14cyBmaXhlZCBpbnNldC0wIHotNTBcIixcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNoZWV0Q29udGVudCh7XG4gIGNsYXNzTmFtZSxcbiAgY2hpbGRyZW4sXG4gIHNpZGUgPSBcInJpZ2h0XCIsXG4gIHNob3dDbG9zZUJ1dHRvbiA9IHRydWUsXG4gIC4uLnByb3BzXG59OiBTaGVldFByaW1pdGl2ZS5Qb3B1cC5Qcm9wcyAmIHtcbiAgc2lkZT86IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCJcbiAgc2hvd0Nsb3NlQnV0dG9uPzogYm9vbGVhblxufSkge1xuICByZXR1cm4gKFxuICAgIDxTaGVldFBvcnRhbD5cbiAgICAgIDxTaGVldE92ZXJsYXkgLz5cbiAgICAgIDxTaGVldFByaW1pdGl2ZS5Qb3B1cFxuICAgICAgICBkYXRhLXNsb3Q9XCJzaGVldC1jb250ZW50XCJcbiAgICAgICAgZGF0YS1zaWRlPXtzaWRlfVxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiYmctYmFja2dyb3VuZCBkYXRhLW9wZW46YW5pbWF0ZS1pbiBkYXRhLWNsb3NlZDphbmltYXRlLW91dCBkYXRhLVtzaWRlPXJpZ2h0XTpkYXRhLWNsb3NlZDpzbGlkZS1vdXQtdG8tcmlnaHQtMTAgZGF0YS1bc2lkZT1yaWdodF06ZGF0YS1vcGVuOnNsaWRlLWluLWZyb20tcmlnaHQtMTAgZGF0YS1bc2lkZT1sZWZ0XTpkYXRhLWNsb3NlZDpzbGlkZS1vdXQtdG8tbGVmdC0xMCBkYXRhLVtzaWRlPWxlZnRdOmRhdGEtb3BlbjpzbGlkZS1pbi1mcm9tLWxlZnQtMTAgZGF0YS1bc2lkZT10b3BdOmRhdGEtY2xvc2VkOnNsaWRlLW91dC10by10b3AtMTAgZGF0YS1bc2lkZT10b3BdOmRhdGEtb3BlbjpzbGlkZS1pbi1mcm9tLXRvcC0xMCBkYXRhLWNsb3NlZDpmYWRlLW91dC0wIGRhdGEtb3BlbjpmYWRlLWluLTAgZGF0YS1bc2lkZT1ib3R0b21dOmRhdGEtY2xvc2VkOnNsaWRlLW91dC10by1ib3R0b20tMTAgZGF0YS1bc2lkZT1ib3R0b21dOmRhdGEtb3BlbjpzbGlkZS1pbi1mcm9tLWJvdHRvbS0xMCBmaXhlZCB6LTUwIGZsZXggZmxleC1jb2wgZ2FwLTQgYmctY2xpcC1wYWRkaW5nIHRleHQtc20gc2hhZG93LWxnIHRyYW5zaXRpb24gZHVyYXRpb24tMjAwIGVhc2UtaW4tb3V0IGRhdGEtW3NpZGU9Ym90dG9tXTppbnNldC14LTAgZGF0YS1bc2lkZT1ib3R0b21dOmJvdHRvbS0wIGRhdGEtW3NpZGU9Ym90dG9tXTpoLWF1dG8gZGF0YS1bc2lkZT1ib3R0b21dOmJvcmRlci10IGRhdGEtW3NpZGU9bGVmdF06aW5zZXQteS0wIGRhdGEtW3NpZGU9bGVmdF06bGVmdC0wIGRhdGEtW3NpZGU9bGVmdF06aC1mdWxsIGRhdGEtW3NpZGU9bGVmdF06dy0zLzQgZGF0YS1bc2lkZT1sZWZ0XTpib3JkZXItciBkYXRhLVtzaWRlPXJpZ2h0XTppbnNldC15LTAgZGF0YS1bc2lkZT1yaWdodF06cmlnaHQtMCBkYXRhLVtzaWRlPXJpZ2h0XTpoLWZ1bGwgZGF0YS1bc2lkZT1yaWdodF06dy0zLzQgZGF0YS1bc2lkZT1yaWdodF06Ym9yZGVyLWwgZGF0YS1bc2lkZT10b3BdOmluc2V0LXgtMCBkYXRhLVtzaWRlPXRvcF06dG9wLTAgZGF0YS1bc2lkZT10b3BdOmgtYXV0byBkYXRhLVtzaWRlPXRvcF06Ym9yZGVyLWIgZGF0YS1bc2lkZT1sZWZ0XTpzbTptYXgtdy1zbSBkYXRhLVtzaWRlPXJpZ2h0XTpzbTptYXgtdy1zbVwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKX1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtzaG93Q2xvc2VCdXR0b24gJiYgKFxuICAgICAgICAgIDxTaGVldFByaW1pdGl2ZS5DbG9zZVxuICAgICAgICAgICAgZGF0YS1zbG90PVwic2hlZXQtY2xvc2VcIlxuICAgICAgICAgICAgcmVuZGVyPXtcbiAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiZ2hvc3RcIiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtNCByaWdodC00XCIgc2l6ZT1cImljb24tc21cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxYSWNvbiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxuICAgICAgICAgIDwvU2hlZXRQcmltaXRpdmUuQ2xvc2U+XG4gICAgICAgICl9XG4gICAgICA8L1NoZWV0UHJpbWl0aXZlLlBvcHVwPlxuICAgIDwvU2hlZXRQb3J0YWw+XG4gIClcbn1cblxuZnVuY3Rpb24gU2hlZXRIZWFkZXIoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2hlZXQtaGVhZGVyXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJnYXAtMS41IHAtNCBmbGV4IGZsZXgtY29sXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaGVldEZvb3Rlcih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXNsb3Q9XCJzaGVldC1mb290ZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcImdhcC0yIHAtNCBtdC1hdXRvIGZsZXggZmxleC1jb2xcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNoZWV0VGl0bGUoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFNoZWV0UHJpbWl0aXZlLlRpdGxlLlByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPFNoZWV0UHJpbWl0aXZlLlRpdGxlXG4gICAgICBkYXRhLXNsb3Q9XCJzaGVldC10aXRsZVwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaGVldERlc2NyaXB0aW9uKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBTaGVldFByaW1pdGl2ZS5EZXNjcmlwdGlvbi5Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxTaGVldFByaW1pdGl2ZS5EZXNjcmlwdGlvblxuICAgICAgZGF0YS1zbG90PVwic2hlZXQtZGVzY3JpcHRpb25cIlxuICAgICAgY2xhc3NOYW1lPXtjbihcInRleHQtbXV0ZWQtZm9yZWdyb3VuZCB0ZXh0LXNtXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQge1xuICBTaGVldCxcbiAgU2hlZXRUcmlnZ2VyLFxuICBTaGVldENsb3NlLFxuICBTaGVldENvbnRlbnQsXG4gIFNoZWV0SGVhZGVyLFxuICBTaGVldEZvb3RlcixcbiAgU2hlZXRUaXRsZSxcbiAgU2hlZXREZXNjcmlwdGlvbixcbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZWxlbWVudHMvc2hlZXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBRXJDLFNBQVMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQTZCO0lBQ3BELE9BQU8sS0FBQyxjQUFjLENBQUMsSUFBSSxpQkFBVyxPQUFPLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQWdDO0lBQzlELE9BQU8sS0FBQyxjQUFjLENBQUMsT0FBTyxpQkFBVyxlQUFlLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDeEUsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQThCO0lBQzFELE9BQU8sS0FBQyxjQUFjLENBQUMsS0FBSyxpQkFBVyxhQUFhLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDcEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQStCO0lBQzVELE9BQU8sS0FBQyxjQUFjLENBQUMsTUFBTSxpQkFBVyxjQUFjLEtBQUssS0FBSyxHQUFJLENBQUE7QUFDdEUsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFpQztJQUMxRSxPQUFPLENBQ0wsS0FBQyxjQUFjLENBQUMsUUFBUSxpQkFDWixlQUFlLEVBQ3pCLFNBQVMsRUFBRSxFQUFFLENBQ1gseU9BQXlPLEVBQ3pPLFNBQVMsQ0FDVixLQUNHLEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsRUFDcEIsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEdBQUcsT0FBTyxFQUNkLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLEdBQUcsS0FBSyxFQUlUO0lBQ0MsT0FBTyxDQUNMLE1BQUMsV0FBVyxlQUNWLEtBQUMsWUFBWSxLQUFHLEVBQ2hCLE1BQUMsY0FBYyxDQUFDLEtBQUssaUJBQ1QsZUFBZSxlQUNkLElBQUksRUFDZixTQUFTLEVBQUUsRUFBRSxDQUNYLHdtQ0FBd21DLEVBQ3htQyxTQUFTLENBQ1YsS0FDRyxLQUFLLGFBRVIsUUFBUSxFQUNSLGVBQWUsSUFBSSxDQUNsQixNQUFDLGNBQWMsQ0FBQyxLQUFLLGlCQUNULGFBQWEsRUFDdkIsTUFBTSxFQUNKLEtBQUMsTUFBTSxJQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLHdCQUF3QixFQUFDLElBQUksRUFBQyxTQUFTLEdBQUcsYUFHOUUsS0FBQyxLQUFLLEtBQUcsRUFDVCxlQUFNLFNBQVMsRUFBQyxTQUFTLHNCQUFhLElBQ2pCLENBQ3hCLElBQ29CLElBQ1gsQ0FDZixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUErQjtJQUN2RSxPQUFPLENBQ0wsMkJBQ1ksY0FBYyxFQUN4QixTQUFTLEVBQUUsRUFBRSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxLQUNqRCxLQUFLLEdBQ1QsQ0FDSCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUErQjtJQUN2RSxPQUFPLENBQ0wsMkJBQ1ksY0FBYyxFQUN4QixTQUFTLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLFNBQVMsQ0FBQyxLQUN2RCxLQUFLLEdBQ1QsQ0FDSCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUE4QjtJQUNyRSxPQUFPLENBQ0wsS0FBQyxjQUFjLENBQUMsS0FBSyxpQkFDVCxhQUFhLEVBQ3ZCLFNBQVMsRUFBRSxFQUFFLENBQUMsNkJBQTZCLEVBQUUsU0FBUyxDQUFDLEtBQ25ELEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBb0M7SUFDakYsT0FBTyxDQUNMLEtBQUMsY0FBYyxDQUFDLFdBQVcsaUJBQ2YsbUJBQW1CLEVBQzdCLFNBQVMsRUFBRSxFQUFFLENBQUMsK0JBQStCLEVBQUUsU0FBUyxDQUFDLEtBQ3JELEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUNMLEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxFQUNYLFVBQVUsRUFDVixnQkFBZ0IsR0FDakIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZyBhcyBTaGVldFByaW1pdGl2ZSB9IGZyb20gXCJAYmFzZS11aS9yZWFjdC9kaWFsb2dcIlxuaW1wb3J0IHsgWEljb24gfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvbi50c3hcIlxuXG5mdW5jdGlvbiBTaGVldCh7IC4uLnByb3BzIH06IFNoZWV0UHJpbWl0aXZlLlJvb3QuUHJvcHMpIHtcbiAgcmV0dXJuIDxTaGVldFByaW1pdGl2ZS5Sb290IGRhdGEtc2xvdD1cInNoZWV0XCIgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBTaGVldFRyaWdnZXIoeyAuLi5wcm9wcyB9OiBTaGVldFByaW1pdGl2ZS5UcmlnZ2VyLlByb3BzKSB7XG4gIHJldHVybiA8U2hlZXRQcmltaXRpdmUuVHJpZ2dlciBkYXRhLXNsb3Q9XCJzaGVldC10cmlnZ2VyXCIgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBTaGVldENsb3NlKHsgLi4ucHJvcHMgfTogU2hlZXRQcmltaXRpdmUuQ2xvc2UuUHJvcHMpIHtcbiAgcmV0dXJuIDxTaGVldFByaW1pdGl2ZS5DbG9zZSBkYXRhLXNsb3Q9XCJzaGVldC1jbG9zZVwiIHsuLi5wcm9wc30gLz5cbn1cblxuZnVuY3Rpb24gU2hlZXRQb3J0YWwoeyAuLi5wcm9wcyB9OiBTaGVldFByaW1pdGl2ZS5Qb3J0YWwuUHJvcHMpIHtcbiAgcmV0dXJuIDxTaGVldFByaW1pdGl2ZS5Qb3J0YWwgZGF0YS1zbG90PVwic2hlZXQtcG9ydGFsXCIgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBTaGVldE92ZXJsYXkoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFNoZWV0UHJpbWl0aXZlLkJhY2tkcm9wLlByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPFNoZWV0UHJpbWl0aXZlLkJhY2tkcm9wXG4gICAgICBkYXRhLXNsb3Q9XCJzaGVldC1vdmVybGF5XCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZGF0YS1vcGVuOmFuaW1hdGUtaW4gZGF0YS1jbG9zZWQ6YW5pbWF0ZS1vdXQgZGF0YS1jbG9zZWQ6ZmFkZS1vdXQtMCBkYXRhLW9wZW46ZmFkZS1pbi0wIGJnLWJsYWNrLzEwIGR1cmF0aW9uLTEwMCBkYXRhLWVuZGluZy1zdHlsZTpvcGFjaXR5LTAgZGF0YS1zdGFydGluZy1zdHlsZTpvcGFjaXR5LTAgc3VwcG9ydHMtYmFja2Ryb3AtZmlsdGVyOmJhY2tkcm9wLWJsdXIteHMgZml4ZWQgaW5zZXQtMCB6LTUwXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaGVldENvbnRlbnQoe1xuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICBzaWRlID0gXCJyaWdodFwiLFxuICBzaG93Q2xvc2VCdXR0b24gPSB0cnVlLFxuICAuLi5wcm9wc1xufTogU2hlZXRQcmltaXRpdmUuUG9wdXAuUHJvcHMgJiB7XG4gIHNpZGU/OiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiXG4gIHNob3dDbG9zZUJ1dHRvbj86IGJvb2xlYW5cbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8U2hlZXRQb3J0YWw+XG4gICAgICA8U2hlZXRPdmVybGF5IC8+XG4gICAgICA8U2hlZXRQcmltaXRpdmUuUG9wdXBcbiAgICAgICAgZGF0YS1zbG90PVwic2hlZXQtY29udGVudFwiXG4gICAgICAgIGRhdGEtc2lkZT17c2lkZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICBcImJnLWJhY2tncm91bmQgZGF0YS1vcGVuOmFuaW1hdGUtaW4gZGF0YS1jbG9zZWQ6YW5pbWF0ZS1vdXQgZGF0YS1bc2lkZT1yaWdodF06ZGF0YS1jbG9zZWQ6c2xpZGUtb3V0LXRvLXJpZ2h0LTEwIGRhdGEtW3NpZGU9cmlnaHRdOmRhdGEtb3BlbjpzbGlkZS1pbi1mcm9tLXJpZ2h0LTEwIGRhdGEtW3NpZGU9bGVmdF06ZGF0YS1jbG9zZWQ6c2xpZGUtb3V0LXRvLWxlZnQtMTAgZGF0YS1bc2lkZT1sZWZ0XTpkYXRhLW9wZW46c2xpZGUtaW4tZnJvbS1sZWZ0LTEwIGRhdGEtW3NpZGU9dG9wXTpkYXRhLWNsb3NlZDpzbGlkZS1vdXQtdG8tdG9wLTEwIGRhdGEtW3NpZGU9dG9wXTpkYXRhLW9wZW46c2xpZGUtaW4tZnJvbS10b3AtMTAgZGF0YS1jbG9zZWQ6ZmFkZS1vdXQtMCBkYXRhLW9wZW46ZmFkZS1pbi0wIGRhdGEtW3NpZGU9Ym90dG9tXTpkYXRhLWNsb3NlZDpzbGlkZS1vdXQtdG8tYm90dG9tLTEwIGRhdGEtW3NpZGU9Ym90dG9tXTpkYXRhLW9wZW46c2xpZGUtaW4tZnJvbS1ib3R0b20tMTAgZml4ZWQgei01MCBmbGV4IGZsZXgtY29sIGdhcC00IGJnLWNsaXAtcGFkZGluZyB0ZXh0LXNtIHNoYWRvdy1sZyB0cmFuc2l0aW9uIGR1cmF0aW9uLTIwMCBlYXNlLWluLW91dCBkYXRhLVtzaWRlPWJvdHRvbV06aW5zZXQteC0wIGRhdGEtW3NpZGU9Ym90dG9tXTpib3R0b20tMCBkYXRhLVtzaWRlPWJvdHRvbV06aC1hdXRvIGRhdGEtW3NpZGU9Ym90dG9tXTpib3JkZXItdCBkYXRhLVtzaWRlPWxlZnRdOmluc2V0LXktMCBkYXRhLVtzaWRlPWxlZnRdOmxlZnQtMCBkYXRhLVtzaWRlPWxlZnRdOmgtZnVsbCBkYXRhLVtzaWRlPWxlZnRdOnctMy80IGRhdGEtW3NpZGU9bGVmdF06Ym9yZGVyLXIgZGF0YS1bc2lkZT1yaWdodF06aW5zZXQteS0wIGRhdGEtW3NpZGU9cmlnaHRdOnJpZ2h0LTAgZGF0YS1bc2lkZT1yaWdodF06aC1mdWxsIGRhdGEtW3NpZGU9cmlnaHRdOnctMy80IGRhdGEtW3NpZGU9cmlnaHRdOmJvcmRlci1sIGRhdGEtW3NpZGU9dG9wXTppbnNldC14LTAgZGF0YS1bc2lkZT10b3BdOnRvcC0wIGRhdGEtW3NpZGU9dG9wXTpoLWF1dG8gZGF0YS1bc2lkZT10b3BdOmJvcmRlci1iIGRhdGEtW3NpZGU9bGVmdF06c206bWF4LXctc20gZGF0YS1bc2lkZT1yaWdodF06c206bWF4LXctc21cIixcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICl9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7c2hvd0Nsb3NlQnV0dG9uICYmIChcbiAgICAgICAgICA8U2hlZXRQcmltaXRpdmUuQ2xvc2VcbiAgICAgICAgICAgIGRhdGEtc2xvdD1cInNoZWV0LWNsb3NlXCJcbiAgICAgICAgICAgIHJlbmRlcj17XG4gICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImdob3N0XCIgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTQgcmlnaHQtNFwiIHNpemU9XCJpY29uLXNtXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8WEljb24gLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cbiAgICAgICAgICA8L1NoZWV0UHJpbWl0aXZlLkNsb3NlPlxuICAgICAgICApfVxuICAgICAgPC9TaGVldFByaW1pdGl2ZS5Qb3B1cD5cbiAgICA8L1NoZWV0UG9ydGFsPlxuICApXG59XG5cbmZ1bmN0aW9uIFNoZWV0SGVhZGVyKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBSZWFjdC5Db21wb25lbnRQcm9wczxcImRpdlwiPikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtc2xvdD1cInNoZWV0LWhlYWRlclwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiZ2FwLTEuNSBwLTQgZmxleCBmbGV4LWNvbFwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2hlZXRGb290ZXIoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2hlZXQtZm9vdGVyXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJnYXAtMiBwLTQgbXQtYXV0byBmbGV4IGZsZXgtY29sXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaGVldFRpdGxlKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBTaGVldFByaW1pdGl2ZS5UaXRsZS5Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxTaGVldFByaW1pdGl2ZS5UaXRsZVxuICAgICAgZGF0YS1zbG90PVwic2hlZXQtdGl0bGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcInRleHQtZm9yZWdyb3VuZCBmb250LW1lZGl1bVwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2hlZXREZXNjcmlwdGlvbih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogU2hlZXRQcmltaXRpdmUuRGVzY3JpcHRpb24uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8U2hlZXRQcmltaXRpdmUuRGVzY3JpcHRpb25cbiAgICAgIGRhdGEtc2xvdD1cInNoZWV0LWRlc2NyaXB0aW9uXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1zbVwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHtcbiAgU2hlZXQsXG4gIFNoZWV0VHJpZ2dlcixcbiAgU2hlZXRDbG9zZSxcbiAgU2hlZXRDb250ZW50LFxuICBTaGVldEhlYWRlcixcbiAgU2hlZXRGb290ZXIsXG4gIFNoZWV0VGl0bGUsXG4gIFNoZWV0RGVzY3JpcHRpb24sXG59XG4iXX0=
@@ -19,26 +19,26 @@ declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: se
19
19
  defaultOpen?: boolean;
20
20
  open?: boolean;
21
21
  onOpenChange?: (open: boolean) => void;
22
- }): import("react/jsx-runtime").JSX.Element;
22
+ }): React.JSX.Element;
23
23
  declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React.ComponentProps<"div"> & {
24
24
  side?: "left" | "right";
25
25
  variant?: "sidebar" | "floating" | "inset";
26
26
  collapsible?: "offcanvas" | "icon" | "none";
27
- }): import("react/jsx-runtime").JSX.Element;
28
- declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
29
- declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
30
- declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
31
- declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): import("react/jsx-runtime").JSX.Element;
32
- declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
33
- declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
34
- declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
35
- declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
36
- declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
27
+ }): React.JSX.Element;
28
+ declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
29
+ declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): React.JSX.Element;
30
+ declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): React.JSX.Element;
31
+ declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): React.JSX.Element;
32
+ declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
33
+ declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
34
+ declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
35
+ declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
36
+ declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
37
  declare function SidebarGroupLabel({ className, render, ...props }: useRender.ComponentProps<"div"> & React.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
38
38
  declare function SidebarGroupAction({ className, render, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
39
- declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
40
- declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
41
- declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
39
+ declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
40
+ declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
41
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
42
42
  declare const sidebarMenuButtonVariants: (props?: ({
43
43
  variant?: "default" | "outline" | null | undefined;
44
44
  size?: "default" | "lg" | "sm" | null | undefined;
@@ -46,16 +46,16 @@ declare const sidebarMenuButtonVariants: (props?: ({
46
46
  declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
47
47
  isActive?: boolean;
48
48
  tooltip?: string | React.ComponentProps<typeof TooltipContent>;
49
- } & VariantProps<typeof sidebarMenuButtonVariants>): import("react/jsx-runtime").JSX.Element;
49
+ } & VariantProps<typeof sidebarMenuButtonVariants>): React.JSX.Element;
50
50
  declare function SidebarMenuAction({ className, render, showOnHover, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
51
51
  showOnHover?: boolean;
52
52
  }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
53
- declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
53
+ declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
54
54
  declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<"div"> & {
55
55
  showIcon?: boolean;
56
- }): import("react/jsx-runtime").JSX.Element;
57
- declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
58
- declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
56
+ }): React.JSX.Element;
57
+ declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
58
+ declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
59
59
  declare function SidebarMenuSubButton({ render, size, isActive, className, ...props }: useRender.ComponentProps<"a"> & React.ComponentProps<"a"> & {
60
60
  size?: "sm" | "md";
61
61
  isActive?: boolean;
@@ -18,7 +18,6 @@ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
18
18
  const SIDEBAR_WIDTH = "16rem";
19
19
  const SIDEBAR_WIDTH_MOBILE = "18rem";
20
20
  const SIDEBAR_WIDTH_ICON = "3rem";
21
- const SIDEBAR_KEYBOARD_SHORTCUT = "b";
22
21
  const SidebarContext = React.createContext(null);
23
22
  function useSidebar() {
24
23
  const context = React.useContext(SidebarContext);
@@ -52,17 +51,6 @@ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: set
52
51
  const toggleSidebar = React.useCallback(() => {
53
52
  return isMobileNow() ? setOpenMobile(open => !open) : setOpen(open => !open);
54
53
  }, [setOpen, setOpenMobile]);
55
- // Adds a keyboard shortcut to toggle the sidebar.
56
- React.useEffect(() => {
57
- const handleKeyDown = (event) => {
58
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
59
- event.preventDefault();
60
- toggleSidebar();
61
- }
62
- };
63
- window.addEventListener("keydown", handleKeyDown);
64
- return () => window.removeEventListener("keydown", handleKeyDown);
65
- }, [toggleSidebar]);
66
54
  // We add a state so that we can do data-state="expanded" or "collapsed".
67
55
  // This makes it easier to style the sidebar with Tailwind classes.
68
56
  const state = open ? "expanded" : "collapsed";
@@ -89,32 +77,24 @@ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas"
89
77
  if (isMobile) {
90
78
  return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden", style: {
91
79
  "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
92
- }, side: side, children: [
93
- _jsxs(SheetHeader, { className: "sr-only", children: [
94
- _jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })
95
- ] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })
96
- ] }) }));
80
+ }, side: side, children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
97
81
  }
98
- return (_jsxs("div", { className: "group peer text-sidebar-foreground hidden md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [
99
- _jsx("div", { "data-slot": "sidebar-gap", className: cn("transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
82
+ return (_jsxs("div", { className: "group peer text-sidebar-foreground hidden md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [_jsx("div", { "data-slot": "sidebar-gap", className: cn("transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
100
83
  ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
101
- : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { "data-slot": "sidebar-container", className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", side === "left"
102
- ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
103
- : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
84
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { "data-slot": "sidebar-container", className: cn("sticky top-0 z-10 hidden h-svh w-(--sidebar-width) transition-[margin,translate,width] duration-200 ease-linear md:flex", side === "left"
85
+ ? "group-data-[collapsible=offcanvas]:-ml-(--sidebar-width)"
86
+ : "group-data-[collapsible=offcanvas]:-ml-(--sidebar-width) group-data-[collapsible=offcanvas]:translate-x-full",
104
87
  // Adjust the padding for floating and inset variants.
105
88
  variant === "floating" || variant === "inset"
106
89
  ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
107
- : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col", children: children }) })
108
- ] }));
90
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col", children: children }) })] }));
109
91
  }
110
92
  function SidebarTrigger({ className, onClick, ...props }) {
111
93
  const { toggleSidebar } = useSidebar();
112
- return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon-sm", className: cn(className), onClick: event => {
94
+ return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon-sm", "aria-keyshortcuts": "L", className: cn(className), onClick: event => {
113
95
  onClick?.(event);
114
96
  toggleSidebar();
115
- }, ...props, children: [
116
- _jsx(Menu, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
117
- ] }));
97
+ }, ...props, children: [_jsx(Menu, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
118
98
  }
119
99
  function SidebarRail({ className, ...props }) {
120
100
  const { toggleSidebar } = useSidebar();
@@ -158,7 +138,7 @@ function SidebarGroupAction({ className, render, ...props }) {
158
138
  return useRender({
159
139
  defaultTagName: "button",
160
140
  props: mergeProps({
161
- className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden", className),
141
+ className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-control p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden", className),
162
142
  }, props),
163
143
  render,
164
144
  state: {
@@ -176,7 +156,7 @@ function SidebarMenu({ className, ...props }) {
176
156
  function SidebarMenuItem({ className, ...props }) {
177
157
  return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
178
158
  }
179
- const sidebarMenuButtonVariants = cva("ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-primary/2 dark:data-active:bg-primary/5 data-active:border data-active:border-primary/20 data-active:text-primary data-active:[&_svg]:stroke-[2.5] data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0", {
159
+ const sidebarMenuButtonVariants = cva("ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-primary/2 dark:data-active:bg-primary/5 data-active:border data-active:border-primary/20 data-active:text-primary data-active:[&_svg]:stroke-[2.5] data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-row px-3 py-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0", {
180
160
  variants: {
181
161
  variant: {
182
162
  default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
@@ -216,14 +196,13 @@ function SidebarMenuButton({ render, isActive = false, variant = "default", size
216
196
  children: tooltip,
217
197
  };
218
198
  }
219
- return (_jsxs(Tooltip, { children: [comp, _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
220
- ] }));
199
+ return (_jsxs(Tooltip, { children: [comp, _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
221
200
  }
222
201
  function SidebarMenuAction({ className, render, showOnHover = false, ...props }) {
223
202
  return useRender({
224
203
  defaultTagName: "button",
225
204
  props: mergeProps({
226
- className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0", showOnHover &&
205
+ className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-control p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0", showOnHover &&
227
206
  "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0", className),
228
207
  }, props),
229
208
  render,
@@ -243,8 +222,7 @@ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
243
222
  });
244
223
  return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn("h-8 gap-2 rounded-md px-2 flex items-center", className), ...props, children: [showIcon && (_jsx(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" })), _jsx(Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
245
224
  "--skeleton-width": width,
246
- } })
247
- ] }));
225
+ } })] }));
248
226
  }
249
227
  function SidebarMenuSub({ className, ...props }) {
250
228
  return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col", className), ...props }));
@@ -256,7 +234,7 @@ function SidebarMenuSubButton({ render, size = "md", isActive = false, className
256
234
  return useRender({
257
235
  defaultTagName: "a",
258
236
  props: mergeProps({
259
- className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-primary/2 dark:data-active:bg-primary/5 data-active:border data-active:border-primary/20 data-active:text-primary data-active:font-medium h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0", className),
237
+ className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-primary/2 dark:data-active:bg-primary/5 data-active:border data-active:border-primary/20 data-active:text-primary data-active:font-medium h-7 gap-2 rounded-row px-3 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0", className),
260
238
  }, props),
261
239
  render,
262
240
  state: {
@@ -268,4 +246,4 @@ function SidebarMenuSubButton({ render, size = "md", isActive = false, className
268
246
  });
269
247
  }
270
248
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9lbGVtZW50cy9zaWRlYmFyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ25DLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFhLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sWUFBYSxDQUFBO0FBQ3BCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWUsQ0FBQTtBQUV2RSxNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQTtBQUMzQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUMvQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFDN0IsTUFBTSxvQkFBb0IsR0FBRyxPQUFP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LHlCQUF5QjtZQUMvQixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLElBQUk7WUFDSixNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxPQUFPLEVBQ0wsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEdBQ1gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGJpb21lLWlnbm9yZS1hbGwgbGludDogc2hhZGNuXG5pbXBvcnQgeyBtZXJnZVByb3BzIH0gZnJvbSBcIkBiYXNlLXVpL3JlYWN0L21lcmdlLXByb3BzXCJcbmltcG9ydCB7IHVzZVJlbmRlciB9IGZyb20gXCJAYmFzZS11aS9yZWFjdC91c2UtcmVuZGVyXCJcbmltcG9ydCB7IGN2YSwgdHlwZSBWYXJpYW50UHJvcHMgfSBmcm9tIFwiY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5XCJcbmltcG9ydCB7IE1lbnUgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJjblwiXG5pbXBvcnQgeyBpc01vYmlsZU5vdywgdXNlSXNNb2JpbGUgfSBmcm9tIFwiLi4vaG9va3MvbWVkaWEudHNcIlxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uLnRzeFwiXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCIuL2lucHV0LnRzeFwiXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tIFwiLi9zZXBhcmF0b3IudHN4XCJcbmltcG9ydCB7XG4gIFNoZWV0LFxuICBTaGVldENvbnRlbnQsXG4gIFNoZWV0RGVzY3JpcHRpb24sXG4gIFNoZWV0SGVhZGVyLFxuICBTaGVldFRpdGxlLFxufSBmcm9tIFwiLi9zaGVldC50c3hcIlxuaW1wb3J0IHsgU2tlbGV0b24gfSBmcm9tIFwiLi9za2VsZXRvbi50c3hcIlxuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbnRlbnQsIFRvb2x0aXBUcmlnZ2VyIH0gZnJvbSBcIi4vdG9vbHRpcC50c3hcIlxuXG5jb25zdCBTSURFQkFSX0NPT0tJRV9OQU1FID0gXCJzaWRlYmFyX3N0YXRlXCJcbmNvbnN0IFNJREVCQVJfQ09PS0lFX01BWF9BR0UgPSA2MCAqIDYwICogMjQgKiA3XG5jb25zdCBTSURFQkFSX1dJRFRIID0gXCIxNnJlbVwiXG5jb25zdCBTSURFQkFSX1dJRFRIX01PQklMRSA9IFwiMThyZW1cIlxuY29uc3QgU0lERUJBUl9XSURUSF9JQ09OID0gXCIzcmVtXCJcbmNvbnN0IFNJREVCQVJfS0VZQk9BUkRfU0hPUlRDVVQgPSBcImJcIlxuXG50eXBlIFNpZGViYXJDb250ZXh0UHJvcHMgPSB7XG4gIHN0YXRlOiBcImV4cGFuZGVkXCIgfCBcImNvbGxhcHNlZFwiXG4gIG9wZW46IGJvb2xlYW5cbiAgc2V0T3BlbjogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbiAgb3Blbk1vYmlsZTogYm9vbGVhblxuICBzZXRPcGVuTW9iaWxlOiAob3BlbjogYm9vbGVhbikgPT4gdm9pZFxuICBpc01vYmlsZTogYm9vbGVhblxuICB0b2dnbGVTaWRlYmFyOiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IFNpZGViYXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxTaWRlYmFyQ29udGV4dFByb3BzIHwgbnVsbD4obnVsbClcblxuZnVuY3Rpb24gdXNlU2lkZWJhcigpIHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU2lkZWJhckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVNpZGViYXIgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNpZGViYXJQcm92aWRlci5cIilcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0XG59XG5cbmZ1bmN0aW9uIFNpZGViYXJQcm92aWRlcih7XG4gIGRlZmF1bHRPcGVuID0gdHJ1ZSxcbiAgb3Blbjogb3BlblByb3AsXG4gIG9uT3BlbkNoYW5nZTogc2V0T3BlblByb3AsXG4gIGNsYXNzTmFtZSxcbiAgc3R5bGUsXG4gIGNoaWxkcmVuLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIGRlZmF1bHRPcGVuPzogYm9vbGVhblxuICBvcGVuPzogYm9vbGVhblxuICBvbk9wZW5DaGFuZ2U/OiAob3BlbjogYm9vbGVhbikgPT4gdm9pZFxufSkge1xuICBjb25zdCBpc01vYmlsZSA9IHVzZUlzTW9iaWxlKClcbiAgY29uc3QgW29wZW5Nb2JpbGUsIHNldE9wZW5Nb2JpbGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpXG5cbiAgLy8gVGhpcyBpcyB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIHNpZGViYXIuXG4gIC8vIFdlIHVzZSBvcGVuUHJvcCBhbmQgc2V0T3BlblByb3AgZm9yIGNvbnRyb2wgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gIGNvbnN0IFtfb3BlbiwgX3NldE9wZW5dID0gUmVhY3QudXNlU3RhdGUoZGVmYXVsdE9wZW4pXG4gIGNvbnN0IG9wZW4gPSBvcGVuUHJvcCA/PyBfb3BlblxuICBjb25zdCBzZXRPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBib29sZWFuIHwgKCh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbikpID0+IHtcbiAgICAgIGNvbnN0IG9wZW5TdGF0ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiID8gdmFsdWUob3BlbikgOiB2YWx1ZVxuICAgICAgaWYgKHNldE9wZW5Qcm9wKSB7XG4gICAgICAgIHNldE9wZW5Qcm9wKG9wZW5TdGF0ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9zZXRPcGVuKG9wZW5TdGF0ZSlcbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBzZXRzIHRoZSBjb29raWUgdG8ga2VlcCB0aGUgc2lkZWJhciBzdGF0ZS5cbiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke1NJREVCQVJfQ09PS0lFX05BTUV9PSR7b3BlblN0YXRlfTsgcGF0aD0vOyBtYXgtYWdlPSR7U0lERUJBUl9DT09LSUVfTUFYX0FHRX1gXG4gICAgfSxcbiAgICBbc2V0T3BlblByb3AsIG9wZW5dLFxuICApXG5cbiAgLy8gSGVscGVyIHRvIHRvZ2dsZSB0aGUgc2lkZWJhci5cbiAgLy8gUmVhZHMgbWF0Y2hNZWRpYSBzeW5jaHJvbm91c2x5IGluc3RlYWQgb2YgcmVseWluZyBvbiBgaXNNb2JpbGVgIFJlYWN0XG4gIC8vIHN0YXRlLCB3aGljaCBjYW4gYmUgbW9tZW50YXJpbHkgc3RhbGUgb24gdGhlIGZpcnN0IGNsaWNrIGFmdGVyIGFcbiAgLy8gU2lkZWJhclByb3ZpZGVyIGtleSByZW1vdW50IChlLmcuIGxhbmRpbmcg4oaSIGFydGljbGUgbmF2aWdhdGlvbikuXG4gIGNvbnN0IHRvZ2dsZVNpZGViYXIgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmV0dXJuIGlzTW9iaWxlTm93KCkgPyBzZXRPcGVuTW9iaWxlKG9wZW4gPT4gIW9wZW4pIDogc2V0T3BlbihvcGVuID0+ICFvcGVuKVxuICB9LCBbc2V0T3Blbiwgc2V0T3Blbk1vYmlsZV0pXG5cbiAgLy8gQWRkcyBhIGtleWJvYXJkIHNob3J0Y3V0IHRvIHRvZ2dsZSB0aGUgc2lkZWJhci5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBTSURFQkFSX0tFWUJPQVJEX1NIT1JUQ1VUICYmIChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgdG9nZ2xlU2lkZWJhcigpXG4gICAgICB9XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleURvd24pXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duKVxuICB9LCBbdG9nZ2xlU2lkZWJhcl0pXG5cbiAgLy8gV2UgYWRkIGEgc3RhdGUgc28gdGhhdCB3ZSBjYW4gZG8gZGF0YS1zdGF0ZT1cImV4cGFuZGVkXCIgb3IgXCJjb2xsYXBzZWRcIi5cbiAgLy8gVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gc3R5bGUgdGhlIHNpZGViYXIgd2l0aCBUYWlsd2luZCBjbGFzc2VzLlxuICBjb25zdCBzdGF0ZSA9IG9wZW4gPyBcImV4cGFuZGVkXCIgOiBcImNvbGxhcHNlZFwiXG5cbiAgY29uc3QgY29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbzxTaWRlYmFyQ29udGV4dFByb3BzPihcbiAgICAoKSA9PiAoe1xuICAgICAgc3RhdGUsXG4gICAgICBvcGVuLFxuICAgICAgc2V0T3BlbixcbiAgICAgIGlzTW9iaWxlLFxuICAgICAgb3Blbk1vYmlsZSxcbiAgICAgIHNldE9wZW5Nb2JpbGUsXG4gICAgICB0b2dnbGVTaWRlYmFyLFxuICAgIH0pLFxuICAgIFtzdGF0ZSwgb3Blbiwgc2V0T3BlbiwgaXNNb2JpbGUsIG9wZW5Nb2JpbGUsIHNldE9wZW5Nb2JpbGUsIHRvZ2dsZVNpZGViYXJdLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItd3JhcHBlclwiXG4gICAgICAgIHN0eWxlPXtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIi0tc2lkZWJhci13aWR0aFwiOiBTSURFQkFSX1dJRFRILFxuICAgICAgICAgICAgXCItLXNpZGViYXItd2lkdGgtaWNvblwiOiBTSURFQkFSX1dJRFRIX0lDT04sXG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiZ3JvdXAvc2lkZWJhci13cmFwcGVyIGhhcy1kYXRhLVt2YXJpYW50PWluc2V0XTpiZy1zaWRlYmFyIGZsZXggbWluLWgtc3ZoIHctZnVsbFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKX1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICA8L1NpZGViYXJDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXIoe1xuICBzaWRlID0gXCJsZWZ0XCIsXG4gIHZhcmlhbnQgPSBcInNpZGViYXJcIixcbiAgY29sbGFwc2libGUgPSBcIm9mZmNhbnZhc1wiLFxuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIHNpZGU/OiBcImxlZnRcIiB8IFwicmlnaHRcIlxuICB2YXJpYW50PzogXCJzaWRlYmFyXCIgfCBcImZsb2F0aW5nXCIgfCBcImluc2V0XCJcbiAgY29sbGFwc2libGU/OiBcIm9mZmNhbnZhc1wiIHwgXCJpY29uXCIgfCBcIm5vbmVcIlxufSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzdGF0ZSwgb3Blbk1vYmlsZSwgc2V0T3Blbk1vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG5cbiAgaWYgKGNvbGxhcHNpYmxlID09PSBcIm5vbmVcIikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtc2xvdD1cInNpZGViYXJcIlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiYmctc2lkZWJhciB0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBmbGV4IGgtZnVsbCB3LSgtLXNpZGViYXItd2lkdGgpIGZsZXgtY29sXCIsXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICApfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmIChpc01vYmlsZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8U2hlZXQgb3Blbj17b3Blbk1vYmlsZX0gb25PcGVuQ2hhbmdlPXtzZXRPcGVuTW9iaWxlfSB7Li4ucHJvcHN9PlxuICAgICAgICA8U2hlZXRDb250ZW50XG4gICAgICAgICAgZGF0YS1zaWRlYmFyPVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1tb2JpbGU9XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zaWRlYmFyIHRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHctKC0tc2lkZWJhci13aWR0aCkgcC0wIFsmPmJ1dHRvbl06aGlkZGVuXCJcbiAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiLS1zaWRlYmFyLXdpZHRoXCI6IFNJREVCQVJfV0lEVEhfTU9CSUxFLFxuICAgICAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZGU9e3NpZGV9XG4gICAgICAgID5cbiAgICAgICAgICA8U2hlZXRIZWFkZXIgY2xhc3NOYW1lPVwic3Itb25seVwiPlxuICAgICAgICAgICAgPFNoZWV0VGl0bGU+U2lkZWJhcjwvU2hlZXRUaXRsZT5cbiAgICAgICAgICAgIDxTaGVldERlc2NyaXB0aW9uPkRpc3BsYXlzIHRoZSBtb2JpbGUgc2lkZWJhci48L1NoZWV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgPC9TaGVldEhlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbFwiPntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAgPC9TaGVldENvbnRlbnQ+XG4gICAgICA8L1NoZWV0PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgcGVlciB0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBoaWRkZW4gbWQ6YmxvY2tcIlxuICAgICAgZGF0YS1zdGF0ZT17c3RhdGV9XG4gICAgICBkYXRhLWNvbGxhcHNpYmxlPXtzdGF0ZSA9PT0gXCJjb2xsYXBzZWRcIiA/IGNvbGxhcHNpYmxlIDogXCJcIn1cbiAgICAgIGRhdGEtdmFyaWFudD17dmFyaWFudH1cbiAgICAgIGRhdGEtc2lkZT17c2lkZX1cbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXJcIlxuICAgID5cbiAgICAgIHsvKiBUaGlzIGlzIHdoYXQgaGFuZGxlcyB0aGUgc2lkZWJhciBnYXAgb24gZGVza3RvcCAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1nYXBcIlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwidHJhbnNpdGlvbi1bd2lkdGhdIGR1cmF0aW9uLTIwMCBlYXNlLWxpbmVhciByZWxhdGl2ZSB3LSgtLXNpZGViYXItd2lkdGgpIGJnLXRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1vZmZjYW52YXNdOnctMFwiLFxuICAgICAgICAgIFwiZ3JvdXAtZGF0YS1bc2lkZT1yaWdodF06cm90YXRlLTE4MFwiLFxuICAgICAgICAgIHZhcmlhbnQgPT09IFwiZmxvYXRpbmdcIiB8fCB2YXJpYW50ID09PSBcImluc2V0XCJcbiAgICAgICAgICAgID8gXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTp3LVtjYWxjKHZhcigtLXNpZGViYXItd2lkdGgtaWNvbikrKC0tc3BhY2luZyg0KSkpXVwiXG4gICAgICAgICAgICA6IFwiZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06dy0oLS1zaWRlYmFyLXdpZHRoLWljb24pXCIsXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLWNvbnRhaW5lclwiXG4gICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgXCJmaXhlZCBpbnNldC15LTAgei0xMCBoaWRkZW4gaC1zdmggdy0oLS1zaWRlYmFyLXdpZHRoKSB0cmFuc2l0aW9uLVtsZWZ0LHJpZ2h0LHdpZHRoXSBkdXJhdGlvbi0yMDAgZWFzZS1saW5lYXIgbWQ6ZmxleFwiLFxuICAgICAgICAgIHNpZGUgPT09IFwibGVmdFwiXG4gICAgICAgICAgICA/IFwibGVmdC0wIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106bGVmdC1bY2FsYyh2YXIoLS1zaWRlYmFyLXdpZHRoKSotMSldXCJcbiAgICAgICAgICAgIDogXCJyaWdodC0wIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106cmlnaHQtW2NhbGModmFyKC0tc2lkZWJhci13aWR0aCkqLTEpXVwiLFxuICAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFkZGluZyBmb3IgZmxvYXRpbmcgYW5kIGluc2V0IHZhcmlhbnRzLlxuICAgICAgICAgIHZhcmlhbnQgPT09IFwiZmxvYXRpbmdcIiB8fCB2YXJpYW50ID09PSBcImluc2V0XCJcbiAgICAgICAgICAgID8gXCJwLTIgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06dy1bY2FsYyh2YXIoLS1zaWRlYmFyLXdpZHRoLWljb24pKygtLXNwYWNpbmcoNCkpKzJweCldXCJcbiAgICAgICAgICAgIDogXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTp3LSgtLXNpZGViYXItd2lkdGgtaWNvbikgZ3JvdXAtZGF0YS1bc2lkZT1sZWZ0XTpib3JkZXItciBncm91cC1kYXRhLVtzaWRlPXJpZ2h0XTpib3JkZXItbFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKX1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1zaWRlYmFyPVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1pbm5lclwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2lkZWJhciBncm91cC1kYXRhLVt2YXJpYW50PWZsb2F0aW5nXTpyaW5nLXNpZGViYXItYm9yZGVyIGdyb3VwLWRhdGEtW3ZhcmlhbnQ9ZmxvYXRpbmddOnJvdW5kZWQtbGcgZ3JvdXAtZGF0YS1bdmFyaWFudD1mbG9hdGluZ106c2hhZG93LXNtIGdyb3VwLWRhdGEtW3ZhcmlhbnQ9ZmxvYXRpbmddOnJpbmctMSBmbGV4IHNpemUtZnVsbCBmbGV4LWNvbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclRyaWdnZXIoe1xuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIC4uLnByb3BzXG59OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPikge1xuICBjb25zdCB7IHRvZ2dsZVNpZGViYXIgfSA9IHVzZVNpZGViYXIoKVxuXG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgZGF0YS1zaWRlYmFyPVwidHJpZ2dlclwiXG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLXRyaWdnZXJcIlxuICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgIHNpemU9XCJpY29uLXNtXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oY2xhc3NOYW1lKX1cbiAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgb25DbGljaz8uKGV2ZW50KVxuICAgICAgICB0b2dnbGVTaWRlYmFyKClcbiAgICAgIH19XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPE1lbnUgLz5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5Ub2dnbGUgU2lkZWJhcjwvc3Bhbj5cbiAgICA8L0J1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyUmFpbCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4pIHtcbiAgY29uc3QgeyB0b2dnbGVTaWRlYmFyIH0gPSB1c2VTaWRlYmFyKClcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGRhdGEtc2lkZWJhcj1cInJhaWxcIlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1yYWlsXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUb2dnbGUgU2lkZWJhclwiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICBvbkNsaWNrPXt0b2dnbGVTaWRlYmFyfVxuICAgICAgdGl0bGU9XCJUb2dnbGUgU2lkZWJhclwiXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBcImhvdmVyOmFmdGVyOmJnLXNpZGViYXItYm9yZGVyIGFic29sdXRlIGluc2V0LXktMCB6LTIwIGhpZGRlbiB3LTQgLXRyYW5zbGF0ZS14LTEvMiB0cmFuc2l0aW9uLWFsbCBlYXNlLWxpbmVhciBncm91cC1kYXRhLVtzaWRlPWxlZnRdOi1yaWdodC00IGdyb3VwLWRhdGEtW3NpZGU9cmlnaHRdOmxlZnQtMCBhZnRlcjphYnNvbHV0ZSBhZnRlcjppbnNldC15LTAgYWZ0ZXI6bGVmdC0xLzIgYWZ0ZXI6dy1bMnB4XSBzbTpmbGV4XCIsXG4gICAgICAgIFwiaW4tZGF0YS1bc2lkZT1sZWZ0XTpjdXJzb3Itdy1yZXNpemUgaW4tZGF0YS1bc2lkZT1yaWdodF06Y3Vyc29yLWUtcmVzaXplXCIsXG4gICAgICAgIFwiW1tkYXRhLXNpZGU9bGVmdF1bZGF0YS1zdGF0ZT1jb2xsYXBzZWRdXyZdOmN1cnNvci1lLXJlc2l6ZSBbW2RhdGEtc2lkZT1yaWdodF1bZGF0YS1zdGF0ZT1jb2xsYXBzZWRdXyZdOmN1cnNvci13LXJlc2l6ZVwiLFxuICAgICAgICBcImhvdmVyOmdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106Ymctc2lkZWJhciBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1vZmZjYW52YXNdOnRyYW5zbGF0ZS14LTAgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9b2ZmY2FudmFzXTphZnRlcjpsZWZ0LWZ1bGxcIixcbiAgICAgICAgXCJbW2RhdGEtc2lkZT1sZWZ0XVtkYXRhLWNvbGxhcHNpYmxlPW9mZmNhbnZhc11fJl06LXJpZ2h0LTJcIixcbiAgICAgICAgXCJbW2RhdGEtc2lkZT1yaWdodF1bZGF0YS1jb2xsYXBzaWJsZT1vZmZjYW52YXNdXyZdOi1sZWZ0LTJcIixcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJJbnNldCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJtYWluXCI+KSB7XG4gIHJldHVybiAoXG4gICAgPG1haW5cbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItaW5zZXRcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJiZy1iYWNrZ3JvdW5kIG1kOnBlZXItZGF0YS1bdmFyaWFudD1pbnNldF06bS0yIG1kOnBlZXItZGF0YS1bdmFyaWFudD1pbnNldF06bWwtMCBtZDpwZWVyLWRhdGEtW3ZhcmlhbnQ9aW5zZXRdOnJvdW5kZWQteGwgbWQ6cGVlci1kYXRhLVt2YXJpYW50PWluc2V0XTpzaGFkb3ctc20gbWQ6cGVlci1kYXRhLVt2YXJpYW50PWluc2V0XTpwZWVyLWRhdGEtW3N0YXRlPWNvbGxhcHNlZF06bWwtMiByZWxhdGl2ZSBmbGV4IHctZnVsbCBmbGV4LTEgZmxleC1jb2xcIixcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJJbnB1dCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIElucHV0Pikge1xuICByZXR1cm4gKFxuICAgIDxJbnB1dFxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1pbnB1dFwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJpbnB1dFwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiYmctYmFja2dyb3VuZCBoLTggdy1mdWxsIHNoYWRvdy1ub25lXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFySGVhZGVyKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBSZWFjdC5Db21wb25lbnRQcm9wczxcImRpdlwiPikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItaGVhZGVyXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImhlYWRlclwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiZ2FwLTIgcC0yIGZsZXggZmxleC1jb2xcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJGb290ZXIoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1mb290ZXJcIlxuICAgICAgZGF0YS1zaWRlYmFyPVwiZm9vdGVyXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJnYXAtMiBwLTIgZmxleCBmbGV4LWNvbFwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNlcGFyYXRvcih7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTZXBhcmF0b3I+KSB7XG4gIHJldHVybiAoXG4gICAgPFNlcGFyYXRvclxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1zZXBhcmF0b3JcIlxuICAgICAgZGF0YS1zaWRlYmFyPVwic2VwYXJhdG9yXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJiZy1zaWRlYmFyLWJvcmRlciBteC0yIHctYXV0b1wiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhckNvbnRlbnQoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1jb250ZW50XCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImNvbnRlbnRcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJuby1zY3JvbGxiYXIgZ2FwLTIgZmxleCBtaW4taC0wIGZsZXgtMSBmbGV4LWNvbCBvdmVyZmxvdy1hdXRvIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPWljb25dOm92ZXJmbG93LWhpZGRlblwiLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhckdyb3VwKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBSZWFjdC5Db21wb25lbnRQcm9wczxcImRpdlwiPikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItZ3JvdXBcIlxuICAgICAgZGF0YS1zaWRlYmFyPVwiZ3JvdXBcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcInAtMiByZWxhdGl2ZSBmbGV4IHctZnVsbCBtaW4tdy0wIGZsZXgtY29sXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyR3JvdXBMYWJlbCh7XG4gIGNsYXNzTmFtZSxcbiAgcmVuZGVyLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiZGl2XCI+ICYgUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4pIHtcbiAgcmV0dXJuIHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiZGl2XCIsXG4gICAgcHJvcHM6IG1lcmdlUHJvcHM8XCJkaXZcIj4oXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogY24oXG4gICAgICAgICAgXCJ0ZXh0LXNpZGViYXItZm9yZWdyb3VuZC83MCByaW5nLXNpZGViYXItcmluZyBoLTggcm91bmRlZC1tZCBweC0yIHRleHQteHMgZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1bbWFyZ2luLG9wYWNpdHldIGR1cmF0aW9uLTIwMCBlYXNlLWxpbmVhciBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTotbXQtOCBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpvcGFjaXR5LTAgZm9jdXMtdmlzaWJsZTpyaW5nLTIgWyY+c3ZnXTpzaXplLTQgZmxleCBzaHJpbmstMCBpdGVtcy1jZW50ZXIgb3V0bGluZS1oaWRkZW4gWyY+c3ZnXTpzaHJpbmstMFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBwcm9wcyxcbiAgICApLFxuICAgIHJlbmRlcixcbiAgICBzdGF0ZToge1xuICAgICAgc2xvdDogXCJzaWRlYmFyLWdyb3VwLWxhYmVsXCIsXG4gICAgICBzaWRlYmFyOiBcImdyb3VwLWxhYmVsXCIsXG4gICAgfSxcbiAgfSlcbn1cblxuZnVuY3Rpb24gU2lkZWJhckdyb3VwQWN0aW9uKHtcbiAgY2xhc3NOYW1lLFxuICByZW5kZXIsXG4gIC4uLnByb3BzXG59OiB1c2VSZW5kZXIuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4gJiBSZWFjdC5Db21wb25lbnRQcm9wczxcImJ1dHRvblwiPikge1xuICByZXR1cm4gdXNlUmVuZGVyKHtcbiAgICBkZWZhdWx0VGFnTmFtZTogXCJidXR0b25cIixcbiAgICBwcm9wczogbWVyZ2VQcm9wczxcImJ1dHRvblwiPihcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbihcbiAgICAgICAgICBcInRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHJpbmctc2lkZWJhci1yaW5nIGhvdmVyOmJnLXNpZGViYXItYWNjZW50IGhvdmVyOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBhYnNvbHV0ZSB0b3AtMy41IHJpZ2h0LTMgdy01IHJvdW5kZWQtbWQgcC0wIGZvY3VzLXZpc2libGU6cmluZy0yIFsmPnN2Z106c2l6ZS00IGZsZXggYXNwZWN0LXNxdWFyZSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3V0bGluZS1oaWRkZW4gdHJhbnNpdGlvbi10cmFuc2Zvcm0gWyY+c3ZnXTpzaHJpbmstMCBhZnRlcjphYnNvbHV0ZSBhZnRlcjotaW5zZXQtMiBtZDphZnRlcjpoaWRkZW4gZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06aGlkZGVuXCIsXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHByb3BzLFxuICAgICksXG4gICAgcmVuZGVyLFxuICAgIHN0YXRlOiB7XG4gICAgICBzbG90OiBcInNpZGViYXItZ3JvdXAtYWN0aW9uXCIsXG4gICAgICBzaWRlYmFyOiBcImdyb3VwLWFjdGlvblwiLFxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJHcm91cENvbnRlbnQoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1ncm91cC1jb250ZW50XCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImdyb3VwLWNvbnRlbnRcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gdy1mdWxsXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudSh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJ1bFwiPikge1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51XCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cIm1lbnVcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcImdhcC0xIGZsZXggdy1mdWxsIG1pbi13LTAgZmxleC1jb2xcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJNZW51SXRlbSh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJsaVwiPikge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LWl0ZW1cIlxuICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1pdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJncm91cC9tZW51LWl0ZW0gcmVsYXRpdmVcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmNvbnN0IHNpZGViYXJNZW51QnV0dG9uVmFyaWFudHMgPSBjdmEoXG4gIFwicmluZy1zaWRlYmFyLXJpbmcgaG92ZXI6Ymctc2lkZWJhci1hY2NlbnQgaG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGFjdGl2ZTpiZy1zaWRlYmFyLWFjY2VudCBhY3RpdmU6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtYWN0aXZlOmJnLXByaW1hcnkvMiBkYXJrOmRhdGEtYWN0aXZlOmJnLXByaW1hcnkvNSBkYXRhLWFjdGl2ZTpib3JkZXIgZGF0YS1hY3RpdmU6Ym9yZGVyLXByaW1hcnkvMjAgZGF0YS1hY3RpdmU6dGV4dC1wcmltYXJ5IGRhdGEtYWN0aXZlOlsmX3N2Z106c3Ryb2tlLVsyLjVdIGRhdGEtb3Blbjpob3ZlcjpiZy1zaWRlYmFyLWFjY2VudCBkYXRhLW9wZW46aG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGdhcC0yIHJvdW5kZWQtbWQgcC0yIHRleHQtbGVmdCB0ZXh0LXNtIHRyYW5zaXRpb24tW3dpZHRoLGhlaWdodCxwYWRkaW5nXSBncm91cC1oYXMtZGF0YS1bc2lkZWJhcj1tZW51LWFjdGlvbl0vbWVudS1pdGVtOnByLTggZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06c2l6ZS04ISBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpwLTIhIGZvY3VzLXZpc2libGU6cmluZy0yIGRhdGEtYWN0aXZlOmZvbnQtbWVkaXVtIHBlZXIvbWVudS1idXR0b24gZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlbiBvdXRsaW5lLWhpZGRlbiBncm91cC9tZW51LWJ1dHRvbiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAgYXJpYS1kaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGFyaWEtZGlzYWJsZWQ6b3BhY2l0eS01MCBbJj5zcGFuOmxhc3QtY2hpbGRdOnRydW5jYXRlIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiaG92ZXI6Ymctc2lkZWJhci1hY2NlbnQgaG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kXCIsXG4gICAgICAgIG91dGxpbmU6XG4gICAgICAgICAgXCJiZy1iYWNrZ3JvdW5kIGhvdmVyOmJnLXNpZGViYXItYWNjZW50IGhvdmVyOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBzaGFkb3ctWzBfMF8wXzFweF9oc2wodmFyKC0tc2lkZWJhci1ib3JkZXIpKV0gaG92ZXI6c2hhZG93LVswXzBfMF8xcHhfaHNsKHZhcigtLXNpZGViYXItYWNjZW50KSldXCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtOCB0ZXh0LXNtXCIsXG4gICAgICAgIHNtOiBcImgtNyB0ZXh0LXhzXCIsXG4gICAgICAgIGxnOiBcImgtMTIgdGV4dC1zbSBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpwLTAhXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiBcImRlZmF1bHRcIixcbiAgICAgIHNpemU6IFwiZGVmYXVsdFwiLFxuICAgIH0sXG4gIH0sXG4pXG5cbmZ1bmN0aW9uIFNpZGViYXJNZW51QnV0dG9uKHtcbiAgcmVuZGVyLFxuICBpc0FjdGl2ZSA9IGZhbHNlLFxuICB2YXJpYW50ID0gXCJkZWZhdWx0XCIsXG4gIHNpemUgPSBcImRlZmF1bHRcIixcbiAgdG9vbHRpcCxcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+ICZcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4gJiB7XG4gICAgaXNBY3RpdmU/OiBib29sZWFuXG4gICAgdG9vbHRpcD86IHN0cmluZyB8IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUb29sdGlwQ29udGVudD5cbiAgfSAmIFZhcmlhbnRQcm9wczx0eXBlb2Ygc2lkZWJhck1lbnVCdXR0b25WYXJpYW50cz4pIHtcbiAgY29uc3QgeyBpc01vYmlsZSwgc3RhdGUgfSA9IHVzZVNpZGViYXIoKVxuICBjb25zdCBjb21wID0gdXNlUmVuZGVyKHtcbiAgICBkZWZhdWx0VGFnTmFtZTogXCJidXR0b25cIixcbiAgICBwcm9wczogbWVyZ2VQcm9wczxcImJ1dHRvblwiPihcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbihzaWRlYmFyTWVudUJ1dHRvblZhcmlhbnRzKHsgdmFyaWFudCwgc2l6ZSB9KSwgY2xhc3NOYW1lKSxcbiAgICAgIH0sXG4gICAgICBwcm9wcyxcbiAgICApLFxuICAgIHJlbmRlcjogIXRvb2x0aXAgPyByZW5kZXIgOiBUb29sdGlwVHJpZ2dlcixcbiAgICBzdGF0ZToge1xuICAgICAgc2xvdDogXCJzaWRlYmFyLW1lbnUtYnV0dG9uXCIsXG4gICAgICBzaWRlYmFyOiBcIm1lbnUtYnV0dG9uXCIsXG4gICAgICBzaXplLFxuICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcbiAgICB9LFxuICB9KVxuXG4gIGlmICghdG9vbHRpcCkge1xuICAgIHJldHVybiBjb21wXG4gIH1cblxuICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwic3RyaW5nXCIpIHtcbiAgICB0b29sdGlwID0ge1xuICAgICAgY2hpbGRyZW46IHRvb2x0aXAsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8VG9vbHRpcD5cbiAgICAgIHtjb21wfVxuICAgICAgPFRvb2x0aXBDb250ZW50XG4gICAgICAgIHNpZGU9XCJyaWdodFwiXG4gICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgaGlkZGVuPXtzdGF0ZSAhPT0gXCJjb2xsYXBzZWRcIiB8fCBpc01vYmlsZX1cbiAgICAgICAgey4uLnRvb2x0aXB9XG4gICAgICAvPlxuICAgIDwvVG9vbHRpcD5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudUFjdGlvbih7XG4gIGNsYXNzTmFtZSxcbiAgcmVuZGVyLFxuICBzaG93T25Ib3ZlciA9IGZhbHNlLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+ICZcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4gJiB7XG4gICAgc2hvd09uSG92ZXI/OiBib29sZWFuXG4gIH0pIHtcbiAgcmV0dXJuIHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiYnV0dG9uXCIsXG4gICAgcHJvcHM6IG1lcmdlUHJvcHM8XCJidXR0b25cIj4oXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogY24oXG4gICAgICAgICAgXCJ0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCByaW5nLXNpZGViYXItcmluZyBob3ZlcjpiZy1zaWRlYmFyLWFjY2VudCBob3Zlcjp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQgcGVlci1ob3Zlci9tZW51LWJ1dHRvbjp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQgYWJzb2x1dGUgdG9wLTEuNSByaWdodC0xIGFzcGVjdC1zcXVhcmUgdy01IHJvdW5kZWQtbWQgcC0wIHBlZXItZGF0YS1bc2l6ZT1kZWZhdWx0XS9tZW51LWJ1dHRvbjp0b3AtMS41IHBlZXItZGF0YS1bc2l6ZT1sZ10vbWVudS1idXR0b246dG9wLTIuNSBwZWVyLWRhdGEtW3NpemU9c21dL21lbnUtYnV0dG9uOnRvcC0xIGZvY3VzLXZpc2libGU6cmluZy0yIFsmPnN2Z106c2l6ZS00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG91dGxpbmUtaGlkZGVuIHRyYW5zaXRpb24tdHJhbnNmb3JtIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPWljb25dOmhpZGRlbiBhZnRlcjphYnNvbHV0ZSBhZnRlcjotaW5zZXQtMiBtZDphZnRlcjpoaWRkZW4gWyY+c3ZnXTpzaHJpbmstMFwiLFxuICAgICAgICAgIHNob3dPbkhvdmVyICYmXG4gICAgICAgICAgICBcInBlZXItZGF0YS1hY3RpdmUvbWVudS1idXR0b246dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGdyb3VwLWZvY3VzLXdpdGhpbi9tZW51LWl0ZW06b3BhY2l0eS0xMDAgZ3JvdXAtaG92ZXIvbWVudS1pdGVtOm9wYWNpdHktMTAwIGRhdGEtb3BlbjpvcGFjaXR5LTEwMCBtZDpvcGFjaXR5LTBcIixcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcHJvcHMsXG4gICAgKSxcbiAgICByZW5kZXIsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNsb3Q6IFwic2lkZWJhci1tZW51LWFjdGlvblwiLFxuICAgICAgc2lkZWJhcjogXCJtZW51LWFjdGlvblwiLFxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJNZW51QmFkZ2UoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LWJhZGdlXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cIm1lbnUtYmFkZ2VcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJ0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBwZWVyLWhvdmVyL21lbnUtYnV0dG9uOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBwZWVyLWRhdGEtYWN0aXZlL21lbnUtYnV0dG9uOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIHJpZ2h0LTEgZmxleCBoLTUgbWluLXctNSByb3VuZGVkLW1kIHB4LTEgdGV4dC14cyBmb250LW1lZGl1bSBwZWVyLWRhdGEtW3NpemU9ZGVmYXVsdF0vbWVudS1idXR0b246dG9wLTEuNSBwZWVyLWRhdGEtW3NpemU9bGddL21lbnUtYnV0dG9uOnRvcC0yLjUgcGVlci1kYXRhLVtzaXplPXNtXS9tZW51LWJ1dHRvbjp0b3AtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0YWJ1bGFyLW51bXMgc2VsZWN0LW5vbmUgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06aGlkZGVuXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVNrZWxldG9uKHtcbiAgY2xhc3NOYW1lLFxuICBzaG93SWNvbiA9IGZhbHNlLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIHNob3dJY29uPzogYm9vbGVhblxufSkge1xuICAvLyBSYW5kb20gd2lkdGggYmV0d2VlbiA1MCB0byA5MCUuXG4gIGNvbnN0IFt3aWR0aF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiB7XG4gICAgcmV0dXJuIGAke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQwKSArIDUwfSVgXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLW1lbnUtc2tlbGV0b25cIlxuICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1za2VsZXRvblwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiaC04IGdhcC0yIHJvdW5kZWQtbWQgcHgtMiBmbGV4IGl0ZW1zLWNlbnRlclwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiAmJiAoXG4gICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJzaXplLTQgcm91bmRlZC1tZFwiIGRhdGEtc2lkZWJhcj1cIm1lbnUtc2tlbGV0b24taWNvblwiIC8+XG4gICAgICApfVxuICAgICAgPFNrZWxldG9uXG4gICAgICAgIGNsYXNzTmFtZT1cImgtNCBtYXgtdy0oLS1za2VsZXRvbi13aWR0aCkgZmxleC0xXCJcbiAgICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1za2VsZXRvbi10ZXh0XCJcbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiLS1za2VsZXRvbi13aWR0aFwiOiB3aWR0aCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1Yih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJ1bFwiPikge1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LXN1YlwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJtZW51LXN1YlwiXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBcImJvcmRlci1zaWRlYmFyLWJvcmRlciBteC0zLjUgdHJhbnNsYXRlLXgtcHggZ2FwLTEgYm9yZGVyLWwgcHgtMi41IHB5LTAuNSBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpoaWRkZW4gZmxleCBtaW4tdy0wIGZsZXgtY29sXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1Ykl0ZW0oeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwibGlcIj4pIHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItbWVudS1zdWItaXRlbVwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJtZW51LXN1Yi1pdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJncm91cC9tZW51LXN1Yi1pdGVtIHJlbGF0aXZlXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1YkJ1dHRvbih7XG4gIHJlbmRlcixcbiAgc2l6ZSA9IFwibWRcIixcbiAgaXNBY3RpdmUgPSBmYWxzZSxcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiYVwiPiAmXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzPFwiYVwiPiAmIHtcbiAgICBzaXplPzogXCJzbVwiIHwgXCJtZFwiXG4gICAgaXNBY3RpdmU/OiBib29sZWFuXG4gIH0pIHtcbiAgcmV0dXJuIHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiYVwiLFxuICAgIHByb3BzOiBtZXJnZVByb3BzPFwiYVwiPihcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbihcbiAgICAgICAgICBcInRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHJpbmctc2lkZWJhci1yaW5nIGhvdmVyOmJnLXNpZGViYXItYWNjZW50IGhvdmVyOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBhY3RpdmU6Ymctc2lkZWJhci1hY2NlbnQgYWN0aXZlOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBbJj5zdmddOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLWFjdGl2ZTpiZy1wcmltYXJ5LzIgZGFyazpkYXRhLWFjdGl2ZTpiZy1wcmltYXJ5LzUgZGF0YS1hY3RpdmU6Ym9yZGVyIGRhdGEtYWN0aXZlOmJvcmRlci1wcmltYXJ5LzIwIGRhdGEtYWN0aXZlOnRleHQtcHJpbWFyeSBkYXRhLWFjdGl2ZTpmb250LW1lZGl1bSBoLTcgZ2FwLTIgcm91bmRlZC1tZCBweC0yIGZvY3VzLXZpc2libGU6cmluZy0yIGRhdGEtW3NpemU9bWRdOnRleHQtc20gZGF0YS1bc2l6ZT1zbV06dGV4dC14cyBbJj5zdmddOnNpemUtNCBmbGV4IG1pbi13LTAgLXRyYW5zbGF0ZS14LXB4IGl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gb3V0bGluZS1oaWRkZW4gZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06aGlkZGVuIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCBhcmlhLWRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgYXJpYS1kaXNhYmxlZDpvcGFjaXR5LTUwIFsmPnNwYW46bGFzdC1jaGlsZF06dHJ1bmNhdGUgWyY+c3ZnXTpzaHJpbmstMFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBwcm9wcyxcbiAgICApLFxuICAgIHJlbmRlcixcbiAgICBzdGF0ZToge1xuICAgICAgc2xvdDogXCJzaWRlYmFyLW1lbnUtc3ViLWJ1dHRvblwiLFxuICAgICAgc2lkZWJhcjogXCJtZW51LXN1Yi1idXR0b25cIixcbiAgICAgIHNpemUsXG4gICAgICBhY3RpdmU6IGlzQWN0aXZlLFxuICAgIH0sXG4gIH0pXG59XG5cbmV4cG9ydCB7XG4gIFNpZGViYXIsXG4gIFNpZGViYXJDb250ZW50LFxuICBTaWRlYmFyRm9vdGVyLFxuICBTaWRlYmFyR3JvdXAsXG4gIFNpZGViYXJHcm91cEFjdGlvbixcbiAgU2lkZWJhckdyb3VwQ29udGVudCxcbiAgU2lkZWJhckdyb3VwTGFiZWwsXG4gIFNpZGViYXJIZWFkZXIsXG4gIFNpZGViYXJJbnB1dCxcbiAgU2lkZWJhckluc2V0LFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVBY3Rpb24sXG4gIFNpZGViYXJNZW51QmFkZ2UsXG4gIFNpZGViYXJNZW51QnV0dG9uLFxuICBTaWRlYmFyTWVudUl0ZW0sXG4gIFNpZGViYXJNZW51U2tlbGV0b24sXG4gIFNpZGViYXJNZW51U3ViLFxuICBTaWRlYmFyTWVudVN1YkJ1dHRvbixcbiAgU2lkZWJhck1lbnVTdWJJdGVtLFxuICBTaWRlYmFyUHJvdmlkZXIsXG4gIFNpZGViYXJSYWlsLFxuICBTaWRlYmFyU2VwYXJhdG9yLFxuICBTaWRlYmFyVHJpZ2dlcixcbiAgdXNlU2lkZWJhcixcbn1cbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9lbGVtZW50cy9zaWRlYmFyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ25DLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFhLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sWUFBYSxDQUFBO0FBQ3BCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWUsQ0FBQTtBQUV2RSxNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQTtBQUMzQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUMvQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFDN0IsTUFBTSxvQkFBb0IsR0FBRyxPQUFP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QUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUE4QjtJQUM3RSxPQUFPLENBQ0wsMEJBQ1ksdUJBQXVCLGtCQUNwQixlQUFlLEVBQzVCLFNBQVMsRUFBRSxFQUFFLENBQUMsOEJBQThCLEVBQUUsU0FBUyxDQUFDLEtBQ3BELEtBQUssR0FDVCxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxFQUM1QixNQUFNLEVBQ04sSUFBSSxHQUFHLElBQUksRUFDWCxRQUFRLEdBQUcsS0FBSyxFQUNoQixTQUFTLEVBQ1QsR0FBRyxLQUFLLEVBS1A7SUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNmLGNBQWMsRUFBRSxHQUFHO1FBQ25CLEtBQUssRUFBRSxVQUFVLENBQ2Y7WUFDRSxTQUFTLEVBQUUsRUFBRSxDQUNYLDR0QkFBNHRCLEVBQzV0QixTQUFTLENBQ1Y7U0FDRixFQUNELEtBQUssQ0FDTjtRQUNELE1BQU07UUFDTixLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUseUJBQXlCO1lBQy9CLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsSUFBSTtZQUNKLE1BQU0sRUFBRSxRQUFRO1NBQ2pCO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFDTCxPQUFPLEVBQ1AsY0FBYyxFQUNkLGFBQWEsRUFDYixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLFVBQVUsR0FDWCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYmlvbWUtaWdub3JlLWFsbCBsaW50OiBzaGFkY25cbmltcG9ydCB7IG1lcmdlUHJvcHMgfSBmcm9tIFwiQGJhc2UtdWkvcmVhY3QvbWVyZ2UtcHJvcHNcIlxuaW1wb3J0IHsgdXNlUmVuZGVyIH0gZnJvbSBcIkBiYXNlLXVpL3JlYWN0L3VzZS1yZW5kZXJcIlxuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gXCJjbGFzcy12YXJpYW5jZS1hdXRob3JpdHlcIlxuaW1wb3J0IHsgTWVudSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IGlzTW9iaWxlTm93LCB1c2VJc01vYmlsZSB9IGZyb20gXCIuLi9ob29rcy9tZWRpYS50c1wiXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiLi9idXR0b24udHN4XCJcbmltcG9ydCB7IElucHV0IH0gZnJvbSBcIi4vaW5wdXQudHN4XCJcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gXCIuL3NlcGFyYXRvci50c3hcIlxuaW1wb3J0IHtcbiAgU2hlZXQsXG4gIFNoZWV0Q29udGVudCxcbiAgU2hlZXREZXNjcmlwdGlvbixcbiAgU2hlZXRIZWFkZXIsXG4gIFNoZWV0VGl0bGUsXG59IGZyb20gXCIuL3NoZWV0LnRzeFwiXG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gXCIuL3NrZWxldG9uLnRzeFwiXG5pbXBvcnQgeyBUb29sdGlwLCBUb29sdGlwQ29udGVudCwgVG9vbHRpcFRyaWdnZXIgfSBmcm9tIFwiLi90b29sdGlwLnRzeFwiXG5cbmNvbnN0IFNJREVCQVJfQ09PS0lFX05BTUUgPSBcInNpZGViYXJfc3RhdGVcIlxuY29uc3QgU0lERUJBUl9DT09LSUVfTUFYX0FHRSA9IDYwICogNjAgKiAyNCAqIDdcbmNvbnN0IFNJREVCQVJfV0lEVEggPSBcIjE2cmVtXCJcbmNvbnN0IFNJREVCQVJfV0lEVEhfTU9CSUxFID0gXCIxOHJlbVwiXG5jb25zdCBTSURFQkFSX1dJRFRIX0lDT04gPSBcIjNyZW1cIlxuXG50eXBlIFNpZGViYXJDb250ZXh0UHJvcHMgPSB7XG4gIHN0YXRlOiBcImV4cGFuZGVkXCIgfCBcImNvbGxhcHNlZFwiXG4gIG9wZW46IGJvb2xlYW5cbiAgc2V0T3BlbjogKG9wZW46IGJvb2xlYW4pID0+IHZvaWRcbiAgb3Blbk1vYmlsZTogYm9vbGVhblxuICBzZXRPcGVuTW9iaWxlOiAob3BlbjogYm9vbGVhbikgPT4gdm9pZFxuICBpc01vYmlsZTogYm9vbGVhblxuICB0b2dnbGVTaWRlYmFyOiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IFNpZGViYXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxTaWRlYmFyQ29udGV4dFByb3BzIHwgbnVsbD4obnVsbClcblxuZnVuY3Rpb24gdXNlU2lkZWJhcigpIHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU2lkZWJhckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVNpZGViYXIgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNpZGViYXJQcm92aWRlci5cIilcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0XG59XG5cbmZ1bmN0aW9uIFNpZGViYXJQcm92aWRlcih7XG4gIGRlZmF1bHRPcGVuID0gdHJ1ZSxcbiAgb3Blbjogb3BlblByb3AsXG4gIG9uT3BlbkNoYW5nZTogc2V0T3BlblByb3AsXG4gIGNsYXNzTmFtZSxcbiAgc3R5bGUsXG4gIGNoaWxkcmVuLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIGRlZmF1bHRPcGVuPzogYm9vbGVhblxuICBvcGVuPzogYm9vbGVhblxuICBvbk9wZW5DaGFuZ2U/OiAob3BlbjogYm9vbGVhbikgPT4gdm9pZFxufSkge1xuICBjb25zdCBpc01vYmlsZSA9IHVzZUlzTW9iaWxlKClcbiAgY29uc3QgW29wZW5Nb2JpbGUsIHNldE9wZW5Nb2JpbGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpXG5cbiAgLy8gVGhpcyBpcyB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIHNpZGViYXIuXG4gIC8vIFdlIHVzZSBvcGVuUHJvcCBhbmQgc2V0T3BlblByb3AgZm9yIGNvbnRyb2wgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gIGNvbnN0IFtfb3BlbiwgX3NldE9wZW5dID0gUmVhY3QudXNlU3RhdGUoZGVmYXVsdE9wZW4pXG4gIGNvbnN0IG9wZW4gPSBvcGVuUHJvcCA/PyBfb3BlblxuICBjb25zdCBzZXRPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBib29sZWFuIHwgKCh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbikpID0+IHtcbiAgICAgIGNvbnN0IG9wZW5TdGF0ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiID8gdmFsdWUob3BlbikgOiB2YWx1ZVxuICAgICAgaWYgKHNldE9wZW5Qcm9wKSB7XG4gICAgICAgIHNldE9wZW5Qcm9wKG9wZW5TdGF0ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9zZXRPcGVuKG9wZW5TdGF0ZSlcbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBzZXRzIHRoZSBjb29raWUgdG8ga2VlcCB0aGUgc2lkZWJhciBzdGF0ZS5cbiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke1NJREVCQVJfQ09PS0lFX05BTUV9PSR7b3BlblN0YXRlfTsgcGF0aD0vOyBtYXgtYWdlPSR7U0lERUJBUl9DT09LSUVfTUFYX0FHRX1gXG4gICAgfSxcbiAgICBbc2V0T3BlblByb3AsIG9wZW5dLFxuICApXG5cbiAgLy8gSGVscGVyIHRvIHRvZ2dsZSB0aGUgc2lkZWJhci5cbiAgLy8gUmVhZHMgbWF0Y2hNZWRpYSBzeW5jaHJvbm91c2x5IGluc3RlYWQgb2YgcmVseWluZyBvbiBgaXNNb2JpbGVgIFJlYWN0XG4gIC8vIHN0YXRlLCB3aGljaCBjYW4gYmUgbW9tZW50YXJpbHkgc3RhbGUgb24gdGhlIGZpcnN0IGNsaWNrIGFmdGVyIGFcbiAgLy8gU2lkZWJhclByb3ZpZGVyIGtleSByZW1vdW50IChlLmcuIGxhbmRpbmcg4oaSIGFydGljbGUgbmF2aWdhdGlvbikuXG4gIGNvbnN0IHRvZ2dsZVNpZGViYXIgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmV0dXJuIGlzTW9iaWxlTm93KCkgPyBzZXRPcGVuTW9iaWxlKG9wZW4gPT4gIW9wZW4pIDogc2V0T3BlbihvcGVuID0+ICFvcGVuKVxuICB9LCBbc2V0T3Blbiwgc2V0T3Blbk1vYmlsZV0pXG5cbiAgLy8gV2UgYWRkIGEgc3RhdGUgc28gdGhhdCB3ZSBjYW4gZG8gZGF0YS1zdGF0ZT1cImV4cGFuZGVkXCIgb3IgXCJjb2xsYXBzZWRcIi5cbiAgLy8gVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gc3R5bGUgdGhlIHNpZGViYXIgd2l0aCBUYWlsd2luZCBjbGFzc2VzLlxuICBjb25zdCBzdGF0ZSA9IG9wZW4gPyBcImV4cGFuZGVkXCIgOiBcImNvbGxhcHNlZFwiXG5cbiAgY29uc3QgY29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbzxTaWRlYmFyQ29udGV4dFByb3BzPihcbiAgICAoKSA9PiAoe1xuICAgICAgc3RhdGUsXG4gICAgICBvcGVuLFxuICAgICAgc2V0T3BlbixcbiAgICAgIGlzTW9iaWxlLFxuICAgICAgb3Blbk1vYmlsZSxcbiAgICAgIHNldE9wZW5Nb2JpbGUsXG4gICAgICB0b2dnbGVTaWRlYmFyLFxuICAgIH0pLFxuICAgIFtzdGF0ZSwgb3Blbiwgc2V0T3BlbiwgaXNNb2JpbGUsIG9wZW5Nb2JpbGUsIHNldE9wZW5Nb2JpbGUsIHRvZ2dsZVNpZGViYXJdLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItd3JhcHBlclwiXG4gICAgICAgIHN0eWxlPXtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIi0tc2lkZWJhci13aWR0aFwiOiBTSURFQkFSX1dJRFRILFxuICAgICAgICAgICAgXCItLXNpZGViYXItd2lkdGgtaWNvblwiOiBTSURFQkFSX1dJRFRIX0lDT04sXG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiZ3JvdXAvc2lkZWJhci13cmFwcGVyIGhhcy1kYXRhLVt2YXJpYW50PWluc2V0XTpiZy1zaWRlYmFyIGZsZXggbWluLWgtc3ZoIHctZnVsbFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKX1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICA8L1NpZGViYXJDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXIoe1xuICBzaWRlID0gXCJsZWZ0XCIsXG4gIHZhcmlhbnQgPSBcInNpZGViYXJcIixcbiAgY29sbGFwc2libGUgPSBcIm9mZmNhbnZhc1wiLFxuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIHNpZGU/OiBcImxlZnRcIiB8IFwicmlnaHRcIlxuICB2YXJpYW50PzogXCJzaWRlYmFyXCIgfCBcImZsb2F0aW5nXCIgfCBcImluc2V0XCJcbiAgY29sbGFwc2libGU/OiBcIm9mZmNhbnZhc1wiIHwgXCJpY29uXCIgfCBcIm5vbmVcIlxufSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzdGF0ZSwgb3Blbk1vYmlsZSwgc2V0T3Blbk1vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG5cbiAgaWYgKGNvbGxhcHNpYmxlID09PSBcIm5vbmVcIikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtc2xvdD1cInNpZGViYXJcIlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiYmctc2lkZWJhciB0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBmbGV4IGgtZnVsbCB3LSgtLXNpZGViYXItd2lkdGgpIGZsZXgtY29sXCIsXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICApfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmIChpc01vYmlsZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8U2hlZXQgb3Blbj17b3Blbk1vYmlsZX0gb25PcGVuQ2hhbmdlPXtzZXRPcGVuTW9iaWxlfSB7Li4ucHJvcHN9PlxuICAgICAgICA8U2hlZXRDb250ZW50XG4gICAgICAgICAgZGF0YS1zaWRlYmFyPVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1tb2JpbGU9XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zaWRlYmFyIHRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHctKC0tc2lkZWJhci13aWR0aCkgcC0wIFsmPmJ1dHRvbl06aGlkZGVuXCJcbiAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiLS1zaWRlYmFyLXdpZHRoXCI6IFNJREVCQVJfV0lEVEhfTU9CSUxFLFxuICAgICAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZGU9e3NpZGV9XG4gICAgICAgID5cbiAgICAgICAgICA8U2hlZXRIZWFkZXIgY2xhc3NOYW1lPVwic3Itb25seVwiPlxuICAgICAgICAgICAgPFNoZWV0VGl0bGU+U2lkZWJhcjwvU2hlZXRUaXRsZT5cbiAgICAgICAgICAgIDxTaGVldERlc2NyaXB0aW9uPkRpc3BsYXlzIHRoZSBtb2JpbGUgc2lkZWJhci48L1NoZWV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgPC9TaGVldEhlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbFwiPntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAgPC9TaGVldENvbnRlbnQ+XG4gICAgICA8L1NoZWV0PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgcGVlciB0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBoaWRkZW4gbWQ6YmxvY2tcIlxuICAgICAgZGF0YS1zdGF0ZT17c3RhdGV9XG4gICAgICBkYXRhLWNvbGxhcHNpYmxlPXtzdGF0ZSA9PT0gXCJjb2xsYXBzZWRcIiA/IGNvbGxhcHNpYmxlIDogXCJcIn1cbiAgICAgIGRhdGEtdmFyaWFudD17dmFyaWFudH1cbiAgICAgIGRhdGEtc2lkZT17c2lkZX1cbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXJcIlxuICAgID5cbiAgICAgIHsvKiBUaGlzIGlzIHdoYXQgaGFuZGxlcyB0aGUgc2lkZWJhciBnYXAgb24gZGVza3RvcCAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1nYXBcIlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwidHJhbnNpdGlvbi1bd2lkdGhdIGR1cmF0aW9uLTIwMCBlYXNlLWxpbmVhciByZWxhdGl2ZSB3LSgtLXNpZGViYXItd2lkdGgpIGJnLXRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1vZmZjYW52YXNdOnctMFwiLFxuICAgICAgICAgIFwiZ3JvdXAtZGF0YS1bc2lkZT1yaWdodF06cm90YXRlLTE4MFwiLFxuICAgICAgICAgIHZhcmlhbnQgPT09IFwiZmxvYXRpbmdcIiB8fCB2YXJpYW50ID09PSBcImluc2V0XCJcbiAgICAgICAgICAgID8gXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTp3LVtjYWxjKHZhcigtLXNpZGViYXItd2lkdGgtaWNvbikrKC0tc3BhY2luZyg0KSkpXVwiXG4gICAgICAgICAgICA6IFwiZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06dy0oLS1zaWRlYmFyLXdpZHRoLWljb24pXCIsXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLWNvbnRhaW5lclwiXG4gICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgXCJzdGlja3kgdG9wLTAgei0xMCBoaWRkZW4gaC1zdmggdy0oLS1zaWRlYmFyLXdpZHRoKSB0cmFuc2l0aW9uLVttYXJnaW4sdHJhbnNsYXRlLHdpZHRoXSBkdXJhdGlvbi0yMDAgZWFzZS1saW5lYXIgbWQ6ZmxleFwiLFxuICAgICAgICAgIHNpZGUgPT09IFwibGVmdFwiXG4gICAgICAgICAgICA/IFwiZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9b2ZmY2FudmFzXTotbWwtKC0tc2lkZWJhci13aWR0aClcIlxuICAgICAgICAgICAgOiBcImdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106LW1sLSgtLXNpZGViYXItd2lkdGgpIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106dHJhbnNsYXRlLXgtZnVsbFwiLFxuICAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFkZGluZyBmb3IgZmxvYXRpbmcgYW5kIGluc2V0IHZhcmlhbnRzLlxuICAgICAgICAgIHZhcmlhbnQgPT09IFwiZmxvYXRpbmdcIiB8fCB2YXJpYW50ID09PSBcImluc2V0XCJcbiAgICAgICAgICAgID8gXCJwLTIgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06dy1bY2FsYyh2YXIoLS1zaWRlYmFyLXdpZHRoLWljb24pKygtLXNwYWNpbmcoNCkpKzJweCldXCJcbiAgICAgICAgICAgIDogXCJncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTp3LSgtLXNpZGViYXItd2lkdGgtaWNvbikgZ3JvdXAtZGF0YS1bc2lkZT1sZWZ0XTpib3JkZXItciBncm91cC1kYXRhLVtzaWRlPXJpZ2h0XTpib3JkZXItbFwiLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgKX1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1zaWRlYmFyPVwic2lkZWJhclwiXG4gICAgICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1pbm5lclwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2lkZWJhciBncm91cC1kYXRhLVt2YXJpYW50PWZsb2F0aW5nXTpyaW5nLXNpZGViYXItYm9yZGVyIGdyb3VwLWRhdGEtW3ZhcmlhbnQ9ZmxvYXRpbmddOnJvdW5kZWQtbGcgZ3JvdXAtZGF0YS1bdmFyaWFudD1mbG9hdGluZ106c2hhZG93LXNtIGdyb3VwLWRhdGEtW3ZhcmlhbnQ9ZmxvYXRpbmddOnJpbmctMSBmbGV4IHNpemUtZnVsbCBmbGV4LWNvbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclRyaWdnZXIoe1xuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIC4uLnByb3BzXG59OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPikge1xuICBjb25zdCB7IHRvZ2dsZVNpZGViYXIgfSA9IHVzZVNpZGViYXIoKVxuXG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgZGF0YS1zaWRlYmFyPVwidHJpZ2dlclwiXG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLXRyaWdnZXJcIlxuICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgIHNpemU9XCJpY29uLXNtXCJcbiAgICAgIGFyaWEta2V5c2hvcnRjdXRzPVwiTFwiXG4gICAgICBjbGFzc05hbWU9e2NuKGNsYXNzTmFtZSl9XG4gICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgIG9uQ2xpY2s/LihldmVudClcbiAgICAgICAgdG9nZ2xlU2lkZWJhcigpXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxNZW51IC8+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+VG9nZ2xlIFNpZGViYXI8L3NwYW4+XG4gICAgPC9CdXR0b24+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclJhaWwoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+KSB7XG4gIGNvbnN0IHsgdG9nZ2xlU2lkZWJhciB9ID0gdXNlU2lkZWJhcigpXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXNpZGViYXI9XCJyYWlsXCJcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItcmFpbFwiXG4gICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIFNpZGViYXJcIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgb25DbGljaz17dG9nZ2xlU2lkZWJhcn1cbiAgICAgIHRpdGxlPVwiVG9nZ2xlIFNpZGViYXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJob3ZlcjphZnRlcjpiZy1zaWRlYmFyLWJvcmRlciBhYnNvbHV0ZSBpbnNldC15LTAgei0yMCBoaWRkZW4gdy00IC10cmFuc2xhdGUteC0xLzIgdHJhbnNpdGlvbi1hbGwgZWFzZS1saW5lYXIgZ3JvdXAtZGF0YS1bc2lkZT1sZWZ0XTotcmlnaHQtNCBncm91cC1kYXRhLVtzaWRlPXJpZ2h0XTpsZWZ0LTAgYWZ0ZXI6YWJzb2x1dGUgYWZ0ZXI6aW5zZXQteS0wIGFmdGVyOmxlZnQtMS8yIGFmdGVyOnctWzJweF0gc206ZmxleFwiLFxuICAgICAgICBcImluLWRhdGEtW3NpZGU9bGVmdF06Y3Vyc29yLXctcmVzaXplIGluLWRhdGEtW3NpZGU9cmlnaHRdOmN1cnNvci1lLXJlc2l6ZVwiLFxuICAgICAgICBcIltbZGF0YS1zaWRlPWxlZnRdW2RhdGEtc3RhdGU9Y29sbGFwc2VkXV8mXTpjdXJzb3ItZS1yZXNpemUgW1tkYXRhLXNpZGU9cmlnaHRdW2RhdGEtc3RhdGU9Y29sbGFwc2VkXV8mXTpjdXJzb3Itdy1yZXNpemVcIixcbiAgICAgICAgXCJob3Zlcjpncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1vZmZjYW52YXNdOmJnLXNpZGViYXIgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9b2ZmY2FudmFzXTp0cmFuc2xhdGUteC0wIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPW9mZmNhbnZhc106YWZ0ZXI6bGVmdC1mdWxsXCIsXG4gICAgICAgIFwiW1tkYXRhLXNpZGU9bGVmdF1bZGF0YS1jb2xsYXBzaWJsZT1vZmZjYW52YXNdXyZdOi1yaWdodC0yXCIsXG4gICAgICAgIFwiW1tkYXRhLXNpZGU9cmlnaHRdW2RhdGEtY29sbGFwc2libGU9b2ZmY2FudmFzXV8mXTotbGVmdC0yXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFySW5zZXQoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwibWFpblwiPikge1xuICByZXR1cm4gKFxuICAgIDxtYWluXG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLWluc2V0XCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiYmctYmFja2dyb3VuZCBtZDpwZWVyLWRhdGEtW3ZhcmlhbnQ9aW5zZXRdOm0tMiBtZDpwZWVyLWRhdGEtW3ZhcmlhbnQ9aW5zZXRdOm1sLTAgbWQ6cGVlci1kYXRhLVt2YXJpYW50PWluc2V0XTpyb3VuZGVkLXhsIG1kOnBlZXItZGF0YS1bdmFyaWFudD1pbnNldF06c2hhZG93LXNtIG1kOnBlZXItZGF0YS1bdmFyaWFudD1pbnNldF06cGVlci1kYXRhLVtzdGF0ZT1jb2xsYXBzZWRdOm1sLTIgcmVsYXRpdmUgZmxleCB3LWZ1bGwgZmxleC0xIGZsZXgtY29sXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFySW5wdXQoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJbnB1dD4pIHtcbiAgcmV0dXJuIChcbiAgICA8SW5wdXRcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItaW5wdXRcIlxuICAgICAgZGF0YS1zaWRlYmFyPVwiaW5wdXRcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcImJnLWJhY2tncm91bmQgaC04IHctZnVsbCBzaGFkb3ctbm9uZVwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhckhlYWRlcih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLWhlYWRlclwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJoZWFkZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcImdhcC0yIHAtMiBmbGV4IGZsZXgtY29sXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyRm9vdGVyKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBSZWFjdC5Db21wb25lbnRQcm9wczxcImRpdlwiPikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItZm9vdGVyXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImZvb3RlclwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiZ2FwLTIgcC0yIGZsZXggZmxleC1jb2xcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJTZXBhcmF0b3Ioe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU2VwYXJhdG9yPikge1xuICByZXR1cm4gKFxuICAgIDxTZXBhcmF0b3JcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItc2VwYXJhdG9yXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cInNlcGFyYXRvclwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiYmctc2lkZWJhci1ib3JkZXIgbXgtMiB3LWF1dG9cIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJDb250ZW50KHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9OiBSZWFjdC5Db21wb25lbnRQcm9wczxcImRpdlwiPikge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItY29udGVudFwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJjb250ZW50XCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwibm8tc2Nyb2xsYmFyIGdhcC0yIGZsZXggbWluLWgtMCBmbGV4LTEgZmxleC1jb2wgb3ZlcmZsb3ctYXV0byBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpvdmVyZmxvdy1oaWRkZW5cIixcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJHcm91cCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLWdyb3VwXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImdyb3VwXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJwLTIgcmVsYXRpdmUgZmxleCB3LWZ1bGwgbWluLXctMCBmbGV4LWNvbFwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhckdyb3VwTGFiZWwoe1xuICBjbGFzc05hbWUsXG4gIHJlbmRlcixcbiAgLi4ucHJvcHNcbn06IHVzZVJlbmRlci5Db21wb25lbnRQcm9wczxcImRpdlwiPiAmIFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiB1c2VSZW5kZXIoe1xuICAgIGRlZmF1bHRUYWdOYW1lOiBcImRpdlwiLFxuICAgIHByb3BzOiBtZXJnZVByb3BzPFwiZGl2XCI+KFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IGNuKFxuICAgICAgICAgIFwidGV4dC1zaWRlYmFyLWZvcmVncm91bmQvNzAgcmluZy1zaWRlYmFyLXJpbmcgaC04IHJvdW5kZWQtbWQgcHgtMiB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tW21hcmdpbixvcGFjaXR5XSBkdXJhdGlvbi0yMDAgZWFzZS1saW5lYXIgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06LW10LTggZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06b3BhY2l0eS0wIGZvY3VzLXZpc2libGU6cmluZy0yIFsmPnN2Z106c2l6ZS00IGZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIG91dGxpbmUtaGlkZGVuIFsmPnN2Z106c2hyaW5rLTBcIixcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcHJvcHMsXG4gICAgKSxcbiAgICByZW5kZXIsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNsb3Q6IFwic2lkZWJhci1ncm91cC1sYWJlbFwiLFxuICAgICAgc2lkZWJhcjogXCJncm91cC1sYWJlbFwiLFxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJHcm91cEFjdGlvbih7XG4gIGNsYXNzTmFtZSxcbiAgcmVuZGVyLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+ICYgUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4pIHtcbiAgcmV0dXJuIHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiYnV0dG9uXCIsXG4gICAgcHJvcHM6IG1lcmdlUHJvcHM8XCJidXR0b25cIj4oXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogY24oXG4gICAgICAgICAgXCJ0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCByaW5nLXNpZGViYXItcmluZyBob3ZlcjpiZy1zaWRlYmFyLWFjY2VudCBob3Zlcjp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQgYWJzb2x1dGUgdG9wLTMuNSByaWdodC0zIHctNSByb3VuZGVkLWNvbnRyb2wgcC0wIGZvY3VzLXZpc2libGU6cmluZy0yIFsmPnN2Z106c2l6ZS00IGZsZXggYXNwZWN0LXNxdWFyZSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3V0bGluZS1oaWRkZW4gdHJhbnNpdGlvbi10cmFuc2Zvcm0gWyY+c3ZnXTpzaHJpbmstMCBhZnRlcjphYnNvbHV0ZSBhZnRlcjotaW5zZXQtMiBtZDphZnRlcjpoaWRkZW4gZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06aGlkZGVuXCIsXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHByb3BzLFxuICAgICksXG4gICAgcmVuZGVyLFxuICAgIHN0YXRlOiB7XG4gICAgICBzbG90OiBcInNpZGViYXItZ3JvdXAtYWN0aW9uXCIsXG4gICAgICBzaWRlYmFyOiBcImdyb3VwLWFjdGlvblwiLFxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJHcm91cENvbnRlbnQoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1ncm91cC1jb250ZW50XCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cImdyb3VwLWNvbnRlbnRcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gdy1mdWxsXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudSh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJ1bFwiPikge1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51XCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cIm1lbnVcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcImdhcC0xIGZsZXggdy1mdWxsIG1pbi13LTAgZmxleC1jb2xcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJNZW51SXRlbSh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJsaVwiPikge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LWl0ZW1cIlxuICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1pdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJncm91cC9tZW51LWl0ZW0gcmVsYXRpdmVcIiwgY2xhc3NOYW1lKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApXG59XG5cbmNvbnN0IHNpZGViYXJNZW51QnV0dG9uVmFyaWFudHMgPSBjdmEoXG4gIFwicmluZy1zaWRlYmFyLXJpbmcgaG92ZXI6Ymctc2lkZWJhci1hY2NlbnQgaG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGFjdGl2ZTpiZy1zaWRlYmFyLWFjY2VudCBhY3RpdmU6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtYWN0aXZlOmJnLXByaW1hcnkvMiBkYXJrOmRhdGEtYWN0aXZlOmJnLXByaW1hcnkvNSBkYXRhLWFjdGl2ZTpib3JkZXIgZGF0YS1hY3RpdmU6Ym9yZGVyLXByaW1hcnkvMjAgZGF0YS1hY3RpdmU6dGV4dC1wcmltYXJ5IGRhdGEtYWN0aXZlOlsmX3N2Z106c3Ryb2tlLVsyLjVdIGRhdGEtb3Blbjpob3ZlcjpiZy1zaWRlYmFyLWFjY2VudCBkYXRhLW9wZW46aG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGdhcC0yIHJvdW5kZWQtcm93IHB4LTMgcHktMiB0ZXh0LWxlZnQgdGV4dC1zbSB0cmFuc2l0aW9uLVt3aWR0aCxoZWlnaHQscGFkZGluZ10gZ3JvdXAtaGFzLWRhdGEtW3NpZGViYXI9bWVudS1hY3Rpb25dL21lbnUtaXRlbTpwci04IGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPWljb25dOnNpemUtOCEgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06cC0yISBmb2N1cy12aXNpYmxlOnJpbmctMiBkYXRhLWFjdGl2ZTpmb250LW1lZGl1bSBwZWVyL21lbnUtYnV0dG9uIGZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gb3V0bGluZS1oaWRkZW4gZ3JvdXAvbWVudS1idXR0b24gZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIGFyaWEtZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBhcmlhLWRpc2FibGVkOm9wYWNpdHktNTAgWyY+c3BhbjpsYXN0LWNoaWxkXTp0cnVuY2F0ZSBbJl9zdmddOnNpemUtNCBbJl9zdmddOnNocmluay0wXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiBcImhvdmVyOmJnLXNpZGViYXItYWNjZW50IGhvdmVyOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBvdXRsaW5lOlxuICAgICAgICAgIFwiYmctYmFja2dyb3VuZCBob3ZlcjpiZy1zaWRlYmFyLWFjY2VudCBob3Zlcjp0ZXh0LXNpZGViYXItYWNjZW50LWZvcmVncm91bmQgc2hhZG93LVswXzBfMF8xcHhfaHNsKHZhcigtLXNpZGViYXItYm9yZGVyKSldIGhvdmVyOnNoYWRvdy1bMF8wXzBfMXB4X2hzbCh2YXIoLS1zaWRlYmFyLWFjY2VudCkpXVwiLFxuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgZGVmYXVsdDogXCJoLTggdGV4dC1zbVwiLFxuICAgICAgICBzbTogXCJoLTcgdGV4dC14c1wiLFxuICAgICAgICBsZzogXCJoLTEyIHRleHQtc20gZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06cC0wIVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgICBzaXplOiBcImRlZmF1bHRcIixcbiAgICB9LFxuICB9LFxuKVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudUJ1dHRvbih7XG4gIHJlbmRlcixcbiAgaXNBY3RpdmUgPSBmYWxzZSxcbiAgdmFyaWFudCA9IFwiZGVmYXVsdFwiLFxuICBzaXplID0gXCJkZWZhdWx0XCIsXG4gIHRvb2x0aXAsXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IHVzZVJlbmRlci5Db21wb25lbnRQcm9wczxcImJ1dHRvblwiPiAmXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+ICYge1xuICAgIGlzQWN0aXZlPzogYm9vbGVhblxuICAgIHRvb2x0aXA/OiBzdHJpbmcgfCBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVG9vbHRpcENvbnRlbnQ+XG4gIH0gJiBWYXJpYW50UHJvcHM8dHlwZW9mIHNpZGViYXJNZW51QnV0dG9uVmFyaWFudHM+KSB7XG4gIGNvbnN0IHsgaXNNb2JpbGUsIHN0YXRlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3QgY29tcCA9IHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiYnV0dG9uXCIsXG4gICAgcHJvcHM6IG1lcmdlUHJvcHM8XCJidXR0b25cIj4oXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogY24oc2lkZWJhck1lbnVCdXR0b25WYXJpYW50cyh7IHZhcmlhbnQsIHNpemUgfSksIGNsYXNzTmFtZSksXG4gICAgICB9LFxuICAgICAgcHJvcHMsXG4gICAgKSxcbiAgICByZW5kZXI6ICF0b29sdGlwID8gcmVuZGVyIDogVG9vbHRpcFRyaWdnZXIsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNsb3Q6IFwic2lkZWJhci1tZW51LWJ1dHRvblwiLFxuICAgICAgc2lkZWJhcjogXCJtZW51LWJ1dHRvblwiLFxuICAgICAgc2l6ZSxcbiAgICAgIGFjdGl2ZTogaXNBY3RpdmUsXG4gICAgfSxcbiAgfSlcblxuICBpZiAoIXRvb2x0aXApIHtcbiAgICByZXR1cm4gY29tcFxuICB9XG5cbiAgaWYgKHR5cGVvZiB0b29sdGlwID09PSBcInN0cmluZ1wiKSB7XG4gICAgdG9vbHRpcCA9IHtcbiAgICAgIGNoaWxkcmVuOiB0b29sdGlwLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFRvb2x0aXA+XG4gICAgICB7Y29tcH1cbiAgICAgIDxUb29sdGlwQ29udGVudFxuICAgICAgICBzaWRlPVwicmlnaHRcIlxuICAgICAgICBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgIGhpZGRlbj17c3RhdGUgIT09IFwiY29sbGFwc2VkXCIgfHwgaXNNb2JpbGV9XG4gICAgICAgIHsuLi50b29sdGlwfVxuICAgICAgLz5cbiAgICA8L1Rvb2x0aXA+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhck1lbnVBY3Rpb24oe1xuICBjbGFzc05hbWUsXG4gIHJlbmRlcixcbiAgc2hvd09uSG92ZXIgPSBmYWxzZSxcbiAgLi4ucHJvcHNcbn06IHVzZVJlbmRlci5Db21wb25lbnRQcm9wczxcImJ1dHRvblwiPiAmXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzPFwiYnV0dG9uXCI+ICYge1xuICAgIHNob3dPbkhvdmVyPzogYm9vbGVhblxuICB9KSB7XG4gIHJldHVybiB1c2VSZW5kZXIoe1xuICAgIGRlZmF1bHRUYWdOYW1lOiBcImJ1dHRvblwiLFxuICAgIHByb3BzOiBtZXJnZVByb3BzPFwiYnV0dG9uXCI+KFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IGNuKFxuICAgICAgICAgIFwidGV4dC1zaWRlYmFyLWZvcmVncm91bmQgcmluZy1zaWRlYmFyLXJpbmcgaG92ZXI6Ymctc2lkZWJhci1hY2NlbnQgaG92ZXI6dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIHBlZXItaG92ZXIvbWVudS1idXR0b246dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGFic29sdXRlIHRvcC0xLjUgcmlnaHQtMSBhc3BlY3Qtc3F1YXJlIHctNSByb3VuZGVkLWNvbnRyb2wgcC0wIHBlZXItZGF0YS1bc2l6ZT1kZWZhdWx0XS9tZW51LWJ1dHRvbjp0b3AtMS41IHBlZXItZGF0YS1bc2l6ZT1sZ10vbWVudS1idXR0b246dG9wLTIuNSBwZWVyLWRhdGEtW3NpemU9c21dL21lbnUtYnV0dG9uOnRvcC0xIGZvY3VzLXZpc2libGU6cmluZy0yIFsmPnN2Z106c2l6ZS00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG91dGxpbmUtaGlkZGVuIHRyYW5zaXRpb24tdHJhbnNmb3JtIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPWljb25dOmhpZGRlbiBhZnRlcjphYnNvbHV0ZSBhZnRlcjotaW5zZXQtMiBtZDphZnRlcjpoaWRkZW4gWyY+c3ZnXTpzaHJpbmstMFwiLFxuICAgICAgICAgIHNob3dPbkhvdmVyICYmXG4gICAgICAgICAgICBcInBlZXItZGF0YS1hY3RpdmUvbWVudS1idXR0b246dGV4dC1zaWRlYmFyLWFjY2VudC1mb3JlZ3JvdW5kIGdyb3VwLWZvY3VzLXdpdGhpbi9tZW51LWl0ZW06b3BhY2l0eS0xMDAgZ3JvdXAtaG92ZXIvbWVudS1pdGVtOm9wYWNpdHktMTAwIGRhdGEtb3BlbjpvcGFjaXR5LTEwMCBtZDpvcGFjaXR5LTBcIixcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcHJvcHMsXG4gICAgKSxcbiAgICByZW5kZXIsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNsb3Q6IFwic2lkZWJhci1tZW51LWFjdGlvblwiLFxuICAgICAgc2lkZWJhcjogXCJtZW51LWFjdGlvblwiLFxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJNZW51QmFkZ2UoeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwiZGl2XCI+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LWJhZGdlXCJcbiAgICAgIGRhdGEtc2lkZWJhcj1cIm1lbnUtYmFkZ2VcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJ0ZXh0LXNpZGViYXItZm9yZWdyb3VuZCBwZWVyLWhvdmVyL21lbnUtYnV0dG9uOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBwZWVyLWRhdGEtYWN0aXZlL21lbnUtYnV0dG9uOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIHJpZ2h0LTEgZmxleCBoLTUgbWluLXctNSByb3VuZGVkLW1kIHB4LTEgdGV4dC14cyBmb250LW1lZGl1bSBwZWVyLWRhdGEtW3NpemU9ZGVmYXVsdF0vbWVudS1idXR0b246dG9wLTEuNSBwZWVyLWRhdGEtW3NpemU9bGddL21lbnUtYnV0dG9uOnRvcC0yLjUgcGVlci1kYXRhLVtzaXplPXNtXS9tZW51LWJ1dHRvbjp0b3AtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0YWJ1bGFyLW51bXMgc2VsZWN0LW5vbmUgZ3JvdXAtZGF0YS1bY29sbGFwc2libGU9aWNvbl06aGlkZGVuXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVNrZWxldG9uKHtcbiAgY2xhc3NOYW1lLFxuICBzaG93SWNvbiA9IGZhbHNlLFxuICAuLi5wcm9wc1xufTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJkaXZcIj4gJiB7XG4gIHNob3dJY29uPzogYm9vbGVhblxufSkge1xuICAvLyBSYW5kb20gd2lkdGggYmV0d2VlbiA1MCB0byA5MCUuXG4gIGNvbnN0IFt3aWR0aF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiB7XG4gICAgcmV0dXJuIGAke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQwKSArIDUwfSVgXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBkYXRhLXNsb3Q9XCJzaWRlYmFyLW1lbnUtc2tlbGV0b25cIlxuICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1za2VsZXRvblwiXG4gICAgICBjbGFzc05hbWU9e2NuKFwiaC04IGdhcC0yIHJvdW5kZWQtbWQgcHgtMiBmbGV4IGl0ZW1zLWNlbnRlclwiLCBjbGFzc05hbWUpfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiAmJiAoXG4gICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJzaXplLTQgcm91bmRlZC1tZFwiIGRhdGEtc2lkZWJhcj1cIm1lbnUtc2tlbGV0b24taWNvblwiIC8+XG4gICAgICApfVxuICAgICAgPFNrZWxldG9uXG4gICAgICAgIGNsYXNzTmFtZT1cImgtNCBtYXgtdy0oLS1za2VsZXRvbi13aWR0aCkgZmxleC0xXCJcbiAgICAgICAgZGF0YS1zaWRlYmFyPVwibWVudS1za2VsZXRvbi10ZXh0XCJcbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiLS1za2VsZXRvbi13aWR0aFwiOiB3aWR0aCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1Yih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJ1bFwiPikge1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgZGF0YS1zbG90PVwic2lkZWJhci1tZW51LXN1YlwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJtZW51LXN1YlwiXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBcImJvcmRlci1zaWRlYmFyLWJvcmRlciBteC0zLjUgdHJhbnNsYXRlLXgtcHggZ2FwLTEgYm9yZGVyLWwgcHgtMi41IHB5LTAuNSBncm91cC1kYXRhLVtjb2xsYXBzaWJsZT1pY29uXTpoaWRkZW4gZmxleCBtaW4tdy0wIGZsZXgtY29sXCIsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1Ykl0ZW0oeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFJlYWN0LkNvbXBvbmVudFByb3BzPFwibGlcIj4pIHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGRhdGEtc2xvdD1cInNpZGViYXItbWVudS1zdWItaXRlbVwiXG4gICAgICBkYXRhLXNpZGViYXI9XCJtZW51LXN1Yi1pdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJncm91cC9tZW51LXN1Yi1pdGVtIHJlbGF0aXZlXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTWVudVN1YkJ1dHRvbih7XG4gIHJlbmRlcixcbiAgc2l6ZSA9IFwibWRcIixcbiAgaXNBY3RpdmUgPSBmYWxzZSxcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogdXNlUmVuZGVyLkNvbXBvbmVudFByb3BzPFwiYVwiPiAmXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzPFwiYVwiPiAmIHtcbiAgICBzaXplPzogXCJzbVwiIHwgXCJtZFwiXG4gICAgaXNBY3RpdmU/OiBib29sZWFuXG4gIH0pIHtcbiAgcmV0dXJuIHVzZVJlbmRlcih7XG4gICAgZGVmYXVsdFRhZ05hbWU6IFwiYVwiLFxuICAgIHByb3BzOiBtZXJnZVByb3BzPFwiYVwiPihcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbihcbiAgICAgICAgICBcInRleHQtc2lkZWJhci1mb3JlZ3JvdW5kIHJpbmctc2lkZWJhci1yaW5nIGhvdmVyOmJnLXNpZGViYXItYWNjZW50IGhvdmVyOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBhY3RpdmU6Ymctc2lkZWJhci1hY2NlbnQgYWN0aXZlOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBbJj5zdmddOnRleHQtc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLWFjdGl2ZTpiZy1wcmltYXJ5LzIgZGFyazpkYXRhLWFjdGl2ZTpiZy1wcmltYXJ5LzUgZGF0YS1hY3RpdmU6Ym9yZGVyIGRhdGEtYWN0aXZlOmJvcmRlci1wcmltYXJ5LzIwIGRhdGEtYWN0aXZlOnRleHQtcHJpbWFyeSBkYXRhLWFjdGl2ZTpmb250LW1lZGl1bSBoLTcgZ2FwLTIgcm91bmRlZC1yb3cgcHgtMyBmb2N1cy12aXNpYmxlOnJpbmctMiBkYXRhLVtzaXplPW1kXTp0ZXh0LXNtIGRhdGEtW3NpemU9c21dOnRleHQteHMgWyY+c3ZnXTpzaXplLTQgZmxleCBtaW4tdy0wIC10cmFuc2xhdGUteC1weCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIG91dGxpbmUtaGlkZGVuIGdyb3VwLWRhdGEtW2NvbGxhcHNpYmxlPWljb25dOmhpZGRlbiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAgYXJpYS1kaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGFyaWEtZGlzYWJsZWQ6b3BhY2l0eS01MCBbJj5zcGFuOmxhc3QtY2hpbGRdOnRydW5jYXRlIFsmPnN2Z106c2hyaW5rLTBcIixcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcHJvcHMsXG4gICAgKSxcbiAgICByZW5kZXIsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNsb3Q6IFwic2lkZWJhci1tZW51LXN1Yi1idXR0b25cIixcbiAgICAgIHNpZGViYXI6IFwibWVudS1zdWItYnV0dG9uXCIsXG4gICAgICBzaXplLFxuICAgICAgYWN0aXZlOiBpc0FjdGl2ZSxcbiAgICB9LFxuICB9KVxufVxuXG5leHBvcnQge1xuICBTaWRlYmFyLFxuICBTaWRlYmFyQ29udGVudCxcbiAgU2lkZWJhckZvb3RlcixcbiAgU2lkZWJhckdyb3VwLFxuICBTaWRlYmFyR3JvdXBBY3Rpb24sXG4gIFNpZGViYXJHcm91cENvbnRlbnQsXG4gIFNpZGViYXJHcm91cExhYmVsLFxuICBTaWRlYmFySGVhZGVyLFxuICBTaWRlYmFySW5wdXQsXG4gIFNpZGViYXJJbnNldCxcbiAgU2lkZWJhck1lbnUsXG4gIFNpZGViYXJNZW51QWN0aW9uLFxuICBTaWRlYmFyTWVudUJhZGdlLFxuICBTaWRlYmFyTWVudUJ1dHRvbixcbiAgU2lkZWJhck1lbnVJdGVtLFxuICBTaWRlYmFyTWVudVNrZWxldG9uLFxuICBTaWRlYmFyTWVudVN1YixcbiAgU2lkZWJhck1lbnVTdWJCdXR0b24sXG4gIFNpZGViYXJNZW51U3ViSXRlbSxcbiAgU2lkZWJhclByb3ZpZGVyLFxuICBTaWRlYmFyUmFpbCxcbiAgU2lkZWJhclNlcGFyYXRvcixcbiAgU2lkZWJhclRyaWdnZXIsXG4gIHVzZVNpZGViYXIsXG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
2
2
  export { Skeleton };
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import { Slider as SliderPrimitive } from "@base-ui/react/slider";
2
- declare function Slider({ className, defaultValue, value, min, max, ...props }: SliderPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
3
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: SliderPrimitive.Root.Props): React.JSX.Element;
3
4
  export { Slider };
@@ -8,8 +8,7 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
8
8
  : Array.isArray(defaultValue)
9
9
  ? defaultValue
10
10
  : [min, max], [value, defaultValue, min, max]);
11
- return (_jsx(SliderPrimitive.Root, { className: cn("data-horizontal:w-full data-vertical:h-full", className), "data-slot": "slider", defaultValue: defaultValue, value: value, min: min, max: max, thumbAlignment: "edge", ...props, children: _jsxs(SliderPrimitive.Control, { className: "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col", children: [
12
- _jsx(SliderPrimitive.Track, { "data-slot": "slider-track", className: "relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5", children: _jsx(SliderPrimitive.Indicator, { "data-slot": "slider-range", className: "bg-primary select-none data-horizontal:h-full data-vertical:w-full" }) }), Array.from({ length: _values.length }, (_, index) => (_jsx(SliderPrimitive.Thumb, { "data-slot": "slider-thumb", className: "block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50" }, index)))] }) }));
11
+ return (_jsx(SliderPrimitive.Root, { className: cn("data-horizontal:w-full data-vertical:h-full", className), "data-slot": "slider", defaultValue: defaultValue, value: value, min: min, max: max, thumbAlignment: "edge", ...props, children: _jsxs(SliderPrimitive.Control, { className: "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col", children: [_jsx(SliderPrimitive.Track, { "data-slot": "slider-track", className: "relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5", children: _jsx(SliderPrimitive.Indicator, { "data-slot": "slider-range", className: "bg-primary select-none data-horizontal:h-full data-vertical:w-full" }) }), Array.from({ length: _values.length }, (_, index) => (_jsx(SliderPrimitive.Thumb, { "data-slot": "slider-thumb", className: "block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50" }, index)))] }) }));
13
12
  }
14
13
  export { Slider };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2VsZW1lbnRzL3NsaWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFBRSxNQUFNLElBQUksZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUV2QixTQUFTLE1BQU0sQ0FBQyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEdBQUcsR0FBRyxDQUFDLEVBQ1AsR0FBRyxHQUFHLEdBQUcsRUFDVCxHQUFHLEtBQUssRUFDbUI7SUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FDM0IsR0FBRyxFQUFFLENBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEtBQUs7UUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDM0IsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2xCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQ2hDLENBQUE7SUFFRCxPQUFPLENBQ0wsS0FBQyxlQUFlLENBQUMsSUFBSSxJQUNuQixTQUFTLEVBQUUsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLFNBQVMsQ0FBQyxlQUM3RCxRQUFRLEVBQ2xCLFlBQVksRUFBRSxZQUFZLEVBQzFCLEtBQUssRUFBRSxLQUFLLEVBQ1osR0FBRyxFQUFFLEdBQUcsRUFDUixHQUFHLEVBQUUsR0FBRyxFQUNSLGNBQWMsRUFBQyxNQUFNLEtBQ2pCLEtBQUssWUFFVCxNQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUMsU0FBUyxFQUFDLDJLQUEySztnQkFDNU0sS0FBQyxlQUFlLENBQUMsS0FBSyxpQkFDVixjQUFjLEVBQ3hCLFNBQVMsRUFBQyx1SkFBdUosWUFFakssS0FBQyxlQUFlLENBQUMsU0FBUyxpQkFDZCxjQUFjLEVBQ3hCLFNBQVMsRUFBQyxvRUFBb0UsR0FDOUUsR0FDb0IsRUFDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUNwRCxLQUFDLGVBQWUsQ0FBQyxLQUFLLGlCQUNWLGNBQWMsRUFFeEIsU0FBUyxFQUFDLG9QQUFvUCxJQUR6UCxLQUFLLENBRVYsQ0FDSCxDQUFDLElBQ3NCLEdBQ0wsQ0FDeEIsQ0FBQTtBQUNILENBQUM7QUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgU2xpZGVyIGFzIFNsaWRlclByaW1pdGl2ZSB9IGZyb20gXCJAYmFzZS11aS9yZWFjdC9zbGlkZXJcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJjblwiXG5cbmZ1bmN0aW9uIFNsaWRlcih7XG4gIGNsYXNzTmFtZSxcbiAgZGVmYXVsdFZhbHVlLFxuICB2YWx1ZSxcbiAgbWluID0gMCxcbiAgbWF4ID0gMTAwLFxuICAuLi5wcm9wc1xufTogU2xpZGVyUHJpbWl0aXZlLlJvb3QuUHJvcHMpIHtcbiAgY29uc3QgX3ZhbHVlcyA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgOiBBcnJheS5pc0FycmF5KGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICA/IGRlZmF1bHRWYWx1ZVxuICAgICAgICAgIDogW21pbiwgbWF4XSxcbiAgICBbdmFsdWUsIGRlZmF1bHRWYWx1ZSwgbWluLCBtYXhdLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2xpZGVyUHJpbWl0aXZlLlJvb3RcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJkYXRhLWhvcml6b250YWw6dy1mdWxsIGRhdGEtdmVydGljYWw6aC1mdWxsXCIsIGNsYXNzTmFtZSl9XG4gICAgICBkYXRhLXNsb3Q9XCJzbGlkZXJcIlxuICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBtaW49e21pbn1cbiAgICAgIG1heD17bWF4fVxuICAgICAgdGh1bWJBbGlnbm1lbnQ9XCJlZGdlXCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8U2xpZGVyUHJpbWl0aXZlLkNvbnRyb2wgY2xhc3NOYW1lPVwicmVsYXRpdmUgZmxleCB3LWZ1bGwgdG91Y2gtbm9uZSBpdGVtcy1jZW50ZXIgc2VsZWN0LW5vbmUgZGF0YS1kaXNhYmxlZDpvcGFjaXR5LTUwIGRhdGEtdmVydGljYWw6aC1mdWxsIGRhdGEtdmVydGljYWw6bWluLWgtNDAgZGF0YS12ZXJ0aWNhbDp3LWF1dG8gZGF0YS12ZXJ0aWNhbDpmbGV4LWNvbFwiPlxuICAgICAgICA8U2xpZGVyUHJpbWl0aXZlLlRyYWNrXG4gICAgICAgICAgZGF0YS1zbG90PVwic2xpZGVyLXRyYWNrXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBncm93IG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWZ1bGwgYmctbXV0ZWQgc2VsZWN0LW5vbmUgZGF0YS1ob3Jpem9udGFsOmgtMS41IGRhdGEtaG9yaXpvbnRhbDp3LWZ1bGwgZGF0YS12ZXJ0aWNhbDpoLWZ1bGwgZGF0YS12ZXJ0aWNhbDp3LTEuNVwiXG4gICAgICAgID5cbiAgICAgICAgICA8U2xpZGVyUHJpbWl0aXZlLkluZGljYXRvclxuICAgICAgICAgICAgZGF0YS1zbG90PVwic2xpZGVyLXJhbmdlXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXByaW1hcnkgc2VsZWN0LW5vbmUgZGF0YS1ob3Jpem9udGFsOmgtZnVsbCBkYXRhLXZlcnRpY2FsOnctZnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TbGlkZXJQcmltaXRpdmUuVHJhY2s+XG4gICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiBfdmFsdWVzLmxlbmd0aCB9LCAoXywgaW5kZXgpID0+IChcbiAgICAgICAgICA8U2xpZGVyUHJpbWl0aXZlLlRodW1iXG4gICAgICAgICAgICBkYXRhLXNsb3Q9XCJzbGlkZXItdGh1bWJcIlxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHNpemUtNCBzaHJpbmstMCByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1wcmltYXJ5IGJnLXdoaXRlIHNoYWRvdy1zbSByaW5nLXJpbmcvNTAgdHJhbnNpdGlvbi1bY29sb3IsYm94LXNoYWRvd10gc2VsZWN0LW5vbmUgaG92ZXI6cmluZy00IGZvY3VzLXZpc2libGU6cmluZy00IGZvY3VzLXZpc2libGU6b3V0bGluZS1oaWRkZW4gZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvU2xpZGVyUHJpbWl0aXZlLkNvbnRyb2w+XG4gICAgPC9TbGlkZXJQcmltaXRpdmUuUm9vdD5cbiAgKVxufVxuXG5leHBvcnQgeyBTbGlkZXIgfVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2VsZW1lbnRzL3NsaWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFBRSxNQUFNLElBQUksZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUV2QixTQUFTLE1BQU0sQ0FBQyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEdBQUcsR0FBRyxDQUFDLEVBQ1AsR0FBRyxHQUFHLEdBQUcsRUFDVCxHQUFHLEtBQUssRUFDbUI7SUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FDM0IsR0FBRyxFQUFFLENBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEtBQUs7UUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDM0IsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2xCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQ2hDLENBQUE7SUFFRCxPQUFPLENBQ0wsS0FBQyxlQUFlLENBQUMsSUFBSSxJQUNuQixTQUFTLEVBQUUsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLFNBQVMsQ0FBQyxlQUM3RCxRQUFRLEVBQ2xCLFlBQVksRUFBRSxZQUFZLEVBQzFCLEtBQUssRUFBRSxLQUFLLEVBQ1osR0FBRyxFQUFFLEdBQUcsRUFDUixHQUFHLEVBQUUsR0FBRyxFQUNSLGNBQWMsRUFBQyxNQUFNLEtBQ2pCLEtBQUssWUFFVCxNQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUMsU0FBUyxFQUFDLDJLQUEySyxhQUM1TSxLQUFDLGVBQWUsQ0FBQyxLQUFLLGlCQUNWLGNBQWMsRUFDeEIsU0FBUyxFQUFDLHVKQUF1SixZQUVqSyxLQUFDLGVBQWUsQ0FBQyxTQUFTLGlCQUNkLGNBQWMsRUFDeEIsU0FBUyxFQUFDLG9FQUFvRSxHQUM5RSxHQUNvQixFQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQ3BELEtBQUMsZUFBZSxDQUFDLEtBQUssaUJBQ1YsY0FBYyxFQUV4QixTQUFTLEVBQUMsb1BBQW9QLElBRHpQLEtBQUssQ0FFVixDQUNILENBQUMsSUFDc0IsR0FDTCxDQUN4QixDQUFBO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBTbGlkZXIgYXMgU2xpZGVyUHJpbWl0aXZlIH0gZnJvbSBcIkBiYXNlLXVpL3JlYWN0L3NsaWRlclwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcblxuZnVuY3Rpb24gU2xpZGVyKHtcbiAgY2xhc3NOYW1lLFxuICBkZWZhdWx0VmFsdWUsXG4gIHZhbHVlLFxuICBtaW4gPSAwLFxuICBtYXggPSAxMDAsXG4gIC4uLnByb3BzXG59OiBTbGlkZXJQcmltaXRpdmUuUm9vdC5Qcm9wcykge1xuICBjb25zdCBfdmFsdWVzID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoZGVmYXVsdFZhbHVlKVxuICAgICAgICAgID8gZGVmYXVsdFZhbHVlXG4gICAgICAgICAgOiBbbWluLCBtYXhdLFxuICAgIFt2YWx1ZSwgZGVmYXVsdFZhbHVlLCBtaW4sIG1heF0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTbGlkZXJQcmltaXRpdmUuUm9vdFxuICAgICAgY2xhc3NOYW1lPXtjbihcImRhdGEtaG9yaXpvbnRhbDp3LWZ1bGwgZGF0YS12ZXJ0aWNhbDpoLWZ1bGxcIiwgY2xhc3NOYW1lKX1cbiAgICAgIGRhdGEtc2xvdD1cInNsaWRlclwiXG4gICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIG1pbj17bWlufVxuICAgICAgbWF4PXttYXh9XG4gICAgICB0aHVtYkFsaWdubWVudD1cImVkZ2VcIlxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxTbGlkZXJQcmltaXRpdmUuQ29udHJvbCBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4IHctZnVsbCB0b3VjaC1ub25lIGl0ZW1zLWNlbnRlciBzZWxlY3Qtbm9uZSBkYXRhLWRpc2FibGVkOm9wYWNpdHktNTAgZGF0YS12ZXJ0aWNhbDpoLWZ1bGwgZGF0YS12ZXJ0aWNhbDptaW4taC00MCBkYXRhLXZlcnRpY2FsOnctYXV0byBkYXRhLXZlcnRpY2FsOmZsZXgtY29sXCI+XG4gICAgICAgIDxTbGlkZXJQcmltaXRpdmUuVHJhY2tcbiAgICAgICAgICBkYXRhLXNsb3Q9XCJzbGlkZXItdHJhY2tcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGdyb3cgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1tdXRlZCBzZWxlY3Qtbm9uZSBkYXRhLWhvcml6b250YWw6aC0xLjUgZGF0YS1ob3Jpem9udGFsOnctZnVsbCBkYXRhLXZlcnRpY2FsOmgtZnVsbCBkYXRhLXZlcnRpY2FsOnctMS41XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTbGlkZXJQcmltaXRpdmUuSW5kaWNhdG9yXG4gICAgICAgICAgICBkYXRhLXNsb3Q9XCJzbGlkZXItcmFuZ2VcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctcHJpbWFyeSBzZWxlY3Qtbm9uZSBkYXRhLWhvcml6b250YWw6aC1mdWxsIGRhdGEtdmVydGljYWw6dy1mdWxsXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L1NsaWRlclByaW1pdGl2ZS5UcmFjaz5cbiAgICAgICAge0FycmF5LmZyb20oeyBsZW5ndGg6IF92YWx1ZXMubGVuZ3RoIH0sIChfLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxTbGlkZXJQcmltaXRpdmUuVGh1bWJcbiAgICAgICAgICAgIGRhdGEtc2xvdD1cInNsaWRlci10aHVtYlwiXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgc2l6ZS00IHNocmluay0wIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXByaW1hcnkgYmctd2hpdGUgc2hhZG93LXNtIHJpbmctcmluZy81MCB0cmFuc2l0aW9uLVtjb2xvcixib3gtc2hhZG93XSBzZWxlY3Qtbm9uZSBob3ZlcjpyaW5nLTQgZm9jdXMtdmlzaWJsZTpyaW5nLTQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLWhpZGRlbiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9TbGlkZXJQcmltaXRpdmUuQ29udHJvbD5cbiAgICA8L1NsaWRlclByaW1pdGl2ZS5Sb290PlxuICApXG59XG5cbmV4cG9ydCB7IFNsaWRlciB9XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { type ToasterProps } from "sonner";
2
- declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Toaster: ({ ...props }: ToasterProps) => import("react").JSX.Element;
3
3
  export { Toaster };
@@ -1,2 +1,2 @@
1
- declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): import("react/jsx-runtime").JSX.Element;
1
+ declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): import("react").JSX.Element;
2
2
  export { Spinner };
@@ -1,5 +1,5 @@
1
1
  import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
2
2
  declare function Switch({ className, size, ...props }: SwitchPrimitive.Root.Props & {
3
3
  size?: "sm" | "default";
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
5
5
  export { Switch };
@@ -1,9 +1,9 @@
1
- declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
2
- declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
3
- declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
4
- declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
5
- declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
6
- declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
7
- declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
8
- declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
1
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react").JSX.Element;
2
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react").JSX.Element;
3
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react").JSX.Element;
4
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react").JSX.Element;
5
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react").JSX.Element;
6
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react").JSX.Element;
7
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react").JSX.Element;
8
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react").JSX.Element;
9
9
  export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
@@ -1,10 +1,10 @@
1
1
  import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
2
2
  import { type VariantProps } from "class-variance-authority";
3
- declare function Tabs({ className, orientation, ...props }: TabsPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
3
+ declare function Tabs({ className, orientation, ...props }: TabsPrimitive.Root.Props): import("react").JSX.Element;
4
4
  declare const tabsListVariants: (props?: ({
5
5
  variant?: "default" | "line" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
- declare function TabsList({ className, variant, ...props }: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>): import("react/jsx-runtime").JSX.Element;
8
- declare function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): import("react/jsx-runtime").JSX.Element;
9
- declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props): import("react/jsx-runtime").JSX.Element;
7
+ declare function TabsList({ className, variant, ...props }: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>): import("react").JSX.Element;
8
+ declare function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): import("react").JSX.Element;
9
+ declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props): import("react").JSX.Element;
10
10
  export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };