sa2kit 3.1.0 → 3.2.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 (712) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/{AliyunOSSProvider-4GRL2FJB.js.map → AliyunOSSProvider-7IOT5U6M.js.map} +1 -1
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/{AliyunOSSProvider-QNVFIZ7Q.mjs.map → AliyunOSSProvider-ZXZM7OQA.mjs.map} +1 -1
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/{LocalStorageProvider-PFA2DMIJ.js.map → LocalStorageProvider-KJKRCKBS.js.map} +1 -1
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/{LocalStorageProvider-J5RHV37G.mjs.map → LocalStorageProvider-O22465NY.mjs.map} +1 -1
  10. package/dist/{chunk-SLKOEYFH.js → chunk-2234T4A6.js} +5 -5
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/{chunk-HQLKOXG7.js → chunk-36KGNXKW.js} +3 -3
  13. package/dist/{chunk-HQLKOXG7.js.map → chunk-36KGNXKW.js.map} +1 -1
  14. package/dist/{chunk-BCE6RUZV.js → chunk-375C7WL7.js} +19 -19
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/{chunk-VMTEDX5H.js → chunk-3J24Z4MB.js} +34 -318
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/{chunk-PBI7FKMB.js → chunk-3QCATFQV.js} +3 -3
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/{chunk-FXQOXLDE.js → chunk-3R6JHA6D.js} +4 -4
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/{chunk-ZRAW3HXA.js → chunk-4OXKHV7J.js} +3 -3
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/{chunk-5USIS3UM.js.map → chunk-4PJM4752.js.map} +1 -1
  26. package/dist/{chunk-3Z43XGA4.mjs → chunk-65JRVC3F.mjs} +4 -4
  27. package/dist/{chunk-3Z43XGA4.mjs.map → chunk-65JRVC3F.mjs.map} +1 -1
  28. package/dist/{chunk-Q5EDCKQA.js → chunk-6HL54I2B.js} +16 -16
  29. package/dist/chunk-6HL54I2B.js.map +1 -0
  30. package/dist/chunk-6V2MIQPF.mjs +77 -0
  31. package/dist/chunk-6V2MIQPF.mjs.map +1 -0
  32. package/dist/{chunk-C6KV7VTZ.mjs → chunk-7CRU2Y5X.mjs} +5 -5
  33. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  34. package/dist/chunk-7PMT4L4I.js +324 -0
  35. package/dist/chunk-7PMT4L4I.js.map +1 -0
  36. package/dist/{chunk-XJ7ZAGC5.js → chunk-7VVZHFEM.js} +3 -3
  37. package/dist/chunk-7VVZHFEM.js.map +1 -0
  38. package/dist/chunk-AWHGIKTQ.js +56 -0
  39. package/dist/{chunk-FHLTPXAR.js.map → chunk-AWHGIKTQ.js.map} +1 -1
  40. package/dist/chunk-B3GYF6TY.js +37 -0
  41. package/dist/{chunk-2Y7BKFKZ.js.map → chunk-B3GYF6TY.js.map} +1 -1
  42. package/dist/{chunk-5FUAQLGC.mjs → chunk-BDBJFOXM.mjs} +3 -3
  43. package/dist/{chunk-5FUAQLGC.mjs.map → chunk-BDBJFOXM.mjs.map} +1 -1
  44. package/dist/{chunk-ZGVB35L2.mjs → chunk-BTW3SWQN.mjs} +3 -3
  45. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  46. package/dist/{chunk-I5ZPEDNR.mjs → chunk-CHYSSZ4E.mjs} +10 -10
  47. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  48. package/dist/{chunk-FIUBFREP.mjs → chunk-DO6QYAZV.mjs} +5 -5
  49. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  50. package/dist/{chunk-MBANGIG3.mjs → chunk-DTR53LQO.mjs} +6 -6
  51. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  52. package/dist/{chunk-EQXPL7TN.mjs → chunk-EI2S4XDG.mjs} +16 -5
  53. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  54. package/dist/{chunk-GSNGCENJ.js → chunk-EOZHUI46.js} +16 -4
  55. package/dist/chunk-EOZHUI46.js.map +1 -0
  56. package/dist/{chunk-25OFOKNF.js → chunk-F2BZIU67.js} +18 -5
  57. package/dist/chunk-F2BZIU67.js.map +1 -0
  58. package/dist/{chunk-AQPU2AXH.js → chunk-F2TEJSCP.js} +10 -10
  59. package/dist/chunk-F2TEJSCP.js.map +1 -0
  60. package/dist/{chunk-UCOE6SET.js → chunk-FCLS5R24.js} +3 -3
  61. package/dist/chunk-FCLS5R24.js.map +1 -0
  62. package/dist/{chunk-3NHAT7D4.mjs → chunk-FUA6ZGMI.mjs} +27 -12
  63. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  64. package/dist/chunk-FY2X3LYR.mjs +3 -0
  65. package/dist/{chunk-VRN76M56.mjs.map → chunk-FY2X3LYR.mjs.map} +1 -1
  66. package/dist/{chunk-V7EVKD5G.mjs → chunk-GS4SAW25.mjs} +4 -4
  67. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  68. package/dist/chunk-H56ICWUO.js +321 -0
  69. package/dist/chunk-H56ICWUO.js.map +1 -0
  70. package/dist/{chunk-HDMIOOZY.mjs → chunk-HG34SGMN.mjs} +4 -4
  71. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  72. package/dist/chunk-HL4H2HF6.js +279 -0
  73. package/dist/chunk-HL4H2HF6.js.map +1 -0
  74. package/dist/chunk-IJIQUMAK.mjs +272 -0
  75. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  76. package/dist/{imageCrop/index.mjs → chunk-KEZFTDZT.mjs} +24 -6
  77. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  78. package/dist/{chunk-KQ643L7Z.js → chunk-KHOVC2KL.js} +3 -3
  79. package/dist/chunk-KHOVC2KL.js.map +1 -0
  80. package/dist/{chunk-6PMXAK7F.js → chunk-KRBSTLKC.js} +57 -57
  81. package/dist/chunk-KRBSTLKC.js.map +1 -0
  82. package/dist/chunk-KVYHCGRY.js +2011 -0
  83. package/dist/chunk-KVYHCGRY.js.map +1 -0
  84. package/dist/{chunk-G7UBMCUT.mjs → chunk-LZ5YTMMP.mjs} +3 -3
  85. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  86. package/dist/{chunk-WW4GE6CZ.js → chunk-MJ6XJGAL.js} +23 -119
  87. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  88. package/dist/{chunk-NCRP2YHY.mjs → chunk-MKLXCV4Z.mjs} +8 -96
  89. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  90. package/dist/chunk-MMDSZIXD.mjs +286 -0
  91. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  92. package/dist/{chunk-TC5YU6A4.mjs → chunk-N2O3OX5Y.mjs} +3 -3
  93. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  94. package/dist/{chunk-3FRAIS4T.mjs → chunk-O6NNSPWD.mjs} +5 -5
  95. package/dist/{chunk-3FRAIS4T.mjs.map → chunk-O6NNSPWD.mjs.map} +1 -1
  96. package/dist/chunk-OIRZXSYM.js +80 -0
  97. package/dist/chunk-OIRZXSYM.js.map +1 -0
  98. package/dist/{chunk-Q5VFBPMG.mjs → chunk-P7JQRNBJ.mjs} +3 -3
  99. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  100. package/dist/{chunk-BIHYZA67.mjs → chunk-PLIG5257.mjs} +18 -18
  101. package/dist/chunk-PLIG5257.mjs.map +1 -0
  102. package/dist/chunk-QIF4MG5V.mjs +283 -0
  103. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  104. package/dist/{chunk-4OOANEJV.mjs → chunk-RHECN4E2.mjs} +21 -21
  105. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  106. package/dist/{chunk-YOTQG4NP.mjs → chunk-RHHTZTIN.mjs} +4 -4
  107. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  108. package/dist/{chunk-G6NSKJMH.js → chunk-RRQ2X26Z.js} +4 -4
  109. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  110. package/dist/{chunk-4WBCWJSN.js → chunk-RST2T54Y.js} +7 -7
  111. package/dist/chunk-RST2T54Y.js.map +1 -0
  112. package/dist/{chunk-R2DXTE2L.js → chunk-RVNQI6BI.js} +4 -4
  113. package/dist/chunk-RVNQI6BI.js.map +1 -0
  114. package/dist/{chunk-SKFEJPMJ.mjs → chunk-S3K4LTRI.mjs} +6 -6
  115. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  116. package/dist/{chunk-ZM2SZJTZ.js → chunk-SWZ5XNF6.js} +9 -9
  117. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  118. package/dist/{chunk-QSKLQX6H.js → chunk-U7HNBCBS.js} +16 -16
  119. package/dist/chunk-U7HNBCBS.js.map +1 -0
  120. package/dist/{chunk-CIVO4R6N.mjs → chunk-UJS3YSD3.mjs} +3 -3
  121. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  122. package/dist/{chunk-G6HXNQ2U.mjs → chunk-UJUWDF7M.mjs} +8 -8
  123. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  124. package/dist/{chunk-CAYOQDBR.js → chunk-UR5NENGE.js} +3 -3
  125. package/dist/chunk-UR5NENGE.js.map +1 -0
  126. package/dist/{chunk-QXAOXBVB.mjs → chunk-V7HGBDCB.mjs} +3 -3
  127. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  128. package/dist/{chunk-ATUCZXJY.js → chunk-V7RLIZMN.js} +14 -4
  129. package/dist/chunk-V7RLIZMN.js.map +1 -0
  130. package/dist/{chunk-ACUFEDVQ.js → chunk-VCKXK6V5.js} +9 -9
  131. package/dist/chunk-VCKXK6V5.js.map +1 -0
  132. package/dist/{chunk-XUS5ACKR.mjs → chunk-VIEXDTNF.mjs} +3 -3
  133. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  134. package/dist/{imageCrop/index.js → chunk-VN2DULIA.js} +24 -5
  135. package/dist/chunk-VN2DULIA.js.map +1 -0
  136. package/dist/{chunk-S6YSGVWD.js → chunk-VNWMRUY6.js} +31 -87
  137. package/dist/chunk-VNWMRUY6.js.map +1 -0
  138. package/dist/{chunk-3DXPQ4YV.mjs → chunk-VYK4M2D6.mjs} +18 -6
  139. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  140. package/dist/{chunk-WEEXCPSE.mjs → chunk-WB4H6ZUW.mjs} +3 -3
  141. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  142. package/dist/{chunk-GWNBVGDT.mjs → chunk-WM3AEJ2E.mjs} +6 -257
  143. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  144. package/dist/{chunk-CX2GHCAI.mjs → chunk-X5GINUGI.mjs} +26 -81
  145. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  146. package/dist/{chunk-DIF5VRL3.mjs → chunk-XB7GUEHZ.mjs} +14 -5
  147. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  148. package/dist/{chunk-ZLYPALF3.js → chunk-XE5RGZ3B.js} +11 -11
  149. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  150. package/dist/{chunk-WJ7IMUEJ.mjs → chunk-XNTIMVSL.mjs} +7 -7
  151. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  152. package/dist/{chunk-ZWQJSZEY.js → chunk-Y7WHUKJF.js} +28 -12
  153. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  154. package/dist/{components/index.mjs → chunk-YIRPPMCN.mjs} +305 -785
  155. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  156. package/dist/{chunk-KH6RQ4J5.js → chunk-Z2SNB5LJ.js} +3 -3
  157. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  158. package/dist/{chunk-HJ6MH7J7.js → chunk-ZOP7YIVX.js} +17 -17
  159. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  160. package/dist/{chunk-HJZHQW5R.mjs → chunk-ZUZLWHH5.mjs} +3 -3
  161. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  162. package/dist/{ai → common/ai}/llm/core/index.d.mts +3 -3
  163. package/dist/{ai → common/ai}/llm/core/index.d.ts +3 -3
  164. package/dist/{ai/llm → common/ai/llm/core}/index.js +14 -14
  165. package/dist/{ai/llm → common/ai/llm/core}/index.mjs +3 -3
  166. package/dist/{ai → common/ai}/llm/electron/index.d.mts +3 -3
  167. package/dist/{ai/llm/web → common/ai/llm/electron}/index.d.ts +3 -3
  168. package/dist/common/ai/llm/electron/index.js +67 -0
  169. package/dist/common/ai/llm/electron/index.mjs +10 -0
  170. package/dist/{ai → common/ai}/llm/index.d.mts +2 -2
  171. package/dist/{ai → common/ai}/llm/index.d.ts +2 -2
  172. package/dist/{ai/llm/core → common/ai/llm}/index.js +13 -13
  173. package/dist/{ai/llm/core → common/ai/llm}/index.mjs +2 -2
  174. package/dist/{ai → common/ai}/llm/miniapp/index.d.mts +3 -3
  175. package/dist/{ai → common/ai}/llm/miniapp/index.d.ts +3 -3
  176. package/dist/{ai/llm/rn → common/ai/llm/miniapp}/index.js +16 -16
  177. package/dist/{ai/llm/rn → common/ai/llm/miniapp}/index.mjs +4 -4
  178. package/dist/{ai → common/ai}/llm/rn/index.d.mts +3 -3
  179. package/dist/{ai → common/ai}/llm/rn/index.d.ts +3 -3
  180. package/dist/{ai/llm/miniapp → common/ai/llm/rn}/index.js +16 -16
  181. package/dist/{ai/llm/miniapp → common/ai/llm/rn}/index.mjs +4 -4
  182. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  183. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  184. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  185. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  186. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  187. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  188. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  189. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  190. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  191. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  192. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  193. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  194. package/dist/{ai → common/ai}/llm/ui/web/index.d.mts +7 -7
  195. package/dist/{ai → common/ai}/llm/ui/web/index.d.ts +7 -7
  196. package/dist/common/ai/llm/ui/web/index.js +21 -0
  197. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  198. package/dist/{ai → common/ai}/llm/web/index.d.mts +3 -3
  199. package/dist/{ai/llm/electron → common/ai/llm/web}/index.d.ts +3 -3
  200. package/dist/common/ai/llm/web/index.js +66 -0
  201. package/dist/common/ai/llm/web/index.mjs +9 -0
  202. package/dist/{analytics → common/analytics}/index.d.mts +1 -1
  203. package/dist/{analytics → common/analytics}/index.d.ts +1 -1
  204. package/dist/{analytics → common/analytics}/index.js +79 -79
  205. package/dist/{analytics → common/analytics}/index.mjs +3 -3
  206. package/dist/{analytics → common/analytics}/server/index.js +2 -2
  207. package/dist/common/analytics/server/index.js.map +1 -0
  208. package/dist/{analytics → common/analytics}/server/index.mjs +2 -2
  209. package/dist/common/analytics/server/index.mjs.map +1 -0
  210. package/dist/{api → common/api}/index.d.mts +3 -3
  211. package/dist/{api → common/api}/index.d.ts +3 -3
  212. package/dist/common/api/index.js +21 -0
  213. package/dist/common/api/index.mjs +4 -0
  214. package/dist/common/auth/components/index.d.mts +9 -9
  215. package/dist/common/auth/components/index.d.ts +9 -9
  216. package/dist/common/auth/index.js +6 -6
  217. package/dist/common/auth/index.mjs +2 -2
  218. package/dist/common/auth/react/index.d.mts +3 -3
  219. package/dist/common/auth/react/index.d.ts +3 -3
  220. package/dist/common/auth/rn/index.d.mts +2 -2
  221. package/dist/common/auth/rn/index.d.ts +2 -2
  222. package/dist/common/auth/rn/index.js +2 -2
  223. package/dist/common/auth/rn/index.js.map +1 -1
  224. package/dist/common/auth/rn/index.mjs +1 -1
  225. package/dist/common/auth/rn/index.mjs.map +1 -1
  226. package/dist/common/components/index.d.mts +4 -0
  227. package/dist/common/components/index.d.ts +4 -0
  228. package/dist/common/components/index.js +414 -0
  229. package/dist/common/components/index.mjs +9 -0
  230. package/dist/{config → common/config}/index.d.mts +1 -1
  231. package/dist/{config → common/config}/index.d.ts +1 -1
  232. package/dist/common/config/index.js +21 -0
  233. package/dist/common/config/index.mjs +4 -0
  234. package/dist/{config → common/config}/server/index.js +5 -5
  235. package/dist/common/config/server/index.js.map +1 -0
  236. package/dist/{config → common/config}/server/index.mjs +5 -5
  237. package/dist/common/config/server/index.mjs.map +1 -0
  238. package/dist/common/export/index.d.mts +2 -2
  239. package/dist/common/export/index.d.ts +2 -2
  240. package/dist/common/export/index.js +67 -67
  241. package/dist/common/export/index.mjs +3 -3
  242. package/dist/common/export/server/index.d.mts +2 -2
  243. package/dist/common/export/server/index.d.ts +2 -2
  244. package/dist/common/export/server/index.js +76 -48
  245. package/dist/common/export/server/index.mjs +3 -3
  246. package/dist/common/file/index.d.mts +2 -2
  247. package/dist/common/file/index.d.ts +2 -2
  248. package/dist/common/file/index.js +27 -27
  249. package/dist/common/file/index.mjs +5 -5
  250. package/dist/common/file/server/index.d.mts +2 -2
  251. package/dist/common/file/server/index.d.ts +2 -2
  252. package/dist/common/file/server/index.js +58 -50
  253. package/dist/common/file/server/index.mjs +8 -8
  254. package/dist/{i18n → common/i18n}/index.d.mts +1 -1
  255. package/dist/{i18n → common/i18n}/index.d.ts +1 -1
  256. package/dist/{i18n → common/i18n}/index.js +18 -18
  257. package/dist/{i18n → common/i18n}/index.mjs +2 -2
  258. package/dist/common/imageCrop/index.d.mts +2 -0
  259. package/dist/common/imageCrop/index.d.ts +2 -0
  260. package/dist/common/imageCrop/index.js +61 -0
  261. package/dist/common/imageCrop/index.mjs +4 -0
  262. package/dist/common/index.d.mts +16 -16
  263. package/dist/common/index.d.ts +16 -16
  264. package/dist/common/index.js +75 -67
  265. package/dist/common/index.mjs +26 -26
  266. package/dist/common/logger/index.d.mts +1 -1
  267. package/dist/common/logger/index.d.ts +1 -1
  268. package/dist/common/logger/index.js +6 -7
  269. package/dist/common/logger/index.mjs +1 -2
  270. package/dist/{ossFile → common/ossFile}/index.d.mts +6 -6
  271. package/dist/{ossFile → common/ossFile}/index.d.ts +6 -6
  272. package/dist/{ossFile → common/ossFile}/index.js +26 -26
  273. package/dist/{ossFile → common/ossFile}/index.mjs +5 -5
  274. package/dist/{ossFile/server/index.d.ts → common/ossFile/server/index.d.mts} +7 -7
  275. package/dist/{ossFile/server/index.d.mts → common/ossFile/server/index.d.ts} +7 -7
  276. package/dist/{ossFile → common/ossFile}/server/index.js +60 -52
  277. package/dist/{ossFile → common/ossFile}/server/index.mjs +10 -10
  278. package/dist/common/platform/index.js +8 -8
  279. package/dist/common/platform/index.mjs +4 -4
  280. package/dist/common/request/index.d.mts +1 -1
  281. package/dist/common/request/index.d.ts +1 -1
  282. package/dist/common/request/index.js +5 -6
  283. package/dist/common/request/index.mjs +2 -3
  284. package/dist/common/storage/index.d.mts +1 -1
  285. package/dist/common/storage/index.d.ts +1 -1
  286. package/dist/common/storage/index.js +17 -17
  287. package/dist/common/storage/index.mjs +5 -5
  288. package/dist/{universalExport → common/universalExport}/index.d.mts +6 -86
  289. package/dist/{universalExport → common/universalExport}/index.d.ts +6 -86
  290. package/dist/{universalExport → common/universalExport}/index.js +67 -67
  291. package/dist/common/universalExport/index.mjs +5 -0
  292. package/dist/{universalExport → common/universalExport}/server/index.d.mts +3 -84
  293. package/dist/{universalExport → common/universalExport}/server/index.d.ts +3 -84
  294. package/dist/common/universalExport/server/index.js +151 -0
  295. package/dist/common/universalExport/server/index.mjs +6 -0
  296. package/dist/{universalFile/index.d.ts → common/universalFile/index.d.mts} +9 -9
  297. package/dist/{universalFile/index.d.mts → common/universalFile/index.d.ts} +9 -9
  298. package/dist/{universalFile → common/universalFile}/index.js +63 -63
  299. package/dist/common/universalFile/index.js.map +1 -0
  300. package/dist/{universalFile → common/universalFile}/index.mjs +4 -4
  301. package/dist/common/universalFile/index.mjs.map +1 -0
  302. package/dist/{universalFile → common/universalFile}/server/index.d.mts +5 -5
  303. package/dist/{universalFile → common/universalFile}/server/index.d.ts +5 -5
  304. package/dist/{universalFile → common/universalFile}/server/index.js +68 -68
  305. package/dist/{universalFile → common/universalFile}/server/index.mjs +8 -8
  306. package/dist/common/utils/index.d.mts +1 -1
  307. package/dist/common/utils/index.d.ts +1 -1
  308. package/dist/common/utils/index.js +11 -12
  309. package/dist/common/utils/index.mjs +2 -3
  310. package/dist/{index-WrR57hKT.d.ts → index-BRLygK4h.d.ts} +2 -2
  311. package/dist/{request/index.d.mts → index-BWNK5mH2.d.ts} +19 -2
  312. package/dist/{utils/index.d.mts → index-BiCK6gg6.d.mts} +19 -1
  313. package/dist/{utils/index.d.ts → index-BiCK6gg6.d.ts} +19 -1
  314. package/dist/{index-DoUo8IrU.d.mts → index-BxZauNN_.d.mts} +8 -8
  315. package/dist/{index-DoUo8IrU.d.ts → index-BxZauNN_.d.ts} +8 -8
  316. package/dist/{request/index.d.ts → index-C-P2yBTH.d.mts} +19 -2
  317. package/dist/{index-D0cqaQEH.d.mts → index-CLB80GCP.d.mts} +5 -5
  318. package/dist/{index-D0cqaQEH.d.ts → index-CLB80GCP.d.ts} +5 -5
  319. package/dist/{index-2G9Dxjvt.d.ts → index-CT4K2z-O.d.ts} +2 -2
  320. package/dist/{index-qcOvRVuN.d.mts → index-D6RJTGce.d.mts} +2 -2
  321. package/dist/{storage/index.d.ts → index-DA7L9JlE.d.mts} +26 -3
  322. package/dist/{imageCrop/index.d.mts → index-DXVph21C.d.mts} +40 -4
  323. package/dist/{imageCrop/index.d.ts → index-DXVph21C.d.ts} +40 -4
  324. package/dist/{index-CYuUB8aF.d.mts → index-DzyK789B.d.mts} +2 -2
  325. package/dist/{logger/index.d.mts → index-FVJZCEtm.d.mts} +21 -1
  326. package/dist/{logger/index.d.ts → index-FVJZCEtm.d.ts} +21 -1
  327. package/dist/{storage/index.d.mts → index-nD9vPCZT.d.ts} +26 -3
  328. package/dist/{components/index.d.mts → index-nOmIv2BG.d.mts} +159 -5
  329. package/dist/{components/index.d.ts → index-nOmIv2BG.d.ts} +159 -5
  330. package/dist/{path-qjVnH8qU.d.ts → path-Bzc7hj1N.d.ts} +5 -1
  331. package/dist/{path-DkaHQSyW.d.mts → path-DN_65vhO.d.mts} +5 -1
  332. package/dist/{types-3ujSNAXb.d.mts → utils-Dm3O1rAa.d.mts} +81 -1
  333. package/dist/{types-3ujSNAXb.d.ts → utils-Dm3O1rAa.d.ts} +81 -1
  334. package/package.json +292 -312
  335. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  336. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  337. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  338. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  339. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  340. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  341. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  342. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  343. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  344. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  345. package/dist/ai/llm/electron/index.js +0 -66
  346. package/dist/ai/llm/electron/index.mjs +0 -9
  347. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  348. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  349. package/dist/ai/llm/ui/electron/index.js +0 -21
  350. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  351. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  352. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  353. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  354. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  355. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  356. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  357. package/dist/ai/llm/ui/rn/index.js +0 -14
  358. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  359. package/dist/ai/llm/ui/web/index.js +0 -20
  360. package/dist/ai/llm/ui/web/index.mjs +0 -7
  361. package/dist/ai/llm/web/index.js +0 -65
  362. package/dist/ai/llm/web/index.mjs +0 -8
  363. package/dist/analytics/server/index.js.map +0 -1
  364. package/dist/analytics/server/index.mjs.map +0 -1
  365. package/dist/api/index.js +0 -21
  366. package/dist/api/index.mjs +0 -4
  367. package/dist/audioDetection/index.d.mts +0 -449
  368. package/dist/audioDetection/index.d.ts +0 -449
  369. package/dist/audioDetection/index.js +0 -1244
  370. package/dist/audioDetection/index.js.map +0 -1
  371. package/dist/audioDetection/index.mjs +0 -1227
  372. package/dist/audioDetection/index.mjs.map +0 -1
  373. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  374. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  375. package/dist/business/index.d.mts +0 -2
  376. package/dist/business/index.d.ts +0 -2
  377. package/dist/business/index.js +0 -581
  378. package/dist/business/index.js.map +0 -1
  379. package/dist/business/index.mjs +0 -575
  380. package/dist/business/index.mjs.map +0 -1
  381. package/dist/calendar/index.d.mts +0 -1325
  382. package/dist/calendar/index.d.ts +0 -1325
  383. package/dist/calendar/index.js +0 -5964
  384. package/dist/calendar/index.js.map +0 -1
  385. package/dist/calendar/index.mjs +0 -5878
  386. package/dist/calendar/index.mjs.map +0 -1
  387. package/dist/calendar/routes/index.d.mts +0 -191
  388. package/dist/calendar/routes/index.d.ts +0 -191
  389. package/dist/calendar/routes/index.js +0 -844
  390. package/dist/calendar/routes/index.js.map +0 -1
  391. package/dist/calendar/routes/index.mjs +0 -826
  392. package/dist/calendar/routes/index.mjs.map +0 -1
  393. package/dist/chunk-25OFOKNF.js.map +0 -1
  394. package/dist/chunk-2Y7BKFKZ.js +0 -37
  395. package/dist/chunk-3CSCIRQY.js +0 -17
  396. package/dist/chunk-3CSCIRQY.js.map +0 -1
  397. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  398. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  399. package/dist/chunk-4FDUURSD.js +0 -22
  400. package/dist/chunk-4FDUURSD.js.map +0 -1
  401. package/dist/chunk-4OOANEJV.mjs.map +0 -1
  402. package/dist/chunk-4WBCWJSN.js.map +0 -1
  403. package/dist/chunk-5GBDDXYL.mjs +0 -23
  404. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  405. package/dist/chunk-5USIS3UM.js +0 -4
  406. package/dist/chunk-6PMXAK7F.js.map +0 -1
  407. package/dist/chunk-7B5SI4OF.mjs +0 -15
  408. package/dist/chunk-7B5SI4OF.mjs.map +0 -1
  409. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  410. package/dist/chunk-AQPU2AXH.js.map +0 -1
  411. package/dist/chunk-ATUCZXJY.js.map +0 -1
  412. package/dist/chunk-BCE6RUZV.js.map +0 -1
  413. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  414. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  415. package/dist/chunk-CAYOQDBR.js.map +0 -1
  416. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  417. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  418. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  419. package/dist/chunk-EQXPL7TN.mjs.map +0 -1
  420. package/dist/chunk-FCEBAWN6.js +0 -18
  421. package/dist/chunk-FCEBAWN6.js.map +0 -1
  422. package/dist/chunk-FHIE5MTC.mjs +0 -541
  423. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  424. package/dist/chunk-FHLTPXAR.js +0 -56
  425. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  426. package/dist/chunk-FXQOXLDE.js.map +0 -1
  427. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  428. package/dist/chunk-G6NSKJMH.js.map +0 -1
  429. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  430. package/dist/chunk-GSNGCENJ.js.map +0 -1
  431. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  432. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  433. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  434. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  435. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  436. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  437. package/dist/chunk-KQ643L7Z.js.map +0 -1
  438. package/dist/chunk-LFB5EIIM.mjs +0 -31
  439. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  440. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  441. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  442. package/dist/chunk-NDGHXVGS.js +0 -25
  443. package/dist/chunk-NDGHXVGS.js.map +0 -1
  444. package/dist/chunk-NDPO5OMC.js +0 -563
  445. package/dist/chunk-NDPO5OMC.js.map +0 -1
  446. package/dist/chunk-PBI7FKMB.js.map +0 -1
  447. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  448. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  449. package/dist/chunk-QSKLQX6H.js.map +0 -1
  450. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  451. package/dist/chunk-R2DXTE2L.js.map +0 -1
  452. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  453. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  454. package/dist/chunk-S6YSGVWD.js.map +0 -1
  455. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  456. package/dist/chunk-SLKOEYFH.js.map +0 -1
  457. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  458. package/dist/chunk-UCOE6SET.js.map +0 -1
  459. package/dist/chunk-UIYKZ73N.js +0 -36
  460. package/dist/chunk-UIYKZ73N.js.map +0 -1
  461. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  462. package/dist/chunk-VMTEDX5H.js.map +0 -1
  463. package/dist/chunk-VRN76M56.mjs +0 -3
  464. package/dist/chunk-VXFUXZN5.mjs +0 -20
  465. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  466. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  467. package/dist/chunk-WJ7IMUEJ.mjs.map +0 -1
  468. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  469. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  470. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  471. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  472. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  473. package/dist/chunk-ZLYPALF3.js.map +0 -1
  474. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  475. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  476. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  477. package/dist/components/index.js +0 -2516
  478. package/dist/components/index.js.map +0 -1
  479. package/dist/components/index.mjs.map +0 -1
  480. package/dist/config/index.js +0 -21
  481. package/dist/config/index.mjs +0 -4
  482. package/dist/config/server/index.js.map +0 -1
  483. package/dist/config/server/index.mjs.map +0 -1
  484. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  485. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  486. package/dist/festivalCard/index.d.mts +0 -76
  487. package/dist/festivalCard/index.d.ts +0 -76
  488. package/dist/festivalCard/index.js +0 -1492
  489. package/dist/festivalCard/index.js.map +0 -1
  490. package/dist/festivalCard/index.mjs +0 -1475
  491. package/dist/festivalCard/index.mjs.map +0 -1
  492. package/dist/festivalCard/routes/index.d.mts +0 -42
  493. package/dist/festivalCard/routes/index.d.ts +0 -42
  494. package/dist/festivalCard/routes/index.js +0 -361
  495. package/dist/festivalCard/routes/index.js.map +0 -1
  496. package/dist/festivalCard/routes/index.mjs +0 -356
  497. package/dist/festivalCard/routes/index.mjs.map +0 -1
  498. package/dist/festivalCard/server/index.d.mts +0 -120
  499. package/dist/festivalCard/server/index.d.ts +0 -120
  500. package/dist/festivalCard/server/index.js +0 -272
  501. package/dist/festivalCard/server/index.js.map +0 -1
  502. package/dist/festivalCard/server/index.mjs +0 -265
  503. package/dist/festivalCard/server/index.mjs.map +0 -1
  504. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  505. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  506. package/dist/imageCrop/index.js.map +0 -1
  507. package/dist/imageCrop/index.mjs.map +0 -1
  508. package/dist/index-Bjem5rWn.d.mts +0 -17
  509. package/dist/index-C5U-2hJq.d.ts +0 -23
  510. package/dist/index-CifSBBP2.d.ts +0 -17
  511. package/dist/index-D0K4ehme.d.mts +0 -20
  512. package/dist/index-DLnfKN-a.d.mts +0 -23
  513. package/dist/index-DSel44Ke.d.mts +0 -93
  514. package/dist/index-DSel44Ke.d.ts +0 -93
  515. package/dist/index-DZ5iJtNO.d.mts +0 -102
  516. package/dist/index-DZ5iJtNO.d.ts +0 -102
  517. package/dist/index-Da7qdkgW.d.ts +0 -20
  518. package/dist/index-DrPcMJPc.d.mts +0 -250
  519. package/dist/index-DrPcMJPc.d.ts +0 -250
  520. package/dist/index-oLUvfqT8.d.ts +0 -20
  521. package/dist/index-pe38RDgC.d.mts +0 -20
  522. package/dist/index.d.mts +0 -11611
  523. package/dist/index.d.ts +0 -11611
  524. package/dist/index.js +0 -17230
  525. package/dist/index.js.map +0 -1
  526. package/dist/index.mjs +0 -16954
  527. package/dist/index.mjs.map +0 -1
  528. package/dist/logger/index.js +0 -29
  529. package/dist/logger/index.mjs +0 -4
  530. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  531. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  532. package/dist/mikuContest/ui/web/index.js +0 -353
  533. package/dist/mikuContest/ui/web/index.js.map +0 -1
  534. package/dist/mikuContest/ui/web/index.mjs +0 -343
  535. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  536. package/dist/mikuFireworks3D/index.d.mts +0 -268
  537. package/dist/mikuFireworks3D/index.d.ts +0 -268
  538. package/dist/mikuFireworks3D/index.js +0 -1267
  539. package/dist/mikuFireworks3D/index.js.map +0 -1
  540. package/dist/mikuFireworks3D/index.mjs +0 -1228
  541. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  542. package/dist/mikuFusionGame/index.d.mts +0 -117
  543. package/dist/mikuFusionGame/index.d.ts +0 -117
  544. package/dist/mikuFusionGame/index.js +0 -1208
  545. package/dist/mikuFusionGame/index.js.map +0 -1
  546. package/dist/mikuFusionGame/index.mjs +0 -1195
  547. package/dist/mikuFusionGame/index.mjs.map +0 -1
  548. package/dist/mmd/admin/index.d.mts +0 -487
  549. package/dist/mmd/admin/index.d.ts +0 -487
  550. package/dist/mmd/admin/index.js +0 -1058
  551. package/dist/mmd/admin/index.js.map +0 -1
  552. package/dist/mmd/admin/index.mjs +0 -1027
  553. package/dist/mmd/admin/index.mjs.map +0 -1
  554. package/dist/mmd/index.d.mts +0 -2467
  555. package/dist/mmd/index.d.ts +0 -2467
  556. package/dist/mmd/index.js +0 -10119
  557. package/dist/mmd/index.js.map +0 -1
  558. package/dist/mmd/index.mjs +0 -10028
  559. package/dist/mmd/index.mjs.map +0 -1
  560. package/dist/mmd/server/index.d.mts +0 -139
  561. package/dist/mmd/server/index.d.ts +0 -139
  562. package/dist/mmd/server/index.js +0 -424
  563. package/dist/mmd/server/index.js.map +0 -1
  564. package/dist/mmd/server/index.mjs +0 -404
  565. package/dist/mmd/server/index.mjs.map +0 -1
  566. package/dist/music/index.d.mts +0 -74
  567. package/dist/music/index.d.ts +0 -74
  568. package/dist/music/index.js +0 -830
  569. package/dist/music/index.js.map +0 -1
  570. package/dist/music/index.mjs +0 -809
  571. package/dist/music/index.mjs.map +0 -1
  572. package/dist/music/server/index.d.mts +0 -1
  573. package/dist/music/server/index.d.ts +0 -1
  574. package/dist/music/server/index.js +0 -194
  575. package/dist/music/server/index.js.map +0 -1
  576. package/dist/music/server/index.mjs +0 -182
  577. package/dist/music/server/index.mjs.map +0 -1
  578. package/dist/navigation/index.d.mts +0 -93
  579. package/dist/navigation/index.d.ts +0 -93
  580. package/dist/navigation/index.js +0 -453
  581. package/dist/navigation/index.js.map +0 -1
  582. package/dist/navigation/index.mjs +0 -443
  583. package/dist/navigation/index.mjs.map +0 -1
  584. package/dist/portfolio/index.d.mts +0 -66
  585. package/dist/portfolio/index.d.ts +0 -66
  586. package/dist/portfolio/index.js +0 -736
  587. package/dist/portfolio/index.js.map +0 -1
  588. package/dist/portfolio/index.mjs +0 -724
  589. package/dist/portfolio/index.mjs.map +0 -1
  590. package/dist/qqbot/server/index.d.mts +0 -216
  591. package/dist/qqbot/server/index.d.ts +0 -216
  592. package/dist/qqbot/server/index.js +0 -394
  593. package/dist/qqbot/server/index.js.map +0 -1
  594. package/dist/qqbot/server/index.mjs +0 -385
  595. package/dist/qqbot/server/index.mjs.map +0 -1
  596. package/dist/qqbot/ui/web/index.d.mts +0 -10
  597. package/dist/qqbot/ui/web/index.d.ts +0 -10
  598. package/dist/qqbot/ui/web/index.js +0 -105
  599. package/dist/qqbot/ui/web/index.js.map +0 -1
  600. package/dist/qqbot/ui/web/index.mjs +0 -99
  601. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  602. package/dist/request/index.js +0 -22
  603. package/dist/request/index.mjs +0 -5
  604. package/dist/screenReceiver/index.d.mts +0 -86
  605. package/dist/screenReceiver/index.d.ts +0 -86
  606. package/dist/screenReceiver/index.js +0 -281
  607. package/dist/screenReceiver/index.js.map +0 -1
  608. package/dist/screenReceiver/index.mjs +0 -273
  609. package/dist/screenReceiver/index.mjs.map +0 -1
  610. package/dist/storage/index.js +0 -48
  611. package/dist/storage/index.mjs +0 -7
  612. package/dist/testYourself/admin/index.d.mts +0 -58
  613. package/dist/testYourself/admin/index.d.ts +0 -58
  614. package/dist/testYourself/admin/index.js +0 -1009
  615. package/dist/testYourself/admin/index.js.map +0 -1
  616. package/dist/testYourself/admin/index.mjs +0 -1002
  617. package/dist/testYourself/admin/index.mjs.map +0 -1
  618. package/dist/testYourself/index.d.mts +0 -53
  619. package/dist/testYourself/index.d.ts +0 -53
  620. package/dist/testYourself/index.js +0 -2551
  621. package/dist/testYourself/index.js.map +0 -1
  622. package/dist/testYourself/index.mjs +0 -2531
  623. package/dist/testYourself/index.mjs.map +0 -1
  624. package/dist/testYourself/server/index.d.mts +0 -1029
  625. package/dist/testYourself/server/index.d.ts +0 -1029
  626. package/dist/testYourself/server/index.js +0 -825
  627. package/dist/testYourself/server/index.js.map +0 -1
  628. package/dist/testYourself/server/index.mjs +0 -816
  629. package/dist/testYourself/server/index.mjs.map +0 -1
  630. package/dist/types-B6B210gX.d.mts +0 -270
  631. package/dist/types-B6B210gX.d.ts +0 -270
  632. package/dist/types-Bdnte5EN.d.mts +0 -292
  633. package/dist/types-Cs0CLvrH.d.mts +0 -70
  634. package/dist/types-Cs0CLvrH.d.ts +0 -70
  635. package/dist/types-HorDyIRv.d.mts +0 -303
  636. package/dist/types-HorDyIRv.d.ts +0 -303
  637. package/dist/types-_rFX1atk.d.ts +0 -292
  638. package/dist/universalExport/index.mjs +0 -5
  639. package/dist/universalExport/server/index.js +0 -123
  640. package/dist/universalExport/server/index.mjs +0 -6
  641. package/dist/universalFile/index.js.map +0 -1
  642. package/dist/universalFile/index.mjs.map +0 -1
  643. package/dist/universalFile/server/index.js.map +0 -1
  644. package/dist/universalFile/server/index.mjs.map +0 -1
  645. package/dist/utils/index.js +0 -46
  646. package/dist/utils/index.js.map +0 -1
  647. package/dist/utils/index.mjs +0 -5
  648. package/dist/utils/index.mjs.map +0 -1
  649. package/dist/vocaloidBooth/index.d.mts +0 -64
  650. package/dist/vocaloidBooth/index.d.ts +0 -64
  651. package/dist/vocaloidBooth/index.js +0 -376
  652. package/dist/vocaloidBooth/index.js.map +0 -1
  653. package/dist/vocaloidBooth/index.mjs +0 -362
  654. package/dist/vocaloidBooth/index.mjs.map +0 -1
  655. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  656. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  657. package/dist/vocaloidBooth/server/index.js +0 -247
  658. package/dist/vocaloidBooth/server/index.js.map +0 -1
  659. package/dist/vocaloidBooth/server/index.mjs +0 -237
  660. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  661. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  662. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  663. package/dist/vocaloidBooth/web/index.js +0 -376
  664. package/dist/vocaloidBooth/web/index.js.map +0 -1
  665. package/dist/vocaloidBooth/web/index.mjs +0 -362
  666. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  667. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  668. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  669. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  670. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  671. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  672. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  673. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  674. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  675. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  676. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  677. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  678. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  679. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  680. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  681. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  682. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  683. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  684. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  685. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  686. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  687. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  688. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  689. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  690. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  691. /package/dist/{api → common/api}/index.js.map +0 -0
  692. /package/dist/{api → common/api}/index.mjs.map +0 -0
  693. /package/dist/{config → common/components}/index.js.map +0 -0
  694. /package/dist/{config → common/components}/index.mjs.map +0 -0
  695. /package/dist/{i18n → common/config}/index.js.map +0 -0
  696. /package/dist/{i18n → common/config}/index.mjs.map +0 -0
  697. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  698. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  699. /package/dist/{logger → common/i18n}/index.js.map +0 -0
  700. /package/dist/{logger → common/i18n}/index.mjs.map +0 -0
  701. /package/dist/{ossFile → common/imageCrop}/index.js.map +0 -0
  702. /package/dist/{ossFile → common/imageCrop}/index.mjs.map +0 -0
  703. /package/dist/{ossFile/server → common/ossFile}/index.js.map +0 -0
  704. /package/dist/{ossFile/server → common/ossFile}/index.mjs.map +0 -0
  705. /package/dist/{request → common/ossFile/server}/index.js.map +0 -0
  706. /package/dist/{request → common/ossFile/server}/index.mjs.map +0 -0
  707. /package/dist/{storage → common/universalExport}/index.js.map +0 -0
  708. /package/dist/{storage → common/universalExport}/index.mjs.map +0 -0
  709. /package/dist/{universalExport → common/universalExport/server}/index.js.map +0 -0
  710. /package/dist/{universalExport → common/universalExport/server}/index.mjs.map +0 -0
  711. /package/dist/{universalExport → common/universalFile}/server/index.js.map +0 -0
  712. /package/dist/{universalExport → common/universalFile}/server/index.mjs.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/components/index.ts","../src/common/components/Card.tsx","../src/common/components/Badge.tsx","../src/common/components/Label.tsx","../src/common/components/Tabs.tsx","../src/common/components/AlertDialog.tsx","../src/common/components/DropdownMenu.tsx","../src/common/components/Popover.tsx","../src/common/components/Progress.tsx","../src/common/components/ScrollArea.tsx","../src/common/components/Select.tsx","../src/common/components/Separator.tsx","../src/common/components/Sheet.tsx","../src/common/components/Textarea.tsx","../src/common/components/Tooltip.tsx","../src/common/components/Avatar.tsx","../src/common/components/Grid.tsx","../src/common/components/SearchBox.tsx","../src/common/components/Timeline.tsx","../src/common/components/CollisionBalls.tsx","../src/common/components/GenericOrderManager.tsx","../src/common/components/BackButton.tsx","../src/common/components/FilterButtonGroup.tsx","../src/common/components/SearchResultHint.tsx","../src/common/components/PopWindow.tsx","../src/common/components/ImageMappingPanel.tsx","../src/common/components/LocalImageMappingPanel.tsx"],"names":["React","React2","cva","React3","React4","React5","React7","React8","React9","React10","Check","React11","React12","React13","React14","React15","clsx","useRef","useState","useEffect","draggedBall","width","height","mousePos","ChevronUp","ChevronDown"],"mappings":";;;;;;;;;;;;AAAA,IAAA,kBAAA,GAAA;AAAA,QAAA,CAAA,kBAAA,EAAA;AAAA,EAAA,WAAA,EAAA,MAAA,MAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,YAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,YAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,aAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,YAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,WAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,aAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,MAAA;AAAA,EAAA,UAAA,EAAA,MAAA,WAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,YAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,YAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,YAAA,EAAA,MAAA,aAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,cAAA,EAAA,MAAA;AAAA,CAAA,CAAA;ACIA,IAAM,IAAA,GAAaA,kBAGjB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,uDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP,CACD;AACD,IAAA,CAAK,WAAA,GAAc,MAAA;AAEnB,IAAM,UAAA,GAAmBA,kBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAI;AAAA;AACP,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,SAAA,GAAkBA,kBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS,CAAA;AAAA,IACnE,GAAI;AAAA;AACP,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAwBA,kBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAI;AAAA;AACP,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,cAAoBA,MAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,0CACzB,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAI,OAAe,CAC1E;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBA,kBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAI;AAAA;AACP,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;ACpEzB,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,sKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,kFAAA;AAAA,QACF,SAAA,EACE,iFAAA;AAAA,QACF,WAAA,EACE,8FAAA;AAAA,QACF,OAAA,EAAS;AAAA;AACX,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,SAAS,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAe;AAC3D,EAAA,uBACEC,MAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAI,KAAA,EAAe,CAAA;AAEnF;AC1BA,IAAM,aAAA,GAAgBC,GAAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,KAAA,GAAcC,kBAGlB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,aAAA,EAAc,EAAG,SAAS,CAAA;AAAA,IACvC,GAAI;AAAA;AACP,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;ACTpB,IAAM,WAAA,GAAoBC,qBAAuC,IAAI,CAAA;AAQrE,IAAM,OAAO,CAAC;AAAA,EACZ,KAAA;AAAA,EACA,YAAA,GAAe,EAAA;AAAA,EACf,aAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAiB;AACf,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,oBAAA,CAAqB;AAAA,IACjD,KAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,4CACG,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,UAAA,sBACvDA,MAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAuB,GAAI,OAAe,CACjD,CAAA;AAEJ;AAEA,IAAM,QAAA,GAAiBA,kBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2FAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,IAAM,WAAA,GAAoBA,MAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,SAAS,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChD,IAAA,MAAM,GAAA,GAAYA,kBAAW,WAAW,CAAA;AACxC,IAAA,MAAM,MAAA,GAAS,KAAK,KAAA,KAAU,KAAA;AAE9B,IAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,SAAS,QAAA,GAAW,UAAA;AAAA,QAChC,SAAA,EAAW,EAAA;AAAA,UACT,+RAAA;AAAA,UACA,MAAA,IAAU,sCAAA;AAAA,UACV;AAAA,SACF;AAAA,QACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,GAAA,EAAK,SAAS,KAAK,CAAA;AACnB,UAAA,OAAA,GAAU,CAAC,CAAA;AAAA,QACb,CAAA;AAAA,QACC,GAAI;AAAA;AAAA,KACP;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAO1B,IAAM,WAAA,GAAoBA,MAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,aAAa,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3D,IAAA,MAAM,GAAA,GAAYA,kBAAW,WAAW,CAAA;AACxC,IAAA,MAAM,MAAA,GAAS,KAAK,KAAA,KAAU,KAAA;AAC9B,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,UAAA,EAAY,OAAO,IAAA;AAEnC,IAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,YAAA,EAAY,SAAS,QAAA,GAAW,UAAA;AAAA,QAChC,MAAA,EAAQ,CAAC,MAAA,IAAU,UAAA;AAAA,QACnB,SAAA,EAAW,EAAA;AAAA,UACT,iIAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAI;AAAA;AAAA,KACP;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AC3F1B,IAAM,kBAAA,GAA2BC,kBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,aAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,IAClC,GAAI;AAAA;AACP,CACD;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,iBAAA,GAA0BA,kBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,WAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,cAAA,EAAe,EAAG,SAAS,CAAA;AAAA,IACxC,GAAI;AAAA;AACP,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,iBAAA,GAA0BA,kBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,WAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,cAAA,CAAe,EAAE,OAAA,EAAS,SAAA,EAAW,CAAA;AAAA,MACrC,cAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AC1ChC,IAAM,mBAAA,GAA4B,qBAA+C,IAAI,CAAA;AACrF,IAAM,6BAAA,GAAsC,qBAGlC,IAAI,CAAA;AASd,IAAM,YAAA,GAAe,CAAC,EAAE,IAAA,EAAM,cAAc,KAAA,EAAO,YAAA,EAAc,UAAS,KAAyB;AACjG,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAAqB;AAAA,IAC/C,KAAA,EAAO,IAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,UAAA,GAAmB,cAA0B,IAAI,CAAA;AACvD,EAAA,MAAM,UAAA,GAAmB,cAAuB,IAAI,CAAA;AAEpD,EAAA,uBACE,MAAA,CAAA,aAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,UAAA,EAAY,UAAA,MAClF,QACH,CAAA;AAEJ;AAEA,IAAM,mBAAA,GAA4B,kBAGhC,CAAC,EAAE,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC1C,EAAA,MAAM,GAAA,GAAY,kBAAW,mBAAmB,CAAA;AAChD,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,EAAA,MAAM,SAAA,GAAY,SAAA,CAA6B,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAElE,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,IAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,GAAA,CAAI,IAAI,CAAA;AACrB,IAAA,OAAA,GAAU,CAAC,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACE,MAAA,CAAA,aAAA,CAAC,QAAA,EAAA,EAAO,GAAA,EAAK,SAAA,EAAW,IAAA,EAAK,UAAS,OAAA,EAAS,WAAA,EAAc,GAAI,KAAA,EAAA,EAC9D,QACH,CAAA;AAEJ,CAAC;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,oBAAoB,CAAC,EAAE,QAAA,EAAS,iEAAwC,QAAS;AACvF,IAAM,qBAAqB,CAAC,EAAE,UAAS,qBAAqC,MAAA,CAAA,aAAA,CAAC,cAAQ,QAAS;AAC9F,IAAM,kBAAkB,CAAC,EAAE,QAAA,EAAS,iEAAwC,QAAS;AAErF,IAAM,mBAAA,GAA4B,MAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,UAAA,GAAa,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzD,EAAA,MAAM,GAAA,GAAY,kBAAW,mBAAmB,CAAA;AAChD,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAU,MAAA,CAAA,QAAA,CAAS,EAAE,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,CAAC,CAAC,GAAA,EAAK,IAAA;AACpB,EAAA,MAAM,OAAA,GAAU,GAAA,EAAK,UAAA,CAAW,OAAA,IAAW,IAAA;AAE3C,EAAM,uBAAgB,MAAM;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,IAAA,GAAO,QAAQ,qBAAA,EAAsB;AAC3C,IAAA,MAAA,CAAO,EAAE,KAAK,IAAA,CAAK,MAAA,GAAS,YAAY,IAAA,EAAM,IAAA,CAAK,MAAM,CAAA;AAAA,EAC3D,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,iBAAA;AAAA,IACE,CAAC,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAK,EAAG,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,IAC3E,MAAM,GAAA,EAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,IACxB;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,GAAA,IAAO,CAAC,IAAA,IAAQ,CAAC,SAAS,OAAO,IAAA;AAEtC,EAAA,4CACG,kBAAA,EAAA,IAAA,kBACC,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA,CAAU,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAAA,MAClC,SAAA,EAAW,EAAA;AAAA,QACT,sGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAS,GAAA,EAAK,GAAA,CAAI,GAAA,EAAK,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,GAAG,KAAA,EAAM;AAAA,MAClE,GAAI;AAAA;AAAA,GAET,CAAA;AAEJ,CAAC;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAIlC,IAAM,gBAAA,GAAyB,MAAA,CAAA,UAAA,CAM7B,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,GAAA,GAAY,kBAAW,mBAAmB,CAAA;AAChD,EAAA,uBACE,MAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,gOAAA;AAAA,QACA,KAAA,IAAS,MAAA;AAAA,QACT;AAAA,OACF;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,QAAA,GAAW,EAAE,WAA8B,CAAA;AAC3C,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,IAAI,CAAC,CAAA,CAAE,kBAAA,EAAmB,EAAG;AAC3B,UAAA,GAAA,EAAK,QAAQ,KAAK,CAAA;AAAA,QACpB;AAAA,MACF,CAAA;AAAA,MACC,GAAI;AAAA;AAAA,GACP;AAEJ,CAAC;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,wBAAA,GAAiC,MAAA,CAAA,UAAA,CAMrC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,GAAU,KAAA,EAAO,eAAA,EAAiB,OAAA,EAAS,GAAG,KAAA,IAAS,GAAA,qBAC/E,MAAA,CAAA,aAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,QAAA;AAAA,IACL,SAAA,EAAW,EAAA;AAAA,MACT,+NAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,MAAA,eAAA,GAAkB,CAAC,OAAO,CAAA;AAC1B,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAAA,IACC,GAAI;AAAA,GAAA;AAAA,kBAEL,MAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EAAA,EACb,OAAA,wCAAW,KAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,CAAA,GAAK,IAC7C,CAAA;AAAA,EACC;AACH,CACD;AACD,wBAAA,CAAyB,WAAA,GAAc,0BAAA;AAEvC,IAAM,yBAAyB,CAAC;AAAA,EAC9B,KAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,qBAKE,MAAA,CAAA,aAAA,CAAC,8BAA8B,QAAA,EAA9B,EAAuC,OAAO,EAAE,KAAA,EAAO,aAAA,EAAc,EAAA,EACnE,QACH;AAGF,IAAM,qBAAA,GAA8B,MAAA,CAAA,UAAA,CAGlC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,QAAA,GAAiB,kBAAW,6BAA6B,CAAA;AAC/D,EAAA,MAAM,OAAA,GAAgB,kBAAW,mBAAmB,CAAA;AACpD,EAAA,MAAM,OAAA,GAAU,UAAU,KAAA,KAAU,KAAA;AACpC,EAAA,uBACE,MAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,+NAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,QAAA,EAAU,gBAAgB,KAAK,CAAA;AAC/B,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,OAAA,EAAS,QAAQ,KAAK,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAI;AAAA,KAAA;AAAA,oBAEL,MAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EAAA,EACb,OAAA,wCAAW,MAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,CAAA,GAAK,IAC3D,CAAA;AAAA,IACC;AAAA,GACH;AAEJ,CAAC;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,iBAAA,GAA0B,kBAK9B,CAAC,EAAE,WAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,KAAA,IAAS,QAAQ,SAAS,CAAA;AAAA,IAC5E,GAAI;AAAA;AACP,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,qBAAA,GAA8B,kBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAI;AAAA;AACP,CACD;AACD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,IAAM,uBAAuB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACE,MAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,IACpE,GAAI;AAAA;AACP;AAEF,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,IAAM,sBAAA,GAA+B,MAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3C,MAAA,CAAA,aAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,QAAA;AAAA,IACL,SAAA,EAAW,EAAA;AAAA,MACT,uHAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAI;AAAA,GAAA;AAAA,EAEJ,QAAA;AAAA,kBACD,MAAA,CAAA,aAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,SAAA,EAAU;AACpC,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,IAAM,sBAAA,GAA+B,kBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sGAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AC7QrC,IAAM,cAAA,GAAuBC,qBAA0C,IAAI,CAAA;AAS3E,IAAM,OAAA,GAAU,CAAC,EAAE,IAAA,EAAM,cAAc,KAAA,EAAO,YAAA,EAAc,UAAS,KAAoB;AACvF,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAAqB;AAAA,IAC/C,KAAA,EAAO,IAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,UAAA,GAAmBA,cAA0B,IAAI,CAAA;AACvD,EAAA,MAAM,SAAA,GAAkBA,cAAwB,IAAI,CAAA;AACpD,EAAA,MAAM,UAAA,GAAmBA,cAAuB,IAAI,CAAA;AAEpD,EAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,UAAA,EAAY,SAAA,EAAW,UAAA,MACxF,QACH,CAAA;AAEJ;AAOA,IAAM,cAAA,GAAuBA,MAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,QAAA,EAAU,SAAS,GAAG,KAAA,IAAS,GAAA,KAAQ;AACxC,IAAA,MAAM,GAAA,GAAYA,kBAAW,cAAc,CAAA;AAC3C,IAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,IAAA,MAAM,SAAA,GAAY,SAAA,CAA6B,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAElE,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,MAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,GAAA,CAAI,IAAI,CAAA;AACrB,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,QAAA,EAAA,EAAO,GAAA,EAAK,SAAA,EAAW,IAAA,EAAK,UAAS,OAAA,EAAS,WAAA,EAAc,GAAI,KAAA,EAAA,EAC9D,QACH,CAAA;AAAA,EAEJ;AACF;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,aAAA,GAAsBA,MAAA,CAAA,UAAA;AAAA,EAC1B,CAAC,EAAE,GAAG,KAAA,IAAS,GAAA,KAAQ;AACrB,IAAA,MAAM,GAAA,GAAYA,kBAAW,cAAc,CAAA;AAC3C,IAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,IAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,UAAK,GAAA,EAAK,SAAA,CAAU,IAAI,SAAA,EAAW,GAAG,CAAA,EAAI,GAAI,KAAA,EAAe,CAAA;AAAA,EAElE;AACF;AACA,aAAA,CAAc,WAAA,GAAc,eAAA;AAO5B,IAAM,cAAA,GAAuBA,MAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzE,IAAA,MAAM,GAAA,GAAYA,kBAAW,cAAc,CAAA;AAC3C,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUA,MAAA,CAAA,QAAA,CAAS,EAAE,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,CAAA;AAClE,IAAA,MAAM,IAAA,GAAO,CAAC,CAAC,GAAA,EAAK,IAAA;AACpB,IAAA,MAAM,SAAS,GAAA,EAAK,SAAA,CAAU,OAAA,IAAW,GAAA,EAAK,WAAW,OAAA,IAAW,IAAA;AAEpE,IAAMA,uBAAgB,MAAM;AAC1B,MAAA,IAAI,CAAC,MAAA,EAAQ;AACb,MAAA,MAAM,IAAA,GAAO,OAAO,qBAAA,EAAsB;AAC1C,MAAA,IAAI,IAAA,GAAO,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ,CAAA;AACpC,MAAA,IAAI,KAAA,KAAU,OAAA,EAAS,IAAA,GAAO,IAAA,CAAK,IAAA;AACnC,MAAA,IAAI,KAAA,KAAU,KAAA,EAAO,IAAA,GAAO,IAAA,CAAK,KAAA;AACjC,MAAA,WAAA,CAAY,EAAE,GAAA,EAAK,IAAA,CAAK,MAAA,GAAS,UAAA,EAAY,MAAM,CAAA;AAAA,IACrD,CAAA,EAAG,CAAC,MAAA,EAAQ,KAAA,EAAO,UAAU,CAAC,CAAA;AAE9B,IAAA,iBAAA;AAAA,MACE,CAAC,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAK,EAAG,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,MAC3E,MAAM,GAAA,EAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,MACxB;AAAA,KACF;AAEA,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,IAAA,EAAM,OAAO,IAAA;AAE1B,IAAA,4CACG,MAAA,EAAA,IAAA,kBACCA,MAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,SAAA,CAAU,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAAA,QAClC,SAAA,EAAW,EAAA;AAAA,UACT,2FAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,KAAK,QAAA,CAAS,GAAA;AAAA,UACd,MAAM,QAAA,CAAS,IAAA;AAAA,UACf,WAAW,KAAA,KAAU,QAAA,GAAW,kBAAA,GAAqB,KAAA,KAAU,QAAQ,mBAAA,GAAsB,MAAA;AAAA,UAC7F,GAAG;AAAA,SACL;AAAA,QACC,GAAI;AAAA;AAAA,KAET,CAAA;AAAA,EAEJ;AACF;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;ACtH7B,IAAM,QAAA,GAAiBC,MAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,CAAA,EAAG,MAAM,GAAA,EAAK,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtD,IAAA,MAAM,OAAA,GAAU,GAAA,IAAO,CAAA,GAAI,GAAA,GAAM,GAAA;AACjC,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,KAAA,EAAO,OAAO,CAAC,CAAA;AACtD,IAAA,MAAM,OAAA,GAAW,YAAY,OAAA,GAAW,GAAA;AAExC,IAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAe,SAAA;AAAA,QACf,SAAA,EAAW,EAAA;AAAA,UACT,gEAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAI;AAAA,OAAA;AAAA,sBAELA,MAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,gDAAA;AAAA,UACV,OAAO,EAAE,SAAA,EAAW,CAAA,YAAA,EAAe,GAAA,GAAM,OAAO,CAAA,EAAA,CAAA;AAAK;AAAA;AACvD,KACF;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AChCvB,IAAM,UAAA,GAAmBC,kBAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,IAChD,GAAI;AAAA,GAAA;AAAA,EAEJ;AACH,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAMzB,IAAM,SAAA,GAAkBA,MAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,YAAY,GAAG,KAAA,IAAS,GAAA,qBAClDA,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,8BAAA;AAAA,QACA,WAAA,KAAgB,aACZ,4BAAA,GACA,8BAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACC,GAAI;AAAA;AAAA;AAGX;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;ACrBxB,IAAM,aAAA,GAAsBC,qBAAyC,IAAI,CAAA;AACzE,IAAM,kBAAA,GAA2BA,qBAAuB,KAAK,CAAA;AAa7D,IAAM,SAAS,CAAC;AAAA,EACd,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,YAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX;AACF,CAAA,KAAmB;AACjB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,oBAAA,CAAqB;AAAA,IAC/C,KAAA,EAAO,IAAA;AAAA,IACP,YAAA,EAAc,WAAA;AAAA,IACd,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,oBAAA,CAAyC;AAAA,IAC/E,KAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,EAAU,CAAC,IAAA,KAAS;AAClB,MAAA,IAAI,SAAS,MAAA,EAAW;AACtB,QAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,MACtB;AAAA,IACF;AAAA,GACD,CAAA;AACD,EAAA,MAAM,UAAA,GAAmBA,cAA0B,IAAI,CAAA;AACvD,EAAA,MAAM,UAAA,GAAmBA,cAAuB,IAAI,CAAA;AACpD,EAAA,MAAM,QAAA,GAAiBA,MAAA,CAAA,MAAA,iBAAqC,IAAI,GAAA,EAAK,CAAA;AAErE,EAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,IAAC,aAAA,CAAc,QAAA;AAAA,IAAd;AAAA,MACC,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,WAAW,KAAA,GAAQ,MAAA;AAAA,QACzB,OAAA,EAAS,QAAA,GAAW,MAAM,MAAA,GAAY,SAAA;AAAA,QACtC,KAAA,EAAO,YAAA;AAAA,QACP,QAAA,EAAU,CAAC,IAAA,KAAS;AAClB,UAAA,IAAI,QAAA,EAAU;AACd,UAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,UAAA,SAAA,CAAU,KAAK,CAAA;AAAA,QACjB,CAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA;AACF,KAAA;AAAA,IAEC;AAAA,GACH;AAEJ;AAEA,IAAM,WAAA,GAAc,CAAC,EAAE,QAAA,EAAS,qBAC9BA,MAAA,CAAA,aAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,KAAA,EAAO,IAAA,EAAA,EAAO,QAAS;AAGtD,IAAM,cAAc,CAAC;AAAA,EACnB,WAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAC1C,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,IAAI,QAAA,EAAU,uBAAOA,MAAA,CAAA,aAAA,CAAAA,MAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAS,CAAA;AACjC,EAAA,IAAI,GAAA,CAAI,SAAS,GAAA,CAAI,QAAA,CAAS,QAAQ,GAAA,CAAI,GAAA,CAAI,KAAK,CAAA,EAAG;AACpD,IAAA,mEAAU,GAAA,CAAI,QAAA,CAAS,QAAQ,GAAA,CAAI,GAAA,CAAI,KAAK,CAAE,CAAA;AAAA,EAChD;AACA,EAAA,uBAAOA,MAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAA,EAAyB,WAAY,CAAA;AAC9D;AAEA,IAAM,aAAA,GAAsBA,MAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACrD,EAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAC1C,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,EAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA,CAAU,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAAA,MAClC,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,uRAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,GAAA,CAAI,IAAI,CAAA;AACrB,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb,CAAA;AAAA,MACC,GAAI;AAAA,KAAA;AAAA,oBAELA,MAAA,CAAA,aAAA,CAAC,cAAM,QAAS,CAAA;AAAA,oBAChBA,MAAA,CAAA,aAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,oBAAA,EAAqB;AAAA,GAC9C;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,oBAAA,GAA6BA,kBAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,sDAAA,EAAwD,SAAS,CAAA;AAAA,IAC9E,GAAI;AAAA,GAAA;AAAA,kBAELA,MAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU;AACjC,CACD;AACD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,IAAM,sBAAA,GAA+BA,kBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,sDAAA,EAAwD,SAAS,CAAA;AAAA,IAC9E,GAAI;AAAA,GAAA;AAAA,kBAELA,MAAA,CAAA,aAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AACnC,CACD;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAErC,IAAM,aAAA,GAAsBA,MAAA,CAAA,UAAA,CAK1B,CAAC,EAAE,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAC1C,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAUA,MAAA,CAAA,QAAA,CAAS,EAAE,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,CAAA;AAClE,EAAA,MAAM,IAAA,GAAO,CAAC,CAAC,GAAA,EAAK,IAAA;AACpB,EAAA,MAAM,OAAA,GAAU,GAAA,EAAK,UAAA,CAAW,OAAA,IAAW,IAAA;AAE3C,EAAMA,uBAAgB,MAAM;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,IAAA,GAAO,QAAQ,qBAAA,EAAsB;AAC3C,IAAA,MAAA,CAAO,EAAE,GAAA,EAAK,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,KAAA,EAAO,CAAA;AAAA,EACrE,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,iBAAA;AAAA,IACE,CAAC,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAK,EAAG,GAAA,EAAK,UAAA,IAAc,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,IAC3E,MAAM,GAAA,EAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,IACxB;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,GAAA,IAAO,CAAC,IAAA,IAAQ,CAAC,SAAS,OAAO,IAAA;AAEtC,EAAA,4CACG,MAAA,EAAA,IAAA,kBACCA,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA,CAAU,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAAA,MAClC,SAAA,EAAW,EAAA;AAAA,QACT,yHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,OAAA;AAAA,QACV,KAAK,GAAA,CAAI,GAAA;AAAA,QACT,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAI,OAAO,GAAG,CAAA;AAAA,QACjC,GAAG;AAAA,OACL;AAAA,MACC,GAAI;AAAA,KAAA;AAAA,oBAELA,MAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,KAAA,EAAA,EAAO,QAAS;AAAA,GAEnC,CAAA;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,WAAA,GAAoBA,kBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,IAC3D,GAAI;AAAA;AACP,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAM1B,IAAM,UAAA,GAAmBA,MAAA,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAO,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC1D,IAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAE1C,IAAMA,iBAAU,MAAM;AACpB,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,GAAA,CAAI,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,QAAQ,CAAA;AACxC,MAAA,OAAO,MAAM;AACX,QAAA,GAAA,CAAI,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA;AAAA,MACnC,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,GAAA,EAAK,KAAA,EAAO,QAAQ,CAAC,CAAA;AAEzB,IAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,IAAA,MAAM,QAAA,GAAW,IAAI,KAAA,KAAU,KAAA;AAE/B,IAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,6MAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,GAAA,CAAI,SAAS,KAAK,CAAA;AAClB,UAAA,OAAA,GAAU,CAAC,CAAA;AAAA,QACb,CAAA;AAAA,QACC,GAAI;AAAA,OAAA;AAAA,sBAELA,MAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+DAAA,EAAA,EACb,QAAA,mBAAWA,MAAA,CAAA,aAAA,CAACC,KAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,CAAA,GAAK,IAC9C,CAAA;AAAA,sBACAD,MAAA,CAAA,aAAA,CAAC,cAAM,QAAS;AAAA,KAClB;AAAA,EAEJ;AACF;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,eAAA,GAAwBA,kBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAI;AAAA;AACP,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;ACrQ9B,IAAM,SAAA,GAAkBE,MAAA,CAAA,UAAA;AAAA,EACtB,CACE,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,aAAa,IAAA,EAAM,GAAG,KAAA,EAAM,EACrE,GAAA,qBAEAA,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAM,aAAa,MAAA,GAAY,WAAA;AAAA,MAC/B,kBAAA,EAAkB,WAAA;AAAA,MAClB,SAAA,EAAW,EAAA;AAAA,QACT,oBAAA;AAAA,QACA,WAAA,KAAgB,eAAe,gBAAA,GAAmB,gBAAA;AAAA,QAClD;AAAA,OACF;AAAA,MACC,GAAI;AAAA;AAAA;AAGX;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;ACbxB,IAAM,aAAA,GAAgBT,GAAAA;AAAA,EACpB,sGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK,iCAAA;AAAA,QACL,MAAA,EAAQ,oCAAA;AAAA,QACR,IAAA,EAAM,0DAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAQA,IAAM,YAAA,GAAqBU,MAAA,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,IAAA,GAAO,OAAA,EAAS,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAClDA,MAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yBAAA;AAAA,QACA,aAAA,CAAc,EAAE,IAAA,EAAM,CAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,eAAA,EAAiB,KAAA;AAAA,MAChB,GAAI;AAAA,KAAA;AAAA,oBAELA,MAAA,CAAA,aAAA,CAAC,WAAA,EAAA,EAAW,SAAA,EAAU,mFAAA,EAAA,uCACnB,CAAA,EAAA,EAAE,SAAA,EAAU,SAAA,EAAU,CAAA,kBACvBA,MAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAA,EAAU,OAAK,CACjC,CAAA;AAAA,IACC;AAAA;AAGP;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,MAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAI;AAAA;AACP;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBA,kBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,IAC/D,GAAI;AAAA;AACP,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBA,kBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BA,MAAA,CAAA,aAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAI;AAAA;AACP,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC3G/B,IAAM,QAAA,GAAiBC,kBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,2QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACC,GAAI;AAAA;AAAA,GACP;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;ACZvB,IAAM,uBAA6BC,MAAA,CAAA,aAAA,CAAyC;AAAA,EAC1E,aAAA,EAAe;AACjB,CAAC,CAAA;AAQD,IAAM,cAAA,GAAuBA,qBAA0C,IAAI,CAAA;AAE3E,IAAM,kBAAkB,CAAC;AAAA,EACvB,QAAA;AAAA,EACA,aAAA,GAAgB;AAClB,CAAA,KAGM;AACJ,EAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,qBAAqB,QAAA,EAArB,EAA8B,OAAO,EAAE,aAAA,MACrC,QACH,CAAA;AAEJ;AAEA,IAAM,OAAA,GAAU,CAAC,EAAE,QAAA,EAAS,KAAqC;AAC/D,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,gBAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,UAAA,GAAmBA,cAAwB,IAAI,CAAA;AACrD,EAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,EAAE,IAAA,EAAM,OAAA,EAAS,UAAA,EAAW,EAAA,EACzD,QACH,CAAA;AAEJ;AAEA,IAAM,cAAA,GAAuBA,kBAG3B,CAAC,EAAE,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACjC,EAAA,MAAM,GAAA,GAAYA,kBAAW,cAAc,CAAA;AAC3C,EAAA,MAAM,GAAA,GAAYA,kBAAW,oBAAoB,CAAA;AACjD,EAAA,MAAM,KAAA,GAAcA,cAA6C,IAAI,CAAA;AACrE,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AAEjB,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,GAAA,CAAI,UAAA,EAAY,GAAG,CAAA;AAE5C,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,YAAA,CAAa,KAAA,CAAM,OAAO,CAAA;AAC7C,IAAA,KAAA,CAAM,OAAA,GAAU,WAAW,MAAM,GAAA,CAAI,QAAQ,IAAI,CAAA,EAAG,IAAI,aAAa,CAAA;AAAA,EACvE,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,YAAA,CAAa,KAAA,CAAM,OAAO,CAAA;AAC7C,IAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,YAAA,EAAc,aAAA;AAAA,IACd,YAAA,EAAc,QAAA;AAAA,IACd,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,GAAG;AAAA,GACL;AAEA,EAAA,4CACG,MAAA,EAAA,EAAK,GAAA,EAAK,MAAA,EAAS,GAAI,UACrB,QACH,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBA,MAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,UAAA,GAAa,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzD,EAAA,MAAM,GAAA,GAAYA,kBAAW,cAAc,CAAA;AAC3C,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAUA,MAAA,CAAA,QAAA,CAAS,EAAE,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,CAAC,CAAC,GAAA,EAAK,IAAA;AACpB,EAAA,MAAM,OAAA,GAAU,GAAA,EAAK,UAAA,CAAW,OAAA,IAAW,IAAA;AAE3C,EAAMA,uBAAgB,MAAM;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,IAAA,GAAO,QAAQ,qBAAA,EAAsB;AAC3C,IAAA,MAAA,CAAO;AAAA,MACL,GAAA,EAAK,KAAK,GAAA,GAAM,UAAA;AAAA,MAChB,IAAA,EAAM,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ;AAAA,KAChC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,IAAI,CAAC,GAAA,IAAO,CAAC,IAAA,IAAQ,CAAC,SAAS,OAAO,IAAA;AAEtC,EAAA,4CACG,MAAA,EAAA,IAAA,kBACCA,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,OAAA;AAAA,QACV,KAAK,GAAA,CAAI,GAAA;AAAA,QACT,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,SAAA,EAAW,wBAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACC,GAAI;AAAA;AAAA,GAET,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AChH7B,IAAM,aAAA,GAAsBC,qBAGlB,IAAI,CAAA;AAEd,IAAM,MAAA,GAAeA,kBAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAUA,gBAAuB,MAAM,CAAA;AAE/D,EAAA,uBACEA,MAAA,CAAA,aAAA,CAAC,cAAc,QAAA,EAAd,EAAuB,OAAO,EAAE,MAAA,EAAQ,WAAU,EAAA,kBACjDA,MAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,+DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAI;AAAA;AAAA,GAET,CAAA;AAEJ,CAAC;AACD,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,IAAM,WAAA,GAAoBA,MAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,SAAA,EAAW,QAAQ,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAE1C,EAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,6BAAA;AAAA,QACA,GAAA,EAAK,MAAA,KAAW,OAAA,GAAU,QAAA,GAAW,MAAA;AAAA,QACrC;AAAA,OACF;AAAA,MACA,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,QAAA,GAAA,EAAK,UAAU,QAAQ,CAAA;AACvB,QAAA,MAAA,GAAS,CAAC,CAAA;AAAA,MACZ,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,GAAA,EAAK,UAAU,OAAO,CAAA;AACtB,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb,CAAA;AAAA,MACC,GAAI;AAAA;AAAA,GACP;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,cAAA,GAAuBA,kBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,GAAA,GAAYA,kBAAW,aAAa,CAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,KAAK,MAAA,KAAW,QAAA;AAE7B,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACEA,MAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAI;AAAA;AAAA,GACP;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;ACrDpB,SAAS,qBAAqB,OAAA,EAA8B;AACjE,EAAA,OAAO;AAAA,IACL,aAAA;AAAA;AAAA,IACA,OAAA,CAAQ,EAAA,GAAK,eAAA,GAAmB,OAAA,CAAQ,EAAA,GAAM,EAAA;AAAA,IAC9C,OAAA,CAAQ,EAAA,GAAK,eAAA,GAAmB,OAAA,CAAQ,EAAA,GAAM,gBAAA;AAAA,IAC9C,OAAA,CAAQ,EAAA,GAAK,eAAA,GAAmB,OAAA,CAAQ,EAAA,GAAM,gBAAA;AAAA,IAC9C,OAAA,CAAQ,EAAA,GAAK,eAAA,GAAmB,OAAA,CAAQ,EAAA,GAAM;AAAA,GAChD,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAC5B;AAGO,SAAS,gBAAgB,GAAA,EAAsB;AACpD,EAAA,MAAM,UAAA,GAAsC;AAAA,IAC1C,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,OAAO,WAAW,GAAG,CAAA;AACvB;AAqBO,SAAS,IAAA,CAAyB;AAAA,EACvC,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA,GAAU,EAAE,EAAA,EAAI,CAAA,EAAG,IAAI,CAAA,EAAE;AAAA,EACzB,GAAA,GAAM,IAAA;AAAA,EACN,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,EAAiB;AACf,EAAA,MAAM,eAAA,GAAkB,qBAAqB,OAAO,CAAA;AACpD,EAAA,MAAM,QAAA,GAAW,gBAAgB,GAAG,CAAA;AAEpC,EAAA,uBACEf,eAAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA,CAAK,MAAA,EAAQ,eAAA,EAAiB,UAAU,SAAS,CAAA;AAAA,MAC5D;AAAA,KAAA;AAAA,IAEC,MAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChBA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAA,EACZ,UAAA,CAAW,IAAA,EAAM,KAAK,CACzB,CACD;AAAA,GACH;AAEJ;AClFK,IAAM,YAAsC,CAAC;AAAA,EAClD,WAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA,GAAc,+FAAA;AAAA,EACd,IAAA,GAAO;AACT,CAAA,KAAM;AAEJ,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,OAAA;AACH,QAAA,OAAO;AAAA,UACL,SAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,qBAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,YAAA,EAAc,QAAA;AAAA,UACd,WAAA,EAAa,iBAAA;AAAA,UACb,SAAA,EAAW;AAAA,SACb;AAAA,MACF,KAAK,QAAA;AACH,QAAA,OAAO;AAAA,UACL,SAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,uBAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,YAAA,EAAc,QAAA;AAAA,UACd,WAAA,EAAa,iBAAA;AAAA,UACb,SAAA,EAAW;AAAA,SACb;AAAA,MACF,KAAK,OAAA;AAAA,MACL;AACE,QAAA,OAAO;AAAA,UACL,SAAA,EAAW,MAAA;AAAA,UACX,KAAA,EAAO,oBAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,YAAA,EAAc,QAAA;AAAA,UACd,WAAA,EAAa,iBAAA;AAAA,UACb,SAAA,EAAW;AAAA,SACb;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,MAAM,SAAS,aAAA,EAAc;AAC7B,EAAA,MAAM,UAAU,IAAA,KAAS,OAAA;AAEzB,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,uBAAA,EAAA,kBAEbA,eAAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,MAAA;AAAA,MACL,WAAA;AAAA,MACA,KAAA,EAAO,WAAA;AAAA,MACP,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,MAC9C,SAAA,EAAWgB,IAAAA;AAAA,QACT,QAAA;AAAA,QACA,MAAA,CAAO,SAAA;AAAA,QACP,MAAA,CAAO,KAAA;AAAA,QACP,UAAU,gDAAA,GAAmD,6CAAA;AAAA,QAC7D,0FAAA;AAAA,QACA,UAAU,iBAAA,GAAoB,iBAAA;AAAA,QAC9B,yEAAA;AAAA,QACA,UAAU,aAAA,GAAgB;AAAA;AAC5B;AAAA,GACF,EAGC,WAAA,oBACChB,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,MAAM,cAAA,CAAe,EAAE,CAAA;AAAA,MAChC,SAAA,EAAWgB,IAAAA;AAAA,QACT,kBAAA;AAAA,QACA,MAAA,CAAO,WAAA;AAAA,QACP;AAAA;AACF,KAAA;AAAA,oBAEAhB,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWgB,IAAAA;AAAA,MACd,MAAA,CAAO,WAAA;AAAA,MACP;AAAA,KACF,EAAA,kBACEhB,eAAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWgB,IAAAA,CAAK,MAAA,CAAO,SAAA,EAAW,+CAA+C,CAAA;AAAA,QACjF,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAQ;AAAA,OAAA;AAAA,sBAERhB,eAAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe,OAAA;AAAA,UACf,WAAA,EAAa,CAAA;AAAA,UACb,CAAA,EAAE;AAAA;AAAA;AACJ,KAEJ;AAAA,GAGN,CAAA;AAEJ;ACtFO,IAAM,WAAoC,CAAC,EAAE,KAAA,GAAQ,IAAG,KAAM;AACnE,EAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAChC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,UAAA,EAAA,kBAEbA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,kDAAA,EAAmD,CAAA,EAGjE,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,KAAA,qBAChBA,gBAAA,aAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,WAAU,qBAAA,EAAA,kBAEzBA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,mHAAA,EAAA,kBACbA,eAAAA,CAAA,cAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAgC,CACjD,mBAGAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,4BAAA,EAAA,EAA8B,IAAA,CAAK,IAAK,mBACvDA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAG,WAAU,4BAAA,EAAA,EAA8B,IAAA,CAAK,KAAM,CAAA,kBACvDA,eAAAA,CAAA,aAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAiB,IAAA,CAAK,WAAY,CACjD,CACF,CACD,CACH,CAAA;AAEJ;ACfO,IAAM,iBAAgD,CAAC;AAAA,EAC5D,oBAAA,EAAsB;AAAA,IACpB,KAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA;AAEJ,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GAAYiB,OAA0B,IAAI,CAAA;AAChD,EAAA,MAAM,YAAA,GAAeA,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,QAAA,GAAWA,MAAAA,CAAe,EAAE,CAAA;AAClC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAsB,IAAI,CAAA;AAChE,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,QAAAA,CAAS,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AACvD,EAAA,MAAM,YAAA,GAAeD,OAAsB,IAAI,CAAA;AAG/C,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,MAAM,YAAY,YAAA,CAAa,OAAA;AAC/B,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,MAAA,EAAQ;AACzB,MAAA,OAAA,CAAQ,MAAM,+BAA+B,CAAA;AAC7C,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,iBAAiB,SAAA,CAAU,WAAA;AACjC,IAAA,MAAM,kBAAkB,SAAA,CAAU,YAAA;AAElC,IAAA,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAmB,EAAE,cAAA,EAAgB,iBAAiB,CAAA;AAGlE,IAAA,MAAA,CAAO,KAAA,GAAQ,cAAA;AACf,IAAA,MAAA,CAAO,MAAA,GAAS,eAAA;AAGhB,IAAA,MAAA,CAAO,KAAA,CAAM,QAAS,cAAA,GAAkB,IAAA;AACxC,IAAA,MAAA,CAAO,KAAA,CAAM,SAAU,eAAA,GAAmB,IAAA;AAE1C,IAAA,OAAA,CAAQ,IAAI,sBAAA,EAAwB;AAAA,MAClC,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,QAAQ,MAAA,CAAO,MAAA;AAAA,MACf,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAGA,EAAA,MAAM,YAAY,MAAM;AACtB,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAA,CAAQ,MAAM,6CAA6C,CAAA;AAC3D,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,OAAA,CAAQ,IAAI,sCAAA,EAAwC;AAAA,MAClD,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,QAAQ,MAAA,CAAO;AAAA,KAChB,CAAA;AAED,IAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,UAAA,MAAgB;AAAA,MAChC,GAAG,IAAA,CAAK,MAAA,EAAO,IAAK,MAAA,CAAO,QAAQ,GAAA,CAAA,GAAO,EAAA;AAAA,MAC1C,GAAG,IAAA,CAAK,MAAA,EAAO,IAAK,MAAA,CAAO,SAAS,GAAA,CAAA,GAAO,EAAA;AAAA,MAC3C,EAAA,EAAA,CAAK,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA,IAAO,CAAA;AAAA,MAC5B,EAAA,EAAA,CAAK,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA,IAAO,CAAA;AAAA,MAC5B,QAAQ,UAAA,CAAW,IAAA;AAAA,MACnB,OAAO,UAAA,CAAW,KAAA;AAAA,MAClB,MAAM,UAAA,CAAW,KAAA;AAAA,MACjB,UAAA,EAAY;AAAA,KACd,CAAE,CAAA;AAAA,EACJ,CAAA;AAGA,EAAAE,UAAU,MAAM;AACd,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,OAAA,CAAQ,IAAI,gBAAgB,CAAA;AAC5B,MAAA,gBAAA,EAAiB;AAAA,IACnB,CAAA;AAEA,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,MAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAE9C,MAAA,gBAAA,EAAiB;AAAA,IACnB;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,QAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAAA,MACnD;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAGL,EAAAA,UAAU,MAAM;AACd,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAA,CAAQ,MAAM,0BAA0B,CAAA;AACxC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAClC,IAAA,IAAI,CAAC,GAAA,EAAK;AACR,MAAA,OAAA,CAAQ,MAAM,8BAA8B,CAAA;AAC5C,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,IAAI,6BAA6B,CAAA;AAGzC,IAAA,gBAAA,EAAiB;AAGjB,IAAA,QAAA,CAAS,UAAU,SAAA,EAAU;AAC7B,IAAA,OAAA,CAAQ,GAAA,CAAI,oBAAA,EAAsB,QAAA,CAAS,OAAO,CAAA;AAElD,IAAA,IAAI,QAAA,GAAW,YAAY,GAAA,EAAI;AAC/B,IAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,IAAA,MAAM,OAAA,GAAU,CAAC,WAAA,KAAwB;AACvC,MAAA,IAAI;AAEF,QAAA,UAAA,EAAA;AACA,QAAA,IAAI,WAAA,GAAc,YAAY,GAAA,EAAM;AAClC,UAAA,OAAA,CAAQ,GAAA,CAAI,UAAW,UAAW,CAAA;AAClC,UAAA,UAAA,GAAa,CAAA;AACb,UAAA,QAAA,GAAW,WAAA;AAAA,QACb;AAGA,QAAA,GAAA,CAAI,UAAU,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAG/C,QAAA,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,CAAC,IAAA,KAAS;AACjC,UAAA,IAAI,CAAC,KAAK,UAAA,EAAY;AACpB,YAAA,cAAA,CAAe,IAAA,EAAM,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,MAAM,CAAA;AAAA,UAClD;AAEA,UAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AAChD,YAAA,KAAA,IAAS,IAAI,CAAA,GAAI,CAAA,EAAG,IAAI,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACpD,cAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,CAAC,CAAA;AAChC,cAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,CAAC,CAAA;AAChC,cAAA,IAAI,SAAS,KAAA,EAAO;AAClB,gBAAA,cAAA,CAAe,OAAO,KAAK,CAAA;AAAA,cAC7B;AAAA,YACF;AAAA,UACF;AAEA,UAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,QAChB,CAAC,CAAA;AAGD,QAAA,YAAA,CAAa,OAAA,GAAU,sBAAsB,OAAO,CAAA;AAAA,MACtD,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,KAAA,CAAM,oBAAoB,KAAK,CAAA;AAAA,MACzC;AAAA,IACF,CAAA;AAGA,IAAA,OAAA,CAAQ,IAAI,4BAA4B,CAAA;AACxC,IAAA,YAAA,CAAa,OAAA,GAAU,sBAAsB,OAAO,CAAA;AAGpD,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,CAAQ,IAAI,0BAA0B,CAAA;AACtC,MAAA,IAAI,aAAa,OAAA,EAAS;AACxB,QAAA,oBAAA,CAAqB,aAAa,OAAO,CAAA;AACzC,QAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,MACzB;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,CAAC,IAAA,KAAS;AACjC,MAAA,IAAA,CAAK,EAAA,GAAA,CAAM,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA,IAAO,EAAA;AAClC,MAAA,IAAA,CAAK,EAAA,GAAA,CAAM,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA,IAAO,EAAA;AAAA,IACpC,CAAC,CAAA;AACD,IAAA,UAAA,CAAW,MAAM,YAAA,CAAa,KAAK,CAAA,EAAG,GAAG,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,CAAC,IAAA,KAAS;AACjC,MAAA,IAAA,CAAK,EAAA,GAAK,KAAK,EAAA,GAAK,GAAA;AACpB,MAAA,IAAA,CAAK,EAAA,GAAK,KAAK,EAAA,GAAK,GAAA;AAAA,IACtB,CAAC,CAAA;AACD,IAAA,UAAA,CAAW,MAAM,YAAA,CAAa,KAAK,CAAA,EAAG,GAAG,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,EAAa,KAAA,KAAgB;AACnD,IAAA,MAAM,EAAA,GAAK,KAAA,CAAM,CAAA,GAAI,KAAA,CAAM,CAAA;AAC3B,IAAA,MAAM,EAAA,GAAK,KAAA,CAAM,CAAA,GAAI,KAAA,CAAM,CAAA;AAC3B,IAAA,MAAM,WAAW,IAAA,CAAK,IAAA,CAAK,EAAA,GAAK,EAAA,GAAK,KAAK,EAAE,CAAA;AAE5C,IAAA,IAAI,QAAA,GAAW,KAAA,CAAM,MAAA,GAAS,KAAA,CAAM,MAAA,EAAQ;AAC1C,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAC/B,MAAA,MAAM,OAAA,GAAA,CAAW,KAAA,CAAM,MAAA,GAAS,KAAA,CAAM,SAAS,QAAA,IAAY,CAAA;AAE3D,MAAA,IAAI,KAAA,CAAM,UAAA,IAAc,KAAA,CAAM,UAAA,EAAY;AACxC,QAAA,MAAMC,YAAAA,GAAc,KAAA,CAAM,UAAA,GAAa,KAAA,GAAQ,KAAA;AAC/C,QAAA,MAAM,SAAA,GAAY,KAAA,CAAM,UAAA,GAAa,KAAA,GAAQ,KAAA;AAE7C,QAAA,SAAA,CAAU,CAAA,IAAA,CAAMA,iBAAgB,KAAA,GAAQ,CAAA,GAAI,MAAM,OAAA,GAAU,IAAA,CAAK,IAAI,KAAK,CAAA;AAC1E,QAAA,SAAA,CAAU,CAAA,IAAA,CAAMA,iBAAgB,KAAA,GAAQ,CAAA,GAAI,MAAM,OAAA,GAAU,IAAA,CAAK,IAAI,KAAK,CAAA;AAE1E,QAAA,MAAM,SAAA,GAAY,CAAA;AAClB,QAAA,SAAA,CAAU,EAAA,GAAA,CAAMA,iBAAgB,KAAA,GAAQ,EAAA,GAAK,KAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,SAAA;AACpE,QAAA,SAAA,CAAU,EAAA,GAAA,CAAMA,iBAAgB,KAAA,GAAQ,EAAA,GAAK,KAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,SAAA;AAEpE,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC1B,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAE1B,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,MAAM,EAAA,GAAK,GAAA;AACxC,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,MAAM,EAAA,GAAK,GAAA;AACxC,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,MAAM,EAAA,GAAK,GAAA;AACxC,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,MAAM,EAAA,GAAK,GAAA;AAExC,MAAA,MAAM,MAAA,GAAS,GAAA;AACf,MAAA,MAAM,MAAA,GAAS,GAAA;AAEf,MAAA,KAAA,CAAM,EAAA,GAAK,MAAA,GAAS,GAAA,GAAM,GAAA,GAAM,GAAA;AAChC,MAAA,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,GAAA,GAAM,MAAA,GAAS,GAAA;AAChC,MAAA,KAAA,CAAM,EAAA,GAAK,MAAA,GAAS,GAAA,GAAM,GAAA,GAAM,GAAA;AAChC,MAAA,KAAA,CAAM,EAAA,GAAK,GAAA,GAAM,GAAA,GAAM,MAAA,GAAS,GAAA;AAEhC,MAAA,KAAA,CAAM,CAAA,IAAK,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACnC,MAAA,KAAA,CAAM,CAAA,IAAK,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACnC,MAAA,KAAA,CAAM,CAAA,IAAK,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACnC,MAAA,KAAA,CAAM,CAAA,IAAK,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IACrC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,IAAA,EAAYC,MAAAA,EAAeC,OAAAA,KAAmB;AACpE,IAAA,MAAM,uBAAA,GAA0B,CAC9B,QAAA,EACA,QAAA,EACA,UACA,MAAA,KACqB;AACrB,MAAA,IAAI,WAAA,GAAc,QAAA;AAClB,MAAA,IAAI,WAAA,GAAc,QAAA;AAElB,MAAA,IAAI,QAAA,GAAW,SAAS,CAAA,EAAG;AACzB,QAAA,WAAA,GAAc,MAAA;AACd,QAAA,WAAA,GAAc,IAAA,CAAK,IAAI,QAAQ,CAAA;AAAA,MACjC,CAAA,MAAA,IAAW,QAAA,GAAW,MAAA,GAAS,QAAA,EAAU;AACvC,QAAA,WAAA,GAAc,QAAA,GAAW,MAAA;AACzB,QAAA,WAAA,GAAc,CAAC,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA;AAAA,MAClC;AAEA,MAAA,OAAO,CAAC,aAAa,WAAW,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,uBAAA;AAAA,MACpB,IAAA,CAAK,EAAA;AAAA,MACL,IAAA,CAAK,CAAA;AAAA,MACLD,MAAAA;AAAA,MACA,IAAA,CAAK;AAAA,KACP;AACA,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,uBAAA;AAAA,MACpB,IAAA,CAAK,EAAA;AAAA,MACL,IAAA,CAAK,CAAA;AAAA,MACLC,OAAAA;AAAA,MACA,IAAA,CAAK;AAAA,KACP;AAEA,IAAA,IAAA,CAAK,EAAA,GAAK,KAAA;AACV,IAAA,IAAA,CAAK,EAAA,GAAK,KAAA;AACV,IAAA,IAAA,CAAK,CAAA,GAAI,IAAA;AACT,IAAA,IAAA,CAAK,CAAA,GAAI,IAAA;AAAA,EACX,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,GAAA,EAA+B,IAAA,KAAe;AAC1D,IAAA,GAAA,CAAI,SAAA,EAAU;AACd,IAAA,GAAA,CAAI,GAAA,CAAI,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,KAAK,MAAA,EAAQ,CAAA,EAAG,IAAA,CAAK,EAAA,GAAK,CAAC,CAAA;AACnD,IAAA,GAAA,CAAI,YAAY,IAAA,CAAK,KAAA;AACrB,IAAA,GAAA,CAAI,IAAA,EAAK;AACT,IAAA,GAAA,CAAI,SAAA,EAAU;AAEd,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,GAAA,CAAI,IAAA,GAAO,YAAA;AACX,MAAA,GAAA,CAAI,SAAA,GAAY,MAAA;AAChB,MAAA,GAAA,CAAI,SAAA,GAAY,QAAA;AAChB,MAAA,GAAA,CAAI,YAAA,GAAe,QAAA;AACnB,MAAA,GAAA,CAAI,SAAS,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,IACxC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA+C;AACtE,IAAA,MAAMC,SAAAA,GAAW,YAAY,KAAK,CAAA;AAClC,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM;AACxC,MAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAIA,SAAAA,CAAS,CAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAIA,SAAAA,CAAS,CAAA;AAC1B,MAAA,OAAO,KAAK,IAAA,CAAK,EAAA,GAAK,KAAK,EAAA,GAAK,EAAE,IAAI,CAAA,CAAE,MAAA;AAAA,IAC1C,CAAC,CAAA;AAED,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,MAAA,cAAA,CAAe,IAAI,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA+C;AACtE,IAAA,MAAMA,SAAAA,GAAW,YAAY,KAAK,CAAA;AAClC,IAAA,WAAA,CAAYA,SAAQ,CAAA;AAEpB,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,WAAA,CAAY,IAAIA,SAAAA,CAAS,CAAA;AACzB,MAAA,WAAA,CAAY,IAAIA,SAAAA,CAAS,CAAA;AACzB,MAAA,WAAA,CAAY,EAAA,GAAK,CAAA;AACjB,MAAA,WAAA,CAAY,EAAA,GAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,WAAA,CAAY,UAAA,GAAa,KAAA;AACzB,MAAA,cAAA,CAAe,IAAI,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,EAAE,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAEjC,IAAA,MAAM,IAAA,GAAO,OAAO,qBAAA,EAAsB;AAC1C,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,KAAA;AACnC,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,MAAA;AAEpC,IAAA,OAAO;AAAA,MACL,CAAA,EAAA,CAAI,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,MAAA;AAAA,MACjC,CAAA,EAAA,CAAI,KAAA,CAAM,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO;AAAA,KAClC;AAAA,EACF,CAAA;AAEA,EAAA,uBACEvB,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,UAAU,UAAA,EAAY,eAAA,EAAiB,SAAA,EAAW,YAAA,EAAc,UAAS,EAAA,kBACpHA,eAAAA,CAAA,aAAA,CAAC,SAAI,GAAA,EAAK,YAAA,EAAc,KAAA,EAAO,EAAE,OAAO,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,YAAY,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,EAAE,EAAA,kBACpGA,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS;AAAA;AAAA,OACX;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb,WAAA,EAAa,eAAA;AAAA,MACb,SAAA,EAAW,aAAA;AAAA,MACX,YAAA,EAAc;AAAA;AAAA,GAElB,mBACAA,eAAAA,CAAA,cAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,KAAA;AAAA,MACT,SAAA,EAAWgB,IAAAA,CAAK,iFAAA,EAAmF,SAAA,GAAY,kBAAkB,EAAE;AAAA,KAAA;AAAA,IACpI;AAAA,GAED,kBACAhB,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAWgB,IAAAA,CAAK,mFAAA,EAAqF,SAAA,GAAY,kBAAkB,EAAE;AAAA,KAAA;AAAA,IACtI;AAAA,GAGH,CACF,CAAA;AAEJ;AC5WO,SAAS,mBAAA,CAA6C;AAAA,EAC3D,UAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA,GAAQ,0BAAA;AAAA,EACR,WAAA,GAAc,gFAAA;AAAA,EACd,cAAA;AAAA,EACA,YAAA,GAAe,0BAAA;AAAA,EACf,cAAA,GAAiB;AACnB,CAAA,EAAgC;AAC9B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIE,QAAAA,CAAc,EAAE,CAAA;AAC1C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,QAAAA,CAAc,EAAE,CAAA;AAC1D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAS,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,SAAwB,IAAI,CAAA;AACtD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,SAAS,KAAK,CAAA;AAClD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAwB,IAAI,CAAA;AAGlE,EAAA,MAAM,SAAA,GAAY,YAAY,YAAY;AACxC,IAAA,IAAI;AACF,MAAA,UAAA,CAAW,IAAI,CAAA;AACf,MAAA,QAAA,CAAS,IAAI,CAAA;AAEb,MAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,SAAA,EAAU;AAExC,MAAA,QAAA,CAAS,IAAI,CAAA;AACb,MAAA,gBAAA,CAAiB,CAAC,GAAG,IAAI,CAAC,CAAA;AAC1B,MAAA,aAAA,CAAc,KAAK,CAAA;AAAA,IACrB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,2EAAoB,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,sCAAQ,CAAA;AAAA,IACxD,CAAA,SAAE;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClB;AAAA,EACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAAC,UAAU,MAAM;AACd,IAAA,SAAA,EAAU;AAAA,EACZ,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAGd,EAAAA,UAAU,MAAM;AACd,IAAA,MAAM,kBAAkB,KAAA,CAAM,IAAA;AAAA,MAAK,CAAC,IAAA,EAAM,KAAA,KACxC,cAAc,KAAK,CAAA,EAAG,OAAO,IAAA,CAAK;AAAA,KACpC;AACA,IAAA,aAAA,CAAc,eAAe,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,KAAA,EAAO,aAAa,CAAC,CAAA;AAGzB,EAAA,MAAM,YAAA,GAAe,OAAO,MAAA,KAAmB;AAC7C,IAAA,IAAI;AACF,MAAA,QAAA,CAAS,IAAI,CAAA;AAEb,MAAA,MAAM,eAAe,KAAA,CAAM,SAAA,CAAU,CAAA,IAAA,KAAQ,IAAA,CAAK,OAAO,MAAM,CAAA;AAC/D,MAAA,IAAI,iBAAiB,CAAA,CAAA,EAAI;AACvB,QAAA,QAAA,CAAS,gCAAO,CAAA;AAChB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,QAAA,QAAA,CAAS,gFAAe,CAAA;AACxB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,UAAA,CAAW,WAAW,MAAM,CAAA;AAClC,MAAA,MAAM,SAAA,EAAU;AAChB,MAAA,cAAA,IAAiB;AAAA,IAEnB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,2EAAoB,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,0BAAM,CAAA;AAAA,IACtD;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,cAAA,GAAiB,OAAO,MAAA,KAAmB;AAC/C,IAAA,IAAI;AACF,MAAA,QAAA,CAAS,IAAI,CAAA;AAEb,MAAA,MAAM,eAAe,KAAA,CAAM,SAAA,CAAU,CAAA,IAAA,KAAQ,IAAA,CAAK,OAAO,MAAM,CAAA;AAC/D,MAAA,IAAI,iBAAiB,CAAA,CAAA,EAAI;AACvB,QAAA,QAAA,CAAS,gCAAO,CAAA;AAChB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,YAAA,KAAiB,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACrC,QAAA,QAAA,CAAS,gFAAe,CAAA;AACxB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,UAAA,CAAW,aAAa,MAAM,CAAA;AACpC,MAAA,MAAM,SAAA,EAAU;AAChB,MAAA,cAAA,IAAiB;AAAA,IAEnB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,2EAAoB,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,0BAAM,CAAA;AAAA,IACtD;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,EAAoB,KAAA,KAAkB;AAC7D,IAAA,cAAA,CAAe,KAAK,CAAA;AACpB,IAAA,CAAA,CAAE,aAAa,aAAA,GAAgB,MAAA;AAAA,EACjC,CAAA;AAGA,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,EAAoB,MAAA,KAAmB;AAC7D,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,CAAA,CAAE,aAAa,UAAA,GAAa,MAAA;AAAA,EAC9B,CAAA;AAGA,EAAA,MAAM,UAAA,GAAa,OAAO,CAAA,EAAoB,SAAA,KAAsB;AAClE,IAAA,CAAA,CAAE,cAAA,EAAe;AAEjB,IAAA,IAAI,WAAA,KAAgB,IAAA,IAAQ,WAAA,KAAgB,SAAA,EAAW;AACrD,MAAA,cAAA,CAAe,IAAI,CAAA;AACnB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI;AACF,MAAA,QAAA,CAAS,IAAI,CAAA;AAEb,MAAA,MAAM,QAAA,GAAW,CAAC,GAAG,KAAK,CAAA;AAC1B,MAAA,MAAM,eAAA,GAAkB,SAAS,WAAW,CAAA;AAC5C,MAAA,IAAI,CAAC,eAAA,EAAiB;AAEtB,MAAA,QAAA,CAAS,MAAA,CAAO,aAAa,CAAC,CAAA;AAC9B,MAAA,QAAA,CAAS,MAAA,CAAO,SAAA,EAAW,CAAA,EAAG,eAAe,CAAA;AAE7C,MAAA,MAAM,UAAA,GAAa,QAAA,CAAS,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW;AAAA,QAChD,IAAI,IAAA,CAAK,EAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT,CAAE,CAAA;AAEF,MAAA,MAAM,UAAA,CAAW,gBAAgB,UAAU,CAAA;AAC3C,MAAA,MAAM,SAAA,EAAU;AAChB,MAAA,cAAA,IAAiB;AAAA,IAEnB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,2EAAoB,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,0BAAM,CAAA;AAAA,IACtD,CAAA,SAAE;AACA,MAAA,cAAA,CAAe,IAAI,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,kBAAkB,YAAY;AAClC,IAAA,IAAI;AACF,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,QAAA,CAAS,IAAI,CAAA;AAEb,MAAA,MAAM,UAAA,GAAa,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW;AAAA,QAC7C,IAAI,IAAA,CAAK,EAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT,CAAE,CAAA;AAEF,MAAA,MAAM,UAAA,CAAW,gBAAgB,UAAU,CAAA;AAE3C,MAAA,gBAAA,CAAiB,CAAC,GAAG,KAAK,CAAC,CAAA;AAC3B,MAAA,aAAA,CAAc,KAAK,CAAA;AACnB,MAAA,cAAA,IAAiB;AAAA,IACnB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,2EAAoB,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,0BAAM,CAAA;AACpD,MAAA,MAAM,SAAA,EAAU;AAAA,IAClB,CAAA,SAAE;AACA,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,QAAA,CAAS,CAAC,GAAG,aAAa,CAAC,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEnB,gBAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,8DAAA,EAAgE,SAAS,CAAA,EAAA,kBAC1FA,gBAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mFAAA,EAAoF,CAAA,kBACnGA,eAAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,cAAe,CACxB,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,4DAAA,EAA8D,SAAS,CAAA,EAAA,kBACxFA,gBAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6HAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,6CAA2C,KAAM,CAAA,kBAC/DA,eAAAA,CAAA,cAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EAAA,EACZ,UAAA,oBACCA,eAAAA,CAAA,aAAA,CAAAA,eAAAA,CAAA,QAAA,EAAA,IAAA,kBACEA,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,gBAAA;AAAA,MACT,SAAA,EAAU,uHAAA;AAAA,MACV,KAAA,EAAM;AAAA,KAAA;AAAA,oBAENA,eAAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAU,MAAM,EAAA,EAAI,CAAA;AAAA,IAAE;AAAA,GAEzB,kBACAA,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,eAAA;AAAA,MACT,QAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAU,qKAAA;AAAA,MACV,KAAA,EAAM;AAAA,KAAA;AAAA,oBAENA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,MAAM,EAAA,EAAI,CAAA;AAAA,IACf,SAAS,uBAAA,GAAW;AAAA,GAEzB,CAEJ,CACF,CAAA,EAEC,KAAA,oBACCA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0FAAA,EAAA,kBACbA,gBAAA,aAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,CAAA,kBACvBA,eAAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,KAAM,CACf,CAAA,kBAGFA,eAAAA,CAAA,cAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yDAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,OAAE,SAAA,EAAU,kCAAA,EAAA,EAAoC,WAAY,CAAA,kBAC7DA,eAAAA,CAAA,cAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4CAAA,EAAA,kBACZA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,MAAA,EAAA,EAAO,+DAAA,kBAAWA,eAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,EAAa,MAAM,EAAA,EAAI,SAAA,EAAU,yCAAA,EAA0C,CAAA,EAAE,eAAG,CAAA,kBACjHA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,MAAA,EAAA,EAAO,6CAAA,kBAAQA,eAAAA,CAAA,aAAA,CAACwB,SAAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,yCAAA,EAA0C,CAAA,EAAE,UAAA,kBAAGxB,eAAAA,CAAA,aAAA,CAACyB,WAAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,yCAAA,EAA0C,CAAA,EAAE,eAAG,CAAA,kBAC3LzB,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,IAAA,EAAG,gHAAoB,CAC1B,CACF,mBAEAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAA,EACZ,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChBA,eAAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAK,IAAA,CAAK,EAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,iIAAA;AAAA,QACA,gBAAgB,KAAA,IAAS;AAAA,OAC3B;AAAA,MACA,SAAA,EAAS,IAAA;AAAA,MACT,WAAA,EAAa,CAAC,CAAA,KAAM,eAAA,CAAgB,GAAG,KAAK,CAAA;AAAA,MAC5C,UAAA,EAAY,CAAC,CAAA,KAAM,cAAA,CAAe,CAAQ,CAAA;AAAA,MAC1C,MAAA,EAAQ,CAAC,CAAA,KAAM,UAAA,CAAW,GAAG,KAAK;AAAA,KAAA;AAAA,oBAElCA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wIAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,CAC1B,CAAA;AAAA,oBAEAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAAA,EACZ,UAAA,CAAW,IAAA,EAAM,KAAA,EAAO,UAAU,CAAA,EAAG,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAC,CAClE,CAAA;AAAA,oBAEAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,UAAK,SAAA,EAAU,6IAAA,EAAA,EAA8I,GAAA,EAC1J,KAAA,GAAQ,CACZ,CACF,CAAA;AAAA,oBAEAA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,0CAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,MAAM,YAAA,CAAa,IAAA,CAAK,EAAE,CAAA;AAAA,QACnC,UAAU,KAAA,KAAU,CAAA;AAAA,QACpB,SAAA,EAAU,wRAAA;AAAA,QACV,KAAA,EAAM;AAAA,OAAA;AAAA,sBAENA,eAAAA,CAAA,aAAA,CAACwB,SAAAA,EAAA,EAAU,MAAM,EAAA,EAAI;AAAA,KACvB,kBACAxB,eAAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,MAAM,cAAA,CAAe,IAAA,CAAK,EAAE,CAAA;AAAA,QACrC,QAAA,EAAU,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA;AAAA,QACnC,SAAA,EAAU,wRAAA;AAAA,QACV,KAAA,EAAM;AAAA,OAAA;AAAA,sBAENA,eAAAA,CAAA,aAAA,CAACyB,WAAAA,EAAA,EAAY,MAAM,EAAA,EAAI;AAAA,KAE3B;AAAA,GAEH,CACH,CAAA,EAEC,KAAA,CAAM,WAAW,CAAA,oBAChBzB,gBAAA,aAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EAAA,kBACbA,gBAAA,aAAA,CAAC,GAAA,EAAA,EAAE,WAAU,KAAA,EAAA,EAAO,YAAa,CACnC,CAEJ,CAAA;AAEJ;ACxTO,IAAM,aAAwC,CAAC,EAAE,IAAA,EAAM,SAAA,GAAY,IAAG,KAAM;AACjF,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,IAClB,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,IAAA,EAAK;AAAA,IACd;AAAA,EACF,CAAA;AAEA,EAAA,uBACEA,eAAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,EAAA;AAAA,QACT,4NAAA;AAAA,QACA;AAAA;AACF,KAAA;AAAA,oBAEAA,eAAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAQ;AAAA,OAAA;AAAA,sBAERA,eAAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe,OAAA;AAAA,UACf,WAAA,EAAa,CAAA;AAAA,UACb,CAAA,EAAE;AAAA;AAAA;AACJ,KACF;AAAA,IAAM;AAAA,GAER;AAEJ;ACpBA,SAAS,cAAc,OAAA,EAAyB;AAC9C,EAAA,MAAM,QAAA,GAAmC;AAAA,IACvC,aAAA,EAAe,SAAA;AAAA,IACf,cAAA,EAAgB,SAAA;AAAA,IAChB,YAAA,EAAc,SAAA;AAAA,IACd,eAAA,EAAiB,SAAA;AAAA,IACjB,cAAA,EAAgB,SAAA;AAAA,IAChB,gBAAA,EAAkB,SAAA;AAAA,IAClB,eAAA,EAAiB;AAAA,GACnB;AACA,EAAA,OAAO,QAAA,CAAS,OAAO,CAAA,IAAK,SAAA;AAC9B;AAEO,SAAS,iBAAA,CAAoC;AAAA,EAClD,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAA,kBACvCA,eAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAG,WAAU,qCAAA,EAAA,EACX,KACH,CAAA,kBAEAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EAAA,EACZ,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,KAAA;AAElC,IAAA,uBACEA,eAAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,KAAK,MAAA,CAAO,KAAA;AAAA,QACZ,OAAA,EAAS,MAAM,QAAA,CAAS,MAAA,CAAO,KAAK,CAAA;AAAA,QACpC,KAAA,EAAO,WAAW,EAAE,eAAA,EAAiB,cAAc,MAAA,CAAO,WAAA,CAAY,EAAE,CAAA,EAAE,GAAI,MAAA;AAAA,QAC9E,SAAA,EAAW,EAAA;AAAA,UACT,8IAAA;AAAA,UACA,WACI,0DAAA,GACA;AAAA;AACN,OAAA;AAAA,sBAEAA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAAA,kBACbA,eAAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAA,EAAW,OAAO,IAAK,CAAA,kBACvCA,eAAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,MAAA,CAAO,KAAM,GACnB,MAAA,CAAO,SAAA,IAAa,MAAA,CAAO,KAAA,KAAU,MAAA,oBACpCA,eAAAA,CAAA,aAAA,CAAC,UAAK,SAAA,EAAW,EAAA;AAAA,QACf,4EAAA;AAAA,QACA,WAAW,wBAAA,GAA2B;AAAA,OACxC,EAAA,EACG,MAAA,CAAO,KACV,CAEJ;AAAA,KACF;AAAA,EAEJ,CAAC,CACH,CACF,CAAA;AAEJ;AC3EO,SAAS,gBAAA,CAAiB,EAAE,WAAA,EAAa,WAAA,EAAa,WAAU,EAA0B;AAC/F,EAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AAEzB,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,uDAAA,EAAyD,SAAS,CAAA,EAAA,kBACnFA,eAAAA,CAAA,aAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAA,EAAA,EAAwB,gBAAA,kBAC/BA,eAAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAA,EAAe,WAAY,CAAA,EAAO,iBAAA,EAClD,WAAA,EAAY,qBAClB,CACF,CAAA;AAEJ;ACYO,IAAM,QAA8B,CAAC;AAAA,EAC1C,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,IAAA;AAAA,EACf,QAAA;AAAA,EACA,MAAA,GAAS,EAAA;AAAA,EACT;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,GAAK,CAAA;AAE5C,EAAA,uBACEA,gBAAA,aAAA,CAAC,MAAA,EAAA,EAAO,MAAM,MAAA,EAAQ,YAAA,EAAc,CAAC,IAAA,KAAS;AAC1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,OAAA,EAAQ;AAAA,MACV;AAEA,IACF;AAAA,EACF,CAAA,EAAA,kBACAA,eAAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS,CAAA;AAAA,MAC3C,gBAAA;AAAA,MACA,oBAAA,EAAsB,CAAC,CAAA,KAAM;AAC3B,QAAA,IAAI,CAAC,YAAA,EAAc,CAAA,CAAE,cAAA,EAAe;AAAA,MACtC,CAAA;AAAA,MACA,eAAA,EAAiB,CAAC,CAAA,KAAM;AACtB,QAAA,IAAI,CAAC,YAAA,EAAc,CAAA,CAAE,cAAA,EAAe;AAAA,MACtC,CAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,MAAA,EAAQ,aAAA;AAAA,QACR,GAAI,KAAA,GAAQ,EAAE,QAAA,EAAU,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA,EAAM,GAAI,MAAA;AAAA,QAC7E,GAAI,MAAA,GAAS,EAAE,MAAA,EAAQ,OAAO,MAAA,KAAW,QAAA,GAAW,CAAA,EAAG,MAAM,CAAA,EAAA,CAAA,GAAO,MAAA,EAAO,GAAI;AAAA;AACjF,KAAA;AAAA,IAEC,KAAA,mBACCA,eAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,IAAA,kBACCA,eAAAA,CAAA,aAAA,CAAC,WAAA,EAAA,IAAA,EAAa,KAAM,CACtB,CAAA;AAAA;AAAA,sBAGAA,eAAAA,CAAA,aAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,aAAU,cAAE;AAAA,KAAA;AAAA,oBAErCA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UACZ,QACH;AAAA,GAEJ,CAAA;AAEJ;AAaO,IAAM,eAA4C,CAAC;AAAA,EACxD,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA,GAAQ,0BAAA;AAAA,EACR,OAAA;AAAA,EACA,WAAA,GAAc,cAAA;AAAA,EACd,UAAA,GAAa,cAAA;AAAA,EACb,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,uBACEA,gBAAA,aAAA,CAAC,MAAA,EAAA,EAAY,MAAM,MAAA,EAAQ,YAAA,EAAc,CAAC,IAAA,KAAS,CAAC,QAAQ,OAAA,EAAQ,EAAA,kBAClEA,eAAAA,CAAA,aAAA,CAAC,0CACCA,eAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,IAAA,kBACCA,eAAAA,CAAA,cAAC,WAAA,EAAA,IAAA,EAAkB,KAAM,mBACzBA,eAAAA,CAAA,cAAC,iBAAA,EAAA,IAAA,EAAwB,OAAQ,CACnC,CAAA,kBACAA,eAAAA,CAAA,cAAC,YAAA,EAAA,IAAA,kBACCA,gBAAA,aAAA,CAAC,iBAAA,EAAA,EAAkB,UAAU,SAAA,EAAA,EAAY,UAAW,CAAA,kBACpDA,eAAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,SAAA,EAAU;AAAA,MACZ,CAAA;AAAA,MACA,QAAA,EAAU,SAAA;AAAA,MACV,SAAA,EAAU;AAAA,KAAA;AAAA,IAET,YAAY,uBAAA,GAAW;AAAA,GAE5B,CACF,CACF,CAAA;AAEJ;ACjHO,SAAS,iBAAA,CAAkB;AAAA,EAChC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA,GAAc,0BAAA;AAAA,EACd,UAAA,GAAa;AACf,CAAA,EAA2B;AACzB,EAAA,MAAM,gBAAA,GAAmB,CAAC,EAAA,EAAY,IAAA,KAAgB;AACpD,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,IAAI,UAAA,EAAW;AAC9B,IAAA,MAAA,CAAO,SAAS,MAAM;AACpB,MAAA,MAAM,SAAS,OAAO,MAAA,CAAO,MAAA,KAAW,QAAA,GAAW,OAAO,MAAA,GAAS,EAAA;AACnE,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACA,MAAA,QAAA,CAAS;AAAA,QACP,GAAG,KAAA;AAAA,QACH,CAAC,EAAE,GAAG;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AACA,IAAA,MAAA,CAAO,cAAc,IAAI,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,EAAA,KAAe;AACnC,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AACxB,IAAA,OAAO,KAAK,EAAE,CAAA;AACd,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,uBACEA,eAAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA,EAAA,kBACpFA,eAAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAQ,WAAU,qDAAA,EAAA,EAAuD,KAAM,CAAA,kBAChFA,eAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAAA,EACZ,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,CAAA;AAC3B,IAAA,uBACEA,eAAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAK,IAAA,CAAK,EAAA;AAAA,QACV,SAAA,EAAU;AAAA,OAAA;AAAA,sBAEVA,eAAAA,CAAA,aAAA,CAAC,SAAI,SAAA,EAAU,2CAAA,EAAA,EAA6C,KAAK,KAAM,CAAA;AAAA,sBACvEA,gBAAA,aAAA,CAAC,OAAA,EAAA,EAAM,WAAU,mGAAA,EAAA,EACd,WAAA,kBACDA,eAAAA,CAAA,aAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,SAAA;AAAA,UACP,SAAA,EAAU,QAAA;AAAA,UACV,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,YAAA,gBAAA,CAAiB,KAAK,EAAA,EAAI,KAAA,CAAM,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAC,CAAA;AACjD,YAAA,KAAA,CAAM,cAAc,KAAA,GAAQ,EAAA;AAAA,UAC9B;AAAA;AAAA,OAEJ,CAAA;AAAA,MACC,wBACCA,eAAAA,CAAA,cAAAA,eAAAA,CAAA,QAAA,EAAA,IAAA,kBACEA,eAAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,KAAA;AAAA,UACL,KAAK,IAAA,CAAK,KAAA;AAAA,UACV,SAAA,EAAU;AAAA;AAAA,OACZ,kBACAA,eAAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,iEAAA;AAAA,UACV,OAAA,EAAS,MAAM,YAAA,CAAa,IAAA,CAAK,EAAE;AAAA,SAAA;AAAA,QAElC;AAAA,OAEL,CAAA,GACE;AAAA,KACN;AAAA,EAEJ,CAAC,CACH,CACF,CAAA;AAEJ;ACpFO,SAAS,sBAAA,CAAuB;AAAA,EACrC,UAAA;AAAA,EACA,eAAe,EAAC;AAAA,EAChB,aAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgC;AAC9B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,eAAA,CAAmC,YAAY,YAAY,CAAA;AAErF,EAAA,uBACEA,eAAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,KAAA;AAAA,MACA,QAAA,EAAU,CAAC,IAAA,KAAS;AAClB,QAAA,QAAA,CAAS,IAAI,CAAA;AACb,QAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,MACtB;AAAA;AAAA,GACF;AAEJ","file":"chunk-YIRPPMCN.mjs","sourcesContent":["// UI Components (Atomic - internal implementation)\nexport * from './Button';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Label';\nexport * from './Tabs';\nexport * from './Dialog';\nexport * from './AlertDialog';\nexport * from './DropdownMenu';\nexport * from './Popover';\nexport * from './Progress';\nexport * from './ScrollArea';\nexport * from './Select';\nexport * from './Separator';\nexport * from './Sheet';\nexport * from './Textarea';\nexport * from './Tooltip';\nexport * from './Avatar';\n\n// UI Components (Custom Generic)\nexport { Grid } from './Grid';\nexport type { GridProps, GridItem, GridColumns, GridGap } from './Grid';\nexport { SearchBox } from './SearchBox';\nexport { Timeline } from './Timeline';\nexport type { TimelineItem, TimelineConfig } from './Timeline';\nexport { CollisionBalls } from './CollisionBalls';\nexport type { Ball, CollisionBallsConfig } from './CollisionBalls';\nexport { GenericOrderManager } from './GenericOrderManager';\nexport type { GenericOrderManagerProps, OrderableItem, OrderManagerOperations } from './GenericOrderManager';\nexport { BackButton } from './BackButton';\nexport type { BackButtonProps } from './BackButton';\nexport { FilterButtonGroup } from './FilterButtonGroup';\nexport type { FilterButtonGroupProps, FilterOption } from './FilterButtonGroup';\nexport { SearchResultHint } from './SearchResultHint';\nexport type { SearchResultHintProps } from './SearchResultHint';\nexport { Modal, ConfirmModal } from './PopWindow';\nexport type { ModalProps, ConfirmModalProps } from './PopWindow';\nexport { ImageMappingPanel } from './ImageMappingPanel';\nexport type { ImageMappingPanelProps, ImageMappingItem, ImageMappingValue } from './ImageMappingPanel';\nexport { LocalImageMappingPanel } from './LocalImageMappingPanel';\nexport type { LocalImageMappingPanelProps } from './LocalImageMappingPanel';\n","import * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...(props as any)}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...(props as any)}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...(props as any)}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...(props as any)}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...(props as any)} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...(props as any)}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...(props as any)} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(labelVariants(), className)}\n {...(props as any)}\n />\n))\nLabel.displayName = \"Label\"\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { useControllableState } from \"./internal/ui-core\"\n\ninterface TabsContextValue {\n value: string\n setValue: (next: string) => void\n}\n\nconst TabsContext = React.createContext<TabsContextValue | null>(null)\n\ninterface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n}\n\nconst Tabs = ({\n value,\n defaultValue = \"\",\n onValueChange,\n className,\n ...props\n}: TabsProps) => {\n const [current, setCurrent] = useControllableState({\n value,\n defaultValue,\n onChange: onValueChange,\n })\n\n return (\n <TabsContext.Provider value={{ value: current, setValue: setCurrent }}>\n <div className={className} {...(props as any)} />\n </TabsContext.Provider>\n )\n}\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...(props as any)}\n />\n))\nTabsList.displayName = \"TabsList\"\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n}\n\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, onClick, ...props }, ref) => {\n const ctx = React.useContext(TabsContext)\n const active = ctx?.value === value\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-state={active ? \"active\" : \"inactive\"}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active && \"bg-background text-foreground shadow\",\n className\n )}\n onClick={(e) => {\n ctx?.setValue(value)\n onClick?.(e)\n }}\n {...(props as any)}\n />\n )\n }\n)\nTabsTrigger.displayName = \"TabsTrigger\"\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n forceMount?: boolean\n}\n\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, forceMount = false, ...props }, ref) => {\n const ctx = React.useContext(TabsContext)\n const active = ctx?.value === value\n if (!active && !forceMount) return null\n\n return (\n <div\n ref={ref}\n data-state={active ? \"active\" : \"inactive\"}\n hidden={!active && forceMount}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...(props as any)}\n />\n )\n }\n)\nTabsContent.displayName = \"TabsContent\"\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { buttonVariants } from \"./Button\"\nimport {\n Dialog as AlertDialog,\n DialogPortal as AlertDialogPortal,\n DialogOverlay as AlertDialogOverlay,\n DialogTrigger as AlertDialogTrigger,\n DialogContent as AlertDialogContentBase,\n DialogHeader as AlertDialogHeader,\n DialogFooter as AlertDialogFooter,\n DialogTitle as AlertDialogTitle,\n DialogDescription as AlertDialogDescription,\n DialogClose,\n} from \"./Dialog\"\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof AlertDialogContentBase>\n>(({ className, ...props }, ref) => (\n <AlertDialogContentBase\n ref={ref}\n className={cn(\"z-[9999]\", className)}\n {...(props as any)}\n />\n))\nAlertDialogContent.displayName = \"AlertDialogContent\"\n\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <DialogClose\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...(props as any)}\n />\n))\nAlertDialogAction.displayName = \"AlertDialogAction\"\n\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <DialogClose\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...(props as any)}\n />\n))\nAlertDialogCancel.displayName = \"AlertDialogCancel\"\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface DropdownMenuContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nconst DropdownMenuContext = React.createContext<DropdownMenuContextValue | null>(null)\nconst DropdownMenuRadioGroupContext = React.createContext<{\n value?: string\n onValueChange?: (value: string) => void\n} | null>(null)\n\ninterface DropdownMenuProps {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst DropdownMenu = ({ open, defaultOpen = false, onOpenChange, children }: DropdownMenuProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <DropdownMenuContext.Provider value={{ open: isOpen, setOpen: setIsOpen, triggerRef, contentRef }}>\n {children}\n </DropdownMenuContext.Provider>\n )\n}\n\nconst DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean; children: React.ReactNode }\n>(({ children, onClick, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n if (!ctx) return null\n\n const mergedRef = mergeRefs<HTMLButtonElement>(ctx.triggerRef, ref)\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }\n\n return (\n <button ref={mergedRef} type=\"button\" onClick={handleClick} {...(props as any)}>\n {children}\n </button>\n )\n})\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\"\n\nconst DropdownMenuGroup = ({ children }: { children: React.ReactNode }) => <>{children}</>\nconst DropdownMenuPortal = ({ children }: { children: React.ReactNode }) => <Portal>{children}</Portal>\nconst DropdownMenuSub = ({ children }: { children: React.ReactNode }) => <>{children}</>\n\nconst DropdownMenuContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { sideOffset?: number }\n>(({ className, sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({ top: rect.bottom + sideOffset, left: rect.left })\n }, [trigger, sideOffset])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <DropdownMenuPortal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n className\n )}\n style={{ position: \"fixed\", top: pos.top, left: pos.left, ...style }}\n {...(props as any)}\n />\n </DropdownMenuPortal>\n )\n})\nDropdownMenuContent.displayName = \"DropdownMenuContent\"\n\ntype SelectEventLike = Event & { preventDefault: () => void; defaultPrevented: boolean }\n\nconst DropdownMenuItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n inset?: boolean\n onSelect?: (event: SelectEventLike) => void\n }\n>(({ className, inset, onSelect, onClick, ...props }, ref) => {\n const ctx = React.useContext(DropdownMenuContext)\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n onClick={(e) => {\n onSelect?.(e.nativeEvent as SelectEventLike)\n onClick?.(e)\n if (!e.isDefaultPrevented()) {\n ctx?.setOpen(false)\n }\n }}\n {...(props as any)}\n />\n )\n})\nDropdownMenuItem.displayName = \"DropdownMenuItem\"\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n checked?: boolean\n onCheckedChange?: (checked: boolean) => void\n }\n>(({ className, children, checked = false, onCheckedChange, onClick, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n onCheckedChange?.(!checked)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {checked ? <Check className=\"h-4 w-4\" /> : null}\n </span>\n {children}\n </button>\n))\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\"\n\nconst DropdownMenuRadioGroup = ({\n value,\n onValueChange,\n children,\n}: {\n value?: string\n onValueChange?: (value: string) => void\n children: React.ReactNode\n}) => (\n <DropdownMenuRadioGroupContext.Provider value={{ value, onValueChange }}>\n {children}\n </DropdownMenuRadioGroupContext.Provider>\n)\n\nconst DropdownMenuRadioItem = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { value: string }\n>(({ className, children, value, onClick, ...props }, ref) => {\n const radioCtx = React.useContext(DropdownMenuRadioGroupContext)\n const menuCtx = React.useContext(DropdownMenuContext)\n const checked = radioCtx?.value === value\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n radioCtx?.onValueChange?.(value)\n onClick?.(e)\n menuCtx?.setOpen(false)\n }}\n {...(props as any)}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {checked ? <Circle className=\"h-2 w-2 fill-current\" /> : null}\n </span>\n {children}\n </button>\n )\n})\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\"\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className)}\n {...(props as any)}\n />\n))\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\"\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...(props as any)}\n />\n))\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\"\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...(props as any)}\n />\n)\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent\",\n inset && \"pl-8\",\n className\n )}\n {...(props as any)}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </button>\n))\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\"\n\nconst DropdownMenuSubContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg\",\n className\n )}\n {...(props as any)}\n />\n))\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface PopoverContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n anchorRef: React.RefObject<HTMLSpanElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nconst PopoverContext = React.createContext<PopoverContextValue | null>(null)\n\ninterface PopoverProps {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst Popover = ({ open, defaultOpen = false, onOpenChange, children }: PopoverProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const anchorRef = React.useRef<HTMLSpanElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PopoverContext.Provider value={{ open: isOpen, setOpen: setIsOpen, triggerRef, anchorRef, contentRef }}>\n {children}\n </PopoverContext.Provider>\n )\n}\n\ninterface PopoverTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean\n children: React.ReactNode\n}\n\nconst PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ children, onClick, ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n if (!ctx) return null\n\n const mergedRef = mergeRefs<HTMLButtonElement>(ctx.triggerRef, ref)\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }\n\n return (\n <button ref={mergedRef} type=\"button\" onClick={handleClick} {...(props as any)}>\n {children}\n </button>\n )\n }\n)\nPopoverTrigger.displayName = \"PopoverTrigger\"\n\nconst PopoverAnchor = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n if (!ctx) return null\n\n return (\n <span ref={mergeRefs(ctx.anchorRef, ref)} {...(props as any)} />\n )\n }\n)\nPopoverAnchor.displayName = \"PopoverAnchor\"\n\ninterface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n}\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ className, align = \"center\", sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(PopoverContext)\n const [position, setPosition] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const anchor = ctx?.anchorRef.current ?? ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!anchor) return\n const rect = anchor.getBoundingClientRect()\n let left = rect.left + rect.width / 2\n if (align === \"start\") left = rect.left\n if (align === \"end\") left = rect.right\n setPosition({ top: rect.bottom + sideOffset, left })\n }, [anchor, align, sideOffset])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open) return null\n\n return (\n <Portal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none\",\n className\n )}\n style={{\n position: \"fixed\",\n top: position.top,\n left: position.left,\n transform: align === \"center\" ? \"translateX(-50%)\" : align === \"end\" ? \"translateX(-100%)\" : undefined,\n ...style,\n }}\n {...(props as any)}\n />\n </Portal>\n )\n }\n)\nPopoverContent.displayName = \"PopoverContent\"\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: number\n max?: number\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const safeMax = max <= 0 ? 100 : max\n const safeValue = Math.max(0, Math.min(value, safeMax))\n const percent = (safeValue / safeMax) * 100\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={safeValue}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-primary/20\",\n className\n )}\n {...(props as any)}\n >\n <div\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - percent}%)` }}\n />\n </div>\n )\n }\n)\nProgress.displayName = \"Progress\"\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"relative overflow-auto\", className)}\n {...(props as any)}\n >\n {children}\n </div>\n))\nScrollArea.displayName = \"ScrollArea\"\n\ninterface ScrollBarProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"vertical\" | \"horizontal\"\n}\n\nconst ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, orientation = \"vertical\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"pointer-events-none absolute\",\n orientation === \"vertical\"\n ? \"right-0 top-0 h-full w-2.5\"\n : \"bottom-0 left-0 h-2.5 w-full\",\n className\n )}\n {...(props as any)}\n />\n )\n)\nScrollBar.displayName = \"ScrollBar\"\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal, useControllableState, useOnClickOutside } from \"./internal/ui-core\"\n\ninterface SelectContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n value?: string\n setValue: (value: string) => void\n triggerRef: React.RefObject<HTMLButtonElement>\n contentRef: React.RefObject<HTMLDivElement>\n itemsRef: React.MutableRefObject<Map<string, React.ReactNode>>\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null)\nconst SelectGroupContext = React.createContext<boolean>(false)\n\ninterface SelectProps {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n disabled?: boolean\n children: React.ReactNode\n}\n\nconst Select = ({\n value,\n defaultValue,\n onValueChange,\n open,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n children,\n}: SelectProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n value: open,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [currentValue, setCurrentValue] = useControllableState<string | undefined>({\n value,\n defaultValue,\n onChange: (next) => {\n if (next !== undefined) {\n onValueChange?.(next)\n }\n },\n })\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<HTMLDivElement>(null)\n const itemsRef = React.useRef<Map<string, React.ReactNode>>(new Map())\n\n return (\n <SelectContext.Provider\n value={{\n open: disabled ? false : isOpen,\n setOpen: disabled ? () => undefined : setIsOpen,\n value: currentValue,\n setValue: (next) => {\n if (disabled) return\n setCurrentValue(next)\n setIsOpen(false)\n },\n triggerRef,\n contentRef,\n itemsRef,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nconst SelectGroup = ({ children }: { children: React.ReactNode }) => (\n <SelectGroupContext.Provider value={true}>{children}</SelectGroupContext.Provider>\n)\n\nconst SelectValue = ({\n placeholder,\n children,\n}: {\n placeholder?: React.ReactNode\n children?: React.ReactNode\n}) => {\n const ctx = React.useContext(SelectContext)\n if (!ctx) return null\n if (children) return <>{children}</>\n if (ctx.value && ctx.itemsRef.current.has(ctx.value)) {\n return <>{ctx.itemsRef.current.get(ctx.value)}</>\n }\n return <span className=\"text-muted-foreground\">{placeholder}</span>\n}\n\nconst SelectTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n if (!ctx) return null\n\n return (\n <button\n ref={mergeRefs(ctx.triggerRef, ref)}\n type=\"button\"\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n onClick={(e) => {\n ctx.setOpen(!ctx.open)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span>{children}</span>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </button>\n )\n})\nSelectTrigger.displayName = \"SelectTrigger\"\n\nconst SelectScrollUpButton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...(props as any)}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </div>\n))\nSelectScrollUpButton.displayName = \"SelectScrollUpButton\"\n\nconst SelectScrollDownButton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...(props as any)}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </div>\n))\nSelectScrollDownButton.displayName = \"SelectScrollDownButton\"\n\nconst SelectContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n position?: \"item-aligned\" | \"popper\"\n }\n>(({ className, children, style, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0, width: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({ top: rect.bottom + 4, left: rect.left, width: rect.width })\n }, [trigger])\n\n useOnClickOutside(\n [ctx?.contentRef ?? { current: null }, ctx?.triggerRef ?? { current: null }],\n () => ctx?.setOpen(false),\n open\n )\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <Portal>\n <div\n ref={mergeRefs(ctx.contentRef, ref)}\n className={cn(\n \"relative z-50 max-h-80 overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md\",\n className\n )}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n minWidth: Math.max(pos.width, 128),\n ...style,\n }}\n {...(props as any)}\n >\n <div className=\"p-1\">{children}</div>\n </div>\n </Portal>\n )\n})\nSelectContent.displayName = \"SelectContent\"\n\nconst SelectLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...(props as any)}\n />\n))\nSelectLabel.displayName = \"SelectLabel\"\n\ninterface SelectItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n}\n\nconst SelectItem = React.forwardRef<HTMLButtonElement, SelectItemProps>(\n ({ className, children, value, onClick, ...props }, ref) => {\n const ctx = React.useContext(SelectContext)\n\n React.useEffect(() => {\n if (!ctx) return\n ctx.itemsRef.current.set(value, children)\n return () => {\n ctx.itemsRef.current.delete(value)\n }\n }, [ctx, value, children])\n\n if (!ctx) return null\n\n const selected = ctx.value === value\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n onClick={(e) => {\n ctx.setValue(value)\n onClick?.(e)\n }}\n {...(props as any)}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n {selected ? <Check className=\"h-4 w-4\" /> : null}\n </span>\n <span>{children}</span>\n </button>\n )\n }\n)\nSelectItem.displayName = \"SelectItem\"\n\nconst SelectSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...(props as any)}\n />\n))\nSelectSeparator.displayName = \"SelectSeparator\"\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\"\n decorative?: boolean\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <div\n ref={ref}\n role={decorative ? undefined : \"separator\"}\n aria-orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...(props as any)}\n />\n )\n)\nSeparator.displayName = \"Separator\"\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../utils\"\nimport {\n Dialog as Sheet,\n DialogTrigger as SheetTrigger,\n DialogClose as SheetClose,\n DialogPortal as SheetPortal,\n DialogOverlay as SheetOverlay,\n DialogContent as BaseDialogContent,\n} from \"./Dialog\"\n\nconst sheetVariants = cva(\n \"fixed z-[10000] gap-4 bg-background p-6 shadow-lg transition ease-in-out translate-x-0 translate-y-0\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 left-0 border-b\",\n bottom: \"inset-x-0 bottom-0 left-0 border-t\",\n left: \"inset-y-0 left-0 top-0 h-full w-3/4 border-r sm:max-w-sm\",\n right: \"inset-y-0 right-0 top-0 h-full w-3/4 border-l sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends Omit<React.ComponentPropsWithoutRef<typeof BaseDialogContent>, \"children\">,\n VariantProps<typeof sheetVariants> {\n children?: React.ReactNode\n}\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ side = \"right\", className, children, ...props }, ref) => (\n <BaseDialogContent\n ref={ref}\n className={cn(\n \"max-w-none rounded-none\",\n sheetVariants({ side }),\n className\n )}\n showCloseButton={false}\n {...(props as any)}\n >\n <SheetClose className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetClose>\n {children}\n </BaseDialogContent>\n )\n)\nSheetContent.displayName = \"SheetContent\"\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...(props as any)}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...(props as any)}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...(props as any)}\n />\n))\nSheetTitle.displayName = \"SheetTitle\"\n\nconst SheetDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...(props as any)}\n />\n))\nSheetDescription.displayName = \"SheetDescription\"\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...(props as any)}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\nimport { mergeRefs, Portal } from \"./internal/ui-core\"\n\nconst TooltipConfigContext = React.createContext<{ delayDuration: number }>({\n delayDuration: 200,\n})\n\ninterface TooltipContextValue {\n open: boolean\n setOpen: (open: boolean) => void\n triggerRef: React.RefObject<HTMLSpanElement>\n}\n\nconst TooltipContext = React.createContext<TooltipContextValue | null>(null)\n\nconst TooltipProvider = ({\n children,\n delayDuration = 200,\n}: {\n children: React.ReactNode\n delayDuration?: number\n}) => {\n return (\n <TooltipConfigContext.Provider value={{ delayDuration }}>\n {children}\n </TooltipConfigContext.Provider>\n )\n}\n\nconst Tooltip = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = React.useState(false)\n const triggerRef = React.useRef<HTMLSpanElement>(null)\n return (\n <TooltipContext.Provider value={{ open, setOpen, triggerRef }}>\n {children}\n </TooltipContext.Provider>\n )\n}\n\nconst TooltipTrigger = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement> & { asChild?: boolean; children: React.ReactNode }\n>(({ children, ...props }, ref) => {\n const ctx = React.useContext(TooltipContext)\n const cfg = React.useContext(TooltipConfigContext)\n const timer = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n if (!ctx) return null\n\n const setRef = mergeRefs(ctx.triggerRef, ref)\n\n const openWithDelay = () => {\n if (timer.current) clearTimeout(timer.current)\n timer.current = setTimeout(() => ctx.setOpen(true), cfg.delayDuration)\n }\n\n const closeNow = () => {\n if (timer.current) clearTimeout(timer.current)\n ctx.setOpen(false)\n }\n\n const shared = {\n onMouseEnter: openWithDelay,\n onMouseLeave: closeNow,\n onFocus: openWithDelay,\n onBlur: closeNow,\n ...props,\n }\n\n return (\n <span ref={setRef} {...(shared as any)}>\n {children}\n </span>\n )\n})\nTooltipTrigger.displayName = \"TooltipTrigger\"\n\nconst TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { sideOffset?: number }\n>(({ className, sideOffset = 4, style, ...props }, ref) => {\n const ctx = React.useContext(TooltipContext)\n const [pos, setPos] = React.useState({ top: 0, left: 0 })\n const open = !!ctx?.open\n const trigger = ctx?.triggerRef.current ?? null\n\n React.useLayoutEffect(() => {\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setPos({\n top: rect.top - sideOffset,\n left: rect.left + rect.width / 2,\n })\n }, [trigger, sideOffset])\n\n if (!ctx || !open || !trigger) return null\n\n return (\n <Portal>\n <div\n ref={ref}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground\",\n className\n )}\n style={{\n position: \"fixed\",\n top: pos.top,\n left: pos.left,\n transform: \"translate(-50%, -100%)\",\n ...style,\n }}\n {...(props as any)}\n />\n </Portal>\n )\n})\nTooltipContent.displayName = \"TooltipContent\"\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../utils\"\n\ntype AvatarStatus = \"idle\" | \"loaded\" | \"error\"\n\nconst AvatarContext = React.createContext<{\n status: AvatarStatus\n setStatus: (next: AvatarStatus) => void\n} | null>(null)\n\nconst Avatar = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const [status, setStatus] = React.useState<AvatarStatus>(\"idle\")\n\n return (\n <AvatarContext.Provider value={{ status, setStatus }}>\n <span\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...(props as any)}\n />\n </AvatarContext.Provider>\n )\n})\nAvatar.displayName = \"Avatar\"\n\nconst AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, onLoad, onError, ...props }, ref) => {\n const ctx = React.useContext(AvatarContext)\n\n return (\n <img\n ref={ref}\n className={cn(\n \"aspect-square h-full w-full\",\n ctx?.status === \"error\" ? \"hidden\" : undefined,\n className\n )}\n onLoad={(e) => {\n ctx?.setStatus(\"loaded\")\n onLoad?.(e)\n }}\n onError={(e) => {\n ctx?.setStatus(\"error\")\n onError?.(e)\n }}\n {...(props as any)}\n />\n )\n})\nAvatarImage.displayName = \"AvatarImage\"\n\nconst AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const ctx = React.useContext(AvatarContext)\n const show = ctx?.status !== \"loaded\"\n\n if (!show) return null\n\n return (\n <span\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...(props as any)}\n />\n )\n})\nAvatarFallback.displayName = \"AvatarFallback\"\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import React from 'react';\nimport { clsx } from 'clsx';\n\n// ==================== 公共类型定义 ====================\n\n/** 基础网格项接口 */\nexport interface GridItem {\n id: string;\n [key: string]: any; // 允许额外的属性\n }\n \n /** 网格列数配置 */\n export interface GridColumns {\n /** 小屏幕列数 (640px+) */\n sm?: number;\n /** 中等屏幕列数 (768px+) */\n md?: number;\n /** 大屏幕列数 (1024px+) */\n lg?: number;\n /** 超大屏幕列数 (1280px+) */\n xl?: number;\n }\n \n /** 网格间距类型 */\n export type GridGap = 'sm' | 'md' | 'lg' | 'xl';\n \n // ==================== 公共工具函数 ====================\n \n /** 构建网格列数类名 */\n export function buildGridColsClasses(columns: GridColumns): string {\n return [\n 'grid-cols-1', // 默认单列\n columns.sm ? 'sm:grid-cols-' + (columns.sm) : '',\n columns.md ? 'md:grid-cols-' + (columns.md) : 'md:grid-cols-2',\n columns.lg ? 'lg:grid-cols-' + (columns.lg) : 'lg:grid-cols-3',\n columns.xl ? 'xl:grid-cols-' + (columns.xl) : ''\n ].filter(Boolean).join(' ');\n }\n \n /** 获取间距类名 */\n export function getGapClassName(gap: GridGap): string {\n const gapClasses: Record<GridGap, string> = {\n sm: 'gap-3',\n md: 'gap-6',\n lg: 'gap-8',\n xl: 'gap-10'\n };\n return gapClasses[gap];\n }\n \n // ==================== 通用网格组件 ====================\n \n /** 通用网格组件 Props */\n export interface GridProps<T extends GridItem> {\n /** 数据项数组 */\n items: T[];\n /** 渲染函数 */\n renderItem: (item: T, index: number) => React.ReactNode;\n /** 网格列数配置 */\n columns?: GridColumns;\n /** 间距配置 */\n gap?: GridGap;\n /** 额外的容器类名 */\n className?: string;\n /** 容器样式 */\n style?: React.CSSProperties;\n }\n \n /** 通用网格组件 */\n export function Grid<T extends GridItem>({\n items,\n renderItem,\n columns = { md: 2, lg: 3 },\n gap = 'md',\n className = '',\n style\n }: GridProps<T>) {\n const gridColsClasses = buildGridColsClasses(columns);\n const gapClass = getGapClassName(gap);\n \n return (\n <div \n className={clsx('grid', gridColsClasses, gapClass, className)}\n style={style}\n >\n {items.map((item, index) => (\n <div key={item.id}>\n {renderItem(item, index)}\n </div>\n ))}\n </div>\n );\n }","import React from 'react';\nimport { clsx } from 'clsx';\n\ninterface SearchBoxProps {\n searchQuery: string;\n onSearchChange: (query: string) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const SearchBox: React.FC<SearchBoxProps> = ({ \n searchQuery, \n onSearchChange, \n placeholder = \"搜索实验项目的标题、描述或标签...\",\n size = 'large'\n}) => {\n // 根据尺寸获取样式\n const getSizeStyles = () => {\n switch (size) {\n case 'small':\n return {\n container: 'h-10',\n input: 'pl-10 pr-10 text-sm',\n icon: 'w-4 h-4',\n iconPosition: 'left-3',\n clearButton: 'right-2 w-6 h-6',\n clearIcon: 'w-3 h-3'\n };\n case 'medium':\n return {\n container: 'h-12',\n input: 'pl-12 pr-12 text-base',\n icon: 'w-5 h-5',\n iconPosition: 'left-3',\n clearButton: 'right-3 w-7 h-7',\n clearIcon: 'w-4 h-4'\n };\n case 'large':\n default:\n return {\n container: 'h-16',\n input: 'pl-6 pr-16 text-lg',\n icon: 'w-6 h-6',\n iconPosition: 'left-6',\n clearButton: 'right-4 w-8 h-8',\n clearIcon: 'w-4 h-4'\n };\n }\n };\n\n const styles = getSizeStyles();\n const isLarge = size === 'large';\n\n return (\n <div className=\"relative group w-full\">\n {/* 搜索输入框 */}\n <input\n type=\"text\"\n placeholder={placeholder}\n value={searchQuery}\n onChange={(e) => onSearchChange(e.target.value)}\n className={clsx(\n 'w-full',\n styles.container,\n styles.input,\n isLarge ? 'border-2 border-gray-200 rounded-2xl shadow-lg' : 'border border-gray-300 rounded-lg shadow-sm',\n 'bg-white focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 hover:border-gray-400',\n isLarge ? 'hover:shadow-xl' : 'hover:shadow-md',\n 'transition-all duration-300 ease-out text-gray-800 placeholder-gray-500',\n isLarge ? 'font-medium' : 'font-normal'\n )}\n />\n\n {/* 清除按钮 */}\n {searchQuery && (\n <button\n onClick={() => onSearchChange('')}\n className={clsx(\n 'absolute top-1/2',\n styles.clearButton,\n 'transform -translate-y-1/2 z-10 group/clear'\n )}\n >\n <div className={clsx(\n styles.clearButton,\n 'flex items-center justify-center rounded-full bg-gray-100 hover:bg-gray-200 transition-all duration-200 group-hover/clear:scale-105'\n )}>\n <svg \n className={clsx(styles.clearIcon, 'text-gray-500 group-hover/clear:text-gray-700')}\n fill=\"none\" \n stroke=\"currentColor\" \n viewBox=\"0 0 24 24\"\n >\n <path \n strokeLinecap=\"round\" \n strokeLinejoin=\"round\" \n strokeWidth={2} \n d=\"M6 18L18 6M6 6l12 12\" \n />\n </svg>\n </div>\n </button>\n )}\n </div>\n );\n}","'use client';\n\nimport React from 'react';\n\n// Timeline相关的类型定义\nexport interface TimelineItem {\n date: string;\n title: string;\n description: string;\n}\n\nexport interface TimelineConfig {\n items: TimelineItem[];\n}\n\ninterface TimelineProps {\n items?: TimelineItem[];\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ items = [] }) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <div className=\"relative\">\n {/* 时间线 */}\n <div className=\"absolute left-4 top-0 bottom-0 w-0.5 bg-gray-200\"></div>\n \n {/* 时间线项目 */}\n {items.map((item, index) => (\n <div key={index} className=\"relative pl-12 pb-8\">\n {/* 时间点 */}\n <div className=\"absolute left-0 w-8 h-8 rounded-full bg-blue-500 border-4 border-white shadow-md flex items-center justify-center\">\n <div className=\"w-2 h-2 rounded-full bg-white\"></div>\n </div>\n \n {/* 内容 */}\n <div className=\"bg-white rounded-lg p-4 shadow-md\">\n <div className=\"text-sm text-gray-500 mb-2\">{item.date}</div>\n <h4 className=\"text-lg font-semibold mb-2\">{item.title}</h4>\n <p className=\"text-gray-600\">{item.description}</p>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Timeline;\n","'use client';\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { clsx } from 'clsx';\n\n// CollisionBalls相关的类型定义\nexport interface Ball {\n x: number;\n y: number;\n vx: number;\n vy: number;\n radius: number;\n color: string;\n text?: string;\n isDragging?: boolean;\n}\n\nexport interface CollisionBallsConfig {\n balls: {\n id: string;\n label: string;\n color: string;\n size: number;\n }[];\n width: number;\n height: number;\n}\n\ninterface CollisionBallsProps {\n collisionBallsConfig: CollisionBallsConfig;\n}\n\nexport const CollisionBalls: React.FC<CollisionBallsProps> = ({\n collisionBallsConfig: {\n balls,\n width,\n height\n },\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const ballsRef = useRef<Ball[]>([]);\n const [isShaking, setIsShaking] = useState(false);\n const [draggedBall, setDraggedBall] = useState<Ball | null>(null);\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\n const animationRef = useRef<number | null>(null);\n\n // 更新canvas尺寸\n const updateCanvasSize = () => {\n const container = containerRef.current;\n const canvas = canvasRef.current;\n if (!container || !canvas) {\n console.error('Container or canvas not found');\n return;\n }\n\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n \n console.log('Container size:', { containerWidth, containerHeight });\n \n // 设置canvas的实际尺寸\n canvas.width = containerWidth;\n canvas.height = containerHeight;\n \n // 设置canvas的显示尺寸\n canvas.style.width = (containerWidth) + 'px';\n canvas.style.height = (containerHeight) + 'px';\n \n console.log('Canvas size updated:', {\n width: canvas.width,\n height: canvas.height,\n containerWidth,\n containerHeight\n });\n };\n\n // 初始化小球\n const initBalls = () => {\n const canvas = canvasRef.current;\n if (!canvas) {\n console.error('Canvas not found during ball initialization');\n return [];\n }\n\n console.log('Initializing balls with canvas size:', {\n width: canvas.width,\n height: canvas.height\n });\n\n return balls.map((ballConfig) => ({\n x: Math.random() * (canvas.width - 100) + 50,\n y: Math.random() * (canvas.height - 100) + 50,\n vx: (Math.random() - 0.5) * 4,\n vy: (Math.random() - 0.5) * 4,\n radius: ballConfig.size,\n color: ballConfig.color,\n text: ballConfig.label,\n isDragging: false\n }));\n };\n\n // 添加resize监听\n useEffect(() => {\n const handleResize = () => {\n console.log('Window resized');\n updateCanvasSize();\n };\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', handleResize);\n // 初始设置尺寸\n updateCanvasSize();\n }\n\n return () => {\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', handleResize);\n }\n };\n }, []);\n\n // 动画循环\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) {\n console.error('Canvas element not found');\n return;\n }\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n console.error('Failed to get canvas context');\n return;\n }\n\n console.log('Starting animation setup...');\n \n // 确保canvas尺寸已更新\n updateCanvasSize();\n \n // 初始化小球\n ballsRef.current = initBalls();\n console.log('Balls initialized:', ballsRef.current);\n\n let lastTime = performance.now();\n let frameCount = 0;\n\n const animate = (currentTime: number) => {\n try {\n // 计算帧率\n frameCount++;\n if (currentTime - lastTime >= 1000) {\n console.log('FPS: ' + (frameCount));\n frameCount = 0;\n lastTime = currentTime;\n }\n\n // 清除画布\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n // 更新和绘制每个小球\n ballsRef.current.forEach((ball) => {\n if (!ball.isDragging) {\n updatePosition(ball, canvas.width, canvas.height);\n }\n\n for (let i = 0; i < ballsRef.current.length; i++) {\n for (let j = i + 1; j < ballsRef.current.length; j++) {\n const ball1 = ballsRef.current[i];\n const ball2 = ballsRef.current[j];\n if (ball1 && ball2) {\n checkCollision(ball1, ball2);\n }\n }\n }\n\n draw(ctx, ball);\n });\n\n // 继续动画循环\n animationRef.current = requestAnimationFrame(animate);\n } catch (error) {\n console.error('Animation error:', error);\n }\n };\n\n // 启动动画\n console.log('Starting animation loop...');\n animationRef.current = requestAnimationFrame(animate);\n\n // 清理函数\n return () => {\n console.log('Cleaning up animation...');\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n animationRef.current = null;\n }\n };\n }, []);\n\n const shake = () => {\n setIsShaking(true);\n ballsRef.current.forEach((ball) => {\n ball.vx = (Math.random() - 0.5) * 10;\n ball.vy = (Math.random() - 0.5) * 10;\n });\n setTimeout(() => setIsShaking(false), 200);\n };\n\n const slowdown = () => {\n setIsShaking(true);\n ballsRef.current.forEach((ball) => {\n ball.vx = ball.vx * 0.5;\n ball.vy = ball.vy * 0.5;\n });\n setTimeout(() => setIsShaking(false), 200);\n };\n\n const checkCollision = (ball1: Ball, ball2: Ball) => {\n const dx = ball2.x - ball1.x;\n const dy = ball2.y - ball1.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n if (distance < ball1.radius + ball2.radius) {\n const angle = Math.atan2(dy, dx);\n const overlap = (ball1.radius + ball2.radius - distance) / 2;\n\n if (ball1.isDragging || ball2.isDragging) {\n const draggedBall = ball1.isDragging ? ball1 : ball2;\n const otherBall = ball1.isDragging ? ball2 : ball1;\n\n otherBall.x += (draggedBall === ball1 ? 1 : -1) * overlap * Math.cos(angle);\n otherBall.y += (draggedBall === ball1 ? 1 : -1) * overlap * Math.sin(angle);\n\n const pushForce = 2;\n otherBall.vx = (draggedBall === ball1 ? -1 : 1) * Math.cos(angle) * pushForce;\n otherBall.vy = (draggedBall === ball1 ? -1 : 1) * Math.sin(angle) * pushForce;\n\n return;\n }\n\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n\n const vx1 = ball1.vx * cos + ball1.vy * sin;\n const vy1 = ball1.vy * cos - ball1.vx * sin;\n const vx2 = ball2.vx * cos + ball2.vy * sin;\n const vy2 = ball2.vy * cos - ball2.vx * sin;\n\n const newVx1 = vx2;\n const newVx2 = vx1;\n\n ball1.vx = newVx1 * cos - vy1 * sin;\n ball1.vy = vy1 * cos + newVx1 * sin;\n ball2.vx = newVx2 * cos - vy2 * sin;\n ball2.vy = vy2 * cos + newVx2 * sin;\n\n ball1.x -= overlap * Math.cos(angle);\n ball1.y -= overlap * Math.sin(angle);\n ball2.x += overlap * Math.cos(angle);\n ball2.y += overlap * Math.sin(angle);\n }\n };\n\n const updatePosition = (ball: Ball, width: number, height: number) => {\n const handleBoundaryCollision = (\n velocity: number,\n position: number,\n boundary: number,\n radius: number,\n ): [number, number] => {\n let newVelocity = velocity;\n let newPosition = position;\n\n if (position - radius < 0) {\n newPosition = radius;\n newVelocity = Math.abs(velocity);\n } else if (position + radius > boundary) {\n newPosition = boundary - radius;\n newVelocity = -Math.abs(velocity);\n }\n\n return [newVelocity, newPosition];\n };\n\n const [newVx, newX] = handleBoundaryCollision(\n ball.vx,\n ball.x,\n width,\n ball.radius,\n );\n const [newVy, newY] = handleBoundaryCollision(\n ball.vy,\n ball.y,\n height,\n ball.radius,\n );\n\n ball.vx = newVx;\n ball.vy = newVy;\n ball.x = newX;\n ball.y = newY;\n };\n\n const draw = (ctx: CanvasRenderingContext2D, ball: Ball) => {\n ctx.beginPath();\n ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2);\n ctx.fillStyle = ball.color;\n ctx.fill();\n ctx.closePath();\n\n if (ball.text) {\n ctx.font = \"14px Arial\";\n ctx.fillStyle = \"#fff\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(ball.text, ball.x, ball.y);\n }\n };\n\n const handleMouseDown = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const mousePos = getMousePos(event);\n const ball = ballsRef.current.find((b) => {\n const dx = b.x - mousePos.x;\n const dy = b.y - mousePos.y;\n return Math.sqrt(dx * dx + dy * dy) < b.radius;\n });\n\n if (ball) {\n ball.isDragging = true;\n setDraggedBall(ball);\n }\n };\n\n const handleMouseMove = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const mousePos = getMousePos(event);\n setMousePos(mousePos);\n\n if (draggedBall) {\n draggedBall.x = mousePos.x;\n draggedBall.y = mousePos.y;\n draggedBall.vx = 0;\n draggedBall.vy = 0;\n }\n };\n\n const handleMouseUp = () => {\n if (draggedBall) {\n draggedBall.isDragging = false;\n setDraggedBall(null);\n }\n };\n\n const getMousePos = (event: React.MouseEvent<HTMLCanvasElement>) => {\n const canvas = canvasRef.current;\n if (!canvas) return { x: 0, y: 0 };\n\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n \n return {\n x: (event.clientX - rect.left) * scaleX,\n y: (event.clientY - rect.top) * scaleY\n };\n };\n\n return (\n <div style={{ width: '100%', height: '100%', position: 'relative', backgroundColor: '#f9fafb', borderRadius: '0.5rem' }}>\n <div ref={containerRef} style={{ width: '100%', height: '100%', position: 'absolute', top: 0, left: 0 }}>\n <canvas\n ref={canvasRef}\n style={{ \n width: '100%', \n height: '100%',\n display: 'block' // 确保canvas正确显示\n }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n />\n </div>\n <div className=\"absolute bottom-4 right-4 flex gap-2\">\n <button\n onClick={shake}\n className={clsx('px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors', isShaking ? \"animate-pulse\" : \"\")}\n >\n 摇一摇\n </button>\n <button\n onClick={slowdown}\n className={clsx('px-4 py-2 bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors', isShaking ? \"animate-pulse\" : \"\")}\n >\n 减速\n </button>\n </div>\n </div>\n );\n};\n\nexport default CollisionBalls;\n","'use client';\n\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { \n ChevronUp, \n ChevronDown, \n GripVertical, \n Save,\n RotateCcw,\n AlertCircle\n} from 'lucide-react';\nimport { cn } from '../utils';\n\nexport interface OrderableItem {\n id: number;\n [key: string]: any;\n}\n\nexport interface OrderManagerOperations<T extends OrderableItem> {\n loadItems: () => Promise<T[]>;\n moveItemUp: (id: number) => Promise<void>;\n moveItemDown: (id: number) => Promise<void>;\n updateItemOrder: (orders: { id: number; order: number }[]) => Promise<void>;\n}\n\nexport interface GenericOrderManagerProps<T extends OrderableItem> {\n operations: OrderManagerOperations<T>;\n renderItem: (item: T, index: number, isFirst: boolean, isLast: boolean) => React.ReactNode;\n className?: string;\n title?: string;\n description?: string;\n onOrderChanged?: () => void;\n emptyMessage?: string;\n loadingMessage?: string;\n}\n\nexport function GenericOrderManager<T extends OrderableItem>({\n operations,\n renderItem,\n className = '',\n title = '顺序管理',\n description = '拖拽或使用按钮调整显示顺序',\n onOrderChanged,\n emptyMessage = '暂无数据',\n loadingMessage = '加载数据...'\n}: GenericOrderManagerProps<T>) {\n const [items, setItems] = useState<T[]>([]);\n const [originalOrder, setOriginalOrder] = useState<T[]>([]);\n const [loading, setLoading] = useState(true);\n const [saving, setSaving] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [hasChanges, setHasChanges] = useState(false);\n const [draggedItem, setDraggedItem] = useState<number | null>(null);\n\n // 加载数据\n const loadItems = useCallback(async () => {\n try {\n setLoading(true);\n setError(null);\n \n const data = await operations.loadItems();\n \n setItems(data);\n setOriginalOrder([...data]);\n setHasChanges(false);\n } catch (err) {\n console.error('❌ [通用排序] 加载数据错误:', err);\n setError(err instanceof Error ? err.message : '加载数据失败');\n } finally {\n setLoading(false);\n }\n }, [operations]);\n\n useEffect(() => {\n loadItems();\n }, [loadItems]);\n\n // 检查是否有变更\n useEffect(() => {\n const hasOrderChanged = items.some((item, index) => \n originalOrder[index]?.id !== item.id\n );\n setHasChanges(hasOrderChanged);\n }, [items, originalOrder]);\n\n // 上移项目\n const handleMoveUp = async (itemId: number) => {\n try {\n setError(null);\n \n const currentIndex = items.findIndex(item => item.id === itemId);\n if (currentIndex === -1) {\n setError('项目不存在');\n return;\n }\n if (currentIndex === 0) {\n setError('项目已经在最前面,无法上移');\n return;\n }\n \n await operations.moveItemUp(itemId);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 上移项目错误:', err);\n setError(err instanceof Error ? err.message : '上移失败');\n }\n };\n\n // 下移项目\n const handleMoveDown = async (itemId: number) => {\n try {\n setError(null);\n \n const currentIndex = items.findIndex(item => item.id === itemId);\n if (currentIndex === -1) {\n setError('项目不存在');\n return;\n }\n if (currentIndex === items.length - 1) {\n setError('项目已经在最后面,无法下移');\n return;\n }\n \n await operations.moveItemDown(itemId);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 下移项目错误:', err);\n setError(err instanceof Error ? err.message : '下移失败');\n }\n };\n\n // 拖拽开始\n const handleDragStart = (e: React.DragEvent, index: number) => {\n setDraggedItem(index);\n e.dataTransfer.effectAllowed = 'move';\n };\n\n // 拖拽悬停\n const handleDragOver = (e: React.DragEvent, _index: number) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n };\n\n // 拖拽放置\n const handleDrop = async (e: React.DragEvent, dropIndex: number) => {\n e.preventDefault();\n \n if (draggedItem === null || draggedItem === dropIndex) {\n setDraggedItem(null);\n return;\n }\n\n try {\n setError(null);\n \n const newItems = [...items];\n const draggedItemData = newItems[draggedItem];\n if (!draggedItemData) return;\n \n newItems.splice(draggedItem, 1);\n newItems.splice(dropIndex, 0, draggedItemData);\n \n const itemOrders = newItems.map((item, index) => ({\n id: item.id,\n order: index,\n }));\n \n await operations.updateItemOrder(itemOrders);\n await loadItems();\n onOrderChanged?.();\n \n } catch (err) {\n console.error('❌ [通用排序] 拖拽排序错误:', err);\n setError(err instanceof Error ? err.message : '排序失败');\n } finally {\n setDraggedItem(null);\n }\n };\n\n // 保存新顺序\n const handleSaveOrder = async () => {\n try {\n setSaving(true);\n setError(null);\n \n const itemOrders = items.map((item, index) => ({\n id: item.id,\n order: index,\n }));\n\n await operations.updateItemOrder(itemOrders);\n \n setOriginalOrder([...items]);\n setHasChanges(false);\n onOrderChanged?.();\n } catch (err) {\n console.error('❌ [通用排序] 保存顺序错误:', err);\n setError(err instanceof Error ? err.message : '保存失败');\n await loadItems();\n } finally {\n setSaving(false);\n }\n };\n\n // 重置顺序\n const handleResetOrder = () => {\n setItems([...originalOrder]);\n };\n\n if (loading) {\n return (\n <div className={cn(\"flex flex-col items-center justify-center p-12 text-gray-500\", className)}>\n <div className=\"w-6 h-6 border-2 border-gray-200 border-t-blue-500 rounded-full animate-spin mb-2\" />\n <span>{loadingMessage}</span>\n </div>\n );\n }\n\n return (\n <div className={cn(\"bg-white rounded-xl p-6 shadow-md border-2 border-gray-100\", className)}>\n <div className=\"flex items-center justify-between mb-4 pb-3 border-b border-gray-100 sm:flex-row flex-col sm:items-center items-start gap-4\">\n <h3 className=\"m-0 text-gray-900 text-lg font-semibold\">{title}</h3>\n <div className=\"flex gap-3 w-full sm:w-auto\">\n {hasChanges && (\n <>\n <button\n onClick={handleResetOrder}\n className=\"flex items-center gap-2 bg-amber-500 hover:bg-amber-600 text-white px-4 py-2 rounded-lg font-medium transition-colors\"\n title=\"重置为原始顺序\"\n >\n <RotateCcw size={16} />\n 重置\n </button>\n <button\n onClick={handleSaveOrder}\n disabled={saving}\n className=\"flex items-center gap-2 bg-blue-500 hover:bg-blue-600 disabled:opacity-50 disabled:cursor-not-allowed text-white px-4 py-2 rounded-lg font-medium transition-colors\"\n title=\"保存新顺序\"\n >\n <Save size={16} />\n {saving ? '保存中...' : '保存顺序'}\n </button>\n </>\n )}\n </div>\n </div>\n\n {error && (\n <div className=\"flex items-center gap-2 bg-red-50 text-red-600 p-3 rounded-lg mb-4 border border-red-200\">\n <AlertCircle size={16} />\n <span>{error}</span>\n </div>\n )}\n\n <div className=\"bg-slate-50 border border-slate-200 rounded-lg p-4 mb-6\">\n <p className=\"m-0 mb-2 color-slate-500 text-sm\">{description}</p>\n <ul className=\"m-0 pl-6 color-slate-500 text-sm list-disc\">\n <li className=\"mb-1\">使用拖拽:点击并拖动 <GripVertical size={14} className=\"inline-block align-middle text-gray-500\" /> 图标</li>\n <li className=\"mb-1\">使用按钮:点击 <ChevronUp size={14} className=\"inline-block align-middle text-gray-500\" /> 或 <ChevronDown size={14} className=\"inline-block align-middle text-gray-500\" /> 按钮</li>\n <li>完成调整后,点击\"保存顺序\"按钮保存更改</li>\n </ul>\n </div>\n\n <div className=\"flex flex-col gap-3\">\n {items.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"flex items-center gap-3 p-4 bg-gray-50 border-2 border-gray-200 rounded-lg transition-all hover:border-gray-300 hover:shadow-sm\",\n draggedItem === index && \"opacity-50 rotate-2 border-blue-500\"\n )}\n draggable\n onDragStart={(e) => handleDragStart(e, index)}\n onDragOver={(e) => handleDragOver(e, index)}\n onDrop={(e) => handleDrop(e, index)}\n >\n <div className=\"flex items-center cursor-grab active:cursor-grabbing text-gray-400 p-1 rounded hover:text-gray-500 hover:bg-gray-100 transition-colors\">\n <GripVertical size={20} />\n </div>\n \n <div className=\"flex-1 min-w-0\">\n {renderItem(item, index, index === 0, index === items.length - 1)}\n </div>\n\n <div className=\"flex items-center mx-3\">\n <span className=\"flex items-center justify-center w-8 h-8 bg-blue-500 text-white text-sm font-semibold rounded-full sm:w-8 sm:h-8 w-7 h-7 sm:text-sm text-xs\">\n #{index + 1}\n </span>\n </div>\n\n <div className=\"flex flex-col gap-1 sm:flex-col flex-row\">\n <button\n onClick={() => handleMoveUp(item.id)}\n disabled={index === 0}\n className=\"flex items-center justify-center w-8 h-8 p-0 border border-gray-300 bg-white text-gray-500 rounded cursor-pointer transition-all hover:bg-gray-100 hover:border-gray-400 hover:text-gray-700 disabled:opacity-40 disabled:cursor-not-allowed disabled:bg-gray-50 sm:w-8 sm:h-8 w-7 h-7\"\n title=\"上移\"\n >\n <ChevronUp size={18} />\n </button>\n <button\n onClick={() => handleMoveDown(item.id)}\n disabled={index === items.length - 1}\n className=\"flex items-center justify-center w-8 h-8 p-0 border border-gray-300 bg-white text-gray-500 rounded cursor-pointer transition-all hover:bg-gray-100 hover:border-gray-400 hover:text-gray-700 disabled:opacity-40 disabled:cursor-not-allowed disabled:bg-gray-50 sm:w-8 sm:h-8 w-7 h-7\"\n title=\"下移\"\n >\n <ChevronDown size={18} />\n </button>\n </div>\n </div>\n ))}\n </div>\n\n {items.length === 0 && (\n <div className=\"text-center p-12 text-gray-400 italic\">\n <p className=\"m-0\">{emptyMessage}</p>\n </div>\n )}\n </div>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { useRouter } from 'next/navigation';\nimport { cn } from '../utils';\n\nexport interface BackButtonProps {\n href?: string;\n className?: string;\n}\n\nexport const BackButton: React.FC<BackButtonProps> = ({ href, className = '' }) => {\n const router = useRouter();\n\n const handleClick = () => {\n if (href) {\n router.push(href);\n } else {\n router.back();\n }\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n \"inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-colors\",\n className\n )}\n >\n <svg\n className=\"w-5 h-5 mr-2\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 19l-7-7m0 0l7-7m-7 7h18\"\n />\n </svg>\n 返回\n </button>\n );\n};\n\nexport default BackButton;\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../utils';\n\nexport interface FilterOption<T> {\n value: T;\n label: string;\n icon: string;\n activeColor: {\n bg: string;\n shadow: string;\n };\n count?: number;\n showCount?: boolean;\n}\n\nexport interface FilterButtonGroupProps<T> {\n label: string;\n value: T;\n options: FilterOption<T>[];\n onChange: (value: T) => void;\n className?: string;\n}\n\n// 辅助函数:将 Tailwind 背景色类名转换为实际颜色值\nfunction getColorValue(bgClass: string): string {\n const colorMap: Record<string, string> = {\n 'bg-blue-500': '#3b82f6',\n 'bg-green-500': '#10b981',\n 'bg-red-500': '#ef4444',\n 'bg-purple-500': '#8b5cf6',\n 'bg-slate-500': '#64748b',\n 'bg-emerald-500': '#10b981',\n 'bg-orange-500': '#f97316',\n };\n return colorMap[bgClass] || '#3b82f6'; // 默认蓝色\n}\n\nexport function FilterButtonGroup<T extends string>({ \n label, \n value, \n options, \n onChange,\n className\n}: FilterButtonGroupProps<T>) {\n return (\n <div className={cn(\"space-y-4\", className)}>\n <h3 className=\"text-lg font-semibold text-gray-800\">\n {label}\n </h3>\n\n <div className=\"flex gap-3\">\n {options.map((option) => {\n const isActive = value === option.value;\n \n return (\n <button\n key={option.value}\n onClick={() => onChange(option.value)}\n style={isActive ? { backgroundColor: getColorValue(option.activeColor.bg) } : undefined}\n className={cn(\n \"flex-1 h-12 rounded-lg font-medium text-sm transition-all duration-200 ease-out focus:outline-none focus:ring-2 focus:ring-opacity-50 border\",\n isActive\n ? \"text-white border-transparent shadow-md focus:ring-white\"\n : \"bg-white text-gray-700 border-gray-200 shadow-sm hover:bg-gray-50 hover:border-gray-300 hover:shadow focus:ring-blue-300\"\n )}\n >\n <div className=\"flex items-center justify-center space-x-2\">\n <span className=\"text-lg\">{option.icon}</span>\n <span>{option.label}</span>\n {option.showCount && option.count !== undefined && (\n <span className={cn(\n \"text-xs font-semibold px-2 py-0.5 rounded-full min-w-[1.25rem] text-center\",\n isActive ? \"bg-white/20 text-white\" : \"bg-gray-100 text-gray-600\"\n )}>\n {option.count}\n </span>\n )}\n </div>\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../utils';\n\nexport interface SearchResultHintProps {\n searchQuery: string;\n resultCount: number;\n className?: string;\n}\n\nexport function SearchResultHint({ searchQuery, resultCount, className }: SearchResultHintProps) {\n if (!searchQuery) return null;\n\n return (\n <div className={cn(\"mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg\", className)}>\n <p className=\"text-sm text-blue-700\">\n 搜索 \"<span className=\"font-medium\">{searchQuery}</span>\" \n 找到 {resultCount} 个结果\n </p>\n </div>\n );\n}\n\nexport default SearchResultHint;\n\n","'use client';\n\nimport React from 'react';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n} from './Dialog';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from './AlertDialog';\nimport { cn } from '@/common/utils';\n\nexport interface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n width?: number | string;\n height?: number | string;\n className?: string;\n maskClosable?: boolean;\n children: React.ReactNode;\n zIndex?: number;\n overlayClassName?: string;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n width,\n height,\n className,\n maskClosable = true,\n children,\n zIndex = 50,\n overlayClassName,\n}) => {\n const contentZIndex = Math.max(zIndex, 10000);\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => {\n if (!open) {\n if (maskClosable) {\n onClose();\n } else {\n // If maskClosable is false, we don't allow closing via backdrop/ESC\n }\n }\n }}>\n <DialogContent \n className={cn(\"sm:max-w-[425px]\", className)}\n overlayClassName={overlayClassName}\n onPointerDownOutside={(e) => {\n if (!maskClosable) e.preventDefault();\n }}\n onEscapeKeyDown={(e) => {\n if (!maskClosable) e.preventDefault();\n }}\n style={{\n zIndex: contentZIndex,\n ...(width ? { maxWidth: typeof width === 'number' ? `${width}px` : width } : undefined),\n ...(height ? { height: typeof height === 'number' ? `${height}px` : height } : undefined),\n }}\n >\n {title ? (\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n </DialogHeader>\n ) : (\n // 无障碍性:始终需要 DialogTitle,使用 sr-only 对视觉隐藏但对屏幕阅读器可见\n <DialogTitle className=\"sr-only\">弹窗</DialogTitle>\n )}\n <div className=\"py-4\">\n {children}\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport interface ConfirmModalProps {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n title?: string;\n message: string;\n confirmText?: string;\n cancelText?: string;\n isLoading?: boolean;\n}\n\nexport const ConfirmModal: React.FC<ConfirmModalProps> = ({\n isOpen,\n onClose,\n onConfirm,\n title = \"确认操作\",\n message,\n confirmText = \"确认\",\n cancelText = \"取消\",\n isLoading = false,\n}) => {\n return (\n <AlertDialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{message}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isLoading}>{cancelText}</AlertDialogCancel>\n <AlertDialogAction \n onClick={(e) => {\n e.preventDefault();\n onConfirm();\n }}\n disabled={isLoading}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n >\n {isLoading ? \"处理中...\" : confirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n","import React from 'react';\nimport { cn } from '../utils';\n\nexport interface ImageMappingItem {\n id: string;\n label: string;\n}\n\nexport type ImageMappingValue = Record<string, string>;\n\nexport interface ImageMappingPanelProps {\n title: string;\n items: ImageMappingItem[];\n value: ImageMappingValue;\n onChange: (next: ImageMappingValue) => void;\n className?: string;\n uploadLabel?: string;\n clearLabel?: string;\n}\n\nexport function ImageMappingPanel({\n title,\n items,\n value,\n onChange,\n className,\n uploadLabel = '上传图片',\n clearLabel = '清除',\n}: ImageMappingPanelProps) {\n const handleFileChange = (id: string, file?: File) => {\n if (!file) {\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const base64 = typeof reader.result === 'string' ? reader.result : '';\n if (!base64) {\n return;\n }\n onChange({\n ...value,\n [id]: base64,\n });\n };\n reader.readAsDataURL(file);\n };\n\n const handleRemove = (id: string) => {\n const next = { ...value };\n delete next[id];\n onChange(next);\n };\n\n return (\n <details className={cn('rounded-lg border border-slate-200 bg-white/80 p-3', className)}>\n <summary className=\"cursor-pointer text-sm font-semibold text-slate-700\">{title}</summary>\n <div className=\"mt-3 grid grid-cols-1 gap-2 sm:grid-cols-2\">\n {items.map((item) => {\n const image = value[item.id];\n return (\n <div\n key={item.id}\n className=\"flex items-center gap-2 rounded-md border border-slate-200 bg-white p-2\"\n >\n <div className=\"w-16 text-xs font-semibold text-slate-600\">{item.label}</div>\n <label className=\"flex-1 cursor-pointer rounded-md bg-cyan-600 px-2 py-1 text-center text-xs font-medium text-white\">\n {uploadLabel}\n <input\n type=\"file\"\n accept=\"image/*\"\n className=\"hidden\"\n onChange={(event) => {\n handleFileChange(item.id, event.target.files?.[0]);\n event.currentTarget.value = '';\n }}\n />\n </label>\n {image ? (\n <>\n <img\n src={image}\n alt={item.label}\n className=\"h-8 w-8 rounded-full border border-slate-200 object-cover\"\n />\n <button\n type=\"button\"\n className=\"rounded-md border border-red-200 px-2 py-1 text-xs text-red-600\"\n onClick={() => handleRemove(item.id)}\n >\n {clearLabel}\n </button>\n </>\n ) : null}\n </div>\n );\n })}\n </div>\n </details>\n );\n}\n\n","import React from 'react';\nimport { useLocalStorage } from '../storage/hooks/useLocalStorage';\nimport {\n ImageMappingPanel,\n type ImageMappingItem,\n type ImageMappingPanelProps,\n type ImageMappingValue,\n} from './ImageMappingPanel';\n\nexport interface LocalImageMappingPanelProps\n extends Omit<ImageMappingPanelProps, 'value' | 'onChange'> {\n storageKey: string;\n defaultValue?: ImageMappingValue;\n onValueChange?: (next: ImageMappingValue) => void;\n}\n\nexport function LocalImageMappingPanel({\n storageKey,\n defaultValue = {},\n onValueChange,\n ...panelProps\n}: LocalImageMappingPanelProps) {\n const [value, setValue] = useLocalStorage<ImageMappingValue>(storageKey, defaultValue);\n\n return (\n <ImageMappingPanel\n {...panelProps}\n value={value}\n onChange={(next) => {\n setValue(next);\n onValueChange?.(next);\n }}\n />\n );\n}\n\nexport type { ImageMappingItem };\n\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- // src/universalFile/server/types.ts
