dev3000 0.0.136 → 0.0.138

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 (326) hide show
  1. package/dist/cdp-monitor.d.ts +1 -1
  2. package/dist/cdp-monitor.d.ts.map +1 -1
  3. package/dist/cdp-monitor.js +5 -3
  4. package/dist/cdp-monitor.js.map +1 -1
  5. package/dist/cli.js +15 -3
  6. package/dist/cli.js.map +1 -1
  7. package/dist/dev-environment.d.ts +15 -0
  8. package/dist/dev-environment.d.ts.map +1 -1
  9. package/dist/dev-environment.js +63 -22
  10. package/dist/dev-environment.js.map +1 -1
  11. package/dist/src/tui-interface-impl.tsx +46 -24
  12. package/dist/tui-interface-impl.d.ts +2 -0
  13. package/dist/tui-interface-impl.d.ts.map +1 -1
  14. package/dist/tui-interface-impl.js +28 -15
  15. package/dist/tui-interface-impl.js.map +1 -1
  16. package/dist/tui-interface.d.ts +3 -0
  17. package/dist/tui-interface.d.ts.map +1 -1
  18. package/dist/tui-interface.js +12 -7
  19. package/dist/tui-interface.js.map +1 -1
  20. package/dist/utils/tmux-helpers.d.ts.map +1 -1
  21. package/dist/utils/tmux-helpers.js +18 -3
  22. package/dist/utils/tmux-helpers.js.map +1 -1
  23. package/mcp-server/.next/BUILD_ID +1 -1
  24. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +2 -2
  25. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +1 -1
  26. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7988927e._.js +1 -1
  27. package/mcp-server/.next/build/chunks/{node_modules__pnpm_806d01c0._.js → node_modules__bun_19755e4f._.js} +167 -167
  28. package/mcp-server/.next/build/chunks/node_modules__bun_19755e4f._.js.map +47 -0
  29. package/mcp-server/.next/build-manifest.json +7 -7
  30. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  31. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  32. package/mcp-server/.next/next-server.js.nft.json +1 -1
  33. package/mcp-server/.next/prerender-manifest.json +3 -3
  34. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +5 -5
  35. package/mcp-server/.next/server/app/_global-error/page.js +8 -8
  36. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  37. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  38. package/mcp-server/.next/server/app/_global-error.html +2 -2
  39. package/mcp-server/.next/server/app/_global-error.rsc +7 -7
  40. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  41. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  42. package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  43. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  44. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  45. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +5 -5
  46. package/mcp-server/.next/server/app/_not-found/page.js +10 -10
  47. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  48. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/mcp-server/.next/server/app/_not-found.html +1 -1
  50. package/mcp-server/.next/server/app/_not-found.rsc +7 -7
  51. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
  52. package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  53. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  54. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  55. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  56. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  57. package/mcp-server/.next/server/app/api/jank/[session]/route.js +7 -7
  58. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  59. package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
  60. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  61. package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
  62. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  63. package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
  64. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  65. package/mcp-server/.next/server/app/api/logs/rotate/route.js +6 -6
  66. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  67. package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
  68. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  69. package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
  70. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  71. package/mcp-server/.next/server/app/api/orchestrator/route.js +7 -7
  72. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  73. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +6 -6
  74. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  75. package/mcp-server/.next/server/app/api/screenshots/capture/route.js +7 -7
  76. package/mcp-server/.next/server/app/api/screenshots/capture/route.js.nft.json +1 -1
  77. package/mcp-server/.next/server/app/api/screenshots/clear/route.js +6 -6
  78. package/mcp-server/.next/server/app/api/screenshots/clear/route.js.nft.json +1 -1
  79. package/mcp-server/.next/server/app/api/screenshots/list/route.js +6 -6
  80. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  81. package/mcp-server/.next/server/app/api/teams/route.js +5 -5
  82. package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
  83. package/mcp-server/.next/server/app/api/tools/route.js +6 -6
  84. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  85. package/mcp-server/.next/server/app/index.html +1 -1
  86. package/mcp-server/.next/server/app/index.rsc +9 -9
  87. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  88. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +9 -9
  89. package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +3 -3
  90. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +3 -3
  91. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  92. package/mcp-server/.next/server/app/logs/page/build-manifest.json +5 -5
  93. package/mcp-server/.next/server/app/logs/page.js +13 -13
  94. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  95. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  96. package/mcp-server/.next/server/app/mcp/route.js +8 -8
  97. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  98. package/mcp-server/.next/server/app/page/build-manifest.json +5 -5
  99. package/mcp-server/.next/server/app/page.js +12 -12
  100. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  101. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  102. package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +5 -5
  103. package/mcp-server/.next/server/app/video/[session]/page.js +12 -12
  104. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  105. package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
  106. package/mcp-server/.next/server/chunks/{[root-of-the-server]__945b2b7b._.js → [root-of-the-server]__21541e6b._.js} +3 -3
  107. package/mcp-server/.next/server/chunks/[root-of-the-server]__21541e6b._.js.map +1 -0
  108. package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js +17 -0
  109. package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js.map +1 -0
  110. package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js +7 -0
  111. package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js.map +1 -0
  112. package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js +7 -0
  113. package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js.map +1 -0
  114. package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js +3 -0
  115. package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js.map +1 -0
  116. package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js +3 -0
  117. package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js.map +1 -0
  118. package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js +3 -0
  119. package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js +3 -0
  121. package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js.map +1 -0
  122. package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js +3 -0
  123. package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js.map +1 -0
  124. package/mcp-server/.next/server/chunks/{[root-of-the-server]__340a77dc._.js → [root-of-the-server]__73c9cc46._.js} +2 -2
  125. package/mcp-server/.next/server/chunks/[root-of-the-server]__73c9cc46._.js.map +1 -0
  126. package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js +3 -0
  127. package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js.map +1 -0
  128. package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js +3 -0
  129. package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js.map +1 -0
  130. package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js → [root-of-the-server]__7ed5139a._.js} +1 -1
  131. package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js +3 -0
  132. package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js.map +1 -0
  133. package/mcp-server/.next/server/chunks/{[root-of-the-server]__8589759c._.js → [root-of-the-server]__99274dd8._.js} +3 -3
  134. package/mcp-server/.next/server/chunks/[root-of-the-server]__99274dd8._.js.map +1 -0
  135. package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js +3 -0
  136. package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js.map +1 -0
  137. package/mcp-server/.next/server/chunks/{[root-of-the-server]__4aa77621._.js → [root-of-the-server]__b56464d6._.js} +3 -3
  138. package/mcp-server/.next/server/chunks/[root-of-the-server]__b56464d6._.js.map +1 -0
  139. package/mcp-server/.next/server/chunks/{[root-of-the-server]__714e8bcf._.js → [root-of-the-server]__b698502d._.js} +2 -2
  140. package/mcp-server/.next/server/chunks/[root-of-the-server]__b698502d._.js.map +1 -0
  141. package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js +3 -0
  142. package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js.map +1 -0
  143. package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js +4 -0
  144. package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js.map +1 -0
  145. package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js +4 -0
  146. package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js.map +1 -0
  147. package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js +3 -0
  148. package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js.map +1 -0
  149. package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js +3 -0
  150. package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js.map +1 -0
  151. package/mcp-server/.next/server/chunks/{c80b1_next_dist_579c473d._.js → edd96_next_dist_fa47e982._.js} +3 -3
  152. package/mcp-server/.next/server/chunks/edd96_next_dist_fa47e982._.js.map +1 -0
  153. package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js +14 -0
  154. package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js.map +1 -0
  155. package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js +1 -1
  156. package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js.map +1 -1
  157. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__ab72cb3d._.js → [root-of-the-server]__163e0fe2._.js} +2 -2
  158. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__163e0fe2._.js.map +1 -0
  159. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bbed00c8._.js → [root-of-the-server]__250a4cf3._.js} +2 -2
  160. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__250a4cf3._.js.map +1 -0
  161. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js +3 -0
  162. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js.map +1 -0
  163. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__50b48a29._.js → [root-of-the-server]__4a45fb1f._.js} +2 -2
  164. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4a45fb1f._.js.map +1 -0
  165. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__64e0f342._.js → [root-of-the-server]__4b74b898._.js} +2 -2
  166. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4b74b898._.js.map +1 -0
  167. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bc51e8b7._.js → [root-of-the-server]__4feaccaf._.js} +2 -2
  168. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4feaccaf._.js.map +1 -0
  169. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__6d9fa861._.js +3 -0
  170. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js → [root-of-the-server]__9913ce94._.js} +2 -2
  171. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js +3 -0
  172. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js.map +1 -0
  173. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js → [root-of-the-server]__a8fcf205._.js} +2 -2
  174. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js +3 -0
  175. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js.map +1 -0
  176. package/mcp-server/.next/server/chunks/ssr/{_be1b41b5._.js → _213c874b._.js} +3 -3
  177. package/mcp-server/.next/server/chunks/ssr/_213c874b._.js.map +1 -0
  178. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_5f2de86d._.js → _69be9abe._.js} +3 -3
  179. package/mcp-server/.next/server/chunks/ssr/_69be9abe._.js.map +1 -0
  180. package/mcp-server/.next/server/chunks/ssr/{_e92c871d._.js → _b38781f1._.js} +3 -3
  181. package/mcp-server/.next/server/chunks/ssr/_b38781f1._.js.map +1 -0
  182. package/mcp-server/.next/server/chunks/ssr/{_9a178862._.js → _edba94b0._.js} +3 -3
  183. package/mcp-server/.next/server/chunks/ssr/_edba94b0._.js.map +1 -0
  184. package/mcp-server/.next/server/chunks/ssr/{_aabc0f14._.js → _f478416d._.js} +3 -3
  185. package/mcp-server/.next/server/chunks/ssr/_f478416d._.js.map +1 -0
  186. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js → edd96_next_dist_22d4e869._.js} +3 -3
  187. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_22d4e869._.js.map +1 -0
  188. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js +10 -0
  189. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js.map +1 -0
  190. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js +3 -0
  191. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js.map +1 -0
  192. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js +6 -0
  193. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js.map +1 -0
  194. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_43abb007._.js → edd96_next_dist_client_components_85c7e922._.js} +2 -2
  195. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_85c7e922._.js.map +1 -0
  196. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js → edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js} +2 -2
  197. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js.map +1 -0
  198. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js +3 -0
  199. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js.map +1 -0
  200. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js → edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js} +2 -2
  201. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js.map +1 -0
  202. package/mcp-server/.next/server/chunks/ssr/{_262bbdcd._.js → edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js} +3 -3
  203. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js.map +1 -0
  204. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  205. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +1 -1
  206. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +1 -1
  207. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js.map +1 -1
  208. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js +3 -0
  209. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js.map +1 -0
  210. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js +5 -0
  211. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js.map +1 -0
  212. package/mcp-server/.next/server/middleware-build-manifest.js +5 -5
  213. package/mcp-server/.next/server/pages/404.html +1 -1
  214. package/mcp-server/.next/server/pages/500.html +2 -2
  215. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  216. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  217. package/mcp-server/.next/static/chunks/10099c90a1ca89ea.js +4 -0
  218. package/mcp-server/.next/static/chunks/{86092b19e32d6ddb.js → 10c04cb580a9beec.js} +1 -1
  219. package/mcp-server/.next/static/chunks/13606014ef33124c.js +2 -0
  220. package/mcp-server/.next/static/chunks/2422ea9ed874427b.js +1 -0
  221. package/mcp-server/.next/static/chunks/39e9bdcc541cc428.js +1 -0
  222. package/mcp-server/.next/static/chunks/4785978304fb9e19.js +1 -0
  223. package/mcp-server/.next/static/chunks/5df77c9395248155.js +1 -0
  224. package/mcp-server/.next/static/chunks/807aef58565dccb1.js +1 -0
  225. package/mcp-server/.next/static/chunks/a6dad97d9634a72d.js.map +1 -1
  226. package/mcp-server/.next/static/chunks/{5c8ff2f81b2fec4d.js → b8eb42a9560f7980.js} +3 -3
  227. package/mcp-server/.next/static/chunks/{ba2f63419c181083.js → cbbf49c419347401.js} +1 -1
  228. package/mcp-server/.next/static/chunks/ea7b53054294e7bb.js +3 -0
  229. package/mcp-server/.next/static/chunks/{turbopack-2c2bdfdb92058782.js → turbopack-b64e111cadf03885.js} +2 -2
  230. package/mcp-server/app/mcp/tools.ts +4 -1
  231. package/mcp-server/package.json +1 -0
  232. package/mcp-server/start-production.mjs +5 -1
  233. package/package.json +8 -12
  234. package/src/tui-interface-impl.tsx +46 -24
  235. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
  236. package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js +0 -17
  237. package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js.map +0 -1
  238. package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js +0 -3
  239. package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js.map +0 -1
  240. package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js +0 -3
  241. package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js.map +0 -1
  242. package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js +0 -3
  243. package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js.map +0 -1
  244. package/mcp-server/.next/server/chunks/[root-of-the-server]__340a77dc._.js.map +0 -1
  245. package/mcp-server/.next/server/chunks/[root-of-the-server]__4aa77621._.js.map +0 -1
  246. package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js +0 -3
  247. package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js.map +0 -1
  248. package/mcp-server/.next/server/chunks/[root-of-the-server]__714e8bcf._.js.map +0 -1
  249. package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js +0 -3
  250. package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js.map +0 -1
  251. package/mcp-server/.next/server/chunks/[root-of-the-server]__8589759c._.js.map +0 -1
  252. package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js +0 -4
  253. package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js.map +0 -1
  254. package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js +0 -3
  255. package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js.map +0 -1
  256. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +0 -7
  257. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +0 -1
  258. package/mcp-server/.next/server/chunks/[root-of-the-server]__945b2b7b._.js.map +0 -1
  259. package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js +0 -3
  260. package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js.map +0 -1
  261. package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js +0 -3
  262. package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js.map +0 -1
  263. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +0 -7
  264. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +0 -1
  265. package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js +0 -3
  266. package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js.map +0 -1
  267. package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js +0 -4
  268. package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js.map +0 -1
  269. package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js +0 -3
  270. package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js.map +0 -1
  271. package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js +0 -14
  272. package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js.map +0 -1
  273. package/mcp-server/.next/server/chunks/c80b1_next_dist_579c473d._.js.map +0 -1
  274. package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js +0 -3
  275. package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js.map +0 -1
  276. package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js +0 -3
  277. package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js.map +0 -1
  278. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js +0 -3
  279. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js.map +0 -1
  280. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js +0 -3
  281. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js.map +0 -1
  282. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js +0 -3
  283. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js.map +0 -1
  284. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__50b48a29._.js.map +0 -1
  285. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__64e0f342._.js.map +0 -1
  286. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__75b45b88._.js +0 -3
  287. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ab72cb3d._.js.map +0 -1
  288. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bbed00c8._.js.map +0 -1
  289. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bc51e8b7._.js.map +0 -1
  290. package/mcp-server/.next/server/chunks/ssr/_262bbdcd._.js.map +0 -1
  291. package/mcp-server/.next/server/chunks/ssr/_9a178862._.js.map +0 -1
  292. package/mcp-server/.next/server/chunks/ssr/_aabc0f14._.js.map +0 -1
  293. package/mcp-server/.next/server/chunks/ssr/_be1b41b5._.js.map +0 -1
  294. package/mcp-server/.next/server/chunks/ssr/_e92c871d._.js.map +0 -1
  295. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js +0 -3
  296. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js.map +0 -1
  297. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_5f2de86d._.js.map +0 -1
  298. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js +0 -10
  299. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js.map +0 -1
  300. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js +0 -6
  301. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js.map +0 -1
  302. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_43abb007._.js.map +0 -1
  303. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js.map +0 -1
  304. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js +0 -3
  305. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js.map +0 -1
  306. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js.map +0 -1
  307. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js.map +0 -1
  308. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js +0 -5
  309. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js.map +0 -1
  310. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js +0 -3
  311. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js.map +0 -1
  312. package/mcp-server/.next/static/chunks/0ceacd9ff62ffa24.js +0 -1
  313. package/mcp-server/.next/static/chunks/41c5312e59752fb5.js +0 -1
  314. package/mcp-server/.next/static/chunks/47219b9a153e0530.js +0 -3
  315. package/mcp-server/.next/static/chunks/4b70aaeeb4b78390.js +0 -1
  316. package/mcp-server/.next/static/chunks/6bd8e9b9ad938cba.js +0 -1
  317. package/mcp-server/.next/static/chunks/a782bd48b8755eeb.js +0 -1
  318. package/mcp-server/.next/static/chunks/f09e07f5359ffb6b.js +0 -4
  319. package/mcp-server/.next/static/chunks/f5ae99caea655ac1.js +0 -2
  320. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js.map → [root-of-the-server]__7ed5139a._.js.map} +0 -0
  321. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__75b45b88._.js.map → [root-of-the-server]__6d9fa861._.js.map} +0 -0
  322. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js.map → [root-of-the-server]__9913ce94._.js.map} +0 -0
  323. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js.map → [root-of-the-server]__a8fcf205._.js.map} +0 -0
  324. /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_buildManifest.js +0 -0
  325. /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_clientMiddlewareManifest.json +0 -0
  326. /package/mcp-server/.next/static/{cxkSEJwFEcrBT_84gOgdA → gicQOhS3xoSQe_xAaJ-se}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/pixelmatch%407.1.0/node_modules/pixelmatch/index.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/chunkstream.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/interlace.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/paeth-predictor.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/constants.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/crc.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/bitmapper.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/format-normaliser.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/bitpacker.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-pack.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer-async.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/sync-inflate.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/sync-reader.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/filter-parse-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/parser-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/packer-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/png-sync.js","../../../../node_modules/.pnpm/pngjs%407.0.0/node_modules/pngjs/lib/png.js"],"sourcesContent":["/**\n * Compare two equally sized images, pixel by pixel.\n *\n * @param {Uint8Array | Uint8ClampedArray} img1 First image data.\n * @param {Uint8Array | Uint8ClampedArray} img2 Second image data.\n * @param {Uint8Array | Uint8ClampedArray | void} output Image data to write the diff to, if provided.\n * @param {number} width Input images width.\n * @param {number} height Input images height.\n *\n * @param {Object} [options]\n * @param {number} [options.threshold=0.1] Matching threshold (0 to 1); smaller is more sensitive.\n * @param {boolean} [options.includeAA=false] Whether to skip anti-aliasing detection.\n * @param {number} [options.alpha=0.1] Opacity of original image in diff output.\n * @param {[number, number, number]} [options.aaColor=[255, 255, 0]] Color of anti-aliased pixels in diff output.\n * @param {[number, number, number]} [options.diffColor=[255, 0, 0]] Color of different pixels in diff output.\n * @param {[number, number, number]} [options.diffColorAlt=options.diffColor] Whether to detect dark on light differences between img1 and img2 and set an alternative color to differentiate between the two.\n * @param {boolean} [options.diffMask=false] Draw the diff over a transparent background (a mask).\n *\n * @return {number} The number of mismatched pixels.\n */\nexport default function pixelmatch(img1, img2, output, width, height, options = {}) {\n const {\n threshold = 0.1,\n alpha = 0.1,\n aaColor = [255, 255, 0],\n diffColor = [255, 0, 0],\n includeAA, diffColorAlt, diffMask\n } = options;\n\n if (!isPixelData(img1) || !isPixelData(img2) || (output && !isPixelData(output)))\n throw new Error('Image data: Uint8Array, Uint8ClampedArray or Buffer expected.');\n\n if (img1.length !== img2.length || (output && output.length !== img1.length))\n throw new Error('Image sizes do not match.');\n\n if (img1.length !== width * height * 4) throw new Error('Image data size does not match width/height.');\n\n // check if images are identical\n const len = width * height;\n const a32 = new Uint32Array(img1.buffer, img1.byteOffset, len);\n const b32 = new Uint32Array(img2.buffer, img2.byteOffset, len);\n let identical = true;\n\n for (let i = 0; i < len; i++) {\n if (a32[i] !== b32[i]) { identical = false; break; }\n }\n if (identical) { // fast path if identical\n if (output && !diffMask) {\n for (let i = 0; i < len; i++) drawGrayPixel(img1, 4 * i, alpha, output);\n }\n return 0;\n }\n\n // maximum acceptable square distance between two colors;\n // 35215 is the maximum possible value for the YIQ difference metric\n const maxDelta = 35215 * threshold * threshold;\n const [aaR, aaG, aaB] = aaColor;\n const [diffR, diffG, diffB] = diffColor;\n const [altR, altG, altB] = diffColorAlt || diffColor;\n let diff = 0;\n\n // compare each pixel of one image against the other one\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n\n const i = y * width + x;\n const pos = i * 4;\n\n // squared YUV distance between colors at this pixel position, negative if the img2 pixel is darker\n const delta = a32[i] === b32[i] ? 0 : colorDelta(img1, img2, pos, pos, false);\n\n // the color difference is above the threshold\n if (Math.abs(delta) > maxDelta) {\n // check it's a real rendering difference or just anti-aliasing\n const isAA = antialiased(img1, x, y, width, height, a32, b32) || antialiased(img2, x, y, width, height, b32, a32);\n if (!includeAA && isAA) {\n // one of the pixels is anti-aliasing; draw as yellow and do not count as difference\n // note that we do not include such pixels in a mask\n if (output && !diffMask) drawPixel(output, pos, aaR, aaG, aaB);\n\n } else {\n // found substantial difference not caused by anti-aliasing; draw it as such\n if (output) {\n if (delta < 0) {\n drawPixel(output, pos, altR, altG, altB);\n } else {\n drawPixel(output, pos, diffR, diffG, diffB);\n }\n }\n diff++;\n }\n\n } else if (output && !diffMask) {\n // pixels are similar; draw background as grayscale image blended with white\n drawGrayPixel(img1, pos, alpha, output);\n }\n }\n }\n\n // return the number of different pixels\n return diff;\n}\n\n/** @param {Uint8Array | Uint8ClampedArray} arr */\nfunction isPixelData(arr) {\n // work around instanceof Uint8Array not working properly in some Jest environments\n return ArrayBuffer.isView(arr) && arr.BYTES_PER_ELEMENT === 1;\n}\n\n/**\n * Check if a pixel is likely a part of anti-aliasing;\n * based on \"Anti-aliased Pixel and Intensity Slope Detector\" paper by V. Vysniauskas, 2009\n * @param {Uint8Array | Uint8ClampedArray} img\n * @param {number} x1\n * @param {number} y1\n * @param {number} width\n * @param {number} height\n * @param {Uint32Array} a32\n * @param {Uint32Array} b32\n */\nfunction antialiased(img, x1, y1, width, height, a32, b32) {\n const x0 = Math.max(x1 - 1, 0);\n const y0 = Math.max(y1 - 1, 0);\n const x2 = Math.min(x1 + 1, width - 1);\n const y2 = Math.min(y1 + 1, height - 1);\n const pos = y1 * width + x1;\n let zeroes = x1 === x0 || x1 === x2 || y1 === y0 || y1 === y2 ? 1 : 0;\n let min = 0;\n let max = 0;\n let minX = 0;\n let minY = 0;\n let maxX = 0;\n let maxY = 0;\n\n // go through 8 adjacent pixels\n for (let x = x0; x <= x2; x++) {\n for (let y = y0; y <= y2; y++) {\n if (x === x1 && y === y1) continue;\n\n // brightness delta between the center pixel and adjacent one\n const delta = colorDelta(img, img, pos * 4, (y * width + x) * 4, true);\n\n // count the number of equal, darker and brighter adjacent pixels\n if (delta === 0) {\n zeroes++;\n // if found more than 2 equal siblings, it's definitely not anti-aliasing\n if (zeroes > 2) return false;\n\n // remember the darkest pixel\n } else if (delta < min) {\n min = delta;\n minX = x;\n minY = y;\n\n // remember the brightest pixel\n } else if (delta > max) {\n max = delta;\n maxX = x;\n maxY = y;\n }\n }\n }\n\n // if there are no both darker and brighter pixels among siblings, it's not anti-aliasing\n if (min === 0 || max === 0) return false;\n\n // if either the darkest or the brightest pixel has 3+ equal siblings in both images\n // (definitely not anti-aliased), this pixel is anti-aliased\n return (hasManySiblings(a32, minX, minY, width, height) && hasManySiblings(b32, minX, minY, width, height)) ||\n (hasManySiblings(a32, maxX, maxY, width, height) && hasManySiblings(b32, maxX, maxY, width, height));\n}\n\n/**\n * Check if a pixel has 3+ adjacent pixels of the same color.\n * @param {Uint32Array} img\n * @param {number} x1\n * @param {number} y1\n * @param {number} width\n * @param {number} height\n */\nfunction hasManySiblings(img, x1, y1, width, height) {\n const x0 = Math.max(x1 - 1, 0);\n const y0 = Math.max(y1 - 1, 0);\n const x2 = Math.min(x1 + 1, width - 1);\n const y2 = Math.min(y1 + 1, height - 1);\n const val = img[y1 * width + x1];\n let zeroes = x1 === x0 || x1 === x2 || y1 === y0 || y1 === y2 ? 1 : 0;\n\n // go through 8 adjacent pixels\n for (let x = x0; x <= x2; x++) {\n for (let y = y0; y <= y2; y++) {\n if (x === x1 && y === y1) continue;\n zeroes += +(val === img[y * width + x]);\n if (zeroes > 2) return true;\n }\n }\n return false;\n}\n\n/**\n * Calculate color difference according to the paper \"Measuring perceived color difference\n * using YIQ NTSC transmission color space in mobile applications\" by Y. Kotsarenko and F. Ramos\n * @param {Uint8Array | Uint8ClampedArray} img1\n * @param {Uint8Array | Uint8ClampedArray} img2\n * @param {number} k\n * @param {number} m\n * @param {boolean} yOnly\n */\nfunction colorDelta(img1, img2, k, m, yOnly) {\n const r1 = img1[k];\n const g1 = img1[k + 1];\n const b1 = img1[k + 2];\n const a1 = img1[k + 3];\n const r2 = img2[m];\n const g2 = img2[m + 1];\n const b2 = img2[m + 2];\n const a2 = img2[m + 3];\n\n let dr = r1 - r2;\n let dg = g1 - g2;\n let db = b1 - b2;\n const da = a1 - a2;\n\n if (!dr && !dg && !db && !da) return 0;\n\n if (a1 < 255 || a2 < 255) { // blend pixels with background\n const rb = 48 + 159 * (k % 2);\n const gb = 48 + 159 * ((k / 1.618033988749895 | 0) % 2);\n const bb = 48 + 159 * ((k / 2.618033988749895 | 0) % 2);\n dr = (r1 * a1 - r2 * a2 - rb * da) / 255;\n dg = (g1 * a1 - g2 * a2 - gb * da) / 255;\n db = (b1 * a1 - b2 * a2 - bb * da) / 255;\n }\n\n const y = dr * 0.29889531 + dg * 0.58662247 + db * 0.11448223;\n\n if (yOnly) return y; // brightness difference only\n\n const i = dr * 0.59597799 - dg * 0.27417610 - db * 0.32180189;\n const q = dr * 0.21147017 - dg * 0.52261711 + db * 0.31114694;\n\n const delta = 0.5053 * y * y + 0.299 * i * i + 0.1957 * q * q;\n\n // encode whether the pixel lightens or darkens in the sign\n return y > 0 ? -delta : delta;\n}\n\n/**\n * @param {Uint8Array | Uint8ClampedArray} output\n * @param {number} pos\n * @param {number} r\n * @param {number} g\n * @param {number} b\n */\nfunction drawPixel(output, pos, r, g, b) {\n output[pos + 0] = r;\n output[pos + 1] = g;\n output[pos + 2] = b;\n output[pos + 3] = 255;\n}\n\n/**\n * @param {Uint8Array | Uint8ClampedArray} img\n * @param {number} i\n * @param {number} alpha\n * @param {Uint8Array | Uint8ClampedArray} output\n */\nfunction drawGrayPixel(img, i, alpha, output) {\n const val = 255 + (img[i] * 0.29889531 + img[i + 1] * 0.58662247 + img[i + 2] * 0.11448223 - 255) * alpha * img[i + 3] / 255;\n drawPixel(output, i, val, val, val);\n}\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\n\nlet ChunkStream = (module.exports = function () {\n Stream.call(this);\n\n this._buffers = [];\n this._buffered = 0;\n\n this._reads = [];\n this._paused = false;\n\n this._encoding = \"utf8\";\n this.writable = true;\n});\nutil.inherits(ChunkStream, Stream);\n\nChunkStream.prototype.read = function (length, callback) {\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback,\n });\n\n process.nextTick(\n function () {\n this._process();\n\n // its paused and there is not enought data then ask for more\n if (this._paused && this._reads && this._reads.length > 0) {\n this._paused = false;\n\n this.emit(\"drain\");\n }\n }.bind(this)\n );\n};\n\nChunkStream.prototype.write = function (data, encoding) {\n if (!this.writable) {\n this.emit(\"error\", new Error(\"Stream not writable\"));\n return false;\n }\n\n let dataBuffer;\n if (Buffer.isBuffer(data)) {\n dataBuffer = data;\n } else {\n dataBuffer = Buffer.from(data, encoding || this._encoding);\n }\n\n this._buffers.push(dataBuffer);\n this._buffered += dataBuffer.length;\n\n this._process();\n\n // ok if there are no more read requests\n if (this._reads && this._reads.length === 0) {\n this._paused = true;\n }\n\n return this.writable && !this._paused;\n};\n\nChunkStream.prototype.end = function (data, encoding) {\n if (data) {\n this.write(data, encoding);\n }\n\n this.writable = false;\n\n // already destroyed\n if (!this._buffers) {\n return;\n }\n\n // enqueue or handle end\n if (this._buffers.length === 0) {\n this._end();\n } else {\n this._buffers.push(null);\n this._process();\n }\n};\n\nChunkStream.prototype.destroySoon = ChunkStream.prototype.end;\n\nChunkStream.prototype._end = function () {\n if (this._reads.length > 0) {\n this.emit(\"error\", new Error(\"Unexpected end of input\"));\n }\n\n this.destroy();\n};\n\nChunkStream.prototype.destroy = function () {\n if (!this._buffers) {\n return;\n }\n\n this.writable = false;\n this._reads = null;\n this._buffers = null;\n\n this.emit(\"close\");\n};\n\nChunkStream.prototype._processReadAllowingLess = function (read) {\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n // first we need to peek into first buffer\n let smallerBuf = this._buffers[0];\n\n // ok there is more data than we need\n if (smallerBuf.length > read.length) {\n this._buffered -= read.length;\n this._buffers[0] = smallerBuf.slice(read.length);\n\n read.func.call(this, smallerBuf.slice(0, read.length));\n } else {\n // ok this is less than maximum length so use it all\n this._buffered -= smallerBuf.length;\n this._buffers.shift(); // == smallerBuf\n\n read.func.call(this, smallerBuf);\n }\n};\n\nChunkStream.prototype._processRead = function (read) {\n this._reads.shift(); // == read\n\n let pos = 0;\n let count = 0;\n let data = Buffer.alloc(read.length);\n\n // create buffer for all data\n while (pos < read.length) {\n let buf = this._buffers[count++];\n let len = Math.min(buf.length, read.length - pos);\n\n buf.copy(data, pos, 0, len);\n pos += len;\n\n // last buffer wasn't used all so just slice it and leave\n if (len !== buf.length) {\n this._buffers[--count] = buf.slice(len);\n }\n }\n\n // remove all used buffers\n if (count > 0) {\n this._buffers.splice(0, count);\n }\n\n this._buffered -= read.length;\n\n read.func.call(this, data);\n};\n\nChunkStream.prototype._process = function () {\n try {\n // as long as there is any data and read requests\n while (this._buffered > 0 && this._reads && this._reads.length > 0) {\n let read = this._reads[0];\n\n // read any data (but no more than length)\n if (read.allowLess) {\n this._processReadAllowingLess(read);\n } else if (this._buffered >= read.length) {\n // ok we can meet some expectations\n\n this._processRead(read);\n } else {\n // not enought data to satisfy first request in queue\n // so we need to wait for more\n break;\n }\n }\n\n if (this._buffers && !this.writable) {\n this._end();\n }\n } catch (ex) {\n this.emit(\"error\", ex);\n }\n};\n","\"use strict\";\n\n// Adam 7\n// 0 1 2 3 4 5 6 7\n// 0 x 6 4 6 x 6 4 6\n// 1 7 7 7 7 7 7 7 7\n// 2 5 6 5 6 5 6 5 6\n// 3 7 7 7 7 7 7 7 7\n// 4 3 6 4 6 3 6 4 6\n// 5 7 7 7 7 7 7 7 7\n// 6 5 6 5 6 5 6 5 6\n// 7 7 7 7 7 7 7 7 7\n\nlet imagePasses = [\n {\n // pass 1 - 1px\n x: [0],\n y: [0],\n },\n {\n // pass 2 - 1px\n x: [4],\n y: [0],\n },\n {\n // pass 3 - 2px\n x: [0, 4],\n y: [4],\n },\n {\n // pass 4 - 4px\n x: [2, 6],\n y: [0, 4],\n },\n {\n // pass 5 - 8px\n x: [0, 2, 4, 6],\n y: [2, 6],\n },\n {\n // pass 6 - 16px\n x: [1, 3, 5, 7],\n y: [0, 2, 4, 6],\n },\n {\n // pass 7 - 32px\n x: [0, 1, 2, 3, 4, 5, 6, 7],\n y: [1, 3, 5, 7],\n },\n];\n\nexports.getImagePasses = function (width, height) {\n let images = [];\n let xLeftOver = width % 8;\n let yLeftOver = height % 8;\n let xRepeats = (width - xLeftOver) / 8;\n let yRepeats = (height - yLeftOver) / 8;\n for (let i = 0; i < imagePasses.length; i++) {\n let pass = imagePasses[i];\n let passWidth = xRepeats * pass.x.length;\n let passHeight = yRepeats * pass.y.length;\n for (let j = 0; j < pass.x.length; j++) {\n if (pass.x[j] < xLeftOver) {\n passWidth++;\n } else {\n break;\n }\n }\n for (let j = 0; j < pass.y.length; j++) {\n if (pass.y[j] < yLeftOver) {\n passHeight++;\n } else {\n break;\n }\n }\n if (passWidth > 0 && passHeight > 0) {\n images.push({ width: passWidth, height: passHeight, index: i });\n }\n }\n return images;\n};\n\nexports.getInterlaceIterator = function (width) {\n return function (x, y, pass) {\n let outerXLeftOver = x % imagePasses[pass].x.length;\n let outerX =\n ((x - outerXLeftOver) / imagePasses[pass].x.length) * 8 +\n imagePasses[pass].x[outerXLeftOver];\n let outerYLeftOver = y % imagePasses[pass].y.length;\n let outerY =\n ((y - outerYLeftOver) / imagePasses[pass].y.length) * 8 +\n imagePasses[pass].y[outerYLeftOver];\n return outerX * 4 + outerY * width * 4;\n };\n};\n","\"use strict\";\n\nmodule.exports = function paethPredictor(left, above, upLeft) {\n let paeth = left + above - upLeft;\n let pLeft = Math.abs(paeth - left);\n let pAbove = Math.abs(paeth - above);\n let pUpLeft = Math.abs(paeth - upLeft);\n\n if (pLeft <= pAbove && pLeft <= pUpLeft) {\n return left;\n }\n if (pAbove <= pUpLeft) {\n return above;\n }\n return upLeft;\n};\n","\"use strict\";\n\nlet interlaceUtils = require(\"./interlace\");\nlet paethPredictor = require(\"./paeth-predictor\");\n\nfunction getByteWidth(width, bpp, depth) {\n let byteWidth = width * bpp;\n if (depth !== 8) {\n byteWidth = Math.ceil(byteWidth / (8 / depth));\n }\n return byteWidth;\n}\n\nlet Filter = (module.exports = function (bitmapInfo, dependencies) {\n let width = bitmapInfo.width;\n let height = bitmapInfo.height;\n let interlace = bitmapInfo.interlace;\n let bpp = bitmapInfo.bpp;\n let depth = bitmapInfo.depth;\n\n this.read = dependencies.read;\n this.write = dependencies.write;\n this.complete = dependencies.complete;\n\n this._imageIndex = 0;\n this._images = [];\n if (interlace) {\n let passes = interlaceUtils.getImagePasses(width, height);\n for (let i = 0; i < passes.length; i++) {\n this._images.push({\n byteWidth: getByteWidth(passes[i].width, bpp, depth),\n height: passes[i].height,\n lineIndex: 0,\n });\n }\n } else {\n this._images.push({\n byteWidth: getByteWidth(width, bpp, depth),\n height: height,\n lineIndex: 0,\n });\n }\n\n // when filtering the line we look at the pixel to the left\n // the spec also says it is done on a byte level regardless of the number of pixels\n // so if the depth is byte compatible (8 or 16) we subtract the bpp in order to compare back\n // a pixel rather than just a different byte part. However if we are sub byte, we ignore.\n if (depth === 8) {\n this._xComparison = bpp;\n } else if (depth === 16) {\n this._xComparison = bpp * 2;\n } else {\n this._xComparison = 1;\n }\n});\n\nFilter.prototype.start = function () {\n this.read(\n this._images[this._imageIndex].byteWidth + 1,\n this._reverseFilterLine.bind(this)\n );\n};\n\nFilter.prototype._unFilterType1 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f1Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n unfilteredLine[x] = rawByte + f1Left;\n }\n};\n\nFilter.prototype._unFilterType2 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f2Up = lastLine ? lastLine[x] : 0;\n unfilteredLine[x] = rawByte + f2Up;\n }\n};\n\nFilter.prototype._unFilterType3 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f3Up = lastLine ? lastLine[x] : 0;\n let f3Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n let f3Add = Math.floor((f3Left + f3Up) / 2);\n unfilteredLine[x] = rawByte + f3Add;\n }\n};\n\nFilter.prototype._unFilterType4 = function (\n rawData,\n unfilteredLine,\n byteWidth\n) {\n let xComparison = this._xComparison;\n let xBiggerThan = xComparison - 1;\n let lastLine = this._lastLine;\n\n for (let x = 0; x < byteWidth; x++) {\n let rawByte = rawData[1 + x];\n let f4Up = lastLine ? lastLine[x] : 0;\n let f4Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n let f4UpLeft = x > xBiggerThan && lastLine ? lastLine[x - xComparison] : 0;\n let f4Add = paethPredictor(f4Left, f4Up, f4UpLeft);\n unfilteredLine[x] = rawByte + f4Add;\n }\n};\n\nFilter.prototype._reverseFilterLine = function (rawData) {\n let filter = rawData[0];\n let unfilteredLine;\n let currentImage = this._images[this._imageIndex];\n let byteWidth = currentImage.byteWidth;\n\n if (filter === 0) {\n unfilteredLine = rawData.slice(1, byteWidth + 1);\n } else {\n unfilteredLine = Buffer.alloc(byteWidth);\n\n switch (filter) {\n case 1:\n this._unFilterType1(rawData, unfilteredLine, byteWidth);\n break;\n case 2:\n this._unFilterType2(rawData, unfilteredLine, byteWidth);\n break;\n case 3:\n this._unFilterType3(rawData, unfilteredLine, byteWidth);\n break;\n case 4:\n this._unFilterType4(rawData, unfilteredLine, byteWidth);\n break;\n default:\n throw new Error(\"Unrecognised filter type - \" + filter);\n }\n }\n\n this.write(unfilteredLine);\n\n currentImage.lineIndex++;\n if (currentImage.lineIndex >= currentImage.height) {\n this._lastLine = null;\n this._imageIndex++;\n currentImage = this._images[this._imageIndex];\n } else {\n this._lastLine = unfilteredLine;\n }\n\n if (currentImage) {\n // read, using the byte width that may be from the new current image\n this.read(currentImage.byteWidth + 1, this._reverseFilterLine.bind(this));\n } else {\n this._lastLine = null;\n this.complete();\n }\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet ChunkStream = require(\"./chunkstream\");\nlet Filter = require(\"./filter-parse\");\n\nlet FilterAsync = (module.exports = function (bitmapInfo) {\n ChunkStream.call(this);\n\n let buffers = [];\n let that = this;\n this._filter = new Filter(bitmapInfo, {\n read: this.read.bind(this),\n write: function (buffer) {\n buffers.push(buffer);\n },\n complete: function () {\n that.emit(\"complete\", Buffer.concat(buffers));\n },\n });\n\n this._filter.start();\n});\nutil.inherits(FilterAsync, ChunkStream);\n","\"use strict\";\n\nmodule.exports = {\n PNG_SIGNATURE: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a],\n\n TYPE_IHDR: 0x49484452,\n TYPE_IEND: 0x49454e44,\n TYPE_IDAT: 0x49444154,\n TYPE_PLTE: 0x504c5445,\n TYPE_tRNS: 0x74524e53, // eslint-disable-line camelcase\n TYPE_gAMA: 0x67414d41, // eslint-disable-line camelcase\n\n // color-type bits\n COLORTYPE_GRAYSCALE: 0,\n COLORTYPE_PALETTE: 1,\n COLORTYPE_COLOR: 2,\n COLORTYPE_ALPHA: 4, // e.g. grayscale and alpha\n\n // color-type combinations\n COLORTYPE_PALETTE_COLOR: 3,\n COLORTYPE_COLOR_ALPHA: 6,\n\n COLORTYPE_TO_BPP_MAP: {\n 0: 1,\n 2: 3,\n 3: 1,\n 4: 2,\n 6: 4,\n },\n\n GAMMA_DIVISION: 100000,\n};\n","\"use strict\";\n\nlet crcTable = [];\n\n(function () {\n for (let i = 0; i < 256; i++) {\n let currentCrc = i;\n for (let j = 0; j < 8; j++) {\n if (currentCrc & 1) {\n currentCrc = 0xedb88320 ^ (currentCrc >>> 1);\n } else {\n currentCrc = currentCrc >>> 1;\n }\n }\n crcTable[i] = currentCrc;\n }\n})();\n\nlet CrcCalculator = (module.exports = function () {\n this._crc = -1;\n});\n\nCrcCalculator.prototype.write = function (data) {\n for (let i = 0; i < data.length; i++) {\n this._crc = crcTable[(this._crc ^ data[i]) & 0xff] ^ (this._crc >>> 8);\n }\n return true;\n};\n\nCrcCalculator.prototype.crc32 = function () {\n return this._crc ^ -1;\n};\n\nCrcCalculator.crc32 = function (buf) {\n let crc = -1;\n for (let i = 0; i < buf.length; i++) {\n crc = crcTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8);\n }\n return crc ^ -1;\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\nlet CrcCalculator = require(\"./crc\");\n\nlet Parser = (module.exports = function (options, dependencies) {\n this._options = options;\n options.checkCRC = options.checkCRC !== false;\n\n this._hasIHDR = false;\n this._hasIEND = false;\n this._emittedHeadersFinished = false;\n\n // input flags/metadata\n this._palette = [];\n this._colorType = 0;\n\n this._chunks = {};\n this._chunks[constants.TYPE_IHDR] = this._handleIHDR.bind(this);\n this._chunks[constants.TYPE_IEND] = this._handleIEND.bind(this);\n this._chunks[constants.TYPE_IDAT] = this._handleIDAT.bind(this);\n this._chunks[constants.TYPE_PLTE] = this._handlePLTE.bind(this);\n this._chunks[constants.TYPE_tRNS] = this._handleTRNS.bind(this);\n this._chunks[constants.TYPE_gAMA] = this._handleGAMA.bind(this);\n\n this.read = dependencies.read;\n this.error = dependencies.error;\n this.metadata = dependencies.metadata;\n this.gamma = dependencies.gamma;\n this.transColor = dependencies.transColor;\n this.palette = dependencies.palette;\n this.parsed = dependencies.parsed;\n this.inflateData = dependencies.inflateData;\n this.finished = dependencies.finished;\n this.simpleTransparency = dependencies.simpleTransparency;\n this.headersFinished = dependencies.headersFinished || function () {};\n});\n\nParser.prototype.start = function () {\n this.read(constants.PNG_SIGNATURE.length, this._parseSignature.bind(this));\n};\n\nParser.prototype._parseSignature = function (data) {\n let signature = constants.PNG_SIGNATURE;\n\n for (let i = 0; i < signature.length; i++) {\n if (data[i] !== signature[i]) {\n this.error(new Error(\"Invalid file signature\"));\n return;\n }\n }\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._parseChunkBegin = function (data) {\n // chunk content length\n let length = data.readUInt32BE(0);\n\n // chunk type\n let type = data.readUInt32BE(4);\n let name = \"\";\n for (let i = 4; i < 8; i++) {\n name += String.fromCharCode(data[i]);\n }\n\n //console.log('chunk ', name, length);\n\n // chunk flags\n let ancillary = Boolean(data[4] & 0x20); // or critical\n // priv = Boolean(data[5] & 0x20), // or public\n // safeToCopy = Boolean(data[7] & 0x20); // or unsafe\n\n if (!this._hasIHDR && type !== constants.TYPE_IHDR) {\n this.error(new Error(\"Expected IHDR on beggining\"));\n return;\n }\n\n this._crc = new CrcCalculator();\n this._crc.write(Buffer.from(name));\n\n if (this._chunks[type]) {\n return this._chunks[type](length);\n }\n\n if (!ancillary) {\n this.error(new Error(\"Unsupported critical chunk type \" + name));\n return;\n }\n\n this.read(length + 4, this._skipChunk.bind(this));\n};\n\nParser.prototype._skipChunk = function (/*data*/) {\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._handleChunkEnd = function () {\n this.read(4, this._parseChunkEnd.bind(this));\n};\n\nParser.prototype._parseChunkEnd = function (data) {\n let fileCrc = data.readInt32BE(0);\n let calcCrc = this._crc.crc32();\n\n // check CRC\n if (this._options.checkCRC && calcCrc !== fileCrc) {\n this.error(new Error(\"Crc error - \" + fileCrc + \" - \" + calcCrc));\n return;\n }\n\n if (!this._hasIEND) {\n this.read(8, this._parseChunkBegin.bind(this));\n }\n};\n\nParser.prototype._handleIHDR = function (length) {\n this.read(length, this._parseIHDR.bind(this));\n};\nParser.prototype._parseIHDR = function (data) {\n this._crc.write(data);\n\n let width = data.readUInt32BE(0);\n let height = data.readUInt32BE(4);\n let depth = data[8];\n let colorType = data[9]; // bits: 1 palette, 2 color, 4 alpha\n let compr = data[10];\n let filter = data[11];\n let interlace = data[12];\n\n // console.log(' width', width, 'height', height,\n // 'depth', depth, 'colorType', colorType,\n // 'compr', compr, 'filter', filter, 'interlace', interlace\n // );\n\n if (\n depth !== 8 &&\n depth !== 4 &&\n depth !== 2 &&\n depth !== 1 &&\n depth !== 16\n ) {\n this.error(new Error(\"Unsupported bit depth \" + depth));\n return;\n }\n if (!(colorType in constants.COLORTYPE_TO_BPP_MAP)) {\n this.error(new Error(\"Unsupported color type\"));\n return;\n }\n if (compr !== 0) {\n this.error(new Error(\"Unsupported compression method\"));\n return;\n }\n if (filter !== 0) {\n this.error(new Error(\"Unsupported filter method\"));\n return;\n }\n if (interlace !== 0 && interlace !== 1) {\n this.error(new Error(\"Unsupported interlace method\"));\n return;\n }\n\n this._colorType = colorType;\n\n let bpp = constants.COLORTYPE_TO_BPP_MAP[this._colorType];\n\n this._hasIHDR = true;\n\n this.metadata({\n width: width,\n height: height,\n depth: depth,\n interlace: Boolean(interlace),\n palette: Boolean(colorType & constants.COLORTYPE_PALETTE),\n color: Boolean(colorType & constants.COLORTYPE_COLOR),\n alpha: Boolean(colorType & constants.COLORTYPE_ALPHA),\n bpp: bpp,\n colorType: colorType,\n });\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handlePLTE = function (length) {\n this.read(length, this._parsePLTE.bind(this));\n};\nParser.prototype._parsePLTE = function (data) {\n this._crc.write(data);\n\n let entries = Math.floor(data.length / 3);\n // console.log('Palette:', entries);\n\n for (let i = 0; i < entries; i++) {\n this._palette.push([data[i * 3], data[i * 3 + 1], data[i * 3 + 2], 0xff]);\n }\n\n this.palette(this._palette);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleTRNS = function (length) {\n this.simpleTransparency();\n this.read(length, this._parseTRNS.bind(this));\n};\nParser.prototype._parseTRNS = function (data) {\n this._crc.write(data);\n\n // palette\n if (this._colorType === constants.COLORTYPE_PALETTE_COLOR) {\n if (this._palette.length === 0) {\n this.error(new Error(\"Transparency chunk must be after palette\"));\n return;\n }\n if (data.length > this._palette.length) {\n this.error(new Error(\"More transparent colors than palette size\"));\n return;\n }\n for (let i = 0; i < data.length; i++) {\n this._palette[i][3] = data[i];\n }\n this.palette(this._palette);\n }\n\n // for colorType 0 (grayscale) and 2 (rgb)\n // there might be one gray/color defined as transparent\n if (this._colorType === constants.COLORTYPE_GRAYSCALE) {\n // grey, 2 bytes\n this.transColor([data.readUInt16BE(0)]);\n }\n if (this._colorType === constants.COLORTYPE_COLOR) {\n this.transColor([\n data.readUInt16BE(0),\n data.readUInt16BE(2),\n data.readUInt16BE(4),\n ]);\n }\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleGAMA = function (length) {\n this.read(length, this._parseGAMA.bind(this));\n};\nParser.prototype._parseGAMA = function (data) {\n this._crc.write(data);\n this.gamma(data.readUInt32BE(0) / constants.GAMMA_DIVISION);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleIDAT = function (length) {\n if (!this._emittedHeadersFinished) {\n this._emittedHeadersFinished = true;\n this.headersFinished();\n }\n this.read(-length, this._parseIDAT.bind(this, length));\n};\nParser.prototype._parseIDAT = function (length, data) {\n this._crc.write(data);\n\n if (\n this._colorType === constants.COLORTYPE_PALETTE_COLOR &&\n this._palette.length === 0\n ) {\n throw new Error(\"Expected palette not found\");\n }\n\n this.inflateData(data);\n let leftOverLength = length - data.length;\n\n if (leftOverLength > 0) {\n this._handleIDAT(leftOverLength);\n } else {\n this._handleChunkEnd();\n }\n};\n\nParser.prototype._handleIEND = function (length) {\n this.read(length, this._parseIEND.bind(this));\n};\nParser.prototype._parseIEND = function (data) {\n this._crc.write(data);\n\n this._hasIEND = true;\n this._handleChunkEnd();\n\n if (this.finished) {\n this.finished();\n }\n};\n","\"use strict\";\n\nlet interlaceUtils = require(\"./interlace\");\n\nlet pixelBppMapper = [\n // 0 - dummy entry\n function () {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function (pxData, data, pxPos, rawPos) {\n if (rawPos === data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n let pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = 0xff;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 1 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n let pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = data[rawPos + 1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 2 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = 0xff;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function (pxData, data, pxPos, rawPos) {\n if (rawPos + 3 >= data.length) {\n throw new Error(\"Ran out of data\");\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = data[rawPos + 3];\n },\n];\n\nlet pixelBppCustomMapper = [\n // 0 - dummy entry\n function () {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function (pxData, pixelData, pxPos, maxBit) {\n let pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = maxBit;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function (pxData, pixelData, pxPos) {\n let pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = pixelData[1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function (pxData, pixelData, pxPos, maxBit) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = maxBit;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function (pxData, pixelData, pxPos) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = pixelData[3];\n },\n];\n\nfunction bitRetriever(data, depth) {\n let leftOver = [];\n let i = 0;\n\n function split() {\n if (i === data.length) {\n throw new Error(\"Ran out of data\");\n }\n let byte = data[i];\n i++;\n let byte8, byte7, byte6, byte5, byte4, byte3, byte2, byte1;\n switch (depth) {\n default:\n throw new Error(\"unrecognised depth\");\n case 16:\n byte2 = data[i];\n i++;\n leftOver.push((byte << 8) + byte2);\n break;\n case 4:\n byte2 = byte & 0x0f;\n byte1 = byte >> 4;\n leftOver.push(byte1, byte2);\n break;\n case 2:\n byte4 = byte & 3;\n byte3 = (byte >> 2) & 3;\n byte2 = (byte >> 4) & 3;\n byte1 = (byte >> 6) & 3;\n leftOver.push(byte1, byte2, byte3, byte4);\n break;\n case 1:\n byte8 = byte & 1;\n byte7 = (byte >> 1) & 1;\n byte6 = (byte >> 2) & 1;\n byte5 = (byte >> 3) & 1;\n byte4 = (byte >> 4) & 1;\n byte3 = (byte >> 5) & 1;\n byte2 = (byte >> 6) & 1;\n byte1 = (byte >> 7) & 1;\n leftOver.push(byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8);\n break;\n }\n }\n\n return {\n get: function (count) {\n while (leftOver.length < count) {\n split();\n }\n let returner = leftOver.slice(0, count);\n leftOver = leftOver.slice(count);\n return returner;\n },\n resetAfterLine: function () {\n leftOver.length = 0;\n },\n end: function () {\n if (i !== data.length) {\n throw new Error(\"extra data found\");\n }\n },\n };\n}\n\nfunction mapImage8Bit(image, pxData, getPxPos, bpp, data, rawPos) {\n // eslint-disable-line max-params\n let imageWidth = image.width;\n let imageHeight = image.height;\n let imagePass = image.index;\n for (let y = 0; y < imageHeight; y++) {\n for (let x = 0; x < imageWidth; x++) {\n let pxPos = getPxPos(x, y, imagePass);\n pixelBppMapper[bpp](pxData, data, pxPos, rawPos);\n rawPos += bpp; //eslint-disable-line no-param-reassign\n }\n }\n return rawPos;\n}\n\nfunction mapImageCustomBit(image, pxData, getPxPos, bpp, bits, maxBit) {\n // eslint-disable-line max-params\n let imageWidth = image.width;\n let imageHeight = image.height;\n let imagePass = image.index;\n for (let y = 0; y < imageHeight; y++) {\n for (let x = 0; x < imageWidth; x++) {\n let pixelData = bits.get(bpp);\n let pxPos = getPxPos(x, y, imagePass);\n pixelBppCustomMapper[bpp](pxData, pixelData, pxPos, maxBit);\n }\n bits.resetAfterLine();\n }\n}\n\nexports.dataToBitMap = function (data, bitmapInfo) {\n let width = bitmapInfo.width;\n let height = bitmapInfo.height;\n let depth = bitmapInfo.depth;\n let bpp = bitmapInfo.bpp;\n let interlace = bitmapInfo.interlace;\n let bits;\n\n if (depth !== 8) {\n bits = bitRetriever(data, depth);\n }\n let pxData;\n if (depth <= 8) {\n pxData = Buffer.alloc(width * height * 4);\n } else {\n pxData = new Uint16Array(width * height * 4);\n }\n let maxBit = Math.pow(2, depth) - 1;\n let rawPos = 0;\n let images;\n let getPxPos;\n\n if (interlace) {\n images = interlaceUtils.getImagePasses(width, height);\n getPxPos = interlaceUtils.getInterlaceIterator(width, height);\n } else {\n let nonInterlacedPxPos = 0;\n getPxPos = function () {\n let returner = nonInterlacedPxPos;\n nonInterlacedPxPos += 4;\n return returner;\n };\n images = [{ width: width, height: height }];\n }\n\n for (let imageIndex = 0; imageIndex < images.length; imageIndex++) {\n if (depth === 8) {\n rawPos = mapImage8Bit(\n images[imageIndex],\n pxData,\n getPxPos,\n bpp,\n data,\n rawPos\n );\n } else {\n mapImageCustomBit(\n images[imageIndex],\n pxData,\n getPxPos,\n bpp,\n bits,\n maxBit\n );\n }\n }\n if (depth === 8) {\n if (rawPos !== data.length) {\n throw new Error(\"extra data found\");\n }\n } else {\n bits.end();\n }\n\n return pxData;\n};\n","\"use strict\";\n\nfunction dePalette(indata, outdata, width, height, palette) {\n let pxPos = 0;\n // use values from palette\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let color = palette[indata[pxPos]];\n\n if (!color) {\n throw new Error(\"index \" + indata[pxPos] + \" not in palette\");\n }\n\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = color[i];\n }\n pxPos += 4;\n }\n }\n}\n\nfunction replaceTransparentColor(indata, outdata, width, height, transColor) {\n let pxPos = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let makeTrans = false;\n\n if (transColor.length === 1) {\n if (transColor[0] === indata[pxPos]) {\n makeTrans = true;\n }\n } else if (\n transColor[0] === indata[pxPos] &&\n transColor[1] === indata[pxPos + 1] &&\n transColor[2] === indata[pxPos + 2]\n ) {\n makeTrans = true;\n }\n if (makeTrans) {\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = 0;\n }\n }\n pxPos += 4;\n }\n }\n}\n\nfunction scaleDepth(indata, outdata, width, height, depth) {\n let maxOutSample = 255;\n let maxInSample = Math.pow(2, depth) - 1;\n let pxPos = 0;\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n for (let i = 0; i < 4; i++) {\n outdata[pxPos + i] = Math.floor(\n (indata[pxPos + i] * maxOutSample) / maxInSample + 0.5\n );\n }\n pxPos += 4;\n }\n }\n}\n\nmodule.exports = function (indata, imageData, skipRescale = false) {\n let depth = imageData.depth;\n let width = imageData.width;\n let height = imageData.height;\n let colorType = imageData.colorType;\n let transColor = imageData.transColor;\n let palette = imageData.palette;\n\n let outdata = indata; // only different for 16 bits\n\n if (colorType === 3) {\n // paletted\n dePalette(indata, outdata, width, height, palette);\n } else {\n if (transColor) {\n replaceTransparentColor(indata, outdata, width, height, transColor);\n }\n // if it needs scaling\n if (depth !== 8 && !skipRescale) {\n // if we need to change the buffer size\n if (depth === 16) {\n outdata = Buffer.alloc(width * height * 4);\n }\n scaleDepth(indata, outdata, width, height, depth);\n }\n }\n return outdata;\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet zlib = require(\"zlib\");\nlet ChunkStream = require(\"./chunkstream\");\nlet FilterAsync = require(\"./filter-parse-async\");\nlet Parser = require(\"./parser\");\nlet bitmapper = require(\"./bitmapper\");\nlet formatNormaliser = require(\"./format-normaliser\");\n\nlet ParserAsync = (module.exports = function (options) {\n ChunkStream.call(this);\n\n this._parser = new Parser(options, {\n read: this.read.bind(this),\n error: this._handleError.bind(this),\n metadata: this._handleMetaData.bind(this),\n gamma: this.emit.bind(this, \"gamma\"),\n palette: this._handlePalette.bind(this),\n transColor: this._handleTransColor.bind(this),\n finished: this._finished.bind(this),\n inflateData: this._inflateData.bind(this),\n simpleTransparency: this._simpleTransparency.bind(this),\n headersFinished: this._headersFinished.bind(this),\n });\n this._options = options;\n this.writable = true;\n\n this._parser.start();\n});\nutil.inherits(ParserAsync, ChunkStream);\n\nParserAsync.prototype._handleError = function (err) {\n this.emit(\"error\", err);\n\n this.writable = false;\n\n this.destroy();\n\n if (this._inflate && this._inflate.destroy) {\n this._inflate.destroy();\n }\n\n if (this._filter) {\n this._filter.destroy();\n // For backward compatibility with Node 7 and below.\n // Suppress errors due to _inflate calling write() even after\n // it's destroy()'ed.\n this._filter.on(\"error\", function () {});\n }\n\n this.errord = true;\n};\n\nParserAsync.prototype._inflateData = function (data) {\n if (!this._inflate) {\n if (this._bitmapInfo.interlace) {\n this._inflate = zlib.createInflate();\n\n this._inflate.on(\"error\", this.emit.bind(this, \"error\"));\n this._filter.on(\"complete\", this._complete.bind(this));\n\n this._inflate.pipe(this._filter);\n } else {\n let rowSize =\n ((this._bitmapInfo.width *\n this._bitmapInfo.bpp *\n this._bitmapInfo.depth +\n 7) >>\n 3) +\n 1;\n let imageSize = rowSize * this._bitmapInfo.height;\n let chunkSize = Math.max(imageSize, zlib.Z_MIN_CHUNK);\n\n this._inflate = zlib.createInflate({ chunkSize: chunkSize });\n let leftToInflate = imageSize;\n\n let emitError = this.emit.bind(this, \"error\");\n this._inflate.on(\"error\", function (err) {\n if (!leftToInflate) {\n return;\n }\n\n emitError(err);\n });\n this._filter.on(\"complete\", this._complete.bind(this));\n\n let filterWrite = this._filter.write.bind(this._filter);\n this._inflate.on(\"data\", function (chunk) {\n if (!leftToInflate) {\n return;\n }\n\n if (chunk.length > leftToInflate) {\n chunk = chunk.slice(0, leftToInflate);\n }\n\n leftToInflate -= chunk.length;\n\n filterWrite(chunk);\n });\n\n this._inflate.on(\"end\", this._filter.end.bind(this._filter));\n }\n }\n this._inflate.write(data);\n};\n\nParserAsync.prototype._handleMetaData = function (metaData) {\n this._metaData = metaData;\n this._bitmapInfo = Object.create(metaData);\n\n this._filter = new FilterAsync(this._bitmapInfo);\n};\n\nParserAsync.prototype._handleTransColor = function (transColor) {\n this._bitmapInfo.transColor = transColor;\n};\n\nParserAsync.prototype._handlePalette = function (palette) {\n this._bitmapInfo.palette = palette;\n};\n\nParserAsync.prototype._simpleTransparency = function () {\n this._metaData.alpha = true;\n};\n\nParserAsync.prototype._headersFinished = function () {\n // Up until this point, we don't know if we have a tRNS chunk (alpha)\n // so we can't emit metadata any earlier\n this.emit(\"metadata\", this._metaData);\n};\n\nParserAsync.prototype._finished = function () {\n if (this.errord) {\n return;\n }\n\n if (!this._inflate) {\n this.emit(\"error\", \"No Inflate block\");\n } else {\n // no more data to inflate\n this._inflate.end();\n }\n};\n\nParserAsync.prototype._complete = function (filteredData) {\n if (this.errord) {\n return;\n }\n\n let normalisedBitmapData;\n\n try {\n let bitmapData = bitmapper.dataToBitMap(filteredData, this._bitmapInfo);\n\n normalisedBitmapData = formatNormaliser(\n bitmapData,\n this._bitmapInfo,\n this._options.skipRescale\n );\n bitmapData = null;\n } catch (ex) {\n this._handleError(ex);\n return;\n }\n\n this.emit(\"parsed\", normalisedBitmapData);\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\n\nmodule.exports = function (dataIn, width, height, options) {\n let outHasAlpha =\n [constants.COLORTYPE_COLOR_ALPHA, constants.COLORTYPE_ALPHA].indexOf(\n options.colorType\n ) !== -1;\n if (options.colorType === options.inputColorType) {\n let bigEndian = (function () {\n let buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] !== 256;\n })();\n // If no need to convert to grayscale and alpha is present/absent in both, take a fast route\n if (options.bitDepth === 8 || (options.bitDepth === 16 && bigEndian)) {\n return dataIn;\n }\n }\n\n // map to a UInt16 array if data is 16bit, fix endianness below\n let data = options.bitDepth !== 16 ? dataIn : new Uint16Array(dataIn.buffer);\n\n let maxValue = 255;\n let inBpp = constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];\n if (inBpp === 4 && !options.inputHasAlpha) {\n inBpp = 3;\n }\n let outBpp = constants.COLORTYPE_TO_BPP_MAP[options.colorType];\n if (options.bitDepth === 16) {\n maxValue = 65535;\n outBpp *= 2;\n }\n let outData = Buffer.alloc(width * height * outBpp);\n\n let inIndex = 0;\n let outIndex = 0;\n\n let bgColor = options.bgColor || {};\n if (bgColor.red === undefined) {\n bgColor.red = maxValue;\n }\n if (bgColor.green === undefined) {\n bgColor.green = maxValue;\n }\n if (bgColor.blue === undefined) {\n bgColor.blue = maxValue;\n }\n\n function getRGBA() {\n let red;\n let green;\n let blue;\n let alpha = maxValue;\n switch (options.inputColorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n alpha = data[inIndex + 3];\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_COLOR:\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_ALPHA:\n alpha = data[inIndex + 1];\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n case constants.COLORTYPE_GRAYSCALE:\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n default:\n throw new Error(\n \"input color type:\" +\n options.inputColorType +\n \" is not supported at present\"\n );\n }\n\n if (options.inputHasAlpha) {\n if (!outHasAlpha) {\n alpha /= maxValue;\n red = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.red + alpha * red), 0),\n maxValue\n );\n green = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.green + alpha * green), 0),\n maxValue\n );\n blue = Math.min(\n Math.max(Math.round((1 - alpha) * bgColor.blue + alpha * blue), 0),\n maxValue\n );\n }\n }\n return { red: red, green: green, blue: blue, alpha: alpha };\n }\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n let rgba = getRGBA(data, inIndex);\n\n switch (options.colorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n case constants.COLORTYPE_COLOR:\n if (options.bitDepth === 8) {\n outData[outIndex] = rgba.red;\n outData[outIndex + 1] = rgba.green;\n outData[outIndex + 2] = rgba.blue;\n if (outHasAlpha) {\n outData[outIndex + 3] = rgba.alpha;\n }\n } else {\n outData.writeUInt16BE(rgba.red, outIndex);\n outData.writeUInt16BE(rgba.green, outIndex + 2);\n outData.writeUInt16BE(rgba.blue, outIndex + 4);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 6);\n }\n }\n break;\n case constants.COLORTYPE_ALPHA:\n case constants.COLORTYPE_GRAYSCALE: {\n // Convert to grayscale and alpha\n let grayscale = (rgba.red + rgba.green + rgba.blue) / 3;\n if (options.bitDepth === 8) {\n outData[outIndex] = grayscale;\n if (outHasAlpha) {\n outData[outIndex + 1] = rgba.alpha;\n }\n } else {\n outData.writeUInt16BE(grayscale, outIndex);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 2);\n }\n }\n break;\n }\n default:\n throw new Error(\"unrecognised color Type \" + options.colorType);\n }\n\n inIndex += inBpp;\n outIndex += outBpp;\n }\n }\n\n return outData;\n};\n","\"use strict\";\n\nlet paethPredictor = require(\"./paeth-predictor\");\n\nfunction filterNone(pxData, pxPos, byteWidth, rawData, rawPos) {\n for (let x = 0; x < byteWidth; x++) {\n rawData[rawPos + x] = pxData[pxPos + x];\n }\n}\n\nfunction filterSumNone(pxData, pxPos, byteWidth) {\n let sum = 0;\n let length = pxPos + byteWidth;\n\n for (let i = pxPos; i < length; i++) {\n sum += Math.abs(pxData[i]);\n }\n return sum;\n}\n\nfunction filterSub(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let val = pxData[pxPos + x] - left;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumSub(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let val = pxData[pxPos + x] - left;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterUp(pxData, pxPos, byteWidth, rawData, rawPos) {\n for (let x = 0; x < byteWidth; x++) {\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - up;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumUp(pxData, pxPos, byteWidth) {\n let sum = 0;\n let length = pxPos + byteWidth;\n for (let x = pxPos; x < length; x++) {\n let up = pxPos > 0 ? pxData[x - byteWidth] : 0;\n let val = pxData[x] - up;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterAvg(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - ((left + up) >> 1);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumAvg(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let val = pxData[pxPos + x] - ((left + up) >> 1);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterPaeth(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let upleft =\n pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n let val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumPaeth(pxData, pxPos, byteWidth, bpp) {\n let sum = 0;\n for (let x = 0; x < byteWidth; x++) {\n let left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n let up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n let upleft =\n pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n let val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nlet filters = {\n 0: filterNone,\n 1: filterSub,\n 2: filterUp,\n 3: filterAvg,\n 4: filterPaeth,\n};\n\nlet filterSums = {\n 0: filterSumNone,\n 1: filterSumSub,\n 2: filterSumUp,\n 3: filterSumAvg,\n 4: filterSumPaeth,\n};\n\nmodule.exports = function (pxData, width, height, options, bpp) {\n let filterTypes;\n if (!(\"filterType\" in options) || options.filterType === -1) {\n filterTypes = [0, 1, 2, 3, 4];\n } else if (typeof options.filterType === \"number\") {\n filterTypes = [options.filterType];\n } else {\n throw new Error(\"unrecognised filter types\");\n }\n\n if (options.bitDepth === 16) {\n bpp *= 2;\n }\n let byteWidth = width * bpp;\n let rawPos = 0;\n let pxPos = 0;\n let rawData = Buffer.alloc((byteWidth + 1) * height);\n\n let sel = filterTypes[0];\n\n for (let y = 0; y < height; y++) {\n if (filterTypes.length > 1) {\n // find best filter for this line (with lowest sum of values)\n let min = Infinity;\n\n for (let i = 0; i < filterTypes.length; i++) {\n let sum = filterSums[filterTypes[i]](pxData, pxPos, byteWidth, bpp);\n if (sum < min) {\n sel = filterTypes[i];\n min = sum;\n }\n }\n }\n\n rawData[rawPos] = sel;\n rawPos++;\n filters[sel](pxData, pxPos, byteWidth, rawData, rawPos, bpp);\n rawPos += byteWidth;\n pxPos += byteWidth;\n }\n return rawData;\n};\n","\"use strict\";\n\nlet constants = require(\"./constants\");\nlet CrcStream = require(\"./crc\");\nlet bitPacker = require(\"./bitpacker\");\nlet filter = require(\"./filter-pack\");\nlet zlib = require(\"zlib\");\n\nlet Packer = (module.exports = function (options) {\n this._options = options;\n\n options.deflateChunkSize = options.deflateChunkSize || 32 * 1024;\n options.deflateLevel =\n options.deflateLevel != null ? options.deflateLevel : 9;\n options.deflateStrategy =\n options.deflateStrategy != null ? options.deflateStrategy : 3;\n options.inputHasAlpha =\n options.inputHasAlpha != null ? options.inputHasAlpha : true;\n options.deflateFactory = options.deflateFactory || zlib.createDeflate;\n options.bitDepth = options.bitDepth || 8;\n // This is outputColorType\n options.colorType =\n typeof options.colorType === \"number\"\n ? options.colorType\n : constants.COLORTYPE_COLOR_ALPHA;\n options.inputColorType =\n typeof options.inputColorType === \"number\"\n ? options.inputColorType\n : constants.COLORTYPE_COLOR_ALPHA;\n\n if (\n [\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA,\n ].indexOf(options.colorType) === -1\n ) {\n throw new Error(\n \"option color type:\" + options.colorType + \" is not supported at present\"\n );\n }\n if (\n [\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA,\n ].indexOf(options.inputColorType) === -1\n ) {\n throw new Error(\n \"option input color type:\" +\n options.inputColorType +\n \" is not supported at present\"\n );\n }\n if (options.bitDepth !== 8 && options.bitDepth !== 16) {\n throw new Error(\n \"option bit depth:\" + options.bitDepth + \" is not supported at present\"\n );\n }\n});\n\nPacker.prototype.getDeflateOptions = function () {\n return {\n chunkSize: this._options.deflateChunkSize,\n level: this._options.deflateLevel,\n strategy: this._options.deflateStrategy,\n };\n};\n\nPacker.prototype.createDeflate = function () {\n return this._options.deflateFactory(this.getDeflateOptions());\n};\n\nPacker.prototype.filterData = function (data, width, height) {\n // convert to correct format for filtering (e.g. right bpp and bit depth)\n let packedData = bitPacker(data, width, height, this._options);\n\n // filter pixel data\n let bpp = constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];\n let filteredData = filter(packedData, width, height, this._options, bpp);\n return filteredData;\n};\n\nPacker.prototype._packChunk = function (type, data) {\n let len = data ? data.length : 0;\n let buf = Buffer.alloc(len + 12);\n\n buf.writeUInt32BE(len, 0);\n buf.writeUInt32BE(type, 4);\n\n if (data) {\n data.copy(buf, 8);\n }\n\n buf.writeInt32BE(\n CrcStream.crc32(buf.slice(4, buf.length - 4)),\n buf.length - 4\n );\n return buf;\n};\n\nPacker.prototype.packGAMA = function (gamma) {\n let buf = Buffer.alloc(4);\n buf.writeUInt32BE(Math.floor(gamma * constants.GAMMA_DIVISION), 0);\n return this._packChunk(constants.TYPE_gAMA, buf);\n};\n\nPacker.prototype.packIHDR = function (width, height) {\n let buf = Buffer.alloc(13);\n buf.writeUInt32BE(width, 0);\n buf.writeUInt32BE(height, 4);\n buf[8] = this._options.bitDepth; // Bit depth\n buf[9] = this._options.colorType; // colorType\n buf[10] = 0; // compression\n buf[11] = 0; // filter\n buf[12] = 0; // interlace\n\n return this._packChunk(constants.TYPE_IHDR, buf);\n};\n\nPacker.prototype.packIDAT = function (data) {\n return this._packChunk(constants.TYPE_IDAT, data);\n};\n\nPacker.prototype.packIEND = function () {\n return this._packChunk(constants.TYPE_IEND, null);\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\nlet constants = require(\"./constants\");\nlet Packer = require(\"./packer\");\n\nlet PackerAsync = (module.exports = function (opt) {\n Stream.call(this);\n\n let options = opt || {};\n\n this._packer = new Packer(options);\n this._deflate = this._packer.createDeflate();\n\n this.readable = true;\n});\nutil.inherits(PackerAsync, Stream);\n\nPackerAsync.prototype.pack = function (data, width, height, gamma) {\n // Signature\n this.emit(\"data\", Buffer.from(constants.PNG_SIGNATURE));\n this.emit(\"data\", this._packer.packIHDR(width, height));\n\n if (gamma) {\n this.emit(\"data\", this._packer.packGAMA(gamma));\n }\n\n let filteredData = this._packer.filterData(data, width, height);\n\n // compress it\n this._deflate.on(\"error\", this.emit.bind(this, \"error\"));\n\n this._deflate.on(\n \"data\",\n function (compressedData) {\n this.emit(\"data\", this._packer.packIDAT(compressedData));\n }.bind(this)\n );\n\n this._deflate.on(\n \"end\",\n function () {\n this.emit(\"data\", this._packer.packIEND());\n this.emit(\"end\");\n }.bind(this)\n );\n\n this._deflate.end(filteredData);\n};\n","\"use strict\";\n\nlet assert = require(\"assert\").ok;\nlet zlib = require(\"zlib\");\nlet util = require(\"util\");\n\nlet kMaxLength = require(\"buffer\").kMaxLength;\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) {\n return new Inflate(opts);\n }\n\n if (opts && opts.chunkSize < zlib.Z_MIN_CHUNK) {\n opts.chunkSize = zlib.Z_MIN_CHUNK;\n }\n\n zlib.Inflate.call(this, opts);\n\n // Node 8 --> 9 compatibility check\n this._offset = this._offset === undefined ? this._outOffset : this._offset;\n this._buffer = this._buffer || this._outBuffer;\n\n if (opts && opts.maxLength != null) {\n this._maxLength = opts.maxLength;\n }\n}\n\nfunction createInflate(opts) {\n return new Inflate(opts);\n}\n\nfunction _close(engine, callback) {\n if (callback) {\n process.nextTick(callback);\n }\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) {\n return;\n }\n\n engine._handle.close();\n engine._handle = null;\n}\n\nInflate.prototype._processChunk = function (chunk, flushFlag, asyncCb) {\n if (typeof asyncCb === \"function\") {\n return zlib.Inflate._processChunk.call(this, chunk, flushFlag, asyncCb);\n }\n\n let self = this;\n\n let availInBefore = chunk && chunk.length;\n let availOutBefore = this._chunkSize - this._offset;\n let leftToInflate = this._maxLength;\n let inOff = 0;\n\n let buffers = [];\n let nread = 0;\n\n let error;\n this.on(\"error\", function (err) {\n error = err;\n });\n\n function handleChunk(availInAfter, availOutAfter) {\n if (self._hadError) {\n return;\n }\n\n let have = availOutBefore - availOutAfter;\n assert(have >= 0, \"have should not go down\");\n\n if (have > 0) {\n let out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n\n if (out.length > leftToInflate) {\n out = out.slice(0, leftToInflate);\n }\n\n buffers.push(out);\n nread += out.length;\n leftToInflate -= out.length;\n\n if (leftToInflate === 0) {\n return false;\n }\n }\n\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n\n return true;\n }\n\n return false;\n }\n\n assert(this._handle, \"zlib binding closed\");\n let res;\n do {\n res = this._handle.writeSync(\n flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore\n ); // out_len\n // Node 8 --> 9 compatibility check\n res = res || this._writeState;\n } while (!this._hadError && handleChunk(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(\n \"Cannot create final Buffer. It would be larger than 0x\" +\n kMaxLength.toString(16) +\n \" bytes\"\n );\n }\n\n let buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n};\n\nutil.inherits(Inflate, zlib.Inflate);\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === \"string\") {\n buffer = Buffer.from(buffer);\n }\n if (!(buffer instanceof Buffer)) {\n throw new TypeError(\"Not a string or buffer\");\n }\n\n let flushFlag = engine._finishFlushFlag;\n if (flushFlag == null) {\n flushFlag = zlib.Z_FINISH;\n }\n\n return engine._processChunk(buffer, flushFlag);\n}\n\nfunction inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n}\n\nmodule.exports = exports = inflateSync;\nexports.Inflate = Inflate;\nexports.createInflate = createInflate;\nexports.inflateSync = inflateSync;\n","\"use strict\";\n\nlet SyncReader = (module.exports = function (buffer) {\n this._buffer = buffer;\n this._reads = [];\n});\n\nSyncReader.prototype.read = function (length, callback) {\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback,\n });\n};\n\nSyncReader.prototype.process = function () {\n // as long as there is any data and read requests\n while (this._reads.length > 0 && this._buffer.length) {\n let read = this._reads[0];\n\n if (\n this._buffer.length &&\n (this._buffer.length >= read.length || read.allowLess)\n ) {\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n let buf = this._buffer;\n\n this._buffer = buf.slice(read.length);\n\n read.func.call(this, buf.slice(0, read.length));\n } else {\n break;\n }\n }\n\n if (this._reads.length > 0) {\n throw new Error(\"There are some read requests waitng on finished stream\");\n }\n\n if (this._buffer.length > 0) {\n throw new Error(\"unrecognised content at end of stream\");\n }\n};\n","\"use strict\";\n\nlet SyncReader = require(\"./sync-reader\");\nlet Filter = require(\"./filter-parse\");\n\nexports.process = function (inBuffer, bitmapInfo) {\n let outBuffers = [];\n let reader = new SyncReader(inBuffer);\n let filter = new Filter(bitmapInfo, {\n read: reader.read.bind(reader),\n write: function (bufferPart) {\n outBuffers.push(bufferPart);\n },\n complete: function () {},\n });\n\n filter.start();\n reader.process();\n\n return Buffer.concat(outBuffers);\n};\n","\"use strict\";\n\nlet hasSyncZlib = true;\nlet zlib = require(\"zlib\");\nlet inflateSync = require(\"./sync-inflate\");\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nlet SyncReader = require(\"./sync-reader\");\nlet FilterSync = require(\"./filter-parse-sync\");\nlet Parser = require(\"./parser\");\nlet bitmapper = require(\"./bitmapper\");\nlet formatNormaliser = require(\"./format-normaliser\");\n\nmodule.exports = function (buffer, options) {\n if (!hasSyncZlib) {\n throw new Error(\n \"To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0\"\n );\n }\n\n let err;\n function handleError(_err_) {\n err = _err_;\n }\n\n let metaData;\n function handleMetaData(_metaData_) {\n metaData = _metaData_;\n }\n\n function handleTransColor(transColor) {\n metaData.transColor = transColor;\n }\n\n function handlePalette(palette) {\n metaData.palette = palette;\n }\n\n function handleSimpleTransparency() {\n metaData.alpha = true;\n }\n\n let gamma;\n function handleGamma(_gamma_) {\n gamma = _gamma_;\n }\n\n let inflateDataList = [];\n function handleInflateData(inflatedData) {\n inflateDataList.push(inflatedData);\n }\n\n let reader = new SyncReader(buffer);\n\n let parser = new Parser(options, {\n read: reader.read.bind(reader),\n error: handleError,\n metadata: handleMetaData,\n gamma: handleGamma,\n palette: handlePalette,\n transColor: handleTransColor,\n inflateData: handleInflateData,\n simpleTransparency: handleSimpleTransparency,\n });\n\n parser.start();\n reader.process();\n\n if (err) {\n throw err;\n }\n\n //join together the inflate datas\n let inflateData = Buffer.concat(inflateDataList);\n inflateDataList.length = 0;\n\n let inflatedData;\n if (metaData.interlace) {\n inflatedData = zlib.inflateSync(inflateData);\n } else {\n let rowSize =\n ((metaData.width * metaData.bpp * metaData.depth + 7) >> 3) + 1;\n let imageSize = rowSize * metaData.height;\n inflatedData = inflateSync(inflateData, {\n chunkSize: imageSize,\n maxLength: imageSize,\n });\n }\n inflateData = null;\n\n if (!inflatedData || !inflatedData.length) {\n throw new Error(\"bad png - invalid inflate data response\");\n }\n\n let unfilteredData = FilterSync.process(inflatedData, metaData);\n inflateData = null;\n\n let bitmapData = bitmapper.dataToBitMap(unfilteredData, metaData);\n unfilteredData = null;\n\n let normalisedBitmapData = formatNormaliser(\n bitmapData,\n metaData,\n options.skipRescale\n );\n\n metaData.data = normalisedBitmapData;\n metaData.gamma = gamma || 0;\n\n return metaData;\n};\n","\"use strict\";\n\nlet hasSyncZlib = true;\nlet zlib = require(\"zlib\");\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nlet constants = require(\"./constants\");\nlet Packer = require(\"./packer\");\n\nmodule.exports = function (metaData, opt) {\n if (!hasSyncZlib) {\n throw new Error(\n \"To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0\"\n );\n }\n\n let options = opt || {};\n\n let packer = new Packer(options);\n\n let chunks = [];\n\n // Signature\n chunks.push(Buffer.from(constants.PNG_SIGNATURE));\n\n // Header\n chunks.push(packer.packIHDR(metaData.width, metaData.height));\n\n if (metaData.gamma) {\n chunks.push(packer.packGAMA(metaData.gamma));\n }\n\n let filteredData = packer.filterData(\n metaData.data,\n metaData.width,\n metaData.height\n );\n\n // compress it\n let compressedData = zlib.deflateSync(\n filteredData,\n packer.getDeflateOptions()\n );\n filteredData = null;\n\n if (!compressedData || !compressedData.length) {\n throw new Error(\"bad png - invalid compressed data response\");\n }\n chunks.push(packer.packIDAT(compressedData));\n\n // End\n chunks.push(packer.packIEND());\n\n return Buffer.concat(chunks);\n};\n","\"use strict\";\n\nlet parse = require(\"./parser-sync\");\nlet pack = require(\"./packer-sync\");\n\nexports.read = function (buffer, options) {\n return parse(buffer, options || {});\n};\n\nexports.write = function (png, options) {\n return pack(png, options);\n};\n","\"use strict\";\n\nlet util = require(\"util\");\nlet Stream = require(\"stream\");\nlet Parser = require(\"./parser-async\");\nlet Packer = require(\"./packer-async\");\nlet PNGSync = require(\"./png-sync\");\n\nlet PNG = (exports.PNG = function (options) {\n Stream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n this.width = options.width | 0;\n this.height = options.height | 0;\n\n this.data =\n this.width > 0 && this.height > 0\n ? Buffer.alloc(4 * this.width * this.height)\n : null;\n\n if (options.fill && this.data) {\n this.data.fill(0);\n }\n\n this.gamma = 0;\n this.readable = this.writable = true;\n\n this._parser = new Parser(options);\n\n this._parser.on(\"error\", this.emit.bind(this, \"error\"));\n this._parser.on(\"close\", this._handleClose.bind(this));\n this._parser.on(\"metadata\", this._metadata.bind(this));\n this._parser.on(\"gamma\", this._gamma.bind(this));\n this._parser.on(\n \"parsed\",\n function (data) {\n this.data = data;\n this.emit(\"parsed\", data);\n }.bind(this)\n );\n\n this._packer = new Packer(options);\n this._packer.on(\"data\", this.emit.bind(this, \"data\"));\n this._packer.on(\"end\", this.emit.bind(this, \"end\"));\n this._parser.on(\"close\", this._handleClose.bind(this));\n this._packer.on(\"error\", this.emit.bind(this, \"error\"));\n});\nutil.inherits(PNG, Stream);\n\nPNG.sync = PNGSync;\n\nPNG.prototype.pack = function () {\n if (!this.data || !this.data.length) {\n this.emit(\"error\", \"No data provided\");\n return this;\n }\n\n process.nextTick(\n function () {\n this._packer.pack(this.data, this.width, this.height, this.gamma);\n }.bind(this)\n );\n\n return this;\n};\n\nPNG.prototype.parse = function (data, callback) {\n if (callback) {\n let onParsed, onError;\n\n onParsed = function (parsedData) {\n this.removeListener(\"error\", onError);\n\n this.data = parsedData;\n callback(null, this);\n }.bind(this);\n\n onError = function (err) {\n this.removeListener(\"parsed\", onParsed);\n\n callback(err, null);\n }.bind(this);\n\n this.once(\"parsed\", onParsed);\n this.once(\"error\", onError);\n }\n\n this.end(data);\n return this;\n};\n\nPNG.prototype.write = function (data) {\n this._parser.write(data);\n return true;\n};\n\nPNG.prototype.end = function (data) {\n this._parser.end(data);\n};\n\nPNG.prototype._metadata = function (metadata) {\n this.width = metadata.width;\n this.height = metadata.height;\n\n this.emit(\"metadata\", metadata);\n};\n\nPNG.prototype._gamma = function (gamma) {\n this.gamma = gamma;\n};\n\nPNG.prototype._handleClose = function () {\n if (!this._parser.writable && !this._packer.readable) {\n this.emit(\"close\");\n }\n};\n\nPNG.bitblt = function (src, dst, srcX, srcY, width, height, deltaX, deltaY) {\n // eslint-disable-line max-params\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n /* eslint-disable no-param-reassign */\n srcX |= 0;\n srcY |= 0;\n width |= 0;\n height |= 0;\n deltaX |= 0;\n deltaY |= 0;\n /* eslint-enable no-param-reassign */\n\n if (\n srcX > src.width ||\n srcY > src.height ||\n srcX + width > src.width ||\n srcY + height > src.height\n ) {\n throw new Error(\"bitblt reading outside image\");\n }\n\n if (\n deltaX > dst.width ||\n deltaY > dst.height ||\n deltaX + width > dst.width ||\n deltaY + height > dst.height\n ) {\n throw new Error(\"bitblt writing outside image\");\n }\n\n for (let y = 0; y < height; y++) {\n src.data.copy(\n dst.data,\n ((deltaY + y) * dst.width + deltaX) << 2,\n ((srcY + y) * src.width + srcX) << 2,\n ((srcY + y) * src.width + srcX + width) << 2\n );\n }\n};\n\nPNG.prototype.bitblt = function (\n dst,\n srcX,\n srcY,\n width,\n height,\n deltaX,\n deltaY\n) {\n // eslint-disable-line max-params\n\n PNG.bitblt(this, dst, srcX, srcY, width, height, deltaX, deltaY);\n return this;\n};\n\nPNG.adjustGamma = function (src) {\n if (src.gamma) {\n for (let y = 0; y < src.height; y++) {\n for (let x = 0; x < src.width; x++) {\n let idx = (src.width * y + x) << 2;\n\n for (let i = 0; i < 3; i++) {\n let sample = src.data[idx + i] / 255;\n sample = Math.pow(sample, 1 / 2.2 / src.gamma);\n src.data[idx + i] = Math.round(sample * 255);\n }\n }\n }\n src.gamma = 0;\n }\n};\n\nPNG.prototype.adjustGamma = function () {\n PNG.adjustGamma(this);\n};\n"],"names":[],"mappings":"sGAoBe,SAAS,EAAW,CAAI,CAAE,CAAI,CAAE,CAAM,CAAE,CAAK,CAAE,CAAM,CAAE,EAAU,CAAC,CAAC,EAC9E,GAAM,WACF,EAAY,EAAG,CACf,QAAQ,EAAG,SACX,EAAU,CAAC,IAAK,IAAK,EAAE,WACvB,EAAY,CAAC,IAAK,EAAG,EAAE,WACvB,CAAS,CAAE,cAAY,UAAE,CAAQ,CACpC,CAAG,EAEJ,GAAI,CAAC,EAAY,IAAS,CAAC,EAAY,IAAU,GAAU,CAAC,EAAY,GACpE,MAAU,AAAJ,MAAU,iEAEpB,GAAI,EAAK,MAAM,GAAK,EAAK,MAAM,EAAK,GAAU,EAAO,MAAM,GAAK,EAAK,MAAM,CACvE,MAAM,AAAI,MAAM,6BAEpB,GAAI,EAAK,MAAM,GAAK,EAAQ,EAAS,EAAG,MAAM,AAAI,MAAM,gDAGxD,IAAM,EAAM,EAAQ,EACd,EAAM,IAAI,YAAY,EAAK,MAAM,CAAE,EAAK,UAAU,CAAE,GACpD,EAAM,IAAI,YAAY,EAAK,MAAM,CAAE,EAAK,UAAU,CAAE,GACtD,GAAY,EAEhB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,AAC1B,GAAI,CAAG,CAAC,EAAE,GAAK,CAAG,CAAC,EAAE,CAAE,CAAE,GAAY,EAAO,KAAO,CAEvD,GAAI,EAAW,CACX,GAAI,GAAU,CAAC,EACX,IAAK,IADgB,AACZ,EAAI,EAAG,EAAI,EAAK,IAAK,EAAc,EAAM,EAAI,EAAG,EAAO,GAEpE,OAAO,CACX,CAIA,IAAM,EAAW,MAAQ,EAAY,EAC/B,CAAC,EAAK,EAAK,EAAI,CAAG,EAClB,CAAC,EAAO,EAAO,EAAM,CAAG,EACxB,CAAC,EAAM,EAAM,EAAK,CAAG,GAAgB,EACvC,EAAO,EAGX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IACxB,AAD6B,IACxB,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAE5B,IAAM,EAAI,EAAI,EAAQ,EAChB,EAAU,EAAJ,EAGN,EAAQ,CAAG,CAAC,EAAE,GAAK,CAAG,CAAC,EAAE,CAAG,EAAI,EAAW,EAAM,EAAM,EAAK,GAAK,GAGvE,GAAI,KAAK,GAAG,CAAC,GAAS,EAAU,CAE5B,IAAM,EAAO,EAAY,EAAM,EAAG,EAAG,EAAO,EAAQ,EAAK,IAAQ,EAAY,EAAM,EAAG,EAAG,EAAO,EAAQ,EAAK,EACzG,EAAC,GAAa,EAGV,GAAU,CAHM,AAGL,GAAU,EAAU,EAAQ,EAAK,EAAK,EAAK,IAItD,IACI,EAAQ,EADJ,AAEJ,CADW,CACD,EAAQ,EAAK,EAAM,EAAM,GAEnC,EAAU,EAAQ,EAAK,EAAO,EAAO,IAG7C,IAGR,MAAW,CAAJ,EAAc,CAAC,GAElB,EAAc,EAAM,EAAK,CAFG,CAEI,EAExC,CAIJ,OAAO,CACX,CAGA,SAAS,EAAY,CAAG,EAEpB,OAAO,YAAY,MAAM,CAAC,IAAkC,IAA1B,EAAI,iBAAiB,AAC3D,CAaA,SAAS,EAAY,CAAG,CAAE,CAAE,CAAE,CAAE,CAAE,CAAK,CAAE,CAAM,CAAE,CAAG,CAAE,CAAG,EACrD,IAAM,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,GACtB,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,GACtB,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,EAAQ,GAC9B,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,EAAS,GAC/B,EAAM,EAAK,EAAQ,EACrB,EAAS,MAAO,GAAM,IAAO,GAAM,IAAO,GAAM,IAAO,CAAA,EACvD,EAD4D,AACtD,EACN,EAFgE,AAE1D,EACN,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EAGX,IAAK,IAAI,EAAI,EAAI,GAAK,EAAI,IAAK,AAC3B,IAAK,IAAI,EAAI,EAAI,GAAK,EAAI,IAAK,CAC3B,GAAI,IAAM,GAAM,IAAM,EAAI,SAG1B,IAAM,EAAQ,EAAW,EAAK,EAAK,AAAM,IAAG,CAAC,EAAI,GAAQ,CAAC,CAAI,GAAG,GAGjE,GAAc,GAAG,CAAb,GAGA,GAAI,IAAS,EAAG,OAAO,CAAA,MAGhB,EAAQ,GACf,EADoB,AACd,EACN,EAAO,EACP,EAAO,GAGA,EAAQ,IACf,CADoB,CACd,EACN,EAAO,EACP,EAAO,EAEf,QAIJ,AAAY,IAAR,GAAqB,GAAG,CAAX,GAIT,GAJ2B,AAIX,EAAK,EAAM,EAAM,EAAO,IAAW,EAAgB,EAAK,EAAM,EAAM,EAAO,IAC3F,EAAgB,EAAK,EAAM,EAAM,EAAO,IAAW,EAAgB,EAAK,EAAM,EAAM,EAAO,EAAA,CACvG,CAUA,SAAS,EAAgB,CAAG,CAAE,CAAE,CAAE,CAAE,CAAE,CAAK,CAAE,CAAM,EAC/C,IAAM,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,GACtB,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,GACtB,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,EAAQ,GAC9B,EAAK,KAAK,GAAG,CAAC,EAAK,EAAG,EAAS,GAC/B,EAAM,CAAG,CAAC,EAAK,EAAQ,EAAG,CAC5B,IAAS,IAAO,GAAM,IAAO,GAAM,IAAO,GAAM,IAAO,CAAA,EAG3D,EAHgE,EAG3D,EAH+D,EAG3D,EAAI,EAAI,GAAK,EAAI,IAAK,AAC3B,IAAK,IAAI,EAAI,EAAI,GAAK,EAAI,IAAK,AAC3B,IAAI,IAAM,GAAM,IAAM,CAAA,GAElB,AAFsB,CAC1B,GAAU,CAAC,AAAC,KAAQ,CAAG,CAAC,EAAI,EAAQ,EAAA,CAAE,EACzB,EAAG,OAAO,EAG/B,OAAO,CACX,CAWA,SAAS,EAAW,CAAI,CAAE,CAAI,CAAE,CAAC,CAAE,CAAC,CAAE,CAAK,EACvC,IAAM,EAAK,CAAI,CAAC,EAAE,CACZ,EAAK,CAAI,CAAC,EAAI,EAAE,CAChB,EAAK,CAAI,CAAC,EAAI,EAAE,CAChB,EAAK,CAAI,CAAC,EAAI,EAAE,CAChB,EAAK,CAAI,CAAC,EAAE,CACZ,EAAK,CAAI,CAAC,EAAI,EAAE,CAChB,EAAK,CAAI,CAAC,EAAI,EAAE,CAChB,EAAK,CAAI,CAAC,EAAI,EAAE,CAElB,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACR,EAAK,EAAK,EAEhB,GAAI,CAAC,GAAM,CAAC,GAAM,CAAC,GAAM,CAAC,EAAI,OAAO,GAEjC,EAAK,KAAO,EAAK,GAAA,GAAK,CAItB,EAAK,CAAC,EAAK,EAAK,EAAK,EAAK,CAHf,GAAY,EAAI,EAAX,GAAY,EAGG,CAHT,AAGS,CAAE,CAAI,IACrC,EAAK,CAAC,EAAK,EAAK,EAAK,EAAK,CAHf,IAAa,EAAI,mBAAoB,CAAC,CAAI,EAArC,GAAsC,EAGvB,CAHT,AAGS,CAAE,AAHV,CAGc,IACrC,EAAK,CAAC,EAAK,EAAK,EAAK,EAAK,CAHf,IAAa,EAAI,mBAAoB,CAAC,CAAI,EAArC,GAAsC,EAGvB,CAHT,AAGS,CAHR,AAGU,CAAI,KAGzC,IAAM,EAAS,UAAL,EAAuB,UAAL,EAAuB,UAAL,EAE9C,GAAI,EAAO,OAAO,EAElB,CAFqB,GAEf,EAAS,UAAL,EAAuB,SAAL,EAAkB,AAAK,CAFD,WAG5C,EAAS,UAAL,EAAuB,UAAL,EAAuB,UAAL,EAExC,EAAQ,MAAS,EAAI,EAAI,KAAQ,EAAI,EAAI,MAAS,EAAI,EAG5D,OAAO,EAAI,EAAI,CAAC,EAAQ,CAC5B,CASA,SAAS,EAAU,CAAM,CAAE,CAAG,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EACnC,CAAM,CAAC,EAAM,EAAE,CAAG,EAClB,CAAM,CAAC,EAAM,EAAE,CAAG,EAClB,CAAM,CAAC,EAAM,EAAE,CAAG,EAClB,CAAM,CAAC,EAAM,EAAE,CAAG,GACtB,CAQA,SAAS,EAAc,CAAG,CAAE,CAAC,CAAE,CAAK,CAAE,CAAM,EACxC,IAAM,EAAM,IAAM,CAAU,UAAT,CAAG,CAAC,EAAE,CAA6B,UAAb,CAAG,CAAC,EAAI,EAAE,CAA6B,UAAb,CAAG,CAAC,EAAI,EAAE,CAAgB,GAAA,CAAG,CAAI,EAAQ,CAAG,CAAC,EAAI,EAAE,CAAG,IACzH,EAAU,EAAQ,EAAG,EAAK,EAAK,EACnC,sDC5QA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAe,EAAO,OAAO,CAAG,WAClC,EAAO,IAAI,CAAC,IAAI,EAEhB,IAAI,CAAC,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC,SAAS,CAAG,EAEjB,IAAI,CAAC,MAAM,CAAG,EAAE,CAChB,IAAI,CAAC,OAAO,EAAG,EAEf,IAAI,CAAC,SAAS,CAAG,OACjB,IAAI,CAAC,QAAQ,EAAG,CAClB,EACA,EAAK,QAAQ,CAAC,EAAa,GAE3B,EAAY,SAAS,CAAC,IAAI,CAAG,SAAU,CAAM,CAAE,CAAQ,EACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CACf,OAAQ,KAAK,GAAG,CAAC,GACjB,UAAW,EAAS,EACpB,KAAM,CACR,GAEA,QAAQ,QAAQ,CACd,YACE,IAAI,CAAC,QAAQ,GAGT,IAAI,CAAC,OAAO,EAAI,IAAI,CAAC,MAAM,EAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,GAAG,CACzD,IAAI,CAAC,OAAO,EAAG,EAEf,IAAI,CAAC,IAAI,CAAC,SAEd,CAAA,EAAE,IAAI,CAAC,IAAI,EAEf,EAEA,EAAY,SAAS,CAAC,KAAK,CAAG,SAAU,CAAI,CAAE,CAAQ,MAMhD,SALJ,AAAK,IAAD,AAAK,CAAC,QAAQ,EAAE,AAOlB,EADE,OAAO,QAAQ,CAAC,GACL,EAEA,EAHY,KAGL,IAAI,CAAC,EAAM,GAAY,IAAI,CAAC,SAAS,EAG3D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GACnB,IAAI,CAAC,SAAS,EAAI,EAAW,MAAM,CAEnC,IAAI,CAAC,QAAQ,GAGT,IAAI,CAAC,MAAM,EAAI,AAAuB,GAAG,KAAtB,CAAC,MAAM,CAAC,MAAM,GACnC,IAAI,CAAC,OAAO,EAAG,CAAA,EAGV,IAAI,CAAC,QAAQ,EAAI,CAAC,IAAI,CAAC,OAAO,GArBnC,IAAI,CAAC,IAAI,CAAC,QAAa,AAAJ,MAAU,yBACtB,EAqBX,EAEA,EAAY,SAAS,CAAC,GAAG,CAAG,SAAU,CAAI,CAAE,CAAQ,EAC9C,GACF,GADQ,CACJ,CAAC,KAAK,CAAC,EAAM,GAGnB,IAAI,CAAC,QAAQ,EAAG,EAGX,IAAI,CAAC,QAAQ,EAAE,CAKS,GAAG,CAA5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CACtB,IAAI,CAAC,IAAI,IAET,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MACnB,IAAI,CAAC,QAAQ,IAEjB,EAEA,EAAY,SAAS,CAAC,WAAW,CAAG,EAAY,SAAS,CAAC,GAAG,CAE7D,EAAY,SAAS,CAAC,IAAI,CAAG,WACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,GAAG,AAC1B,IAAI,CAAC,IAAI,CAAC,QAAS,AAAI,MAAM,4BAG/B,IAAI,CAAC,OAAO,EACd,EAEA,EAAY,SAAS,CAAC,OAAO,CAAG,WACzB,IAAI,CAAC,QAAQ,EAAE,CAIpB,IAAI,CAAC,QAAQ,EAAG,EAChB,IAAI,CAAC,MAAM,CAAG,KACd,IAAI,CAAC,QAAQ,CAAG,KAEhB,IAAI,CAAC,IAAI,CAAC,SACZ,EAEA,EAAY,SAAS,CAAC,wBAAwB,CAAG,SAAU,CAAI,EAE7D,IAAI,CAAC,MAAM,CAAC,KAAK,GAGjB,CAHqB,GAGjB,EAAa,IAAI,CAAC,AAHS,QAGD,CAAC,EAAE,CAG7B,EAAW,MAAM,CAAG,EAAK,MAAM,EAAE,AACnC,IAAI,CAAC,SAAS,EAAI,EAAK,MAAM,CAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAG,EAAW,KAAK,CAAC,EAAK,MAAM,EAE/C,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,EAAW,KAAK,CAAC,EAAG,EAAK,MAAM,KAGpD,IAAI,CAAC,SAAS,EAAI,EAAW,MAAM,CACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAEnB,CAFuB,CAElB,IAAI,CAAC,IAAI,CAAC,IAAI,CAFoB,AAElB,GAEzB,EAEA,EAAY,SAAS,CAAC,YAAY,CAAG,SAAU,CAAI,EACjD,IAAI,CAAC,MAAM,CAAC,KAAK,GAEjB,CAFqB,GAEjB,EAAM,EACN,EAAQ,CAHmB,CAI3B,EAAO,OAAO,KAAK,CAAC,EAAK,MAAM,EAGnC,KAAO,EAAM,EAAK,MAAM,EAAE,CACxB,IAAI,EAAM,IAAI,CAAC,QAAQ,CAAC,IAAQ,CAC5B,EAAM,KAAK,GAAG,CAAC,EAAI,MAAM,CAAE,EAAK,MAAM,CAAG,GAE7C,EAAI,IAAI,CAAC,EAAM,EAAK,EAAG,GACvB,GAAO,EAGH,IAAQ,EAAI,MAAM,EAAE,CACtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAM,CAAG,EAAI,KAAK,CAAC,EAAA,CAEvC,CAGI,EAAQ,GAAG,AACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAG,GAG1B,IAAI,CAAC,SAAS,EAAI,EAAK,MAAM,CAE7B,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,EACvB,EAEA,EAAY,SAAS,CAAC,QAAQ,CAAG,WAC/B,GAAI,CAEF,KAAO,IAAI,CAAC,SAAS,CAAG,GAAK,IAAI,CAAC,MAAM,EAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,GAAG,CAClE,IAAI,EAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAGzB,GAAI,EAAK,SAAS,CAChB,CADkB,GACd,CAAC,wBAAwB,CAAC,QACzB,GAAI,IAAI,CAAC,SAAS,EAAI,EAAK,MAAM,CAGtC,CAHwC,GAGpC,CAAC,YAAY,CAAC,QAIlB,KAEJ,CAEI,IAAI,CAAC,QAAQ,EAAI,CAAC,IAAI,CAAC,QAAQ,EACjC,AADmC,IAC/B,CAAC,IAAI,EAEb,CAAE,MAAO,EAAI,CACX,IAAI,CAAC,IAAI,CAAC,QAAS,EACrB,CACF,gCC/KA,IAAI,EAAc,CAChB,CAEE,EAAG,CAAC,EAAE,CACN,EAAG,CAAC,EAAE,AACR,EACA,CAEE,EAAG,CAAC,EAAE,CACN,EAAG,CAAC,EAAE,AACR,EACA,CAEE,EAAG,CAAC,EAAG,EAAE,CACT,EAAG,CAAC,EAAE,AACR,EACA,CAEE,EAAG,CAAC,EAAG,EAAE,CACT,EAAG,CAAC,EAAG,EAAE,AACX,EACA,CAEE,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,CACf,EAAG,CAAC,EAAG,EACT,AADW,EAEX,CAEE,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,CACf,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,AACjB,EACA,CAEE,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAC3B,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,AACjB,EACD,AAED,GAAQ,cAAc,CAAG,SAAU,CAAK,CAAE,CAAM,EAC9C,IAAI,EAAS,EAAE,CACX,EAAY,EAAQ,EACpB,EAAY,EAAS,EACrB,EAAW,CAAC,EAAQ,CAAA,CAAS,CAAI,EACjC,EAAW,CAAC,EAAS,CAAA,CAAS,CAAI,EACtC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,MAAM,CAAE,IAAK,CAC3C,IAAI,EAAO,CAAW,CAAC,EAAE,CACrB,EAAY,EAAW,EAAK,CAAC,CAAC,MAAM,CACpC,EAAa,EAAW,EAAK,CAAC,CAAC,MAAM,CACzC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,CAAC,CAAC,MAAM,CAAE,IAAK,AACtC,GAAI,EAAK,CAAC,CAAC,EAAE,CAAG,EACd,SADyB,AAGzB,MAGJ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,CAAC,CAAC,MAAM,CAAE,IACjC,AADsC,GAClC,EAAK,CAAC,CAAC,EAAE,CAAG,EACd,SADyB,AAGzB,MAGA,EAAY,GAAK,EAAa,GAAG,AACnC,EAAO,IAAI,CAAC,CAAE,MAAO,EAAW,OAAQ,EAAY,MAAO,CAAE,EAEjE,CACA,OAAO,CACT,EAEA,EAAQ,oBAAoB,CAAG,SAAU,CAAK,EAC5C,OAAO,SAAU,CAAC,CAAE,CAAC,CAAE,CAAI,EACzB,IAAI,EAAiB,EAAI,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,MAAM,CAC/C,EACD,CAAC,EAAI,CAAA,CAAc,CAAI,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,MAAM,CAAI,EACtD,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,EAAe,CACjC,EAAiB,EAAI,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,MAAM,CAInD,OAAgB,AAAT,IAAa,CAFjB,CAAC,EAAI,CAAA,CAAc,CAAI,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,MAAM,CAAI,EACtD,CAAW,CAAC,EAAK,CAAC,CAAC,CAAC,EAAA,AAAe,EACR,EAAQ,CACvC,CACF,gCC5FA,EAAO,OAAO,CAAG,SAAwB,AAAf,CAAmB,CAAE,CAAK,CAAE,CAAM,EAC1D,IAAI,EAAQ,EAAO,EAAQ,EACvB,EAAQ,KAAK,GAAG,CAAC,EAAQ,GACzB,EAAS,KAAK,GAAG,CAAC,EAAQ,GAC1B,EAAU,KAAK,GAAG,CAAC,EAAQ,UAE3B,AAAJ,GAAa,GAAU,GAAS,EACvB,EAEL,GAAU,EAH2B,AAIhC,EAEF,CACT,IAJyB,4BCTzB,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEJ,SAAS,EAAa,CAAK,CAAE,CAAG,CAAE,CAAK,EACrC,IAAI,EAAY,EAAQ,EAIxB,OAHI,AAAU,GAAG,KACf,EAAY,KAAK,IAAI,CAAC,GAAa,EAAI,CAAA,CAAK,CAAA,EAEvC,CACT,CAEA,AALsC,IAKlC,EAAU,EAAO,OAAO,CAAG,SAAU,CAAU,CAAE,CAAY,EAC/D,IAAI,EAAQ,EAAW,KAAK,CACxB,EAAS,EAAW,MAAM,CAC1B,EAAY,EAAW,SAAS,CAChC,EAAM,EAAW,GAAG,CACpB,EAAQ,EAAW,KAAK,CAQ5B,GANA,IAAI,CAAC,IAAI,CAAG,EAAa,IAAI,CAC7B,IAAI,CAAC,KAAK,CAAG,EAAa,KAAK,CAC/B,IAAI,CAAC,QAAQ,CAAG,EAAa,QAAQ,CAErC,IAAI,CAAC,WAAW,CAAG,EACnB,IAAI,CAAC,OAAO,CAAG,EAAE,CACb,EAAW,CACb,IAAI,EAAS,EAAe,cAAc,CAAC,EAAO,GAClD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,MAAM,CAAE,IAAK,AACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAChB,UAAW,EAAa,CAAM,CAAC,EAAE,CAAC,KAAK,CAAE,EAAK,GAC9C,OAAQ,CAAM,CAAC,EAAE,CAAC,MAAM,CACxB,UAAW,CACb,EAEJ,MACE,CADK,GACD,CAAC,OAAO,CAAC,IAAI,CAAC,CAChB,UAAW,EAAa,EAAO,EAAK,GACpC,OAAQ,EACR,UAAW,CACb,EAOY,GAAG,EAAb,EACF,IAAI,CAAC,YAAY,CAAG,EACD,IAAI,CAAd,EACT,IAAI,CAAC,YAAY,CAAS,EAAN,EAEpB,IAAI,CAAC,YAAY,CAAG,CAExB,EAEA,EAAO,SAAS,CAAC,KAAK,CAAG,WACvB,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAG,EAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAErC,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,SAChC,CAAO,CACP,CAAc,CACd,CAAS,EAET,IAAI,EAAc,IAAI,CAAC,YAAY,CAC/B,EAAc,EAAc,EAEhC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAU,CAAO,CAAC,EAAI,EAAE,CACxB,EAAS,EAAI,EAAc,CAAc,CAAC,EAAI,EAAY,CAAG,EACjE,CAAc,CAAC,EAAE,CAAG,EAAU,CAChC,CACF,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,SAChC,CAAO,CACP,CAAc,CACd,CAAS,EAET,IAAI,EAAW,IAAI,CAAC,SAAS,CAE7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAU,CAAO,CAAC,EAAI,EAAE,CACxB,EAAO,EAAW,CAAQ,CAAC,EAAE,CAAG,EACpC,CAAc,CAAC,EAAE,CAAG,EAAU,CAChC,CACF,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,SAChC,CAAO,CACP,CAAc,CACd,CAAS,EAET,IAAI,EAAc,IAAI,CAAC,YAAY,CAC/B,EAAc,EAAc,EAC5B,EAAW,IAAI,CAAC,SAAS,CAE7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAU,CAAO,CAAC,EAAI,EAAE,CACxB,EAAO,EAAW,CAAQ,CAAC,EAAE,CAAG,EAEhC,EAAQ,KAAK,KAAK,CAAC,AAAC,EADX,EAAI,EAAc,CAAc,CAAC,EAAI,EAAY,EAAG,EAChC,CAAA,CAAI,CAAI,GACzC,CAAc,CAAC,EAAE,CAAG,EAAU,CAChC,CACF,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,SAChC,CAAO,CACP,CAAc,CACd,CAAS,EAET,IAAI,EAAc,IAAI,CAAC,YAAY,CAC/B,EAAc,EAAc,EAC5B,EAAW,IAAI,CAAC,SAAS,CAE7B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAU,CAAO,CAAC,EAAI,EAAE,CACxB,EAAO,EAAW,CAAQ,CAAC,EAAE,CAAG,EAGhC,EAAQ,EAFC,EAAI,EAAc,CAAc,CAAC,EAAI,EAAY,CAAG,EAEtC,AAAQ,EADpB,EAAI,EACsB,CADP,EAAW,CAAQ,CAAC,EAAI,EAAY,CAAG,EAEzE,EAAc,CAAC,EAAE,CAAG,EAAU,CAChC,CACF,EAEA,EAAO,SAAS,CAAC,kBAAkB,CAAG,SAAU,CAAO,EACrD,IACI,EADA,EAAS,CAAO,CAAC,EAAE,CAEnB,EAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAC7C,EAAY,EAAa,SAAS,CAEtC,GAAe,GAAG,CAAd,EACF,EAAiB,EAAQ,KAAK,CAAC,EAAG,EAAY,QAI9C,OAFA,EAAiB,OAAO,KAAK,CAAC,GAEtB,GACN,KAAK,EACH,IAAI,CAAC,cAAc,CAAC,EAAS,EAAgB,GAC7C,KACF,MAAK,EACH,IAAI,CAAC,cAAc,CAAC,EAAS,EAAgB,GAC7C,KACF,MAAK,EACH,IAAI,CAAC,cAAc,CAAC,EAAS,EAAgB,GAC7C,KACF,MAAK,EACH,IAAI,CAAC,cAAc,CAAC,EAAS,EAAgB,GAC7C,KACF,SACE,MAAM,AAAI,MAAM,8BAAgC,EACpD,CAGF,IAAI,CAAC,KAAK,CAAC,GAEX,EAAa,SAAS,GAClB,EAAa,SAAS,EAAI,EAAa,MAAM,EAC/C,AADiD,IAC7C,CAAC,SAAS,CAAG,KACjB,IAAI,CAAC,WAAW,GAChB,EAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAE7C,IAAI,CAAC,SAAS,CAAG,EAGf,EAEF,IAAI,CAAC,IAAI,CAAC,EAFM,AAEO,SAAS,CAAG,EAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAEvE,IAAI,CAAC,SAAS,CAAG,KACjB,IAAI,CAAC,QAAQ,GAEjB,gCC9KA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAe,EAAO,OAAO,CAAG,SAAU,CAAU,EACtD,EAAY,IAAI,CAAC,IAAI,EAErB,IAAI,EAAU,EAAE,CACZ,EAAO,IAAI,CACf,IAAI,CAAC,OAAO,CAAG,IAAI,EAAO,EAAY,CACpC,KAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACzB,MAAO,SAAU,CAAM,EACrB,EAAQ,IAAI,CAAC,EACf,EACA,SAAU,WACR,EAAK,IAAI,CAAC,WAAY,OAAO,MAAM,CAAC,GACtC,CACF,GAEA,IAAI,CAAC,OAAO,CAAC,KAAK,EACpB,EACA,EAAK,QAAQ,CAAC,EAAa,iCCrB3B,EAAO,OAAO,CAAG,CACf,cAAe,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAK,CAE/D,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WAGX,oBAAqB,EACrB,kBAAmB,EACnB,gBAAiB,EACjB,gBAAiB,EAGjB,wBAAyB,EACzB,sBAAuB,EAEvB,qBAAsB,CACpB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACL,EAEA,eAAgB,GAClB,gCC7BA,IAAI,EAAW,EAAE,CAGf,IAAK,IAAI,EAAI,EAAG,EAAI,IAAK,IAAK,CAC5B,IAAI,EAAa,EACjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,AACT,EAAb,CAAgB,CAClB,EAAa,WAAc,IAAe,EAE1C,KAA4B,CAGhC,EAAQ,CAAC,EAAE,CAAG,CAHG,AAInB,CAGF,IAAI,EAAiB,EAAO,OAAO,CAAG,WACpC,IAAI,CAAC,IAAI,CAAG,CAAC,CACf,EAEA,EAAc,SAAS,CAAC,KAAK,CAAG,SAAU,CAAI,EAC5C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,MAAM,CAAE,IAAK,AACpC,IAAI,CAAC,IAAI,CAAG,CAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAG,CAAI,CAAC,EAAA,AAAE,EAAI,IAAK,CAAI,IAAI,CAAC,IAAI,GAAK,EAEtE,OAAO,CACT,EAEA,EAAc,SAAS,CAAC,KAAK,CAAG,WAC9B,OAAmB,CAAC,EAAb,IAAI,CAAC,IAAI,AAClB,EAEA,EAAc,KAAK,CAAG,SAAU,CAAG,EACjC,IAAI,EAAM,CAAC,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAAK,AACnC,EAAM,CAAQ,CAAC,CAAC,EAAM,CAAG,CAAC,EAAA,AAAE,EAAI,IAAK,CAAI,IAAQ,EAEnD,OAAa,CAAC,EAAP,CACT,gCCrCA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAU,EAAO,OAAO,CAAG,SAAU,CAAO,CAAE,CAAY,EAC5D,IAAI,CAAC,QAAQ,CAAG,EAChB,EAAQ,QAAQ,EAAwB,IAArB,EAAQ,QAAQ,CAEnC,IAAI,CAAC,QAAQ,EAAG,EAChB,IAAI,CAAC,QAAQ,CAAG,GAChB,IAAI,CAAC,uBAAuB,EAAG,EAG/B,IAAI,CAAC,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC,UAAU,CAAG,EAElB,IAAI,CAAC,OAAO,CAAG,CAAC,EAChB,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC,OAAO,CAAC,EAAU,SAAS,CAAC,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAE9D,IAAI,CAAC,IAAI,CAAG,EAAa,IAAI,CAC7B,IAAI,CAAC,KAAK,CAAG,EAAa,KAAK,CAC/B,IAAI,CAAC,QAAQ,CAAG,EAAa,QAAQ,CACrC,IAAI,CAAC,KAAK,CAAG,EAAa,KAAK,CAC/B,IAAI,CAAC,UAAU,CAAG,EAAa,UAAU,CACzC,IAAI,CAAC,OAAO,CAAG,EAAa,OAAO,CACnC,IAAI,CAAC,MAAM,CAAG,EAAa,MAAM,CACjC,IAAI,CAAC,WAAW,CAAG,EAAa,WAAW,CAC3C,IAAI,CAAC,QAAQ,CAAG,EAAa,QAAQ,CACrC,IAAI,CAAC,kBAAkB,CAAG,EAAa,kBAAkB,CACzD,IAAI,CAAC,eAAe,CAAG,EAAa,eAAe,EAAI,WAAa,CACtE,EAEA,EAAO,SAAS,CAAC,KAAK,CAAG,WACvB,IAAI,CAAC,IAAI,CAAC,EAAU,aAAa,CAAC,MAAM,CAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAC1E,EAEA,EAAO,SAAS,CAAC,eAAe,CAAG,SAAU,CAAI,EAC/C,IAAI,EAAY,EAAU,aAAa,CAEvC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,MAAM,CAAE,IAAK,AACzC,GAAI,CAAI,CAAC,EAAE,GAAK,CAAS,CAAC,EAAE,CAAE,YAC5B,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,2BAIzB,IAAI,CAAC,IAAI,CAAC,EAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAC9C,EAEA,EAAO,SAAS,CAAC,gBAAgB,CAAG,SAAU,CAAI,EAEhD,IAAI,EAAS,EAAK,YAAY,CAAC,GAG3B,EAAO,EAAK,YAAY,CAAC,GACzB,EAAO,GACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,AAC1B,GAAQ,OAAO,YAAY,CAAC,CAAI,CAAC,EAAE,EAMrC,IAAI,GAAY,EAAkB,GAAV,CAAI,CAAC,EAAE,AAAG,IAAO,KAIzC,AAAI,AAAC,IAAI,CAAC,IAJ6C,IAIrC,EAAI,IAAS,EAAU,SAAS,EAAE,AAKpD,IAAI,CAAC,IAAI,CAAG,IAAI,EAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAExB,IAAI,CAAC,OAAO,CAAC,EAAK,EAAE,AACf,IAAI,CAAC,OAAO,CAAC,EAAK,CAAC,GAGvB,OAKL,IALgB,AAKZ,CAAC,IAAI,CAAC,EAAS,EAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAJ7C,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,mCAAqC,SAZ1D,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,8BAiBzB,EAEA,EAAO,SAAS,CAAC,UAAU,CAAG,WAC5B,IAAI,CAAC,IAAI,CAAC,EAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAC9C,EAEA,EAAO,SAAS,CAAC,eAAe,CAAG,WACjC,IAAI,CAAC,IAAI,CAAC,EAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAC5C,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,SAAU,CAAI,EAC9C,IAAI,EAAU,EAAK,WAAW,CAAC,GAC3B,EAAU,IAAI,CAAC,IAAI,CAAC,KAAK,EAG7B,CAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAI,IAAY,EACxC,IAAI,CAAC,EAD4C,GACvC,CAAC,AAAI,MAAM,eAAiB,EAAU,MAAQ,IAItD,AAAC,IAAI,CAAC,QAAQ,EAAE,AAClB,IAAI,CAAC,IAAI,CAAC,EAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAEhD,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EAC7C,IAAI,CAAC,IAAI,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC7C,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,EAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAEhB,IAAI,EAAQ,EAAK,YAAY,CAAC,GAC1B,EAAS,EAAK,YAAY,CAAC,GAC3B,EAAQ,CAAI,CAAC,EAAE,CACf,EAAY,CAAI,CAAC,EAAE,CACnB,CADqB,CACb,CAAI,CAAC,GAAG,CAChB,EAAS,CAAI,CAAC,GAAG,CACjB,EAAY,CAAI,CAAC,GAAG,CAOxB,GACY,IAAV,GACA,AAAU,GAZiD,IAa3D,AAAU,OACA,IAAV,GACU,KAAV,EACA,YACA,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,yBAA2B,IAGlD,GAAI,CAAC,CAAC,KAAa,EAAU,oBAAA,AAAoB,EAAG,YAClD,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,2BAGvB,GAAc,IAAV,EAAa,YACf,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,mCAGvB,GAAe,IAAX,EAAc,YAChB,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,8BAGvB,GAAI,AAAc,OAAmB,IAAd,EAAiB,YACtC,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,iCAIvB,IAAI,CAAC,UAAU,CAAG,EAElB,IAAI,EAAM,EAAU,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAEzD,IAAI,CAAC,QAAQ,EAAG,EAEhB,IAAI,CAAC,QAAQ,CAAC,CACZ,MAAO,EACP,OAAQ,EACR,MAAO,EACP,WAAW,CAAQ,EACnB,SAAS,EAAQ,EAAY,EAAU,iBAAA,AAAiB,EACxD,OAAO,EAAQ,EAAY,EAAU,eAAA,AAAe,EACpD,OAAO,CAAQ,GAAY,EAAU,eAAA,AAAe,EACpD,IAAK,EACL,UAAW,CACb,GAEA,IAAI,CAAC,eAAe,EACtB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EAC7C,IAAI,CAAC,IAAI,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC7C,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,EAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAEhB,IAAI,EAAU,KAAK,KAAK,CAAC,EAAK,MAAM,CAAG,GAGvC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,IAAK,AAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAI,CAAK,EAAJ,EAAM,CAAE,CAAI,CAAK,EAAJ,EAAQ,EAAE,CAAE,CAAI,CAAK,EAAJ,EAAQ,EAAE,CAAE,IAAK,EAG1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAE1B,IAAI,CAAC,eAAe,EACtB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EAC7C,IAAI,CAAC,kBAAkB,GACvB,IAAI,CAAC,IAAI,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC7C,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,EAI1C,GAHA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAGZ,IAAI,CAAC,UAAU,GAAK,EAAU,uBAAuB,CAAE,CACzD,GAA6B,IAAzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAQ,YAC9B,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,6CAGvB,GAAI,EAAK,MAAM,CAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,YACtC,IAAI,CAAC,KAAK,CAAC,AAAI,MAAM,8CAGvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,MAAM,CAAE,IAAK,AACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAG,CAAI,CAAC,EAAE,CAE/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAC5B,CAII,IAAI,CAAC,UAAU,GAAK,EAAU,mBAAmB,EAAE,AAErD,IAAI,CAAC,UAAU,CAAC,CAAC,EAAK,YAAY,CAAC,GAAG,EAEpC,IAAI,CAAC,UAAU,GAAK,EAAU,eAAe,EAC/C,AADiD,IAC7C,CAAC,UAAU,CAAC,CACd,EAAK,YAAY,CAAC,GAClB,EAAK,YAAY,CAAC,GAClB,EAAK,YAAY,CAAC,GACnB,EAGH,IAAI,CAAC,eAAe,EACtB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EAC7C,IAAI,CAAC,IAAI,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC7C,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,EAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAChB,IAAI,CAAC,KAAK,CAAC,EAAK,YAAY,CAAC,GAAK,EAAU,cAAc,EAE1D,IAAI,CAAC,eAAe,EACtB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EACxC,IAAI,CAAC,uBAAuB,EAAE,CACjC,IAAI,CAAC,uBAAuB,EAAG,EAC/B,IAAI,CAAC,eAAe,IAEtB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAE,GAChD,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAM,CAAE,CAAI,EAGlD,GAFA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAGd,IAAI,CAAC,UAAU,GAAK,EAAU,uBAAuB,EACrD,AAAyB,GACzB,KADI,CAAC,QAAQ,CAAC,MAAM,CAEpB,MAAM,AAAI,MAAM,8BAGlB,IAAI,CAAC,WAAW,CAAC,GACjB,IAAI,EAAiB,EAAS,EAAK,MAAM,CAErC,EAAiB,EACnB,CADsB,GAClB,CAAC,WAAW,CAAC,GAEjB,IAAI,CAAC,eAAe,EAExB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAU,CAAM,EAC7C,IAAI,CAAC,IAAI,CAAC,EAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAC7C,EACA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,EAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAEhB,IAAI,CAAC,QAAQ,EAAG,EAChB,IAAI,CAAC,eAAe,GAEhB,IAAI,CAAC,QAAQ,EACf,AADiB,IACb,CAAC,QAAQ,EAEjB,gCC/RA,IAAI,EAAA,EAAA,CAAA,CAAA,OAEA,EAAiB,CAEnB,WAAa,EAIb,SAAU,CAAM,CAAE,CAAI,CAAE,CAAK,CAAE,CAAM,EACnC,GAAI,IAAW,EAAK,MAAM,CACxB,CAD0B,KACpB,AAAI,MAAM,mBAGlB,IAAI,EAAQ,CAAI,CAAC,EAAO,CACxB,CAAM,CAAC,EAAM,CAAG,EAChB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,GACtB,EAIA,SAAU,CAAM,CAAE,CAAI,CAAE,CAAK,CAAE,CAAM,EACnC,GAAI,EAAS,GAAK,EAAK,MAAM,CAC3B,CAD6B,KACvB,AAAI,MAAM,mBAGlB,IAAI,EAAQ,CAAI,CAAC,EAAO,CACxB,CAAM,CAAC,EAAM,CAAG,EAChB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,AACtC,EAIA,SAAU,CAAM,CAAE,CAAI,CAAE,CAAK,CAAE,CAAM,EACnC,GAAI,EAAS,GAAK,EAAK,MAAM,CAC3B,CAD6B,KACvB,AAAI,MAAM,mBAGlB,CAAM,CAAC,EAAM,CAAG,CAAI,CAAC,EAAO,CAC5B,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,CACpC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,CACpC,CAAM,CAAC,EAAQ,EAAE,CAAG,GACtB,EAIA,SAAU,CAAM,CAAE,CAAI,CAAE,CAAK,CAAE,CAAM,EACnC,GAAI,EAAS,GAAK,EAAK,MAAM,CAC3B,CAD6B,KACvB,AAAI,MAAM,mBAGlB,CAAM,CAAC,EAAM,CAAG,CAAI,CAAC,EAAO,CAC5B,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,CACpC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,CACpC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAI,CAAC,EAAS,EAAE,AACtC,EACD,CAEG,EAAuB,CAEzB,WAAa,EAIb,SAAU,CAAM,CAAE,CAAS,CAAE,CAAK,CAAE,CAAM,EACxC,IAAI,EAAQ,CAAS,CAAC,EAAE,CACxB,CAAM,CAAC,EAAM,CAAG,EAChB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,CACtB,EAIA,SAAU,CAAM,CAAE,CAAS,CAAE,CAAK,EAChC,IAAI,EAAQ,CAAS,CAAC,EAAE,CACxB,CAAM,CAAC,EAAM,CAAG,EAChB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,EACpB,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,AAClC,EAIA,SAAU,CAAM,CAAE,CAAS,CAAE,CAAK,CAAE,CAAM,EACxC,CAAM,CAAC,EAAM,CAAG,CAAS,CAAC,EAAE,CAC5B,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,CAChC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,CAChC,CAAM,CAAC,EAAQ,EAAE,CAAG,CACtB,EAIA,SAAU,CAAM,CAAE,CAAS,CAAE,CAAK,EAChC,CAAM,CAAC,EAAM,CAAG,CAAS,CAAC,EAAE,CAC5B,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,CAChC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,CAChC,CAAM,CAAC,EAAQ,EAAE,CAAG,CAAS,CAAC,EAAE,AAClC,EAkGF,AAjGC,GAiGO,YAAY,CAAG,SAAU,CAAI,CAAE,CAAU,EAC/C,QAKI,EAKA,EAQA,EACA,EAnBA,EAAQ,EAAW,KAAK,CACxB,EAAS,EAAW,MAAM,CAC1B,EAAQ,EAAW,KAAK,CACxB,EAAM,EAAW,GAAG,CACpB,EAAY,EAAW,SAGvB,AAHgC,AAGtB,GAAG,MAtGb,EAAW,EAAE,CACb,EAAI,EAsGN,EA3DK,CACL,IAAK,AA0DE,SA1DQ,CAAK,EAClB,KAAO,EAAS,MAAM,CAAG,IA3C7B,AA4CM,EAD8B,OA3C3B,MAMyB,EAAO,EAAO,EAAO,EALrD,GAAI,IAAM,EAAK,MAAM,CACnB,CADqB,KACf,AAAI,MAAM,mBAElB,IAAI,EAAO,AAgGS,CAhGL,CAAC,EAAE,CAGlB,OAFA,AAEQ,IA6FkB,GA5FxB,QACE,MAAM,AAAI,MAAM,qBAClB,MAAK,GACH,EAAQ,CAAI,CAAC,EAAE,CACf,IACA,EAAS,IAAI,CAAC,CAAC,IAAQ,CAAC,CAAI,GAC5B,KACF,MAAK,EACH,EAAe,GAAP,EACR,EAAQ,GAAQ,EAChB,EAAS,IAAI,CAAC,EAAO,GACrB,KACF,MAAK,EACH,EAAe,EAAP,EACR,EAAS,GAAQ,EAAK,EACtB,EAAS,GAAQ,EAAK,EACtB,EAAS,GAAQ,EAAK,EACtB,EAAS,IAAI,CAAC,EAAO,EAAO,EAAO,GACnC,KACF,MAAK,EAKH,EAAS,GAAQ,EAAK,EACtB,EAAS,GAAQ,EAAK,EACtB,EAAS,GAAQ,EAAK,EACtB,EAAS,GAAQ,EAAK,EACtB,EAAS,IAAI,CAAC,EAAO,EAAO,EAAO,EAL1B,GAAQ,EAKyB,AALpB,EADb,GAAQ,EAAK,AAM2B,EAPxC,GAAQ,EAOuC,AAPlC,EADd,AAAO,IAUnB,CACF,AAHqE,IAUjE,IAAI,EAAW,EAAS,KAAK,CAAC,EAAG,GAEjC,OADA,EAAW,EAAS,KAAK,CAAC,GACnB,CACT,EACA,eAAgB,WACd,EAAS,MAAM,CAAG,CACpB,EACA,IAAK,WACH,GAAI,IAAM,EAAK,MAAM,CACnB,CADqB,KACf,AAAI,MAAM,mBAEpB,CACF,GA8CE,EADE,GAAS,EACF,CADK,MACE,KAAK,CAAC,EAAQ,EAAS,GAE9B,IAAI,YAAY,EAAQ,EAAS,GAE5C,IAAI,EAAS,KAAK,GAAG,CAAC,EAAG,GAAS,EAC9B,EAAS,EAIb,GAAI,EACF,EAAS,EAAe,KADX,SACyB,CAAC,EAAO,GAC9C,EAAW,EAAe,oBAAoB,CAAC,EAAO,OACjD,CACL,IAAI,EAAqB,EACzB,EAAW,WACT,IAAI,EAAW,EAEf,OADA,GAAsB,EACf,CACT,EACA,EAAS,CAAC,CAAE,MAAO,EAAO,OAAQ,CAAO,EAC3C,AAD6C,CAG7C,IAAK,IAAI,EAAa,EAAG,EAAa,EAAO,MAAM,CAAE,IACrC,GAAG,CAAb,EACF,EAAS,AAnEf,CAiEqE,QAjE5D,AAAa,CAAK,CAAE,CAAM,CAAE,CAAQ,CAAE,CAAG,CAAE,CAAI,CAAE,CAAM,EAE9D,IAAI,EAAa,EAAM,KAAK,CACxB,EAAc,EAAM,MAAM,CAC1B,EAAY,EAAM,KAAK,CAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,IAAK,AACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAAK,CACnC,IAAI,EAAQ,EAAS,EAAG,EAAG,GAC3B,CAAc,CAAC,EAAI,CAAC,EAAQ,EAAM,EAAO,GACzC,GAAU,CACZ,CAEF,GAHmB,IAGZ,CACT,EAuDQ,CAAM,CAAC,EAAW,CAClB,EACA,EACA,EACA,EACA,GAGF,AA7DN,SAAS,AAAkB,CAAK,CAAE,CAAM,CAAE,CAAQ,CAAE,CAAG,AANK,CAMH,CAAI,CAAE,CAAM,EAEnE,IAAI,EAAa,EAAM,KAAK,CACxB,EAAc,EAAM,MAAM,CAC1B,EAAY,EAAM,KAAK,CAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,IAAK,CACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAAK,CACnC,IAAI,EAAY,EAAK,GAAG,CAAC,GACrB,EAAQ,EAAS,EAAG,EAAG,GAC3B,CAAoB,CAAC,EAAI,CAAC,EAAQ,EAAW,EAAO,EACtD,CACA,EAAK,cAAc,EACrB,CACF,EAiDQ,CAAM,CAAC,EAAW,CAClB,EACA,EACA,EACA,EACA,GAIN,GAAc,GAAG,CAAb,GACF,GAAI,IAAW,EAAK,MAAM,CACxB,CAD0B,KACpB,AAAI,MAAM,mBAClB,MAEA,EAAK,GAAG,GAGV,OAAO,CACT,gCCzMA,EAAO,OAAO,CAAG,SAAU,CAAM,CAAE,CAAS,CAAE,GAAc,CAAK,EAC/D,IAAI,EAAQ,EAAU,KAAK,CACvB,EAAQ,EAAU,KAAK,CACvB,EAAS,EAAU,MAAM,CACzB,EAAY,EAAU,SAAS,CAC/B,EAAa,EAAU,UAAU,CACjC,EAAU,EAAU,OAAO,CAE3B,EAAU,EAkBd,MAlBsB,CAEJ,GAAG,CAAjB,GAzEN,AA2EI,SA3EK,AAAU,CAAM,CAAE,CAAO,CAAE,CAAK,CAAE,CAAM,CAAE,CAAO,EACxD,CAsEmD,GAtE/C,EAAQ,EAEZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,AAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAI,EAAQ,CAAO,CAAC,CAAM,CAAC,EAAM,CAAC,CAElC,GAAI,CAAC,EACH,KADU,CACJ,AAAI,MAAM,SAAW,CAAM,CAAC,EAAM,CAAG,mBAG7C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,AAC1B,CAAO,CAAC,EAAQ,EAAE,CAAG,CAAK,CAAC,EAAE,CAE/B,GAAS,CACX,CAEJ,EA0Dc,EAAQ,EAAS,EAAO,EAAQ,IAEtC,GA1DR,AA2DM,SA3DG,AAAwB,AA0Db,CA1DmB,CAAE,CAAO,CAAE,CAAK,CAAE,CAAM,CAAE,CAAU,EACzE,IAAI,EAAQ,EACZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,AAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAI,GAAY,EAahB,GAX0B,GAAG,CAAzB,EAAW,MAAM,CACf,CAAU,CAAC,EAAE,GAAK,CAAM,CAAC,EAAM,EAAE,CACnC,GAAY,CAAA,EAGd,CAAU,CAAC,EAAE,GAAK,CAAM,CAAC,EAAM,EAC/B,CAAU,CAAC,EAAE,GAAK,CAAM,CAAC,EAAQ,EAAE,EACnC,CAAU,CAAC,EAAE,GAAK,CAAM,CAAC,EAAQ,EAAE,EACnC,CACA,GAAY,CAAA,EAEV,EACF,IAAK,IAAI,CADI,CACA,EAAG,EAAI,EAAG,IAAK,AAC1B,CAAO,CAAC,EAAQ,EAAE,CAAG,EAGzB,GAAS,CACX,CAEJ,EAkC8B,EAAQ,EAAS,EAAO,EAAQ,GAG5C,IAAV,CAAe,EAAC,IAEJ,IAAI,CAAd,GACF,CAH6B,EAGnB,OAAO,KAAK,CAAC,EAAQ,EAAS,EAAA,GAtChD,AAwCM,SAxCG,AAAW,CAAM,CAAE,CAAO,CAAE,CAAK,CAAE,CAAM,CAAE,CAAK,EAEvD,IAAI,EAAc,KAAK,GAAG,CAAC,EAAG,GAAS,EACnC,EAAQ,EAEZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,AAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACrB,AAD0B,CACnB,CAAC,EAAQ,EAAE,CAAG,KAAK,KAAK,CAPlB,IAQV,CAAM,CAAC,EAAQ,EAAE,CAAmB,EAAc,AAA9B,IAGzB,GAAS,CACX,CAEJ,EAyBiB,EAAQ,EAAS,EAAO,EAAQ,KAGxC,CACT,+BC1FA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAe,EAAO,OAAO,CAAG,SAAU,CAAO,EACnD,EAAY,IAAI,CAAC,IAAI,EAErB,IAAI,CAAC,OAAO,CAAG,IAAI,EAAO,EAAS,CACjC,KAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACzB,MAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAClC,SAAU,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EACxC,MAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,SAC5B,QAAS,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EACtC,WAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAC5C,SAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAClC,YAAa,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EACxC,mBAAoB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EACtD,gBAAiB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAClD,GACA,IAAI,CAAC,QAAQ,CAAG,EAChB,IAAI,CAAC,QAAQ,EAAG,EAEhB,IAAI,CAAC,OAAO,CAAC,KAAK,EACpB,EACA,EAAK,QAAQ,CAAC,EAAa,GAE3B,EAAY,SAAS,CAAC,YAAY,CAAG,SAAU,CAAG,EAChD,IAAI,CAAC,IAAI,CAAC,QAAS,GAEnB,IAAI,CAAC,QAAQ,EAAG,EAEhB,IAAI,CAAC,OAAO,GAER,IAAI,CAAC,QAAQ,EAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,AAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAGnB,IAAI,CAAC,OAAO,EAAE,CAChB,IAAI,CAAC,OAAO,CAAC,OAAO,GAIpB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,WAAa,IAGxC,IAAI,CAAC,MAAM,EAAG,CAChB,EAEA,EAAY,SAAS,CAAC,YAAY,CAAG,SAAU,CAAI,EACjD,GAAI,CAAC,IAAI,CAAC,QAAQ,CAChB,CADkB,EACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,CAD8B,GAC1B,CAAC,QAAQ,CAAG,EAAK,aAAa,GAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,UAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAEpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAC1B,CAQL,IAAI,EAAY,CANd,CAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CACtB,IACA,CAAC,EACH,EACwB,IAAI,CAAC,WAAW,CAAC,MAAM,CAC7C,EAAY,KAAK,GAAG,CAAC,EAAW,EAAK,WAAW,EAEpD,IAAI,CAAC,QAAQ,CAAG,EAAK,aAAa,CAAC,CAAE,UAAW,CAAU,GAC1D,IAAI,EAAgB,EAEhB,EAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,SACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAS,SAAU,CAAG,EAChC,GAIL,EAAU,EACZ,GACA,IAAI,CAAC,AANiB,OAMV,CAAC,EAAE,CAAC,WAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAEpD,IAAI,EAAc,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAQ,SAAU,CAAK,EACjC,IAID,EAAM,MAAM,CAAG,EAJC,EAKlB,EAAQ,EAAM,KAAK,CAAC,CADY,CACT,EAAA,EAGzB,GAAiB,EAAM,MAAM,CAE7B,EAAY,GACd,GAEA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAC5D,CAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtB,EAEA,EAAY,SAAS,CAAC,eAAe,CAAG,SAAU,CAAQ,EACxD,IAAI,CAAC,SAAS,CAAG,EACjB,IAAI,CAAC,WAAW,CAAG,OAAO,MAAM,CAAC,GAEjC,IAAI,CAAC,OAAO,CAAG,IAAI,EAAY,IAAI,CAAC,WAAW,CACjD,EAEA,EAAY,SAAS,CAAC,iBAAiB,CAAG,SAAU,CAAU,EAC5D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAG,CAChC,EAEA,EAAY,SAAS,CAAC,cAAc,CAAG,SAAU,CAAO,EACtD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAG,CAC7B,EAEA,EAAY,SAAS,CAAC,mBAAmB,CAAG,WAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CACzB,EAEA,EAAY,SAAS,CAAC,gBAAgB,CAAG,WAGvC,IAAI,CAAC,IAAI,CAAC,WAAY,IAAI,CAAC,SAAS,CACtC,EAEA,EAAY,SAAS,CAAC,SAAS,CAAG,WAC5B,IAAI,CAAC,MAAM,EAAE,CAIZ,IAAI,CAAC,QAAQ,CAIhB,CAJkB,GAId,CAAC,QAAQ,CAAC,GAAG,GAHjB,IAAI,CAAC,IAAI,CAAC,QAAS,oBAKvB,EAEA,EAAY,SAAS,CAAC,SAAS,CAAG,SAAU,CAAY,MAKlD,EAJJ,IAAI,IAAI,CAAC,MAAM,EAAE,AAMjB,GAAI,CACF,IAAI,EAAa,EAAU,YAAY,CAAC,EAAc,IAAI,CAAC,WAAW,EAEtE,EAAuB,EACrB,EACA,IAAI,CAAC,WAAW,CAChB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAE3B,EAAa,IACf,CAAE,MAAO,EAAI,CACX,IAAI,CAAC,YAAY,CAAC,GAClB,MACF,CAEA,IAAI,CAAC,IAAI,CAAC,SAAU,GACtB,gCCtKA,IAAI,EAAA,EAAA,CAAA,CAAA,OAEJ,EAAO,OAAO,CAAG,SAAU,CAAM,CAAE,CAAK,CAAE,CAAM,CAAE,CAAO,EACvD,IAAI,EAGI,CAAC,IAFP,CAAC,EAAU,qBAAqB,CAAE,EAAU,eAAe,CAAC,CAAC,OAAO,CAClE,EAAQ,SAAS,EAErB,GAAI,EAAQ,SAAS,GAAK,EAAQ,cAAc,CAAE,CAChD,MAAI,GAEF,IAAI,KAFW,AAAD,IACV,AACS,EADA,IAAI,YAAY,IACR,QAAQ,CAAC,EAAG,KAAK,GAED,MAA9B,IAAI,WAAW,EAAO,CAAC,EAAE,EAGlC,GAAyB,IAArB,EAAQ,QAAQ,EAAgC,AAArB,OAAQ,QAAQ,EAAW,EACxD,OAAO,CAEX,CAHwE,AAMxE,IAAI,EAA4B,KAArB,EAAQ,QAAQ,CAAU,EAAS,IAAI,YAAY,EAAO,MAAM,EAEvE,EAAW,IACX,EAAQ,EAAU,oBAAoB,CAAC,EAAQ,cAAc,CAAC,CACpD,IAAV,CAAe,EAAC,EAAQ,aAAa,EAAE,CACzC,GAAQ,EAEV,IAAI,EAAS,EAAU,oBAAoB,CAAC,EAAQ,SAAS,CAAC,CACrC,IAAI,CAAzB,EAAQ,QAAQ,GAClB,EAAW,MACX,GAAU,GAEZ,IAAI,EAAU,OAAO,KAAK,CAAC,EAAQ,EAAS,GAExC,EAAU,EACV,EAAW,EAEX,EAAU,EAAQ,OAAO,EAAI,CAAC,OACd,IAAhB,EAAQ,GAAG,EAAgB,AAC7B,GAAQ,GAAG,CAAG,CAAA,OAEM,IAAlB,EAAQ,KAAK,AAAgB,GAC/B,EAAQ,KAAK,CAAG,CAAA,OAEG,IAAjB,EAAQ,IAAI,CAAgB,EAC9B,EAAQ,IAAI,CAAG,CAAA,EA2DjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,AAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAI,EAAO,AA1Df,SAAS,EAIP,IAHI,EACA,EACA,EACA,EAAQ,EACZ,OAAQ,EAAQ,cAAc,EAC5B,KAAK,EAAU,qBAAqB,CAClC,EAAQ,CAAI,CAAC,EAAU,EAAE,CACzB,EAAM,CAAI,CAAC,EAAQ,CACnB,EAAQ,CAAI,CAAC,EAAU,EAAE,CACzB,EAAO,CAAI,CAAC,EAAU,EAAE,CACxB,KACF,MAAK,EAAU,eAAe,CAC5B,EAAM,CAAI,CAAC,EAAQ,CACnB,EAAQ,CAAI,CAAC,EAAU,EAAE,CACzB,EAAO,CAAI,CAAC,EAAU,EAAE,CACxB,KACF,MAAK,EAAU,eAAe,CAC5B,EAAQ,CAAI,CAAC,EAAU,EAAE,CAEzB,EADA,EAAM,CAAI,CAAC,EAAQ,AACX,CACR,EAAO,EACP,KACF,MAAK,EAAU,mBAAmB,CAEhC,EADA,EAAM,CAAI,CAAC,EAAQ,AACX,CACR,EAAO,EACP,KACF,SACE,MAAM,AAAI,MACR,oBACE,EAAQ,cAAc,CACtB,+BAER,CAmBA,OAjBI,EAAQ,aAAa,EAAE,AACrB,CAAC,IACH,GAAS,EACT,EAAM,EAFU,GAEL,GAAG,CACZ,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAI,CAAA,CAAK,CAAI,EAAQ,GAAG,CAAG,EAAQ,GAAM,GAC9D,GAEF,EAAQ,KAAK,GAAG,CACd,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAI,CAAA,CAAK,CAAI,EAAQ,KAAK,CAAG,EAAQ,GAAQ,GAClE,GAEF,EAAO,KAAK,GAAG,CACb,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAI,CAAA,CAAK,CAAI,EAAQ,IAAI,CAAG,EAAQ,GAAO,GAChE,IAIC,CAAE,IAAK,EAAK,MAAO,EAAO,KAAM,EAAM,MAAO,CAAM,CAC5D,EAIuB,EAAM,GAEzB,OAAQ,EAAQ,SAAS,EACvB,KAAK,EAAU,qBAAqB,CACpC,KAAK,EAAU,eAAe,CACH,GAAG,CAAxB,EAAQ,QAAQ,EAClB,CAAO,CAAC,EAAS,CAAG,EAAK,GAAG,CAC5B,CAAO,CAAC,EAAW,EAAE,CAAG,EAAK,KAAK,CAClC,CAAO,CAAC,EAAW,EAAE,CAAG,EAAK,IAAI,CAC7B,GACF,EAAO,CAAC,EAAW,EAAE,CAAG,EADT,AACc,KAAA,AAAK,IAGpC,EAAQ,aAAa,CAAC,EAAK,GAAG,CAAE,GAChC,EAAQ,aAAa,CAAC,EAAK,KAAK,CAAE,EAAW,GAC7C,EAAQ,aAAa,CAAC,EAAK,IAAI,CAAE,EAAW,GACxC,GACF,EAAQ,QADO,KACM,CAAC,EAAK,KAAK,CAAE,EAAW,IAGjD,KACF,MAAK,EAAU,eAAe,CAC9B,KAAK,EAAU,mBAAmB,CAAE,CAElC,IAAI,EAAY,CAAC,EAAK,GAAG,CAAG,EAAK,KAAK,CAAG,EAAK,IAAA,AAAI,EAAI,EAC7B,GAAG,CAAxB,EAAQ,QAAQ,EAClB,CAAO,CAAC,EAAS,CAAG,EAChB,IACF,CAAO,CAAC,EAAW,EAAE,CAAG,EADT,AACc,KAAA,AAAK,IAGpC,EAAQ,aAAa,CAAC,EAAW,GAC7B,GACF,EAAQ,QADO,KACM,CAAC,EAAK,KAAK,CAAE,EAAW,IAGjD,KACF,CACA,QACE,MAAM,AAAI,MAAM,2BAA6B,EAAQ,SAAS,CAClE,CAEA,GAAW,EACX,GAAY,CACd,CAGF,OAAO,CACT,gCC3JA,IAAI,EAAA,EAAA,CAAA,CAAA,OA+GA,EAAU,CACZ,EA9GF,CA8GK,QA9GI,AAAW,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAO,CAAE,CAAM,EAC3D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,AAClC,CAAO,CAAC,EAAS,EAAE,CAAG,CAAM,CAAC,EAAQ,EAAE,AAE3C,EA2GE,EA/FF,CA+FK,QA/FI,AAAU,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAO,CAAE,CAAM,CAAE,CAAG,EAC/D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAC5C,EAAM,CAAM,CAAC,EAAQ,EAAE,CAAG,EAE9B,CAAO,CAAC,EAAS,EAAE,CAAG,CACxB,CACF,EAyFE,EA3EF,CA2EK,QA3EI,AAAS,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAO,CAAE,CAAM,EACzD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAQ,EAAI,EAAU,CAAG,EACjD,EAAM,CAAM,CAAC,EAAQ,EAAE,CAAG,EAE9B,CAAO,CAAC,EAAS,EAAE,CAAG,CACxB,CACF,EAqEE,EAtDF,CAsDK,QAtDI,AAAU,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAO,CAAE,CAAM,CAAE,CAAG,EAC/D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAC5C,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAQ,EAAI,EAAU,CAAG,EACjD,EAAM,CAAM,CAAC,EAAQ,EAAE,EAAK,CAAF,CAAS,IAAO,CAAC,CAE/C,CAAO,CAAC,EAAS,EAAE,CAAG,CACxB,CACF,EA+CE,EAhCF,CAgCK,QAhCI,AAAY,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAO,CAAE,CAAM,CAAE,CAAG,EACjE,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAC5C,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAQ,EAAI,EAAU,CAAG,EACjD,EACF,EAAQ,GAAK,GAAK,EAAM,CAAM,CAAC,EAAQ,GAAK,CAAD,CAAa,CAAA,CAAG,CAAE,CAAG,EAC9D,EAAM,CAAM,CAAC,EAAQ,EAAE,CAAG,EAAe,EAAM,EAAI,GAEvD,CAAO,CAAC,EAAS,EAAE,CAAG,CACxB,CACF,CAuBA,EAEI,EAAa,CACf,EAhHF,CAgHK,QAhHI,AAAc,CAAM,CAAE,CAAK,CAAE,CAAS,EAC7C,IAAI,EAAM,EACN,EAAS,EAAQ,EAErB,IAAK,IAAI,EAAI,EAAO,EAAI,EAAQ,IAAK,AACnC,GAAO,KAAK,GAAG,CAAC,CAAM,CAAC,EAAE,EAE3B,OAAO,CACT,EAyGE,EA9FF,CA8FK,QA9FI,AAAa,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAG,EACjD,IAAI,EAAM,EACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAGhD,GAAO,KAAK,GAAG,CAAC,AAFN,CAAM,CAAC,EAAQ,EAAE,CAAG,EAGhC,CAEA,OAAO,CACT,EAqFE,EA1EF,CA0EK,QA1EI,AAAY,CAAM,CAAE,CAAK,CAAE,CAAS,EAC3C,IAAI,EAAM,EACN,EAAS,EAAQ,EACrB,IAAK,IAAI,EAAI,EAAO,EAAI,EAAQ,IAAK,CACnC,IAAI,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAI,EAAU,CAAG,EAG7C,GAAO,KAAK,GAAG,CAFL,AAEM,CAFA,CAAC,EAAE,CAAG,EAGxB,CAEA,OAAO,CACT,EAgEE,EApDF,CAoDK,QApDI,AAAa,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAG,EACjD,IAAI,EAAM,EACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAC5C,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAQ,EAAI,EAAU,CAAG,EAGrD,GAAO,KAAK,GAAG,CAAC,AAFN,CAAM,CAAC,EAAQ,EAAE,EAAK,CAAF,CAAS,IAAO,CAAC,CAGjD,CAEA,OAAO,CACT,EA0CE,EA5BF,CA4BK,QA5BI,AAAe,CAAM,CAAE,CAAK,CAAE,CAAS,CAAE,CAAG,EACnD,IAAI,EAAM,EACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAI,EAAO,GAAK,EAAM,CAAM,CAAC,EAAQ,EAAI,EAAI,CAAG,EAC5C,EAAK,EAAQ,EAAI,CAAM,CAAC,EAAQ,EAAI,EAAU,CAAG,EACjD,EACF,EAAQ,GAAK,GAAK,EAAM,CAAM,CAAC,EAAQ,GAAK,CAAD,CAAa,CAAA,CAAG,CAAE,CAAG,EAGlE,GAAO,KAAK,GAAG,CAFL,AAEM,CAFA,CAAC,EAAQ,EAAE,CAAG,EAAe,EAAM,EAAI,GAGzD,CAEA,OAAO,CACT,CAgBA,EAEA,EAAO,OAAO,CAAG,SAAU,CAAM,CAAE,CAAK,CAAE,CAAM,CAAE,CAAO,CAAE,CAAG,MACxD,EACJ,GAAI,AAAE,CAAD,cAAiB,GAAmC,CAAC,GAA7B,AAAgC,CAA3B,EAAQ,UAAU,CAE7C,GAAkC,UAA9B,AAAwC,OAAjC,EAAQ,UAAU,CAClC,EAAc,CAAC,EAAQ,UAAU,CAAC,MAElC,MAAM,AAAI,MAAM,kCAJhB,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAE,CAON,IAAI,CAAzB,EAAQ,QAAQ,GAClB,IAAO,EAET,IAAI,EAAY,EAAQ,EACpB,EAAS,EACT,EAAQ,EACR,EAAU,OAAO,KAAK,CAAC,CAAC,EAAY,CAAC,EAAI,GAEzC,EAAM,CAAW,CAAC,EAAE,CAExB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,CAC/B,GAAI,EAAY,MAAM,CAAG,EAAG,CAE1B,IAAI,EAAM,IAEV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,MAAM,CAAE,IAAK,CAC3C,IAAI,EAAM,CAAU,CAAC,CAAW,CAAC,EAAE,CAAC,CAAC,EAAQ,EAAO,EAAW,GAC3D,EAAM,IACR,CADa,CACP,CAAW,CAAC,EAAE,CACpB,EAAM,EAEV,CACF,CAEA,CAAO,CAAC,EAAO,CAAG,EAClB,IACA,CAAO,CAAC,EAAI,CAAC,EAAQ,EAAO,EAAW,EAAS,EAAQ,GACxD,GAAU,EACV,GAAS,CACX,CACA,OAAO,CACT,gCCxKA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAU,EAAO,OAAO,CAAG,SAAU,CAAO,EAsB9C,GArBA,IAAI,CAAC,QAAQ,CAAG,EAEhB,EAAQ,gBAAgB,CAAG,EAAQ,gBAAgB,EAAI,KAAK,CAC5D,EAAQ,YAAY,CACM,MAAxB,EAAQ,YAAY,CAAW,EAAQ,YAAY,CAAG,EACxD,EAAQ,eAAe,CACM,MAA3B,EAAQ,eAAe,CAAW,EAAQ,eAAe,CAAG,EAC9D,EAAQ,aAAa,CACM,AAAzB,QAAQ,aAAa,EAAW,EAAQ,aAAa,CACvD,EAD0D,AAClD,cAAc,CAAG,EAAQ,cAAc,EAAI,EAAK,aAAa,CACrE,EAAQ,QAAQ,CAAG,EAAQ,QAAQ,EAAI,EAEvC,EAAQ,SAAS,CACf,AAA6B,iBAAtB,EAAQ,SAAS,CACpB,EAAQ,SAAS,CACjB,EAAU,qBAAqB,CACrC,EAAQ,cAAc,CACc,UAAlC,OAAO,EAAQ,cAAc,CACzB,EAAQ,cAAc,CACtB,EAAU,qBAAqB,CAQF,CAAC,GAClC,CANA,CACE,EAAU,mBAAmB,CAC7B,EAAU,eAAe,CACzB,EAAU,qBAAqB,CAC/B,EAAU,eAAe,CAC1B,CAAC,OAAO,CAAC,EAAQ,SAAS,EAE3B,MAAM,AAAI,MACR,qBAAuB,EAAQ,SAAS,CAAG,gCAG/C,GAMwC,CAAC,GACvC,CANA,CACE,EAAU,mBAAmB,CAC7B,EAAU,eAAe,CACzB,EAAU,qBAAqB,CAC/B,EAAU,eAAe,CAC1B,CAAC,OAAO,CAAC,EAAQ,cAAc,EAEhC,MAAM,AAAI,MACR,2BACE,EAAQ,cAAc,CACtB,gCAGN,GAAyB,IAArB,EAAQ,QAAQ,EAA+B,IAAI,CAAzB,EAAQ,QAAQ,CAC5C,MAAM,AAAI,MACR,oBAAsB,EAAQ,QAAQ,CAAG,+BAG/C,EAEA,EAAO,SAAS,CAAC,iBAAiB,CAAG,WACnC,MAAO,CACL,UAAW,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CACzC,MAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CACjC,SAAU,IAAI,CAAC,QAAQ,CAAC,eAAe,AACzC,CACF,EAEA,EAAO,SAAS,CAAC,aAAa,CAAG,WAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,GAC5D,EAEA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,CAAE,CAAK,CAAE,CAAM,EAEzD,IAAI,EAAa,EAAU,EAAM,EAAO,EAAQ,IAAI,CAAC,QAAQ,EAGzD,EAAM,EAAU,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAEjE,OADmB,AACZ,EADmB,EAAY,EAAO,EAAQ,IAAI,CAAC,QAAQ,CAAE,EAEtE,EAEA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAU,CAAI,CAAE,CAAI,EAChD,IAAI,EAAM,EAAO,EAAK,MAAM,CAAG,EAC3B,EAAM,OAAO,KAAK,CAAC,EAAM,IAa7B,OAXA,EAAI,aAAa,CAAC,EAAK,GACvB,EAAI,aAAa,CAAC,EAAM,GAEpB,GACF,EAAK,CADG,GACC,CAAC,EAAK,GAGjB,EAAI,YAAY,CACd,EAAU,KAAK,CAAC,EAAI,KAAK,CAAC,EAAG,EAAI,MAAM,CAAG,IAC1C,EAAI,MAAM,CAAG,GAER,CACT,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,SAAU,CAAK,EACzC,IAAI,EAAM,OAAO,KAAK,CAAC,GAEvB,OADA,EAAI,aAAa,CAAC,KAAK,KAAK,CAAC,EAAQ,EAAU,cAAc,EAAG,GACzD,IAAI,CAAC,UAAU,CAAC,EAAU,SAAS,CAAE,EAC9C,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,SAAU,CAAK,CAAE,CAAM,EACjD,IAAI,EAAM,OAAO,KAAK,CAAC,IASvB,OARA,EAAI,aAAa,CAAC,EAAO,GACzB,EAAI,aAAa,CAAC,EAAQ,GAC1B,CAAG,CAAC,EAAE,CAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAC/B,CAAG,AAD8B,CAC7B,EAAE,CAAG,IAAI,CAAC,GAD+B,KACvB,CAAC,SAAS,CAChC,CADkC,AAC/B,CAAC,GAAG,CAAG,EACV,CADa,AACV,CAAC,GAAG,AAFuC,CAEpC,EACV,CADa,AACV,CAAC,GAAG,CAAG,CAFiB,CAIpB,CAFM,CADS,EAGX,CAAC,QAFa,EAEH,CAAC,EAAU,SAAS,CAAE,EAC9C,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,SAAU,CAAI,EACxC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAU,SAAS,CAAE,EAC9C,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,WAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,EAAU,SAAS,CAAE,KAC9C,gCC9HA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAe,EAAO,OAAO,CAAG,SAAU,CAAG,EAC/C,EAAO,IAAI,CAAC,IAAI,EAIhB,IAAI,CAAC,OAAO,CAAG,IAAI,EAFL,GAAO,CAAC,CAEI,EAC1B,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,OAAO,CAAC,aAAa,GAE1C,IAAI,CAAC,QAAQ,EAAG,CAClB,EACA,EAAK,QAAQ,CAAC,EAAa,GAE3B,EAAY,SAAS,CAAC,IAAI,CAAG,SAAU,CAAI,CAAE,CAAK,CAAE,CAAM,CAAE,CAAK,EAE/D,IAAI,CAAC,IAAI,CAAC,OAAQ,OAAO,IAAI,CAAC,EAAU,aAAa,GACrD,IAAI,CAAC,IAAI,CAAC,OAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAO,IAE3C,GACF,IADS,AACL,CAAC,IAAI,CAAC,OAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAG1C,IAAI,EAAe,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAM,EAAO,GAGxD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,UAE/C,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,OACA,CAAA,SAAU,CAAc,EACtB,IAAI,CAAC,IAAI,CAAC,OAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAC1C,CAAA,EAAE,IAAI,CAAC,IAAI,GAGb,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,MACA,CAAA,WACE,IAAI,CAAC,IAAI,CAAC,OAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,IACvC,IAAI,CAAC,IAAI,CAAC,OACZ,CAAA,CAAE,IAAI,CAAC,IAAI,GAGb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EACpB,gCC/CA,IAAI,EAAS,EAAA,CAAA,CAAA,OAAkB,EAAE,CAC7B,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAa,EAAA,CAAA,CAAA,KAAkB,UAAU,CAE7C,SAAS,EAAQ,CAAI,EACnB,GAAI,CAAC,CAAC,IAAI,YAAY,CAAA,CAAO,CAC3B,EAD8B,KACvB,IAAI,EAAQ,GAGjB,GAAQ,EAAK,SAAS,CAAG,EAAK,WAAW,EAAE,CAC7C,EAAK,SAAS,CAAG,EAAK,WAAA,AAAW,EAGnC,EAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAE,GAGxB,IAAI,CAAC,OAAO,MAAoB,IAAjB,IAAI,CAAC,OAAO,CAAiB,IAAI,CAAC,UAAU,CAAG,IAAI,CAAC,OAAO,CAC1E,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,OAAO,EAAI,IAAI,CAAC,UAAU,CAE1C,GAA0B,MAAlB,AAAwB,EAAnB,SAAS,GACxB,IAAI,CAAC,UAAU,CAAG,EAAK,SAAS,AAAT,CAE3B,CAMA,SAAS,EAAO,CAAM,CAAE,CAAQ,EAC1B,GACF,OADY,CACJ,QAAQ,CAAC,GAId,EAAO,OAAO,EAAE,CAIrB,EAAO,OAAO,CAAC,KAAK,GACpB,EAAO,OAAO,CAAG,KACnB,CAoHA,SAAS,EAAY,CAAM,CAAE,CAAI,MAhBT,EAiBA,IAjBM,AAiBF,EAAQ,GAjBJ,EAiBW,EAbzC,EAJoC,CACd,UAAlB,AAA4B,OAArB,GACT,GAAS,OAAO,IAAI,CAAC,EAAA,EAEnB,CAAC,CAAC,aAAkB,MAAA,CAAM,CAC5B,EAD+B,IACzB,AAAI,UAAU,0BAGtB,IAAI,EAAY,EAAO,gBAAgB,CAKvC,OAJiB,MAAb,AAAmB,IACrB,EAAY,EAAK,QAAA,AAAQ,EAGpB,EAAO,aAAa,CAAC,EAAQ,EAKtC,CApHA,EAAQ,SAAS,CAAC,aAAa,CAAG,SAAU,CAAK,CAAE,CAAS,CAAE,CAAO,MAe/D,EA+CA,EA7DJ,GAAuB,YAAY,AAA/B,OAAO,EACT,OAAO,EAAK,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAE,EAAO,EAAW,GAGjE,IAAI,EAAO,IAAI,CAEX,EAAgB,GAAS,EAAM,MAAM,CACrC,EAAiB,IAAI,CAAC,UAAU,CAAG,IAAI,CAAC,OAAO,CAC/C,EAAgB,IAAI,CAAC,UAAU,CAC/B,EAAQ,EAER,EAAU,EAAE,CACZ,EAAQ,EAGZ,IAAI,CAAC,EAAE,CAAC,QAAS,SAAU,CAAG,EAC5B,EAAQ,CACV,GA2CA,EAAO,IAAI,CAAC,OAAO,CAAE,uBAErB,GAAG,AAWD,EAAM,CAVN,EAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAC1B,EACA,EACA,EACA,EACA,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,OAAO,CACZ,EAAA,GACC,AAEU,IAAI,CAAC,KAFL,MAEgB,OACtB,CAAC,IAAI,CAAC,SAAS,EAvDxB,AAuD4B,SAvDnB,AAAY,CAAY,CAAE,CAAa,EAC9C,GAAI,EAAK,SAAS,CAChB,CADkB,MAIpB,IAAI,EAAO,EAAiB,EAG5B,GAFA,EAAO,GAAQ,EAAG,2BAEd,EAAO,EAAG,CACZ,IAAI,EAAM,EAAK,OAAO,CAAC,KAAK,CAAC,EAAK,OAAO,CAAE,EAAK,OAAO,CAAG,GAW1D,GAVA,EAAK,OAAO,EAAI,EAEZ,EAAI,MAAM,CAAG,IACf,EAAM,EAAI,KAAK,CAAC,CADc,CACX,EAAA,EAGrB,EAAQ,IAAI,CAAC,GACb,GAAS,EAAI,MAAM,CAGf,AAAkB,GAAG,CAFzB,GAAiB,EAAI,MAAA,AAAM,EAGzB,OAAO,CAEX,OAQA,CANsB,IAAlB,GAAuB,EAAK,OAAO,EAAI,EAAK,UAAA,AAAU,EAAE,EAC1D,EAAiB,EAAK,UAAU,CAChC,EAAK,OAAO,CAAG,EACf,EAAK,OAAO,CAAG,OAAO,WAAW,CAAC,EAAK,UAAU,GAG7B,GAAG,CAArB,IACF,GAAS,EAAgB,EACzB,EAAgB,GAET,EAIX,EAgBwC,CAAG,CAAC,EAAE,CAAE,CAAG,CAAC,EAAE,EAAG,AAEzD,GAAI,IAAI,CAAC,SAAS,CAChB,CADkB,KACZ,EAGR,GAAI,GAAS,EAEX,MADA,EAAO,EADgB,EACZ,EACL,AAAI,WACR,yDACE,EAAW,QAAQ,CAAC,IACpB,UAIN,IAAI,EAAM,OAAO,MAAM,CAAC,EAAS,GAGjC,OAFA,EAAO,IAAI,EAEJ,CACT,EAEA,EAAK,QAAQ,CAAC,EAAS,EAAK,OAAO,EAsBnC,EAAO,OAAO,CAAG,EAAU,EAC3B,EAAQ,OAAO,CAAG,EAClB,EAAQ,aAAa,CA1IrB,EA0IwB,OA1ID,AAAd,CAAkB,EACzB,OAAO,IAAI,EAAQ,EACrB,EAyIA,EAAQ,WAAW,CAAG,gCCrKtB,IAAI,EAAc,EAAO,OAAO,CAAG,SAAU,CAAM,EACjD,IAAI,CAAC,OAAO,CAAG,EACf,IAAI,CAAC,MAAM,CAAG,EAAE,AAClB,EAEA,EAAW,SAAS,CAAC,IAAI,CAAG,SAAU,CAAM,CAAE,CAAQ,EACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CACf,OAAQ,KAAK,GAAG,CAAC,GACjB,UAAW,EAAS,EACpB,KAAM,CACR,EACF,EAEA,EAAW,SAAS,CAAC,OAAO,CAAG,WAE7B,KAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,GAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CACpD,IAAI,EAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAEzB,GACE,IAAI,CAAC,OAAO,CAAC,MAAM,GAClB,CAAD,GAAK,CAAC,OAAO,CAAC,MAAM,EAAI,EAAK,MAAM,EAAI,EAAK,SAAA,AAAS,EACrD,CAEA,IAAI,CAAC,MAAM,CAAC,KAAK,GAEjB,CAFqB,GAEjB,EAAM,IAAI,CAFiB,AAEhB,OAAO,CAEtB,IAAI,CAAC,OAAO,CAAG,EAAI,KAAK,CAAC,EAAK,MAAM,EAEpC,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,EAAI,KAAK,CAAC,EAAG,EAAK,MAAM,EAC/C,MACE,CADK,IAGT,CAEA,GAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,EACvB,CAD0B,KACpB,AAAI,MAAM,0DAGlB,GAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAG,EACxB,CAD2B,KACrB,AAAI,MAAM,wCAEpB,gCC1CA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEJ,EAAQ,OAAO,CAAG,SAAU,CAAQ,CAAE,CAAU,EAC9C,IAAI,EAAa,EAAE,CACf,EAAS,IAAI,EAAW,GAY5B,OAHA,AARa,IAAI,EAAO,EAAY,CAClC,KAAM,EAAO,IAAI,CAAC,IAAI,CAAC,GACvB,MAAO,SAAU,CAAU,EACzB,EAAW,IAAI,CAAC,EAClB,EACA,SAAU,WAAa,CACzB,GAEO,KAAK,GACZ,EAAO,OAAO,GAEP,OAAO,MAAM,CAAC,EACvB,+BClBA,IAAI,GAAc,EACd,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,MACA,CAAC,EAAK,WAAW,EAAE,CACrB,GAAc,CAAA,EAEhB,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEJ,EAAO,OAAO,CAAG,SAAU,CAAM,CAAE,CAAO,MAOpC,EAKA,EAiBA,EAkCA,EA9DJ,GAAI,CAAC,EACH,MAAM,AAAI,KADM,CAEd,+FA+BJ,IAAI,EAAkB,EAAE,CAKpB,EAAS,IAAI,EAAW,GAgB5B,GAda,AAWb,IAXiB,EAAO,EAAS,CAC/B,KAAM,EAAO,IAAI,CAAC,IAAI,CAAC,GACvB,MAnCF,CAmCS,QAnCA,AAAY,CAAK,EACxB,EAAM,CACR,EAkCE,SA/BF,CA+BY,QA/BH,AAAe,CAAU,EAChC,EAAW,CACb,EA8BE,MAfF,CAeS,QAfA,AAAY,CAAO,EAC1B,EAAQ,CACV,EAcE,QAzBF,CAyBW,QAzBF,AAAc,CAAO,EAC5B,EAAS,OAAO,CAAG,CACrB,EAwBE,WA9BF,CA8Bc,QA9BL,AAAiB,CAAU,EAClC,EAAS,UAAU,CAAG,CACxB,EA6BE,YAbF,CAae,QAbN,AAAkB,CAAY,EACrC,EAAgB,IAAI,CAAC,EACvB,EAYE,mBAxBF,CAwBsB,QAxBb,EACP,EAAS,KAAK,EAAG,CACnB,CAuBA,GAEO,KAAK,GACZ,EAAO,OAAO,GAEV,EACF,GADO,GACD,EAIR,IAAI,EAAc,OAAO,MAAM,CAAC,GAIhC,GAHA,EAAgB,MAAM,CAAG,EAGrB,EAAS,SAAS,CACpB,CADsB,CACP,EAAK,WAAW,CAAC,OAC3B,CAGL,IAAI,EADF,AACc,EADZ,EAAS,KAAK,CAAG,EAAS,GAAG,CAAG,EAAS,KAAK,CAAG,IAAM,CAAC,EAAI,EACtC,EAAS,MAAM,CACzC,EAAe,EAAY,EAAa,CACtC,UAAW,EACX,UAAW,CACb,EACF,CAGA,GAFA,EAAc,KAEV,CAAC,GAAgB,CAAC,EAAa,MAAM,CACvC,CADyC,KACnC,AAAI,MAAM,2CAGlB,IAAI,EAAiB,EAAW,OAAO,CAAC,EAAc,GACtD,EAAc,KAEd,IAAI,EAAa,EAAU,YAAY,CAAC,EAAgB,GACxD,EAAiB,KAEjB,IAAI,EAAuB,EACzB,EACA,EACA,EAAQ,WAAW,EAMrB,OAHA,EAAS,IAAI,CAAG,EAChB,EAAS,KAAK,CAAG,GAAS,EAEnB,CACT,gCC7GA,IAAI,GAAc,EACd,EAAA,EAAA,CAAA,CAAA,KACA,CAAC,EAAK,WAAW,EAAE,CACrB,GAAc,CAAA,EAEhB,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MAEJ,GAAO,OAAO,CAAG,SAAU,CAAQ,CAAE,CAAG,EACtC,GAAI,CAAC,EACH,MAAM,AAAI,KADM,CAEd,+FAMJ,IAAI,EAAS,IAAI,EAFH,GAAO,CAAC,CAEE,EAEpB,EAAS,EAAE,CAGf,EAAO,IAAI,CAAC,OAAO,IAAI,CAAC,EAAU,aAAa,GAG/C,EAAO,IAAI,CAAC,EAAO,QAAQ,CAAC,EAAS,KAAK,CAAE,EAAS,MAAM,GAEvD,EAAS,KAAK,EAAE,AAClB,EAAO,IAAI,CAAC,EAAO,QAAQ,CAAC,EAAS,KAAK,GAG5C,IAAI,EAAe,EAAO,UAAU,CAClC,EAAS,IAAI,CACb,EAAS,KAAK,CACd,EAAS,MAAM,EAIb,EAAiB,EAAK,WAAW,CACnC,EACA,EAAO,iBAAiB,IAI1B,GAFA,EAAe,KAEX,CAAC,GAAkB,CAAC,EAAe,MAAM,CAC3C,CAD6C,KACvC,AAAI,MAAM,8CAOlB,OALA,EAAO,IAAI,CAAC,EAAO,QAAQ,CAAC,IAG5B,EAAO,IAAI,CAAC,EAAO,QAAQ,IAEpB,OAAO,MAAM,CAAC,EACvB,gCCrDA,IAAI,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEJ,EAAQ,IAAI,CAAG,SAAU,CAAM,CAAE,CAAO,EACtC,OAAO,EAAM,EAAQ,GAAW,CAAC,EACnC,EAEA,EAAQ,KAAK,CAAG,SAAU,CAAG,CAAE,CAAO,EACpC,OAAO,EAAK,EAAK,EACnB,gCCTA,IAAI,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAO,EAAQ,GAAG,CAAG,SAAU,CAAO,EACxC,EAAO,IAAI,CAAC,IAAI,EAEhB,EAAU,GAAW,CAAC,EAGtB,CAHyB,GAGrB,CAAC,KAAK,CAAmB,EAAhB,EAAQ,KAAK,CAC1B,IAAI,CAAC,MAAM,CAAoB,EAAjB,EAAQ,IAJ2C,EAIrC,CAE5B,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,KAAK,CAAG,GAAK,IAAI,CAAC,MAAM,CAAG,EAC5B,OAAO,KAAK,CAAC,EAAI,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,MAAM,EACzC,KAEF,EAAQ,IAAI,EAAI,IAAI,CAAC,IAAI,EAAE,AAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAGjB,IAAI,CAAC,KAAK,CAAG,EACb,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,QAAQ,CAAG,GAEhC,IAAI,CAAC,OAAO,CAAG,IAAI,EAAO,GAE1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,UAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,GACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,CACb,SACA,CAAA,SAAU,CAAI,EACZ,IAAI,CAAC,IAAI,CAAG,EACZ,IAAI,CAAC,IAAI,CAAC,SAAU,GACtB,CAAA,CAAE,IAAI,CAAC,IAAI,GAGb,IAAI,CAAC,OAAO,CAAG,IAAI,EAAO,GAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,SAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,QAC5C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,GACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,SAChD,EACA,EAAK,QAAQ,CAAC,EAAK,GAEnB,EAAI,IAAI,CAAG,EAEX,EAAI,SAAS,CAAC,IAAI,CAAG,kBACf,AAAC,IAAI,CAAC,IAAI,EAAK,EAAD,EAAK,CAAC,IAAI,CAAC,MAAM,CAKnC,CALqC,OAK7B,QAAQ,CACd,CAAA,WACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,EAClE,CAAA,CAAE,IAAI,CAAC,IAAI,GAPX,IAAI,CAAC,IAAI,CAAC,QAAS,oBACZ,IAAI,AAUf,EAEA,EAAI,SAAS,CAAC,KAAK,CAAG,SAAU,CAAI,CAAE,CAAQ,EAC5C,GAAI,EAAU,CACZ,IAAI,EAAU,EAEd,EAAW,CAAA,SAAU,CAAU,EAC7B,IAAI,CAAC,cAAc,CAAC,QAAS,GAE7B,IAAI,CAAC,IAAI,CAAG,EACZ,EAAS,KAAM,IAAI,EACrB,CAAA,CAAE,IAAI,CAAC,IAAI,EAEX,EAAU,CAAA,SAAU,CAAG,EACrB,IAAI,CAAC,cAAc,CAAC,SAAU,GAE9B,EAAS,EAAK,KAChB,CAAA,EAAE,IAAI,CAAC,IAAI,EAEX,IAAI,CAAC,IAAI,CAAC,SAAU,GACpB,IAAI,CAAC,IAAI,CAAC,QAAS,EACrB,CAGA,OADA,IAAI,CAAC,GAAG,CAAC,GACF,IAAI,AACb,EAEA,EAAI,SAAS,CAAC,KAAK,CAAG,SAAU,CAAI,EAElC,OADA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GACZ,EACT,EAEA,EAAI,SAAS,CAAC,GAAG,CAAG,SAAU,CAAI,EAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EACnB,EAEA,EAAI,SAAS,CAAC,SAAS,CAAG,SAAU,CAAQ,EAC1C,IAAI,CAAC,KAAK,CAAG,EAAS,KAAK,CAC3B,IAAI,CAAC,MAAM,CAAG,EAAS,MAAM,CAE7B,IAAI,CAAC,IAAI,CAAC,WAAY,EACxB,EAEA,EAAI,SAAS,CAAC,MAAM,CAAG,SAAU,CAAK,EACpC,IAAI,CAAC,KAAK,CAAG,CACf,EAEA,EAAI,SAAS,CAAC,YAAY,CAAG,WACvB,AAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAK,EAAD,EAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,AACpD,IAAI,CAAC,IAAI,CAAC,QAEd,EAEA,EAAI,MAAM,CAAG,SAAU,CAAG,CAAE,CAAG,CAAE,CAAI,CAAE,CAAI,CAAE,CAAK,CAAE,CAAM,CAAE,CAAM,CAAE,CAAM,EAYxE,GAPA,GAAQ,EACR,GAAS,EACT,GAAU,EACV,GAAU,EACV,GAAU,EAIR,CATF,IAAQ,EASC,EAAI,KAAK,EAChB,EAAO,EAAI,MAAM,EACjB,EAAO,EAAQ,EAAI,KAAK,EACxB,EAAO,EAAS,EAAI,MAAM,CAE1B,CADA,KACM,AAAI,MAAM,gCAGlB,GACE,EAAS,EAAI,KAAK,EAClB,EAAS,EAAI,MAAM,EACnB,EAAS,EAAQ,EAAI,KAAK,EAC1B,EAAS,EAAS,EAAI,MAAM,CAE5B,CADA,KACM,AAAI,MAAM,gCAGlB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAC1B,AAD+B,EAC3B,IAAI,CAAC,IAAI,CACX,EAAI,IAAI,CACP,CAAC,GAAS,CAAC,CAAI,EAAI,KAAK,CAAG,GAAW,EACtC,CAAC,EAAO,CAAC,EAAI,EAAI,KAAK,CAAG,GAAS,EAClC,CAAC,GAAO,CAAC,CAAI,EAAI,KAAK,CAAG,EAAO,GAAU,EAGjD,EAEA,EAAI,SAAS,CAAC,MAAM,CAAG,SACrB,CAAG,CACH,CAAI,CACJ,CAAI,CACJ,CAAK,CACL,CAAM,CACN,CAAM,CACN,CAAM,EAKN,OADA,EAAI,MAAM,CAAC,IAAI,CAAE,EAAK,EAAM,EAAM,EAAO,EAAQ,EAAQ,GAClD,IAAI,AACb,EAEA,EAAI,WAAW,CAAG,SAAU,CAAG,EAC7B,GAAI,EAAI,KAAK,CAAE,CACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAAK,AACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,KAAK,CAAE,IAAK,CAClC,IAAI,EAAO,EAAI,KAAK,CAAG,EAAI,GAAM,EAEjC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,IAAI,EAAS,EAAI,IAAI,CAAC,EAAM,EAAE,CAAG,IACjC,EAAS,KAAK,GAAG,CAAC,EAAQ,EAAI,IAAM,EAAI,KAAK,EAC7C,EAAI,IAAI,CAAC,EAAM,EAAE,CAAG,KAAK,KAAK,CAAU,IAAT,EACjC,CACF,CAEF,EAAI,KAAK,CAAG,CACd,CACF,EAEA,EAAI,SAAS,CAAC,WAAW,CAAG,WAC1B,EAAI,WAAW,CAAC,IAAI,CACtB","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}