3
+ // src/common/universalFile/server/types.ts
4
4
  var FileServiceError = class extends Error {
5
5
  constructor(message, code, details) {
6
6
  super(message);
@@ -24,5 +24,5 @@ var CDNProviderError = class extends FileServiceError {
24
24
 
25
25
  exports.CDNProviderError = CDNProviderError;
26
26
  exports.StorageProviderError = StorageProviderError;
27
- //# sourceMappingURL=chunk-KH6RQ4J5.js.map
28
- //# sourceMappingURL=chunk-KH6RQ4J5.js.map
27
+ //# sourceMappingURL=chunk-Z2SNB5LJ.js.map
28
+ //# sourceMappingURL=chunk-Z2SNB5LJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/universalFile/server/types.ts"],"names":[],"mappings":";;;AA8cO,IAAM,gBAAA,GAAN,cAA+B,KAAA,CAAM;AAAA,EAC1C,WAAA,CACE,OAAA,EACgB,IAAA,EACA,OAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAGhB,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AAAA,EACd;AACF,CAAA;AAmBO,IAAM,oBAAA,GAAN,cAAmC,gBAAA,CAAiB;AAAA,EACzD,WAAA,CAAY,SAAiB,OAAA,EAA+B;AAC1D,IAAA,KAAA,CAAM,OAAA,EAAS,0BAA0B,OAAO,CAAA;AAChD,IAAA,IAAA,CAAK,IAAA,GAAO,sBAAA;AAAA,EACd;AACF;AAGO,IAAM,gBAAA,GAAN,cAA+B,gBAAA,CAAiB;AAAA,EACrD,WAAA,CAAY,SAAiB,OAAA,EAA+B;AAC1D,IAAA,KAAA,CAAM,OAAA,EAAS,sBAAsB,OAAO,CAAA;AAC5C,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AAAA,EACd;AACF","file":"chunk-Z2SNB5LJ.js","sourcesContent":["/**\n * UniversalFile Server 端类型定义\n */\n\nimport type {\n StorageType as _StorageType,\n CDNType as _CDNType,\n ProcessorType as _ProcessorType,\n FileMetadata,\n UploadStatus,\n AccessPermission,\n UploadFileInfo as _UploadFileInfo,\n ProcessingOptions as _ProcessingOptions,\n} from '../types';\n\n// Re-export client types for server use\nexport type StorageType = _StorageType;\nexport type CDNType = _CDNType;\nexport type ProcessorType = _ProcessorType;\nexport type UploadFileInfo = _UploadFileInfo;\nexport type ProcessingOptions = _ProcessingOptions;\n\n// ============= Provider 接口 =============\n\n/** 存储提供者接口 */\nexport interface IStorageProvider {\n /** 提供者类型 */\n readonly type: StorageType;\n\n /** 初始化 */\n initialize(config: StorageConfig): Promise<void>;\n\n /** 上传文件 */\n upload(fileInfo: UploadFileInfo, path: string): Promise<StorageResult>;\n\n /** 下载文件 */\n download(path: string): Promise<Buffer>;\n\n /** 删除文件 */\n delete(path: string): Promise<StorageResult>;\n\n /** 获取文件信息 */\n getFileInfo(path: string): Promise<StorageResult>;\n\n /** 生成访问URL */\n getAccessUrl(path: string, expiresIn?: number): Promise<string>;\n\n /** 生成预签名上传URL */\n getUploadUrl(path: string, expiresIn?: number): Promise<string>;\n\n /** 检查文件是否存在 */\n exists(path: string): Promise<boolean>;\n\n /** 列出文件 */\n list(prefix: string, maxKeys?: number): Promise<string[]>;\n}\n\n/** CDN 提供者接口 */\nexport interface ICDNProvider {\n /** 提供者类型 */\n readonly type: CDNType;\n\n /** 初始化 */\n initialize(config: CDNConfig): Promise<void>;\n\n /** 生成CDN URL */\n generateUrl(originalUrl: string): Promise<string>;\n\n /** 刷新缓存 */\n refreshCache(urls: string[]): Promise<CDNResult>;\n\n /** 预热缓存 */\n preheatCache(urls: string[]): Promise<CDNResult>;\n\n /** 获取访问统计 */\n getAccessStats(startTime: Date, endTime: Date): Promise<CDNResult>;\n}\n\n/** 文件处理器接口 */\nexport interface IFileProcessor {\n /** 处理器类型 */\n readonly type: ProcessorType;\n\n /** 初始化 */\n initialize(): Promise<void>;\n\n /** 处理文件 */\n process(\n inputPath: string,\n outputPath: string,\n options: ProcessingOptions\n ): Promise<ProcessingResult>;\n\n /** 检查文件是否支持处理 */\n supports(mimeType: string): boolean;\n\n /** 获取文件信息 */\n getFileInfo(filePath: string): Promise<Record<string, any>>;\n}\n\n// ============= 配置接口 =============\n\n/** 存储配置基础接口 */\nexport interface StorageConfig {\n /** 存储类型 */\n type: StorageType;\n /** 是否启用 */\n enabled: boolean;\n}\n\n/** 本地存储配置 */\nexport interface LocalStorageConfig extends StorageConfig {\n type: 'local';\n /** 存储根目录 */\n rootPath: string;\n /** 基础URL */\n baseUrl: string;\n}\n\n/** 阿里云 OSS 配置 */\nexport interface AliyunOSSConfig extends StorageConfig {\n type: 'aliyun-oss';\n /** 地域 */\n region: string;\n /** 存储桶名称 */\n bucket: string;\n /** 访问密钥ID */\n accessKeyId: string;\n /** 访问密钥密码 */\n accessKeySecret: string;\n /** 自定义域名 */\n customDomain?: string;\n /** 是否使用HTTPS */\n secure?: boolean;\n /** 是否使用内网访问 */\n internal?: boolean;\n}\n\n/** CDN配置基础接口 */\nexport interface CDNConfig {\n /** CDN类型 */\n type: CDNType;\n /** 是否启用 */\n enabled: boolean;\n}\n\n/** 阿里云 CDN 配置 */\nexport interface AliyunCDNConfig extends CDNConfig {\n type: 'aliyun-cdn';\n /** CDN域名 */\n domain: string;\n /** 访问密钥ID */\n accessKeyId: string;\n /** 访问密钥密码 */\n accessKeySecret: string;\n /** 地域 */\n region?: string;\n}\n\n/** 缓存配置 */\nexport interface CacheConfig {\n /** 是否启用缓存 */\n enabled: boolean;\n /** 最大缓存大小 */\n maxSize?: number;\n /** 缓存 TTL(秒) */\n ttl?: number;\n /** 是否使用 Redis */\n useRedis?: boolean;\n /** Redis 配置 */\n redisConfig?: {\n host: string;\n port: number;\n password?: string;\n db?: number;\n };\n}\n\n/** 文件服务配置 */\n/** 缓存配置扩展 */\nexport interface CacheConfig {\n /** 是否启用缓存 */\n enabled: boolean;\n /** 元数据缓存TTL(秒) */\n metadataTTL?: number;\n /** URL缓存TTL(秒) */\n urlTTL?: number;\n /** 最大缓存条目数 */\n maxSize?: number;\n}\n\nexport interface UniversalFileServiceConfig {\n /** 存储配置 */\n storage: StorageConfig;\n /** CDN 配置(可选) */\n cdn?: CDNConfig;\n /** 缓存配置(可选) */\n cache?: CacheConfig;\n /** 数据库持久化配置(可选) */\n persistence?: FileServicePersistenceConfig;\n /** 启用的处理器 */\n processors?: ProcessorType[];\n /** 数据库连接(可选) @deprecated 使用 persistence.repository 代替 */\n db?: any;\n /** 最大文件大小(字节) */\n maxFileSize?: number;\n /** 允许的文件类型 */\n allowedMimeTypes?: string[];\n /** 是否启用监控 */\n enableMonitoring?: boolean;\n\n // 运行时字段(由服务类内部管理)\n /** 存储提供者映射(内部使用) */\n storageProviders?: Map<StorageType, IStorageProvider>;\n /** 默认存储类型 */\n defaultStorage?: StorageType;\n /** 默认CDN类型 */\n defaultCDN?: CDNType;\n}\n\n// ============= 结果类型 =============\n\n/** 存储结果 */\n/** 存储操作结果 */\nexport interface StorageResult {\n /** 是否成功 */\n success: boolean;\n /** 存储路径 */\n path?: string;\n /** 访问URL */\n url?: string;\n /** 文件大小 */\n size?: number;\n /** 错误信息 */\n error?: string;\n /** 额外数据 */\n data?: Record<string, any>;\n}\n\n/** 存储元数据 */\nexport interface StorageMetadata {\n /** 文件大小 */\n size: number;\n /** MIME 类型 */\n mimeType: string;\n /** 最后修改时间 */\n lastModified: Date;\n /** 自定义元数据 */\n metadata?: Record<string, any>;\n}\n\n/** CDN 结果 */\n/** CDN操作结果 */\nexport interface CDNResult {\n /** 是否成功 */\n success: boolean;\n /** CDN URL */\n url?: string;\n /** 错误信息 */\n error?: string;\n /** 额外数据 */\n data?: Record<string, any>;\n}\n\n/** CDN 统计信息 */\nexport interface CDNStats {\n /** 带宽(字节/秒) */\n bandwidth: number;\n /** 请求数 */\n requests: number;\n /** 流量(字节) */\n traffic: number;\n /** 统计时间范围 */\n timeRange: {\n start: Date;\n end: Date;\n };\n}\n\n/** 处理结果 */\nexport interface ProcessingResult {\n /** 是否成功 */\n success: boolean;\n /** 处理后的文件路径 */\n processedPath?: string;\n /** 处理后的文件大小 */\n processedSize?: number;\n /** 缩略图路径 */\n thumbnailPath?: string;\n /** 错误信息 */\n error?: string;\n /** 处理耗时(毫秒) */\n processingTime?: number;\n /** 额外数据 */\n data?: Record<string, any>;\n}\n\n/** 处理器信息 */\nexport interface ProcessorInfo {\n /** 处理器名称 */\n name: string;\n /** 处理器版本 */\n version: string;\n /** 支持的格式 */\n supportedFormats: string[];\n /** 支持的操作 */\n supportedOperations: string[];\n}\n\n// ============= 数据库相关类型 =============\n\n/** 文件数据库记录 */\nexport interface FileRecord extends FileMetadata {\n /** 创建时间 */\n createdAt: Date | string;\n /** 更新时间 */\n updatedAt: Date | string;\n}\n\n/** 文件查询选项 */\nexport interface FileQueryOptions {\n /** 模块 ID */\n moduleId?: string;\n /** 业务 ID */\n businessId?: string;\n /** 上传者 ID */\n uploaderId?: string;\n /** 文件类型 */\n mimeType?: string;\n /** 访问权限 */\n permission?: AccessPermission;\n /** 状态 */\n status?: UploadStatus;\n /** 分页 */\n page?: number;\n pageSize?: number;\n /** 排序 */\n orderBy?: string;\n orderDirection?: 'asc' | 'desc';\n}\n\n/** 分页结果 */\nexport interface PaginatedResult<T> {\n /** 数据列表 */\n items: T[];\n /** 总数 */\n total: number;\n /** 当前页 */\n page: number;\n /** 每页大小 */\n pageSize: number;\n /** 总页数 */\n totalPages: number;\n}\n\n// ============= 事件类型 =============\n\n/** 文件事件类型 */\nexport type FileEventType =\n | 'upload:start'\n | 'upload:progress'\n | 'upload:complete'\n | 'upload:error'\n | 'download:start'\n | 'download:complete'\n | 'download:error'\n | 'delete:complete'\n | 'delete:error'\n | 'process:start'\n | 'process:complete'\n | 'process:error';\n\n/** 文件事件 */\nexport interface FileEvent {\n /** 事件类型 */\n type: FileEventType;\n /** 文件 ID */\n fileId: string;\n /** 事件数据 */\n data?: any;\n /** 时间戳 */\n timestamp: Date;\n}\n\n/** 事件监听器 */\nexport type FileEventListener = (event: FileEvent) => void | Promise<void>;\n\n// ============= 数据库持久化接口 =============\n\n/**\n * 文件元数据数据库持久化接口\n *\n * 实现此接口以提供自定义的数据库持久化支持\n *\n * @example\n * ```typescript\n * // Drizzle ORM 实现\n * class DrizzleFileRepository implements IFileMetadataRepository {\n * async save(metadata: FileMetadata): Promise<void> {\n * await db.insert(fileMetadata).values(metadata);\n * }\n * // ... 其他方法\n * }\n * ```\n */\nexport interface IFileMetadataRepository {\n /**\n * 保存文件元数据到数据库\n */\n save(metadata: FileMetadata): Promise<void>;\n\n /**\n * 从数据库获取文件元数据\n */\n get(fileId: string): Promise<FileMetadata | null>;\n\n /**\n * 查询文件列表\n */\n query(options: FileQueryOptions): Promise<PaginatedResult<FileMetadata>>;\n\n /**\n * 从数据库删除文件元数据\n */\n delete(fileId: string): Promise<void>;\n\n /**\n * 批量删除文件元数据\n */\n batchDelete(fileIds: string[]): Promise<void>;\n}\n\n/**\n * 数据库持久化配置\n */\nexport interface FileServicePersistenceConfig {\n /**\n * 是否启用持久化\n */\n enabled: boolean;\n\n /**\n * 持久化仓储实现\n */\n repository: IFileMetadataRepository;\n\n /**\n * 是否自动持久化(默认 true)\n * 如果为 true,文件上传完成后自动保存到数据库\n */\n autoPersist?: boolean;\n\n /**\n * 是否优先使用缓存(默认 false)\n * 如果为 true,查询时优先从缓存获取\n */\n cacheFirst?: boolean;\n}\n\n// ============= 异常类型定义 =============\n\n/** 文件服务异常基类 */\nexport class FileServiceError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly details?: Record<string, any>\n ) {\n super(message);\n this.name = 'FileServiceError';\n }\n}\n\n/** 文件上传异常 */\nexport class FileUploadError extends FileServiceError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'FILE_UPLOAD_ERROR', details);\n this.name = 'FileUploadError';\n }\n}\n\n/** 文件处理异常 */\nexport class FileProcessingError extends FileServiceError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'FILE_PROCESSING_ERROR', details);\n this.name = 'FileProcessingError';\n }\n}\n\n/** 存储提供者异常 */\nexport class StorageProviderError extends FileServiceError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'STORAGE_PROVIDER_ERROR', details);\n this.name = 'StorageProviderError';\n }\n}\n\n/** CDN提供者异常 */\nexport class CDNProviderError extends FileServiceError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, 'CDN_PROVIDER_ERROR', details);\n this.name = 'CDNProviderError';\n }\n}\n"]}
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkKH6RQ4J5_js = require('./chunk-KH6RQ4J5.js');
4
- var chunk25OFOKNF_js = require('./chunk-25OFOKNF.js');
3
+ var chunkZ2SNB5LJ_js = require('./chunk-Z2SNB5LJ.js');
4
+ var chunkF2BZIU67_js = require('./chunk-F2BZIU67.js');
5
5
  var OSS = require('ali-oss');
6
6
 
7
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
8
 
9
9
  var OSS__default = /*#__PURE__*/_interopDefault(OSS);
10
10
 
11
- var logger = chunk25OFOKNF_js.createLogger("AliyunOSSProvider");
11
+ var logger = chunkF2BZIU67_js.createLogger("AliyunOSSProvider");
12
12
  var AliyunOSSProvider = class {
13
13
  constructor() {
14
14
  this.type = "aliyun-oss";
@@ -28,7 +28,7 @@ var AliyunOSSProvider = class {
28
28
  async reinitialize(config) {
29
29
  logger.info("\u{1F504} [AliyunOSSProvider] \u91CD\u65B0\u521D\u59CB\u5316OSS\u5BA2\u6237\u7AEF", config);
30
30
  if (config.type !== "aliyun-oss") {
31
- throw new chunkKH6RQ4J5_js.StorageProviderError("\u914D\u7F6E\u7C7B\u578B\u4E0D\u5339\u914D\uFF1A\u671F\u671B aliyun-oss");
31
+ throw new chunkZ2SNB5LJ_js.StorageProviderError("\u914D\u7F6E\u7C7B\u578B\u4E0D\u5339\u914D\uFF1A\u671F\u671B aliyun-oss");
32
32
  }
33
33
  const newConfig = config;
34
34
  const configChanged = !this.config || this.config.region !== newConfig.region || this.config.bucket !== newConfig.bucket || this.config.accessKeyId !== newConfig.accessKeyId || this.config.accessKeySecret !== newConfig.accessKeySecret || this.config.customDomain !== newConfig.customDomain || this.config.secure !== newConfig.secure || this.config.internal !== newConfig.internal;
@@ -91,7 +91,7 @@ var AliyunOSSProvider = class {
91
91
  logger.info("\u2705 [AliyunOSSProvider] \u963F\u91CC\u4E91OSS" + (configChanged ? "\u91CD\u65B0" : "") + "\u521D\u59CB\u5316\u5B8C\u6210");
92
92
  } catch (error) {
93
93
  logger.error("\u274C [AliyunOSSProvider] \u963F\u91CC\u4E91OSS\u521D\u59CB\u5316\u5931\u8D25:", error);
94
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u963F\u91CC\u4E91OSS\u521D\u59CB\u5316\u5931\u8D25`);
94
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u963F\u91CC\u4E91OSS\u521D\u59CB\u5316\u5931\u8D25`);
95
95
  }
96
96
  }
97
97
  /**
@@ -165,7 +165,7 @@ var AliyunOSSProvider = class {
165
165
  try {
166
166
  const result = await this.client?.get(filePath);
167
167
  if (!result.content || !Buffer.isBuffer(result.content)) {
168
- throw new chunkKH6RQ4J5_js.StorageProviderError("\u4E0B\u8F7D\u7684\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u9519\u8BEF");
168
+ throw new chunkZ2SNB5LJ_js.StorageProviderError("\u4E0B\u8F7D\u7684\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u9519\u8BEF");
169
169
  }
170
170
  logger.info(
171
171
  "\u2705 [AliyunOSSProvider] \u6587\u4EF6\u4E0B\u8F7D\u5B8C\u6210: " + filePath + ", \u5927\u5C0F: " + result.content.length
@@ -174,9 +174,9 @@ var AliyunOSSProvider = class {
174
174
  } catch (error) {
175
175
  logger.error("\u274C [AliyunOSSProvider] \u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25: " + filePath + ":", error);
176
176
  if (this.isOSSError(error) && error.code === "NoSuchKey") {
177
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u6587\u4EF6\u4E0D\u5B58\u5728`);
177
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u6587\u4EF6\u4E0D\u5B58\u5728`);
178
178
  }
179
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25`);
179
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25`);
180
180
  }
181
181
  }
182
182
  /**
@@ -260,7 +260,7 @@ var AliyunOSSProvider = class {
260
260
  }
261
261
  } catch (error) {
262
262
  logger.error("\u274C [AliyunOSSProvider] \u751F\u6210\u8BBF\u95EEURL\u5931\u8D25: " + filePath + ":", error);
263
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u751F\u6210\u8BBF\u95EEURL\u5931\u8D25`);
263
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u751F\u6210\u8BBF\u95EEURL\u5931\u8D25`);
264
264
  }
265
265
  }
266
266
  /**
@@ -277,7 +277,7 @@ var AliyunOSSProvider = class {
277
277
  return signedUrl || "";
278
278
  } catch (error) {
279
279
  logger.error("\u274C [AliyunOSSProvider] \u751F\u6210\u4E0A\u4F20URL\u5931\u8D25: " + filePath + ":", error);
280
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u751F\u6210\u4E0A\u4F20URL\u5931\u8D25`);
280
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u751F\u6210\u4E0A\u4F20URL\u5931\u8D25`);
281
281
  }
282
282
  }
283
283
  /**
@@ -324,7 +324,7 @@ var AliyunOSSProvider = class {
324
324
  };
325
325
  } catch (error) {
326
326
  logger.error("\u274C [AliyunOSSProvider] \u5217\u51FA\u6587\u4EF6\u5931\u8D25: " + prefix + ":", error);
327
- throw new chunkKH6RQ4J5_js.StorageProviderError(`\u5217\u51FA\u6587\u4EF6\u5931\u8D25`);
327
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`\u5217\u51FA\u6587\u4EF6\u5931\u8D25`);
328
328
  }
329
329
  }
330
330
  /**
@@ -350,7 +350,7 @@ var AliyunOSSProvider = class {
350
350
  */
351
351
  ensureInitialized() {
352
352
  if (!this.isInitialized || !this.client || !this.config) {
353
- throw new chunkKH6RQ4J5_js.StorageProviderError("OSS\u5B58\u50A8\u63D0\u4F9B\u8005\u672A\u521D\u59CB\u5316");
353
+ throw new chunkZ2SNB5LJ_js.StorageProviderError("OSS\u5B58\u50A8\u63D0\u4F9B\u8005\u672A\u521D\u59CB\u5316");
354
354
  }
355
355
  }
356
356
  /**
@@ -358,12 +358,12 @@ var AliyunOSSProvider = class {
358
358
  */
359
359
  validateConfig() {
360
360
  if (!this.config) {
361
- throw new chunkKH6RQ4J5_js.StorageProviderError("OSS\u914D\u7F6E\u4E3A\u7A7A");
361
+ throw new chunkZ2SNB5LJ_js.StorageProviderError("OSS\u914D\u7F6E\u4E3A\u7A7A");
362
362
  }
363
363
  const required = ["region", "bucket", "accessKeyId", "accessKeySecret"];
364
364
  const missing = required.filter((key) => !this.config[key]);
365
365
  if (missing.length > 0) {
366
- throw new chunkKH6RQ4J5_js.StorageProviderError(`OSS\u914D\u7F6E\u7F3A\u5C11\u5FC5\u9700\u9879`);
366
+ throw new chunkZ2SNB5LJ_js.StorageProviderError(`OSS\u914D\u7F6E\u7F3A\u5C11\u5FC5\u9700\u9879`);
367
367
  }
368
368
  }
369
369
  /**
@@ -402,7 +402,7 @@ var AliyunOSSProvider = class {
402
402
  */
403
403
  generateAccessUrl(filePath) {
404
404
  if (!this.config) {
405
- throw new chunkKH6RQ4J5_js.StorageProviderError("OSS\u914D\u7F6E\u4E3A\u7A7A");
405
+ throw new chunkZ2SNB5LJ_js.StorageProviderError("OSS\u914D\u7F6E\u4E3A\u7A7A");
406
406
  }
407
407
  const normalizedPath = filePath.startsWith("/") ? filePath.substring(1) : filePath;
408
408
  if (this.config.customDomain) {
@@ -548,5 +548,5 @@ var AliyunOSSProvider = class {
548
548
  };
549
549
 
550
550
  exports.AliyunOSSProvider = AliyunOSSProvider;
551
- //# sourceMappingURL=chunk-HJ6MH7J7.js.map
552
- //# sourceMappingURL=chunk-HJ6MH7J7.js.map
551
+ //# sourceMappingURL=chunk-ZOP7YIVX.js.map
552
+ //# sourceMappingURL=chunk-ZOP7YIVX.js.map