studiograph 1.3.48-next.13 → 1.3.48-next.130

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 (1008) hide show
  1. package/README.md +7 -7
  2. package/dist/agent/agent-pool.d.ts +14 -1
  3. package/dist/agent/agent-pool.js +37 -12
  4. package/dist/agent/agent-pool.js.map +1 -1
  5. package/dist/agent/followups.d.ts +34 -0
  6. package/dist/agent/followups.js +52 -0
  7. package/dist/agent/followups.js.map +1 -0
  8. package/dist/agent/orchestrator.d.ts +29 -2
  9. package/dist/agent/orchestrator.js +239 -38
  10. package/dist/agent/orchestrator.js.map +1 -1
  11. package/dist/agent/prompts/entity-types-section.d.ts +30 -0
  12. package/dist/agent/prompts/entity-types-section.js +83 -0
  13. package/dist/agent/prompts/entity-types-section.js.map +1 -0
  14. package/dist/agent/prompts/system.md +106 -47
  15. package/dist/agent/skill-loader.d.ts +30 -17
  16. package/dist/agent/skill-loader.js +63 -30
  17. package/dist/agent/skill-loader.js.map +1 -1
  18. package/dist/agent/skills/entity-schema.md +79 -343
  19. package/dist/agent/skills/interview/entity-templates.md +38 -37
  20. package/dist/agent/skills/interview/question-domains.md +54 -49
  21. package/dist/agent/skills/interview/skill.md +89 -14
  22. package/dist/agent/tools/capture-tools.d.ts +31 -0
  23. package/dist/agent/tools/capture-tools.js +40 -0
  24. package/dist/agent/tools/capture-tools.js.map +1 -0
  25. package/dist/agent/tools/folder-tools.d.ts +47 -0
  26. package/dist/agent/tools/folder-tools.js +249 -0
  27. package/dist/agent/tools/folder-tools.js.map +1 -0
  28. package/dist/agent/tools/fs-tools.d.ts +6 -5
  29. package/dist/agent/tools/fs-tools.js +5 -5
  30. package/dist/agent/tools/fs-tools.js.map +1 -1
  31. package/dist/agent/tools/graph-tools.d.ts +25 -72
  32. package/dist/agent/tools/graph-tools.js +362 -366
  33. package/dist/agent/tools/graph-tools.js.map +1 -1
  34. package/dist/agent/tools/history-tools.d.ts +95 -0
  35. package/dist/agent/tools/history-tools.js +461 -0
  36. package/dist/agent/tools/history-tools.js.map +1 -0
  37. package/dist/agent/tools/load-skill.d.ts +6 -5
  38. package/dist/agent/tools/load-skill.js +3 -3
  39. package/dist/agent/tools/load-skill.js.map +1 -1
  40. package/dist/agent/tools/message-tools.d.ts +13 -11
  41. package/dist/agent/tools/message-tools.js +31 -39
  42. package/dist/agent/tools/message-tools.js.map +1 -1
  43. package/dist/agent/tools/ops-tools.d.ts +5 -4
  44. package/dist/agent/tools/ops-tools.js +99 -212
  45. package/dist/agent/tools/ops-tools.js.map +1 -1
  46. package/dist/agent/tools/permission-tools.d.ts +39 -16
  47. package/dist/agent/tools/permission-tools.js +66 -41
  48. package/dist/agent/tools/permission-tools.js.map +1 -1
  49. package/dist/agent/tools/tool-loader.js +5 -4
  50. package/dist/agent/tools/tool-loader.js.map +1 -1
  51. package/dist/agent/tools/web-tools.js +58 -9
  52. package/dist/agent/tools/web-tools.js.map +1 -1
  53. package/dist/cli/commands/about.d.ts +1 -0
  54. package/dist/cli/commands/about.js +55 -3
  55. package/dist/cli/commands/about.js.map +1 -1
  56. package/dist/cli/commands/audit.d.ts +21 -0
  57. package/dist/cli/commands/audit.js +174 -0
  58. package/dist/cli/commands/audit.js.map +1 -0
  59. package/dist/cli/commands/clear.d.ts +5 -0
  60. package/dist/cli/commands/clear.js +144 -1
  61. package/dist/cli/commands/clear.js.map +1 -1
  62. package/dist/cli/commands/clone.d.ts +1 -1
  63. package/dist/cli/commands/clone.js +47 -12
  64. package/dist/cli/commands/clone.js.map +1 -1
  65. package/dist/cli/commands/deploy.js +79 -18
  66. package/dist/cli/commands/deploy.js.map +1 -1
  67. package/dist/cli/commands/folder.d.ts +11 -0
  68. package/dist/cli/commands/folder.js +186 -0
  69. package/dist/cli/commands/folder.js.map +1 -0
  70. package/dist/cli/commands/index.js +2 -2
  71. package/dist/cli/commands/index.js.map +1 -1
  72. package/dist/cli/commands/init.js +16 -14
  73. package/dist/cli/commands/init.js.map +1 -1
  74. package/dist/cli/commands/join.d.ts +1 -1
  75. package/dist/cli/commands/join.js +26 -14
  76. package/dist/cli/commands/join.js.map +1 -1
  77. package/dist/cli/commands/mcp.js +12 -4
  78. package/dist/cli/commands/mcp.js.map +1 -1
  79. package/dist/cli/commands/r2.d.ts +3 -0
  80. package/dist/cli/commands/r2.js +196 -1
  81. package/dist/cli/commands/r2.js.map +1 -1
  82. package/dist/cli/commands/redeploy.js +41 -1
  83. package/dist/cli/commands/redeploy.js.map +1 -1
  84. package/dist/cli/commands/secrets.d.ts +23 -0
  85. package/dist/cli/commands/secrets.js +256 -0
  86. package/dist/cli/commands/secrets.js.map +1 -0
  87. package/dist/cli/commands/serve.js +143 -24
  88. package/dist/cli/commands/serve.js.map +1 -1
  89. package/dist/cli/commands/start.js +140 -71
  90. package/dist/cli/commands/start.js.map +1 -1
  91. package/dist/cli/commands/sync.d.ts +1 -1
  92. package/dist/cli/commands/sync.js +509 -163
  93. package/dist/cli/commands/sync.js.map +1 -1
  94. package/dist/cli/commands/user.js +8 -24
  95. package/dist/cli/commands/user.js.map +1 -1
  96. package/dist/cli/index.js +8 -7
  97. package/dist/cli/index.js.map +1 -1
  98. package/dist/cli/railway-provisioning.d.ts +53 -0
  99. package/dist/cli/railway-provisioning.js +85 -0
  100. package/dist/cli/railway-provisioning.js.map +1 -0
  101. package/dist/cli/scaffolding.d.ts +4 -2
  102. package/dist/cli/scaffolding.js +42 -47
  103. package/dist/cli/scaffolding.js.map +1 -1
  104. package/dist/cli/setup-wizard.d.ts +30 -49
  105. package/dist/cli/setup-wizard.js +35 -38
  106. package/dist/cli/setup-wizard.js.map +1 -1
  107. package/dist/core/accent-palette.d.ts +22 -0
  108. package/dist/core/accent-palette.js +47 -0
  109. package/dist/core/accent-palette.js.map +1 -0
  110. package/dist/core/entity-body-templates.d.ts +21 -0
  111. package/dist/core/entity-body-templates.js +48 -0
  112. package/dist/core/entity-body-templates.js.map +1 -0
  113. package/dist/core/entity-types-catalog.d.ts +65 -0
  114. package/dist/core/entity-types-catalog.js +136 -0
  115. package/dist/core/entity-types-catalog.js.map +1 -0
  116. package/dist/core/feature-flags.d.ts +22 -0
  117. package/dist/core/feature-flags.js +15 -0
  118. package/dist/core/feature-flags.js.map +1 -0
  119. package/dist/core/features.d.ts +16 -0
  120. package/dist/core/features.js +48 -0
  121. package/dist/core/features.js.map +1 -0
  122. package/dist/core/folder-paths.d.ts +41 -0
  123. package/dist/core/folder-paths.js +95 -0
  124. package/dist/core/folder-paths.js.map +1 -0
  125. package/dist/core/folder-sidecar.d.ts +16 -0
  126. package/dist/core/folder-sidecar.js +45 -0
  127. package/dist/core/folder-sidecar.js.map +1 -0
  128. package/dist/core/graph.d.ts +471 -19
  129. package/dist/core/graph.js +1411 -284
  130. package/dist/core/graph.js.map +1 -1
  131. package/dist/core/schema-registry.js +1 -19
  132. package/dist/core/schema-registry.js.map +1 -1
  133. package/dist/core/schemas/connector.d.ts +67 -0
  134. package/dist/core/schemas/connector.js +100 -0
  135. package/dist/core/schemas/connector.js.map +1 -0
  136. package/dist/core/schemas/workspace.d.ts +122 -0
  137. package/dist/core/schemas/workspace.js +211 -0
  138. package/dist/core/schemas/workspace.js.map +1 -0
  139. package/dist/core/secrets/SecretStore.d.ts +77 -0
  140. package/dist/core/secrets/SecretStore.js +13 -0
  141. package/dist/core/secrets/SecretStore.js.map +1 -0
  142. package/dist/core/secrets/SettingsResolver.d.ts +54 -0
  143. package/dist/core/secrets/SettingsResolver.js +80 -0
  144. package/dist/core/secrets/SettingsResolver.js.map +1 -0
  145. package/dist/core/secrets/SettingsStore.d.ts +30 -0
  146. package/dist/core/secrets/SettingsStore.js +9 -0
  147. package/dist/core/secrets/SettingsStore.js.map +1 -0
  148. package/dist/core/secrets/SqliteEncryptedStore.d.ts +78 -0
  149. package/dist/core/secrets/SqliteEncryptedStore.js +581 -0
  150. package/dist/core/secrets/SqliteEncryptedStore.js.map +1 -0
  151. package/dist/core/secrets/audit.d.ts +36 -0
  152. package/dist/core/secrets/audit.js +60 -0
  153. package/dist/core/secrets/audit.js.map +1 -0
  154. package/dist/core/secrets/auth-db-migration.d.ts +129 -0
  155. package/dist/core/secrets/auth-db-migration.js +653 -0
  156. package/dist/core/secrets/auth-db-migration.js.map +1 -0
  157. package/dist/core/secrets/bundle.d.ts +141 -0
  158. package/dist/core/secrets/bundle.js +435 -0
  159. package/dist/core/secrets/bundle.js.map +1 -0
  160. package/dist/core/secrets/dual-write.d.ts +76 -0
  161. package/dist/core/secrets/dual-write.js +236 -0
  162. package/dist/core/secrets/dual-write.js.map +1 -0
  163. package/dist/core/secrets/encryption.d.ts +44 -0
  164. package/dist/core/secrets/encryption.js +97 -0
  165. package/dist/core/secrets/encryption.js.map +1 -0
  166. package/dist/core/secrets/importer.d.ts +94 -0
  167. package/dist/core/secrets/importer.js +319 -0
  168. package/dist/core/secrets/importer.js.map +1 -0
  169. package/dist/core/secrets/index.d.ts +35 -0
  170. package/dist/core/secrets/index.js +59 -0
  171. package/dist/core/secrets/index.js.map +1 -0
  172. package/dist/core/secrets/master-key.d.ts +38 -0
  173. package/dist/core/secrets/master-key.js +122 -0
  174. package/dist/core/secrets/master-key.js.map +1 -0
  175. package/dist/core/secrets/probes/anthropic.d.ts +98 -0
  176. package/dist/core/secrets/probes/anthropic.js +300 -0
  177. package/dist/core/secrets/probes/anthropic.js.map +1 -0
  178. package/dist/core/secrets/probes/brave.d.ts +9 -0
  179. package/dist/core/secrets/probes/brave.js +15 -0
  180. package/dist/core/secrets/probes/brave.js.map +1 -0
  181. package/dist/core/secrets/probes/r2.d.ts +15 -0
  182. package/dist/core/secrets/probes/r2.js +14 -0
  183. package/dist/core/secrets/probes/r2.js.map +1 -0
  184. package/dist/core/secrets/probes/voyage.d.ts +13 -0
  185. package/dist/core/secrets/probes/voyage.js +52 -0
  186. package/dist/core/secrets/probes/voyage.js.map +1 -0
  187. package/dist/core/secrets/read-flip.d.ts +59 -0
  188. package/dist/core/secrets/read-flip.js +87 -0
  189. package/dist/core/secrets/read-flip.js.map +1 -0
  190. package/dist/core/secrets/registry.d.ts +188 -0
  191. package/dist/core/secrets/registry.js +539 -0
  192. package/dist/core/secrets/registry.js.map +1 -0
  193. package/dist/core/types.d.ts +70 -483
  194. package/dist/core/types.js +6 -3
  195. package/dist/core/types.js.map +1 -1
  196. package/dist/core/user-config.d.ts +52 -12
  197. package/dist/core/user-config.js +119 -14
  198. package/dist/core/user-config.js.map +1 -1
  199. package/dist/core/validation.d.ts +603 -1409
  200. package/dist/core/validation.js +248 -146
  201. package/dist/core/validation.js.map +1 -1
  202. package/dist/core/workspace-manager.d.ts +35 -14
  203. package/dist/core/workspace-manager.js +105 -56
  204. package/dist/core/workspace-manager.js.map +1 -1
  205. package/dist/core/workspace.d.ts +19 -5
  206. package/dist/core/workspace.js +66 -39
  207. package/dist/core/workspace.js.map +1 -1
  208. package/dist/mcp/connector-manager.d.ts +16 -1
  209. package/dist/mcp/connector-manager.js +44 -5
  210. package/dist/mcp/connector-manager.js.map +1 -1
  211. package/dist/mcp/server.d.ts +11 -3
  212. package/dist/mcp/server.js +30 -5
  213. package/dist/mcp/server.js.map +1 -1
  214. package/dist/mcp/tools.d.ts +27 -2
  215. package/dist/mcp/tools.js +544 -113
  216. package/dist/mcp/tools.js.map +1 -1
  217. package/dist/server/__tests__/helpers/graph-api.d.ts +18 -0
  218. package/dist/server/__tests__/helpers/graph-api.js +16 -0
  219. package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
  220. package/dist/server/commit-audit.d.ts +26 -0
  221. package/dist/server/commit-audit.js +30 -0
  222. package/dist/server/commit-audit.js.map +1 -0
  223. package/dist/server/index.d.ts +14 -3
  224. package/dist/server/index.js +388 -177
  225. package/dist/server/index.js.map +1 -1
  226. package/dist/server/middleware/sanitize.d.ts +46 -0
  227. package/dist/server/middleware/sanitize.js +171 -0
  228. package/dist/server/middleware/sanitize.js.map +1 -0
  229. package/dist/server/routes/asset-api.js +217 -65
  230. package/dist/server/routes/asset-api.js.map +1 -1
  231. package/dist/server/routes/audit-api.d.ts +24 -0
  232. package/dist/server/routes/audit-api.js +117 -0
  233. package/dist/server/routes/audit-api.js.map +1 -0
  234. package/dist/server/routes/auth-api.js +220 -44
  235. package/dist/server/routes/auth-api.js.map +1 -1
  236. package/dist/server/routes/capture-api.d.ts +10 -3
  237. package/dist/server/routes/capture-api.js +180 -24
  238. package/dist/server/routes/capture-api.js.map +1 -1
  239. package/dist/server/routes/chat.d.ts +4 -1
  240. package/dist/server/routes/chat.js +178 -46
  241. package/dist/server/routes/chat.js.map +1 -1
  242. package/dist/server/routes/config-api.d.ts +21 -0
  243. package/dist/server/routes/config-api.js +256 -0
  244. package/dist/server/routes/config-api.js.map +1 -0
  245. package/dist/server/routes/connectors-api.js +24 -18
  246. package/dist/server/routes/connectors-api.js.map +1 -1
  247. package/dist/server/routes/event-ingest-api.d.ts +15 -0
  248. package/dist/server/routes/event-ingest-api.js +125 -0
  249. package/dist/server/routes/event-ingest-api.js.map +1 -0
  250. package/dist/server/routes/features-api.d.ts +19 -0
  251. package/dist/server/routes/features-api.js +28 -0
  252. package/dist/server/routes/features-api.js.map +1 -0
  253. package/dist/server/routes/git-http.d.ts +2 -2
  254. package/dist/server/routes/git-http.js +69 -34
  255. package/dist/server/routes/git-http.js.map +1 -1
  256. package/dist/server/routes/graph-api-access.d.ts +35 -0
  257. package/dist/server/routes/graph-api-access.js +93 -0
  258. package/dist/server/routes/graph-api-access.js.map +1 -0
  259. package/dist/server/routes/graph-api.d.ts +3 -2
  260. package/dist/server/routes/graph-api.js +1014 -315
  261. package/dist/server/routes/graph-api.js.map +1 -1
  262. package/dist/server/routes/health.d.ts +18 -0
  263. package/dist/server/routes/health.js +74 -0
  264. package/dist/server/routes/health.js.map +1 -0
  265. package/dist/server/routes/insights-api.js +156 -33
  266. package/dist/server/routes/insights-api.js.map +1 -1
  267. package/dist/server/routes/mcp.d.ts +6 -3
  268. package/dist/server/routes/mcp.js +22 -6
  269. package/dist/server/routes/mcp.js.map +1 -1
  270. package/dist/server/routes/messages-api.d.ts +3 -3
  271. package/dist/server/routes/messages-api.js +308 -120
  272. package/dist/server/routes/messages-api.js.map +1 -1
  273. package/dist/server/routes/permissions-api.d.ts +9 -2
  274. package/dist/server/routes/permissions-api.js +87 -31
  275. package/dist/server/routes/permissions-api.js.map +1 -1
  276. package/dist/server/routes/secrets-api.d.ts +36 -0
  277. package/dist/server/routes/secrets-api.js +303 -0
  278. package/dist/server/routes/secrets-api.js.map +1 -0
  279. package/dist/server/routes/settings-api.d.ts +29 -0
  280. package/dist/server/routes/settings-api.js +177 -0
  281. package/dist/server/routes/settings-api.js.map +1 -0
  282. package/dist/server/routes/workspace-api.d.ts +2 -1
  283. package/dist/server/routes/workspace-api.js +131 -20
  284. package/dist/server/routes/workspace-api.js.map +1 -1
  285. package/dist/server/routes/ws.d.ts +3 -2
  286. package/dist/server/routes/ws.js +68 -18
  287. package/dist/server/routes/ws.js.map +1 -1
  288. package/dist/server/session-manager.d.ts +48 -5
  289. package/dist/server/session-manager.js +175 -11
  290. package/dist/server/session-manager.js.map +1 -1
  291. package/dist/server/ws-hub.d.ts +134 -22
  292. package/dist/server/ws-hub.js +0 -0
  293. package/dist/server/ws-hub.js.map +1 -1
  294. package/dist/server/yjs-manager.d.ts +107 -7
  295. package/dist/server/yjs-manager.js +444 -38
  296. package/dist/server/yjs-manager.js.map +1 -1
  297. package/dist/server/yjs-persistence.d.ts +143 -0
  298. package/dist/server/yjs-persistence.js +543 -0
  299. package/dist/server/yjs-persistence.js.map +1 -0
  300. package/dist/server/yjs-text-diff.d.ts +32 -0
  301. package/dist/server/yjs-text-diff.js +61 -0
  302. package/dist/server/yjs-text-diff.js.map +1 -0
  303. package/dist/services/access-control.d.ts +53 -0
  304. package/dist/services/access-control.js +132 -0
  305. package/dist/services/access-control.js.map +1 -0
  306. package/dist/services/asset-upload-service.d.ts +53 -0
  307. package/dist/services/asset-upload-service.js +200 -0
  308. package/dist/services/asset-upload-service.js.map +1 -0
  309. package/dist/services/assets/base.d.ts +38 -0
  310. package/dist/services/assets/base.js +55 -0
  311. package/dist/services/assets/base.js.map +1 -1
  312. package/dist/services/assets/index.d.ts +41 -1
  313. package/dist/services/assets/index.js +65 -0
  314. package/dist/services/assets/index.js.map +1 -1
  315. package/dist/services/assets/local.d.ts +7 -1
  316. package/dist/services/assets/local.js +83 -0
  317. package/dist/services/assets/local.js.map +1 -1
  318. package/dist/services/assets/r2.d.ts +28 -1
  319. package/dist/services/assets/r2.js +75 -1
  320. package/dist/services/assets/r2.js.map +1 -1
  321. package/dist/services/auth-service.d.ts +184 -36
  322. package/dist/services/auth-service.js +763 -138
  323. package/dist/services/auth-service.js.map +1 -1
  324. package/dist/services/briefing.d.ts +1 -1
  325. package/dist/services/briefing.js +12 -35
  326. package/dist/services/briefing.js.map +1 -1
  327. package/dist/services/event-processor.d.ts +104 -0
  328. package/dist/services/event-processor.js +443 -0
  329. package/dist/services/event-processor.js.map +1 -0
  330. package/dist/services/folder-creation.d.ts +33 -0
  331. package/dist/services/folder-creation.js +103 -0
  332. package/dist/services/folder-creation.js.map +1 -0
  333. package/dist/services/git.d.ts +44 -0
  334. package/dist/services/git.js +162 -55
  335. package/dist/services/git.js.map +1 -1
  336. package/dist/services/heartbeat.d.ts +19 -12
  337. package/dist/services/heartbeat.js +162 -107
  338. package/dist/services/heartbeat.js.map +1 -1
  339. package/dist/services/import-service.d.ts +37 -2
  340. package/dist/services/import-service.js +222 -123
  341. package/dist/services/import-service.js.map +1 -1
  342. package/dist/services/lint-service.js +7 -14
  343. package/dist/services/lint-service.js.map +1 -1
  344. package/dist/services/markdown.js +6 -2
  345. package/dist/services/markdown.js.map +1 -1
  346. package/dist/services/message-service.d.ts +62 -21
  347. package/dist/services/message-service.js +160 -43
  348. package/dist/services/message-service.js.map +1 -1
  349. package/dist/services/personal-folder.d.ts +40 -0
  350. package/dist/services/personal-folder.js +101 -0
  351. package/dist/services/personal-folder.js.map +1 -0
  352. package/dist/services/vector-service.d.ts +73 -3
  353. package/dist/services/vector-service.js +106 -7
  354. package/dist/services/vector-service.js.map +1 -1
  355. package/dist/services/workspace-access.d.ts +106 -0
  356. package/dist/services/workspace-access.js +149 -0
  357. package/dist/services/workspace-access.js.map +1 -0
  358. package/dist/utils/git.js +3 -3
  359. package/dist/utils/git.js.map +1 -1
  360. package/dist/utils/log.d.ts +42 -0
  361. package/dist/utils/log.js +137 -0
  362. package/dist/utils/log.js.map +1 -0
  363. package/dist/utils/preflight.js +2 -2
  364. package/dist/utils/preflight.js.map +1 -1
  365. package/dist/utils/version-checker.d.ts +4 -1
  366. package/dist/utils/version-checker.js +8 -8
  367. package/dist/utils/version-checker.js.map +1 -1
  368. package/dist/web/_app/immutable/assets/0.Bp6xXZUi.css +2 -0
  369. package/dist/web/_app/immutable/assets/11.DlIf1mKh.css +1 -0
  370. package/dist/web/_app/immutable/assets/12.Dmlt28l2.css +1 -0
  371. package/dist/web/_app/immutable/assets/13.CmLrbzZp.css +1 -0
  372. package/dist/web/_app/immutable/assets/2.oo1ac0x_.css +1 -0
  373. package/dist/web/_app/immutable/assets/3.DJJsQzDb.css +1 -0
  374. package/dist/web/_app/immutable/assets/4.CZ-fNJ91.css +1 -0
  375. package/dist/web/_app/immutable/assets/AgentOverlay.BfWESlQU.css +1 -0
  376. package/dist/web/_app/immutable/assets/AssetManagerModal.ZfasE2L3.css +1 -0
  377. package/dist/web/_app/immutable/assets/CalendarView.CeNagvyK.css +1 -0
  378. package/dist/web/_app/immutable/assets/ChatPanel.po0gYtVH.css +1 -0
  379. package/dist/web/_app/immutable/assets/FolderMembersPanel.Bepw-r0F.css +1 -0
  380. package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
  381. package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
  382. package/dist/web/_app/immutable/assets/GalleryView.Dy-qQjEc.css +1 -0
  383. package/dist/web/_app/immutable/assets/GraphView.BHnGIltS.css +1 -0
  384. package/dist/web/_app/immutable/assets/KanbanView.G3NZ0uHb.css +1 -0
  385. package/dist/web/_app/immutable/assets/SettingsDialog.tBn8y9DD.css +1 -0
  386. package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
  387. package/dist/web/_app/immutable/assets/TagFilter.DNipjifq.css +1 -0
  388. package/dist/web/_app/immutable/assets/TagPickerSheet.DJPuqnTg.css +1 -0
  389. package/dist/web/_app/immutable/assets/WorkspaceView.B9zA92UB.css +1 -0
  390. package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
  391. package/dist/web/_app/immutable/assets/dialog.BxVal_19.css +1 -0
  392. package/dist/web/_app/immutable/assets/dist.B5hGjnfj.css +1 -0
  393. package/dist/web/_app/immutable/assets/dist.DDCWxn3B.css +1 -0
  394. package/dist/web/_app/immutable/assets/dropdown-menu.BSsUUQ3o.css +1 -0
  395. package/dist/web/_app/immutable/assets/entity-row.Bl5FyNCt.css +1 -0
  396. package/dist/web/_app/immutable/assets/greeting.Bm7lTneV.css +1 -0
  397. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
  398. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
  399. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
  400. package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
  401. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2 +0 -0
  402. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff +0 -0
  403. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2 +0 -0
  404. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff +0 -0
  405. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2 +0 -0
  406. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.DpEwFAQM.woff +0 -0
  407. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2 +0 -0
  408. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff +0 -0
  409. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff +0 -0
  410. package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2 +0 -0
  411. package/dist/web/_app/immutable/assets/inline-list.DORLo4xF.css +1 -0
  412. package/dist/web/_app/immutable/assets/notifications.clodJdp5.css +1 -0
  413. package/dist/web/_app/immutable/assets/radio-group.GJJRVPUJ.css +1 -0
  414. package/dist/web/_app/immutable/assets/select.D_AV992j.css +1 -0
  415. package/dist/web/_app/immutable/chunks/-KAQXGuI2.js +1 -0
  416. package/dist/web/_app/immutable/chunks/-wzwcH00.js +1 -0
  417. package/dist/web/_app/immutable/chunks/07l_1Zpm2.js +1 -0
  418. package/dist/web/_app/immutable/chunks/1i1V0Z172.js +2 -0
  419. package/dist/web/_app/immutable/chunks/38oWKNzM2.js +6 -0
  420. package/dist/web/_app/immutable/chunks/54VmiJfH.js +1 -0
  421. package/dist/web/_app/immutable/chunks/6LRpFvjo.js +185 -0
  422. package/dist/web/_app/immutable/chunks/9bCTHkeS.js +1 -0
  423. package/dist/web/_app/immutable/chunks/B-822WnD2.js +22 -0
  424. package/dist/web/_app/immutable/chunks/B0HUvliX2.js +2 -0
  425. package/dist/web/_app/immutable/chunks/B12eXGpE.js +1 -0
  426. package/dist/web/_app/immutable/chunks/B2-Cx5XA.js +1 -0
  427. package/dist/web/_app/immutable/chunks/B5af0X0p2.js +1 -0
  428. package/dist/web/_app/immutable/chunks/B6iYNwo72.js +1 -0
  429. package/dist/web/_app/immutable/chunks/B7EMtoAB.js +1 -0
  430. package/dist/web/_app/immutable/chunks/B9qBGxh62.js +3 -0
  431. package/dist/web/_app/immutable/chunks/B9rVXblv.js +1 -0
  432. package/dist/web/_app/immutable/chunks/BEpMEjHO.js +1 -0
  433. package/dist/web/_app/immutable/chunks/BErNpj-S2.js +1 -0
  434. package/dist/web/_app/immutable/chunks/BHBk4zfV.js +1 -0
  435. package/dist/web/_app/immutable/chunks/BHH-JGNF.js +1 -0
  436. package/dist/web/_app/immutable/chunks/BNTlsKDJ.js +1 -0
  437. package/dist/web/_app/immutable/chunks/BOgcXgis2.js +1 -0
  438. package/dist/web/_app/immutable/chunks/BOyyDrjn2.js +1 -0
  439. package/dist/web/_app/immutable/chunks/BPR_ufQ0.js +41 -0
  440. package/dist/web/_app/immutable/chunks/BRcFsc6v.js +5 -0
  441. package/dist/web/_app/immutable/chunks/BT3KAag_.js +3 -0
  442. package/dist/web/_app/immutable/chunks/BX2T6xiZ.js +224 -0
  443. package/dist/web/_app/immutable/chunks/BZnJ8tbJ.js +1 -0
  444. package/dist/web/_app/immutable/chunks/Ba1Yzb7u.js +1 -0
  445. package/dist/web/_app/immutable/chunks/BcsvgA3B2.js +1 -0
  446. package/dist/web/_app/immutable/chunks/BfbS7rGT.js +1 -0
  447. package/dist/web/_app/immutable/chunks/BgagL41Z.js +1 -0
  448. package/dist/web/_app/immutable/chunks/Bk-AcswV.js +1 -0
  449. package/dist/web/_app/immutable/chunks/Bl9Pzopy.js +1 -0
  450. package/dist/web/_app/immutable/chunks/BmcU05mO.js +1 -0
  451. package/dist/web/_app/immutable/chunks/Bmgp0jlT.js +1 -0
  452. package/dist/web/_app/immutable/chunks/BpDONXUo.js +8 -0
  453. package/dist/web/_app/immutable/chunks/BpTXLx8I2.js +5 -0
  454. package/dist/web/_app/immutable/chunks/Bq0-jBGC2.js +1 -0
  455. package/dist/web/_app/immutable/chunks/BqGj0_GS.js +1 -0
  456. package/dist/web/_app/immutable/chunks/Bsc9K3Pz.js +1 -0
  457. package/dist/web/_app/immutable/chunks/Bssb691Q.js +1 -0
  458. package/dist/web/_app/immutable/chunks/BuzQceOn.js +1 -0
  459. package/dist/web/_app/immutable/chunks/BzeVNab0.js +1 -0
  460. package/dist/web/_app/immutable/chunks/C-OaypFN.js +1 -0
  461. package/dist/web/_app/immutable/chunks/C0fjDjvE2.js +1 -0
  462. package/dist/web/_app/immutable/chunks/C0pTXwEX.js +2 -0
  463. package/dist/web/_app/immutable/chunks/C3Enww9L2.js +1 -0
  464. package/dist/web/_app/immutable/chunks/C3oa0Cks.js +1 -0
  465. package/dist/web/_app/immutable/chunks/C7GIvT8T.js +2 -0
  466. package/dist/web/_app/immutable/chunks/CC-YWp-f.js +1 -0
  467. package/dist/web/_app/immutable/chunks/CGdKvXV92.js +1 -0
  468. package/dist/web/_app/immutable/chunks/CH0siYFL.js +1 -0
  469. package/dist/web/_app/immutable/chunks/CIc2MMme2.js +1 -0
  470. package/dist/web/_app/immutable/chunks/CIchr8Tk2.js +1 -0
  471. package/dist/web/_app/immutable/chunks/CK_yXDQI.js +1 -0
  472. package/dist/web/_app/immutable/chunks/CLSxJmTj.js +2 -0
  473. package/dist/web/_app/immutable/chunks/CMhHc1Bq2.js +2 -0
  474. package/dist/web/_app/immutable/chunks/CNGba6T4.js +1 -0
  475. package/dist/web/_app/immutable/chunks/CPt2D5aU.js +1 -0
  476. package/dist/web/_app/immutable/chunks/CQ-2yccd.js +7 -0
  477. package/dist/web/_app/immutable/chunks/CS6VEwn7.js +1 -0
  478. package/dist/web/_app/immutable/chunks/CSsDOIrk.js +1 -0
  479. package/dist/web/_app/immutable/chunks/CVXvEWhv2.js +1 -0
  480. package/dist/web/_app/immutable/chunks/CaChtuYU2.js +1 -0
  481. package/dist/web/_app/immutable/chunks/CbiwvM3R2.js +1 -0
  482. package/dist/web/_app/immutable/chunks/CdCuBMLm.js +156 -0
  483. package/dist/web/_app/immutable/chunks/CiyqPsJo.js +1 -0
  484. package/dist/web/_app/immutable/chunks/CjGzUnEF2.js +1 -0
  485. package/dist/web/_app/immutable/chunks/Cjgbiel7.js +1 -0
  486. package/dist/web/_app/immutable/chunks/CnqSKqA62.js +1 -0
  487. package/dist/web/_app/immutable/chunks/CqyqKPuh2.js +1 -0
  488. package/dist/web/_app/immutable/chunks/CrnX-oFV.js +1 -0
  489. package/dist/web/_app/immutable/chunks/CsGahE3a.js +1 -0
  490. package/dist/web/_app/immutable/chunks/Ct3quP0F.js +1 -0
  491. package/dist/web/_app/immutable/chunks/CtlAYPxw.js +1 -0
  492. package/dist/web/_app/immutable/chunks/CvZaxjRC.js +1 -0
  493. package/dist/web/_app/immutable/chunks/CwD4G56R.js +5 -0
  494. package/dist/web/_app/immutable/chunks/CwROuREs.js +1 -0
  495. package/dist/web/_app/immutable/chunks/CxalqrMB.js +1 -0
  496. package/dist/web/_app/immutable/chunks/D7qgUfnr.js +2487 -0
  497. package/dist/web/_app/immutable/chunks/D9-_Euza2.js +1 -0
  498. package/dist/web/_app/immutable/chunks/DC69SASj.js +2 -0
  499. package/dist/web/_app/immutable/chunks/DCCaoKt42.js +1 -0
  500. package/dist/web/_app/immutable/chunks/DDKweOZr2.js +23 -0
  501. package/dist/web/_app/immutable/chunks/DEY60osH.js +1 -0
  502. package/dist/web/_app/immutable/chunks/DG3QZPgI.js +1 -0
  503. package/dist/web/_app/immutable/chunks/DHepUItL.js +1 -0
  504. package/dist/web/_app/immutable/chunks/DNtqqgv32.js +1 -0
  505. package/dist/web/_app/immutable/chunks/DRl7vwNC2.js +184 -0
  506. package/dist/web/_app/immutable/chunks/DTc5W_V6.js +1 -0
  507. package/dist/web/_app/immutable/chunks/DaiJs3St.js +1 -0
  508. package/dist/web/_app/immutable/chunks/DfITyMKh2.js +1 -0
  509. package/dist/web/_app/immutable/chunks/DhuJRrEX2.js +1 -0
  510. package/dist/web/_app/immutable/chunks/DiP2EplP.js +3 -0
  511. package/dist/web/_app/immutable/chunks/DjlDV2JG.js +1 -0
  512. package/dist/web/_app/immutable/chunks/Dm25ot5x2.js +1 -0
  513. package/dist/web/_app/immutable/chunks/DpuSt-SO.js +2 -0
  514. package/dist/web/_app/immutable/chunks/DqOcb9RX2.js +83 -0
  515. package/dist/web/_app/immutable/chunks/DrbUJCAE.js +1 -0
  516. package/dist/web/_app/immutable/chunks/Du2-B3c8.js +1 -0
  517. package/dist/web/_app/immutable/chunks/DwdkE4UD2.js +1 -0
  518. package/dist/web/_app/immutable/chunks/DxWesPbn.js +1 -0
  519. package/dist/web/_app/immutable/chunks/DyYZqUV72.js +1 -0
  520. package/dist/web/_app/immutable/chunks/HfUnhvrv2.js +1 -0
  521. package/dist/web/_app/immutable/chunks/Je8-BtCk2.js +1 -0
  522. package/dist/web/_app/immutable/chunks/MSB7eA4_.js +1 -0
  523. package/dist/web/_app/immutable/chunks/NPe9WyW1.js +1 -0
  524. package/dist/web/_app/immutable/chunks/O6IzcxXJ.js +2 -0
  525. package/dist/web/_app/immutable/chunks/SXhc9rJW.js +1 -0
  526. package/dist/web/_app/immutable/chunks/SbWhkPMt.js +6 -0
  527. package/dist/web/_app/immutable/chunks/U40J2SnU.js +1 -0
  528. package/dist/web/_app/immutable/chunks/VS3l21Gu.js +1 -0
  529. package/dist/web/_app/immutable/chunks/YEPEvlbU2.js +1 -0
  530. package/dist/web/_app/immutable/chunks/Z7TNRcgK.js +11 -0
  531. package/dist/web/_app/immutable/chunks/ZCekGjo6.js +5 -0
  532. package/dist/web/_app/immutable/chunks/_rnxQ655.js +4 -0
  533. package/dist/web/_app/immutable/chunks/aALpjBW2.js +1 -0
  534. package/dist/web/_app/immutable/chunks/gNXLhsdy.js +1 -0
  535. package/dist/web/_app/immutable/chunks/hKSTEN36.js +1 -0
  536. package/dist/web/_app/immutable/chunks/jZZTbzL5.js +1 -0
  537. package/dist/web/_app/immutable/chunks/l4FIBKss.js +1 -0
  538. package/dist/web/_app/immutable/chunks/l_4snZnh2.js +1 -0
  539. package/dist/web/_app/immutable/chunks/mz-cgRgP.js +3 -0
  540. package/dist/web/_app/immutable/chunks/qgprkMcL.js +1 -0
  541. package/dist/web/_app/immutable/chunks/rOisBLC62.js +14 -0
  542. package/dist/web/_app/immutable/chunks/t08TznXc2.js +1 -0
  543. package/dist/web/_app/immutable/chunks/t62M88qj.js +1 -0
  544. package/dist/web/_app/immutable/chunks/uCohGWC42.js +1 -0
  545. package/dist/web/_app/immutable/chunks/uqxmB78b.js +1 -0
  546. package/dist/web/_app/immutable/chunks/vJkT0IPN.js +1 -0
  547. package/dist/web/_app/immutable/chunks/vwTMEIJQ.js +1 -0
  548. package/dist/web/_app/immutable/chunks/w1FCELam.js +64 -0
  549. package/dist/web/_app/immutable/chunks/xEzUlKaR2.js +1 -0
  550. package/dist/web/_app/immutable/chunks/zumDjcgJ.js +1 -0
  551. package/dist/web/_app/immutable/entry/app.DtdPIxaY.js +2 -0
  552. package/dist/web/_app/immutable/entry/start.Cqf8YmDj.js +1 -0
  553. package/dist/web/_app/immutable/nodes/0.CktqlAe7.js +2 -0
  554. package/dist/web/_app/immutable/nodes/1.Bs7cz_ba.js +1 -0
  555. package/dist/web/_app/immutable/nodes/10.CAQtOBqO.js +1 -0
  556. package/dist/web/_app/immutable/nodes/11.l9TQGnJm.js +1 -0
  557. package/dist/web/_app/immutable/nodes/12.CttDoIpY.js +1 -0
  558. package/dist/web/_app/immutable/nodes/13.E5fh69kS.js +1 -0
  559. package/dist/web/_app/immutable/nodes/2.DnLSJfx-.js +106 -0
  560. package/dist/web/_app/immutable/nodes/3.Bw8R0Jw5.js +2 -0
  561. package/dist/web/_app/immutable/nodes/4.Cl0HgeTG.js +2 -0
  562. package/dist/web/_app/immutable/nodes/5.BpIWwWi9.js +1 -0
  563. package/dist/web/_app/immutable/nodes/6.jpx6ZgOI.js +1 -0
  564. package/dist/web/_app/immutable/nodes/7.YTFykZQe.js +1 -0
  565. package/dist/web/_app/immutable/nodes/8.Chy0HNU1.js +1 -0
  566. package/dist/web/_app/immutable/nodes/9.D10JpFt2.js +1 -0
  567. package/dist/web/_app/version.json +1 -1
  568. package/dist/web/favicon-16.png +0 -0
  569. package/dist/web/favicon-180.png +0 -0
  570. package/dist/web/favicon-32.png +0 -0
  571. package/dist/web/favicon-48.png +0 -0
  572. package/dist/web/favicon-512.png +0 -0
  573. package/dist/web/favicon.ico +0 -0
  574. package/dist/web/favicon.svg +8 -0
  575. package/dist/web/index.html +64 -21
  576. package/dist/web/studiograph-logomark.svg +29 -0
  577. package/package.json +28 -14
  578. package/dist/agent/role-loader.d.ts +0 -24
  579. package/dist/agent/role-loader.js +0 -67
  580. package/dist/agent/role-loader.js.map +0 -1
  581. package/dist/agent/skills/enrich-entities.md +0 -136
  582. package/dist/agent/skills/obsidian-source-setup.md +0 -246
  583. package/dist/agent/skills/skill-loader.d.ts +0 -48
  584. package/dist/agent/skills/skill-loader.js +0 -166
  585. package/dist/agent/skills/skill-loader.js.map +0 -1
  586. package/dist/agent/skills/sync-configuration.md +0 -119
  587. package/dist/agent/skills/sync-setup.md +0 -82
  588. package/dist/agent/tools/sync-tools.d.ts +0 -35
  589. package/dist/agent/tools/sync-tools.js +0 -992
  590. package/dist/agent/tools/sync-tools.js.map +0 -1
  591. package/dist/auth/github.d.ts +0 -56
  592. package/dist/auth/github.js +0 -169
  593. package/dist/auth/github.js.map +0 -1
  594. package/dist/cli/commands/access.d.ts +0 -11
  595. package/dist/cli/commands/access.js +0 -156
  596. package/dist/cli/commands/access.js.map +0 -1
  597. package/dist/cli/commands/app.d.ts +0 -7
  598. package/dist/cli/commands/app.js +0 -268
  599. package/dist/cli/commands/app.js.map +0 -1
  600. package/dist/cli/commands/auth.d.ts +0 -10
  601. package/dist/cli/commands/auth.js +0 -79
  602. package/dist/cli/commands/auth.js.map +0 -1
  603. package/dist/cli/commands/collection.d.ts +0 -10
  604. package/dist/cli/commands/collection.js +0 -185
  605. package/dist/cli/commands/collection.js.map +0 -1
  606. package/dist/cli/commands/enrich.d.ts +0 -11
  607. package/dist/cli/commands/enrich.js +0 -135
  608. package/dist/cli/commands/enrich.js.map +0 -1
  609. package/dist/cli/commands/graphrag.d.ts +0 -12
  610. package/dist/cli/commands/graphrag.js +0 -122
  611. package/dist/cli/commands/graphrag.js.map +0 -1
  612. package/dist/cli/commands/members.d.ts +0 -11
  613. package/dist/cli/commands/members.js +0 -230
  614. package/dist/cli/commands/members.js.map +0 -1
  615. package/dist/cli/commands/org.d.ts +0 -10
  616. package/dist/cli/commands/org.js +0 -132
  617. package/dist/cli/commands/org.js.map +0 -1
  618. package/dist/cli/commands/provision.d.ts +0 -8
  619. package/dist/cli/commands/provision.js +0 -116
  620. package/dist/cli/commands/provision.js.map +0 -1
  621. package/dist/cli/commands/resolve.d.ts +0 -8
  622. package/dist/cli/commands/resolve.js +0 -85
  623. package/dist/cli/commands/resolve.js.map +0 -1
  624. package/dist/cli/commands/review.d.ts +0 -19
  625. package/dist/cli/commands/review.js +0 -128
  626. package/dist/cli/commands/review.js.map +0 -1
  627. package/dist/cli/commands/source.d.ts +0 -16
  628. package/dist/cli/commands/source.js +0 -159
  629. package/dist/cli/commands/source.js.map +0 -1
  630. package/dist/cli/commands/sync-collection.d.ts +0 -14
  631. package/dist/cli/commands/sync-collection.js +0 -355
  632. package/dist/cli/commands/sync-collection.js.map +0 -1
  633. package/dist/cli/commands/sync-entities.d.ts +0 -13
  634. package/dist/cli/commands/sync-entities.js +0 -242
  635. package/dist/cli/commands/sync-entities.js.map +0 -1
  636. package/dist/cli/commands/team.d.ts +0 -12
  637. package/dist/cli/commands/team.js +0 -185
  638. package/dist/cli/commands/team.js.map +0 -1
  639. package/dist/cli/sync-review-interactive.d.ts +0 -31
  640. package/dist/cli/sync-review-interactive.js +0 -393
  641. package/dist/cli/sync-review-interactive.js.map +0 -1
  642. package/dist/core/migration-runner.d.ts +0 -42
  643. package/dist/core/migration-runner.js +0 -232
  644. package/dist/core/migration-runner.js.map +0 -1
  645. package/dist/core/migration-types.d.ts +0 -101
  646. package/dist/core/migration-types.js +0 -21
  647. package/dist/core/migration-types.js.map +0 -1
  648. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +0 -2
  649. package/dist/core/migrations/20260219-formalize-memory-location.js +0 -35
  650. package/dist/core/migrations/20260219-formalize-memory-location.js.map +0 -1
  651. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +0 -12
  652. package/dist/core/migrations/20260220-add-workspace-metadata.js +0 -65
  653. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +0 -1
  654. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +0 -11
  655. package/dist/core/migrations/20260220-add-workspace-readme.js +0 -82
  656. package/dist/core/migrations/20260220-add-workspace-readme.js.map +0 -1
  657. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +0 -9
  658. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +0 -64
  659. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +0 -1
  660. package/dist/core/migrations/index.d.ts +0 -11
  661. package/dist/core/migrations/index.js +0 -23
  662. package/dist/core/migrations/index.js.map +0 -1
  663. package/dist/integrations/asana.d.ts +0 -26
  664. package/dist/integrations/asana.js +0 -78
  665. package/dist/integrations/asana.js.map +0 -1
  666. package/dist/integrations/figma-local.d.ts +0 -16
  667. package/dist/integrations/figma-local.js +0 -10
  668. package/dist/integrations/figma-local.js.map +0 -1
  669. package/dist/integrations/figma.d.ts +0 -17
  670. package/dist/integrations/figma.js +0 -17
  671. package/dist/integrations/figma.js.map +0 -1
  672. package/dist/integrations/granola.d.ts +0 -24
  673. package/dist/integrations/granola.js +0 -60
  674. package/dist/integrations/granola.js.map +0 -1
  675. package/dist/integrations/linear.d.ts +0 -14
  676. package/dist/integrations/linear.js +0 -80
  677. package/dist/integrations/linear.js.map +0 -1
  678. package/dist/integrations/paper-local.d.ts +0 -14
  679. package/dist/integrations/paper-local.js +0 -10
  680. package/dist/integrations/paper-local.js.map +0 -1
  681. package/dist/integrations/paper.d.ts +0 -2
  682. package/dist/integrations/paper.js +0 -10
  683. package/dist/integrations/paper.js.map +0 -1
  684. package/dist/integrations/pipedrive.d.ts +0 -26
  685. package/dist/integrations/pipedrive.js +0 -97
  686. package/dist/integrations/pipedrive.js.map +0 -1
  687. package/dist/integrations/registry.d.ts +0 -8
  688. package/dist/integrations/registry.js +0 -7
  689. package/dist/integrations/registry.js.map +0 -1
  690. package/dist/integrations/types.d.ts +0 -43
  691. package/dist/integrations/types.js +0 -5
  692. package/dist/integrations/types.js.map +0 -1
  693. package/dist/lib/lib/utils.d.ts +0 -2
  694. package/dist/lib/lib/utils.js +0 -6
  695. package/dist/lib/lib/utils.js.map +0 -1
  696. package/dist/mcp/connectors/asana.d.ts +0 -2
  697. package/dist/mcp/connectors/asana.js +0 -20
  698. package/dist/mcp/connectors/asana.js.map +0 -1
  699. package/dist/mcp/connectors/definitions.d.ts +0 -45
  700. package/dist/mcp/connectors/definitions.js +0 -32
  701. package/dist/mcp/connectors/definitions.js.map +0 -1
  702. package/dist/mcp/connectors/figma.d.ts +0 -5
  703. package/dist/mcp/connectors/figma.js +0 -21
  704. package/dist/mcp/connectors/figma.js.map +0 -1
  705. package/dist/mcp/connectors/gdrive.d.ts +0 -2
  706. package/dist/mcp/connectors/gdrive.js +0 -20
  707. package/dist/mcp/connectors/gdrive.js.map +0 -1
  708. package/dist/mcp/connectors/granola.d.ts +0 -2
  709. package/dist/mcp/connectors/granola.js +0 -12
  710. package/dist/mcp/connectors/granola.js.map +0 -1
  711. package/dist/mcp/connectors/linear.d.ts +0 -2
  712. package/dist/mcp/connectors/linear.js +0 -19
  713. package/dist/mcp/connectors/linear.js.map +0 -1
  714. package/dist/mcp/connectors/obsidian.d.ts +0 -2
  715. package/dist/mcp/connectors/obsidian.js +0 -19
  716. package/dist/mcp/connectors/obsidian.js.map +0 -1
  717. package/dist/mcp/connectors/pipedrive.d.ts +0 -2
  718. package/dist/mcp/connectors/pipedrive.js +0 -20
  719. package/dist/mcp/connectors/pipedrive.js.map +0 -1
  720. package/dist/mcp/connectors/slack.d.ts +0 -2
  721. package/dist/mcp/connectors/slack.js +0 -21
  722. package/dist/mcp/connectors/slack.js.map +0 -1
  723. package/dist/mcp/server-oauth-provider.d.ts +0 -56
  724. package/dist/mcp/server-oauth-provider.js +0 -142
  725. package/dist/mcp/server-oauth-provider.js.map +0 -1
  726. package/dist/server/agents/agent-loader.d.ts +0 -16
  727. package/dist/server/agents/agent-loader.js +0 -175
  728. package/dist/server/agents/agent-loader.js.map +0 -1
  729. package/dist/server/agents/agent-runner.d.ts +0 -33
  730. package/dist/server/agents/agent-runner.js +0 -187
  731. package/dist/server/agents/agent-runner.js.map +0 -1
  732. package/dist/server/agents/agent-runtime.d.ts +0 -39
  733. package/dist/server/agents/agent-runtime.js +0 -214
  734. package/dist/server/agents/agent-runtime.js.map +0 -1
  735. package/dist/server/agents/base-agent.d.ts +0 -30
  736. package/dist/server/agents/base-agent.js +0 -88
  737. package/dist/server/agents/base-agent.js.map +0 -1
  738. package/dist/server/agents/executive-digest.d.ts +0 -16
  739. package/dist/server/agents/executive-digest.js +0 -115
  740. package/dist/server/agents/executive-digest.js.map +0 -1
  741. package/dist/server/agents/graph-steward.d.ts +0 -16
  742. package/dist/server/agents/graph-steward.js +0 -59
  743. package/dist/server/agents/graph-steward.js.map +0 -1
  744. package/dist/server/agents/meeting-followup.d.ts +0 -16
  745. package/dist/server/agents/meeting-followup.js +0 -88
  746. package/dist/server/agents/meeting-followup.js.map +0 -1
  747. package/dist/server/agents/pipeline-monitor.d.ts +0 -15
  748. package/dist/server/agents/pipeline-monitor.js +0 -86
  749. package/dist/server/agents/pipeline-monitor.js.map +0 -1
  750. package/dist/server/agents/types.d.ts +0 -81
  751. package/dist/server/agents/types.js +0 -41
  752. package/dist/server/agents/types.js.map +0 -1
  753. package/dist/server/chrome/chrome.css +0 -691
  754. package/dist/server/chrome/chrome.js +0 -374
  755. package/dist/server/collab-authority.d.ts +0 -70
  756. package/dist/server/collab-authority.js +0 -218
  757. package/dist/server/collab-authority.js.map +0 -1
  758. package/dist/server/collab.d.ts +0 -29
  759. package/dist/server/collab.js +0 -195
  760. package/dist/server/collab.js.map +0 -1
  761. package/dist/server/commit-scheduler.d.ts +0 -39
  762. package/dist/server/commit-scheduler.js +0 -113
  763. package/dist/server/commit-scheduler.js.map +0 -1
  764. package/dist/server/plugin-loader.d.ts +0 -53
  765. package/dist/server/plugin-loader.js +0 -155
  766. package/dist/server/plugin-loader.js.map +0 -1
  767. package/dist/server/routes/agents-api.d.ts +0 -10
  768. package/dist/server/routes/agents-api.js +0 -25
  769. package/dist/server/routes/agents-api.js.map +0 -1
  770. package/dist/server/routes/collab.d.ts +0 -6
  771. package/dist/server/routes/collab.js +0 -10
  772. package/dist/server/routes/collab.js.map +0 -1
  773. package/dist/server/routes/git-api.d.ts +0 -9
  774. package/dist/server/routes/git-api.js +0 -82
  775. package/dist/server/routes/git-api.js.map +0 -1
  776. package/dist/server/routes/meeting-ingest-api.d.ts +0 -14
  777. package/dist/server/routes/meeting-ingest-api.js +0 -98
  778. package/dist/server/routes/meeting-ingest-api.js.map +0 -1
  779. package/dist/server/routes/sync-api.d.ts +0 -26
  780. package/dist/server/routes/sync-api.js +0 -848
  781. package/dist/server/routes/sync-api.js.map +0 -1
  782. package/dist/server/routes/webhook.d.ts +0 -14
  783. package/dist/server/routes/webhook.js +0 -102
  784. package/dist/server/routes/webhook.js.map +0 -1
  785. package/dist/services/batch-processor.d.ts +0 -49
  786. package/dist/services/batch-processor.js +0 -166
  787. package/dist/services/batch-processor.js.map +0 -1
  788. package/dist/services/csv-service.d.ts +0 -36
  789. package/dist/services/csv-service.js +0 -143
  790. package/dist/services/csv-service.js.map +0 -1
  791. package/dist/services/github-provisioner.d.ts +0 -36
  792. package/dist/services/github-provisioner.js +0 -126
  793. package/dist/services/github-provisioner.js.map +0 -1
  794. package/dist/services/github-service.d.ts +0 -99
  795. package/dist/services/github-service.js +0 -310
  796. package/dist/services/github-service.js.map +0 -1
  797. package/dist/services/image-import-service.d.ts +0 -24
  798. package/dist/services/image-import-service.js +0 -108
  799. package/dist/services/image-import-service.js.map +0 -1
  800. package/dist/services/insights.d.ts +0 -38
  801. package/dist/services/insights.js +0 -269
  802. package/dist/services/insights.js.map +0 -1
  803. package/dist/services/meeting-processor.d.ts +0 -91
  804. package/dist/services/meeting-processor.js +0 -331
  805. package/dist/services/meeting-processor.js.map +0 -1
  806. package/dist/services/sync/collection-sync.d.ts +0 -60
  807. package/dist/services/sync/collection-sync.js +0 -509
  808. package/dist/services/sync/collection-sync.js.map +0 -1
  809. package/dist/services/sync/commit.d.ts +0 -60
  810. package/dist/services/sync/commit.js +0 -354
  811. package/dist/services/sync/commit.js.map +0 -1
  812. package/dist/services/sync/context-index.d.ts +0 -69
  813. package/dist/services/sync/context-index.js +0 -280
  814. package/dist/services/sync/context-index.js.map +0 -1
  815. package/dist/services/sync/data-fetcher.d.ts +0 -31
  816. package/dist/services/sync/data-fetcher.js +0 -12
  817. package/dist/services/sync/data-fetcher.js.map +0 -1
  818. package/dist/services/sync/derive.d.ts +0 -34
  819. package/dist/services/sync/derive.js +0 -164
  820. package/dist/services/sync/derive.js.map +0 -1
  821. package/dist/services/sync/enrichment-state.d.ts +0 -31
  822. package/dist/services/sync/enrichment-state.js +0 -63
  823. package/dist/services/sync/enrichment-state.js.map +0 -1
  824. package/dist/services/sync/enrichment.d.ts +0 -25
  825. package/dist/services/sync/enrichment.js +0 -121
  826. package/dist/services/sync/enrichment.js.map +0 -1
  827. package/dist/services/sync/entity-refresh.d.ts +0 -30
  828. package/dist/services/sync/entity-refresh.js +0 -275
  829. package/dist/services/sync/entity-refresh.js.map +0 -1
  830. package/dist/services/sync/frontmatter-extractor.d.ts +0 -40
  831. package/dist/services/sync/frontmatter-extractor.js +0 -279
  832. package/dist/services/sync/frontmatter-extractor.js.map +0 -1
  833. package/dist/services/sync/graph-match-state.d.ts +0 -33
  834. package/dist/services/sync/graph-match-state.js +0 -61
  835. package/dist/services/sync/graph-match-state.js.map +0 -1
  836. package/dist/services/sync/graph-match.d.ts +0 -53
  837. package/dist/services/sync/graph-match.js +0 -316
  838. package/dist/services/sync/graph-match.js.map +0 -1
  839. package/dist/services/sync/graphrag-client.d.ts +0 -43
  840. package/dist/services/sync/graphrag-client.js +0 -94
  841. package/dist/services/sync/graphrag-client.js.map +0 -1
  842. package/dist/services/sync/graphrag-config.d.ts +0 -16
  843. package/dist/services/sync/graphrag-config.js +0 -39
  844. package/dist/services/sync/graphrag-config.js.map +0 -1
  845. package/dist/services/sync/graphrag-context.d.ts +0 -14
  846. package/dist/services/sync/graphrag-context.js +0 -109
  847. package/dist/services/sync/graphrag-context.js.map +0 -1
  848. package/dist/services/sync/graphrag-indexer.d.ts +0 -30
  849. package/dist/services/sync/graphrag-indexer.js +0 -358
  850. package/dist/services/sync/graphrag-indexer.js.map +0 -1
  851. package/dist/services/sync/llm.d.ts +0 -32
  852. package/dist/services/sync/llm.js +0 -115
  853. package/dist/services/sync/llm.js.map +0 -1
  854. package/dist/services/sync/mcp-client.d.ts +0 -71
  855. package/dist/services/sync/mcp-client.js +0 -299
  856. package/dist/services/sync/mcp-client.js.map +0 -1
  857. package/dist/services/sync/model-factory.d.ts +0 -13
  858. package/dist/services/sync/model-factory.js +0 -38
  859. package/dist/services/sync/model-factory.js.map +0 -1
  860. package/dist/services/sync/name-quality.d.ts +0 -31
  861. package/dist/services/sync/name-quality.js +0 -60
  862. package/dist/services/sync/name-quality.js.map +0 -1
  863. package/dist/services/sync/output-schemas.d.ts +0 -92
  864. package/dist/services/sync/output-schemas.js +0 -43
  865. package/dist/services/sync/output-schemas.js.map +0 -1
  866. package/dist/services/sync/prompts.d.ts +0 -19
  867. package/dist/services/sync/prompts.js +0 -128
  868. package/dist/services/sync/prompts.js.map +0 -1
  869. package/dist/services/sync/reconciler.d.ts +0 -48
  870. package/dist/services/sync/reconciler.js +0 -294
  871. package/dist/services/sync/reconciler.js.map +0 -1
  872. package/dist/services/sync/rest-client.d.ts +0 -40
  873. package/dist/services/sync/rest-client.js +0 -100
  874. package/dist/services/sync/rest-client.js.map +0 -1
  875. package/dist/services/sync/source-config.d.ts +0 -67
  876. package/dist/services/sync/source-config.js +0 -304
  877. package/dist/services/sync/source-config.js.map +0 -1
  878. package/dist/services/sync/source-definitions/asana.d.ts +0 -14
  879. package/dist/services/sync/source-definitions/asana.js +0 -42
  880. package/dist/services/sync/source-definitions/asana.js.map +0 -1
  881. package/dist/services/sync/source-definitions/definitions.d.ts +0 -8
  882. package/dist/services/sync/source-definitions/definitions.js +0 -8
  883. package/dist/services/sync/source-definitions/definitions.js.map +0 -1
  884. package/dist/services/sync/source-definitions/gdrive.d.ts +0 -16
  885. package/dist/services/sync/source-definitions/gdrive.js +0 -68
  886. package/dist/services/sync/source-definitions/gdrive.js.map +0 -1
  887. package/dist/services/sync/source-definitions/granola.d.ts +0 -2
  888. package/dist/services/sync/source-definitions/granola.js +0 -21
  889. package/dist/services/sync/source-definitions/granola.js.map +0 -1
  890. package/dist/services/sync/source-definitions/linear.d.ts +0 -2
  891. package/dist/services/sync/source-definitions/linear.js +0 -62
  892. package/dist/services/sync/source-definitions/linear.js.map +0 -1
  893. package/dist/services/sync/source-definitions/obsidian.d.ts +0 -2
  894. package/dist/services/sync/source-definitions/obsidian.js +0 -55
  895. package/dist/services/sync/source-definitions/obsidian.js.map +0 -1
  896. package/dist/services/sync/source-definitions/pipedrive.d.ts +0 -2
  897. package/dist/services/sync/source-definitions/pipedrive.js +0 -43
  898. package/dist/services/sync/source-definitions/pipedrive.js.map +0 -1
  899. package/dist/services/sync/staging.d.ts +0 -53
  900. package/dist/services/sync/staging.js +0 -130
  901. package/dist/services/sync/staging.js.map +0 -1
  902. package/dist/services/sync/structured-extractor.d.ts +0 -57
  903. package/dist/services/sync/structured-extractor.js +0 -584
  904. package/dist/services/sync/structured-extractor.js.map +0 -1
  905. package/dist/services/sync/sync-runner.d.ts +0 -32
  906. package/dist/services/sync/sync-runner.js +0 -195
  907. package/dist/services/sync/sync-runner.js.map +0 -1
  908. package/dist/services/sync/sync-state.d.ts +0 -43
  909. package/dist/services/sync/sync-state.js +0 -154
  910. package/dist/services/sync/sync-state.js.map +0 -1
  911. package/dist/services/sync/types.d.ts +0 -381
  912. package/dist/services/sync/types.js +0 -8
  913. package/dist/services/sync/types.js.map +0 -1
  914. package/dist/services/sync/unstructured-extractor.d.ts +0 -27
  915. package/dist/services/sync/unstructured-extractor.js +0 -185
  916. package/dist/services/sync/unstructured-extractor.js.map +0 -1
  917. package/dist/utils/merge-resolver.d.ts +0 -59
  918. package/dist/utils/merge-resolver.js +0 -303
  919. package/dist/utils/merge-resolver.js.map +0 -1
  920. package/dist/utils/workspace-config.d.ts +0 -8
  921. package/dist/utils/workspace-config.js +0 -22
  922. package/dist/utils/workspace-config.js.map +0 -1
  923. package/dist/web/_app/immutable/assets/0.QUqBcyuu.css +0 -1
  924. package/dist/web/_app/immutable/assets/11.2jzI3cZY.css +0 -1
  925. package/dist/web/_app/immutable/assets/12.CT4xL4K3.css +0 -1
  926. package/dist/web/_app/immutable/assets/13.BUrHkYry.css +0 -1
  927. package/dist/web/_app/immutable/assets/2.5jNm7Pm1.css +0 -1
  928. package/dist/web/_app/immutable/assets/3.BxdqT7zi.css +0 -1
  929. package/dist/web/_app/immutable/assets/4.BjPwtpNd.css +0 -1
  930. package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
  931. package/dist/web/_app/immutable/assets/6.DXZr_rI_.css +0 -1
  932. package/dist/web/_app/immutable/assets/GraphView.D9ePpZez.css +0 -1
  933. package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
  934. package/dist/web/_app/immutable/assets/ViewToolbar.CZjsdjy4.css +0 -1
  935. package/dist/web/_app/immutable/assets/WorkspaceView.B-1DbivC.css +0 -1
  936. package/dist/web/_app/immutable/assets/wikilinks.CtSydmQl.css +0 -1
  937. package/dist/web/_app/immutable/chunks/3--t-YNA.js +0 -1
  938. package/dist/web/_app/immutable/chunks/5OU-4caN.js +0 -1
  939. package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
  940. package/dist/web/_app/immutable/chunks/B6FUcAv5.js +0 -1
  941. package/dist/web/_app/immutable/chunks/B9gDgSlp.js +0 -1
  942. package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
  943. package/dist/web/_app/immutable/chunks/BFtIWl5z.js +0 -1
  944. package/dist/web/_app/immutable/chunks/BHKpz6_7.js +0 -1
  945. package/dist/web/_app/immutable/chunks/BNfrhBeA.js +0 -1
  946. package/dist/web/_app/immutable/chunks/BgO5HlCg.js +0 -2
  947. package/dist/web/_app/immutable/chunks/BqnODQDb.js +0 -1
  948. package/dist/web/_app/immutable/chunks/BrebtJNG.js +0 -18
  949. package/dist/web/_app/immutable/chunks/BvIFhEn7.js +0 -2
  950. package/dist/web/_app/immutable/chunks/BvfdTHv8.js +0 -1
  951. package/dist/web/_app/immutable/chunks/BxGm65PH.js +0 -1
  952. package/dist/web/_app/immutable/chunks/BxyxnEKw.js +0 -1
  953. package/dist/web/_app/immutable/chunks/BygFIGq4.js +0 -1
  954. package/dist/web/_app/immutable/chunks/Bz0ZjVQE.js +0 -2
  955. package/dist/web/_app/immutable/chunks/C0LVZhvn.js +0 -1
  956. package/dist/web/_app/immutable/chunks/CIb_hHMy.js +0 -1
  957. package/dist/web/_app/immutable/chunks/CNKK6nZb.js +0 -1
  958. package/dist/web/_app/immutable/chunks/CQ5FjHZK.js +0 -1
  959. package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
  960. package/dist/web/_app/immutable/chunks/CX_61fY8.js +0 -5
  961. package/dist/web/_app/immutable/chunks/CYrVHOHA.js +0 -1
  962. package/dist/web/_app/immutable/chunks/CaEaeeKb.js +0 -1
  963. package/dist/web/_app/immutable/chunks/Ch6e_wpP.js +0 -1
  964. package/dist/web/_app/immutable/chunks/Ci4zzCVB.js +0 -2
  965. package/dist/web/_app/immutable/chunks/CknqBVQE.js +0 -1
  966. package/dist/web/_app/immutable/chunks/Cmfiirqp.js +0 -4
  967. package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
  968. package/dist/web/_app/immutable/chunks/CrFpCC6p.js +0 -1
  969. package/dist/web/_app/immutable/chunks/CxX8hcT6.js +0 -1
  970. package/dist/web/_app/immutable/chunks/D0T1ps1G.js +0 -1
  971. package/dist/web/_app/immutable/chunks/D2ZEj9xD.js +0 -1
  972. package/dist/web/_app/immutable/chunks/D3sy0IkA.js +0 -2
  973. package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
  974. package/dist/web/_app/immutable/chunks/DHWoAC4y.js +0 -1
  975. package/dist/web/_app/immutable/chunks/DYYBfXU3.js +0 -1
  976. package/dist/web/_app/immutable/chunks/DiNPRA8T.js +0 -1
  977. package/dist/web/_app/immutable/chunks/DkjsqHkM.js +0 -1
  978. package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
  979. package/dist/web/_app/immutable/chunks/DpMCynC3.js +0 -1
  980. package/dist/web/_app/immutable/chunks/DqrybUuA.js +0 -1
  981. package/dist/web/_app/immutable/chunks/DsnmJJEf.js +0 -1
  982. package/dist/web/_app/immutable/chunks/KyjzlWRN.js +0 -2
  983. package/dist/web/_app/immutable/chunks/O9MAeAgV.js +0 -5
  984. package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  985. package/dist/web/_app/immutable/chunks/SKSQ4m85.js +0 -2
  986. package/dist/web/_app/immutable/chunks/WEBTyD-H.js +0 -1
  987. package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
  988. package/dist/web/_app/immutable/chunks/bBXT5iJP.js +0 -1
  989. package/dist/web/_app/immutable/chunks/vxEtkL8z.js +0 -1
  990. package/dist/web/_app/immutable/chunks/wDIGUaoU.js +0 -3
  991. package/dist/web/_app/immutable/chunks/xkNhbnff.js +0 -1
  992. package/dist/web/_app/immutable/chunks/zoVX1Zab.js +0 -1
  993. package/dist/web/_app/immutable/entry/app.GfE4z2GO.js +0 -2
  994. package/dist/web/_app/immutable/entry/start.H-LFJK9u.js +0 -1
  995. package/dist/web/_app/immutable/nodes/0.Bwi7tTNC.js +0 -2
  996. package/dist/web/_app/immutable/nodes/1.DgNJPEWk.js +0 -1
  997. package/dist/web/_app/immutable/nodes/10.BW_XCD2O.js +0 -1
  998. package/dist/web/_app/immutable/nodes/11.DM7RX3Ms.js +0 -1
  999. package/dist/web/_app/immutable/nodes/12.DKgssZo8.js +0 -1
  1000. package/dist/web/_app/immutable/nodes/13.DCdmTre-.js +0 -1
  1001. package/dist/web/_app/immutable/nodes/2.DOA5QBVG.js +0 -266
  1002. package/dist/web/_app/immutable/nodes/3.bpoHQwAI.js +0 -5
  1003. package/dist/web/_app/immutable/nodes/4.ye0Vy7A1.js +0 -11
  1004. package/dist/web/_app/immutable/nodes/5.rxpnYrx_.js +0 -4
  1005. package/dist/web/_app/immutable/nodes/6.DP8HSxtc.js +0 -1
  1006. package/dist/web/_app/immutable/nodes/7.C1h4Bf-E.js +0 -1
  1007. package/dist/web/_app/immutable/nodes/8.BzmQ7S7Y.js +0 -1
  1008. package/dist/web/_app/immutable/nodes/9.CEakpXpF.js +0 -1
@@ -0,0 +1,2487 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./l_4snZnh2.js","./B-822WnD2.js","./BNTlsKDJ.js","./rOisBLC62.js","./CGdKvXV92.js","./DqOcb9RX2.js","./CbiwvM3R2.js","./CnqSKqA62.js","./Je8-BtCk2.js","./DwdkE4UD2.js","./BErNpj-S2.js","./CIchr8Tk2.js","./BPR_ufQ0.js","./BX2T6xiZ.js","./DRl7vwNC2.js","./-wzwcH00.js","./6LRpFvjo.js","./CdCuBMLm.js","./MSB7eA4_.js","./CaChtuYU2.js","./Z7TNRcgK.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./BNTlsKDJ.js";import{t}from"./C-OaypFN.js";import{$ as n,A as r,B as i,C as a,D as o,E as s,F as c,G as l,H as u,I as d,J as f,K as p,L as m,M as h,N as g,O as _,P as v,Q as y,R as b,S as x,T as S,U as C,V as w,W as T,X as E,Y as ee,Z as D,_ as O,a as k,at as A,b as j,c as M,ct as N,d as P,dt as F,et as I,f as L,ft as R,g as z,h as te,i as B,it as V,j as H,k as ne,l as re,lt as ie,m as ae,n as oe,nt as se,o as ce,ot as le,p as ue,q as de,r as fe,rt as U,s as pe,st as me,t as he,tt as ge,u as _e,ut as W,v as ve,w as ye,x as be,y as xe,z as Se}from"./B-822WnD2.js";import{A as Ce,B as we,C as Te,D as Ee,E as De,F as Oe,H as ke,I as Ae,L as je,M as Me,N as Ne,O as Pe,P as Fe,R as Ie,S as Le,T as Re,U as ze,V as Be,_ as Ve,a as He,b as Ue,c as We,d as Ge,f as Ke,g as qe,h as Je,i as Ye,j as Xe,k as Ze,l as Qe,m as $e,n as et,o as tt,p as nt,r as rt,s as it,t as at,u as G,v as ot,w as st,x as ct,y as lt,z as ut}from"./CGdKvXV92.js";import{a as dt,c as ft,d as pt,f as mt,i as ht,l as gt,m as _t,n as vt,o as yt,p as bt,r as xt,s as St,t as Ct,u as wt}from"./rOisBLC62.js";import{C as Tt,D as Et,E as Dt,O as Ot,S as kt,T as At,_ as jt,a as Mt,b as Nt,c as Pt,d as Ft,f as It,g as Lt,h as Rt,i as zt,k as Bt,l as Vt,m as Ht,n as Ut,o as Wt,p as Gt,r as Kt,s as qt,t as Jt,u as Yt,v as Xt,w as Zt,x as Qt,y as $t}from"./DqOcb9RX2.js";import{n as en,t as K}from"./CbiwvM3R2.js";import{t as tn}from"./DwdkE4UD2.js";import{n as nn,t as rn}from"./CnqSKqA62.js";import{n as an,t as on}from"./Je8-BtCk2.js";import{$ as sn,A as cn,B as ln,C as un,D as dn,E as fn,F as pn,G as mn,H as hn,I as gn,J as _n,K as vn,L as yn,M as bn,N as xn,O as Sn,P as Cn,Q as wn,R as Tn,S as En,T as Dn,U as On,V as kn,W as An,X as jn,Y as Mn,Z as Nn,_ as Pn,a as Fn,b as In,c as Ln,d as Rn,et as zn,f as Bn,g as Vn,h as Hn,i as Un,j as Wn,k as Gn,l as Kn,m as qn,n as Jn,o as Yn,p as Xn,q as Zn,r as Qn,s as $n,t as er,u as tr,v as nr,w as rr,x as ir,y as ar,z as or}from"./CaChtuYU2.js";import{$ as sr,A as cr,B as lr,C as ur,D as dr,E as fr,F as pr,G as mr,H as hr,I as gr,J as _r,K as vr,L as yr,M as br,N as xr,O as Sr,P as Cr,Q as wr,R as Tr,S as Er,T as Dr,U as Or,V as kr,W as Ar,X as jr,Y as Mr,Z as Nr,_ as Pr,a as Fr,b as Ir,c as Lr,d as Rr,et as zr,f as Br,g as Vr,h as Hr,i as Ur,j as Wr,k as Gr,l as Kr,m as qr,n as Jr,o as Yr,p as Xr,q as Zr,r as Qr,s as $r,t as ei,u as ti,v as ni,w as ri,x as ii,y as ai,z as oi}from"./DRl7vwNC2.js";import{A as si,C as ci,D as li,E as ui,F as di,I as fi,L as pi,M as mi,N as hi,O as gi,P as _i,R as vi,S as yi,T as bi,_ as xi,a as Si,b as Ci,c as wi,d as Ti,f as Ei,g as Di,h as Oi,i as ki,j as Ai,k as ji,l as Mi,m as Ni,n as Pi,o as Fi,p as Ii,r as Li,s as Ri,t as zi,u as Bi,v as Vi,w as Hi,x as Ui,y as Wi}from"./BX2T6xiZ.js";import{t as Gi}from"./-wzwcH00.js";import{a as Ki,c as qi,d as Ji,f as Yi,i as Xi,l as Zi,n as Qi,o as $i,p as ea,r as ta,s as na,t as ra,u as ia}from"./6LRpFvjo.js";import{CanvasRenderer as aa,a as oa,c as sa,d as ca,f as la,h as ua,i as da,l as fa,m as pa,n as ma,o as ha,p as ga,r as _a,s as va,t as ya,u as ba}from"./MSB7eA4_.js";import{$ as xa,A as Sa,B as Ca,C as wa,D as Ta,E as Ea,F as Da,G as Oa,H as ka,I as Aa,J as ja,K as Ma,L as Na,M as Pa,N as Fa,O as Ia,P as La,Q as Ra,R as za,S as Ba,T as Va,U as Ha,V as Ua,W as Wa,WebGLRenderer as Ga,X as Ka,Y as qa,Z as Ja,_ as Ya,a as Xa,at as Za,b as Qa,c as $a,ct as eo,d as to,et as no,f as ro,g as io,h as ao,i as oo,it as so,j as co,k as lo,l as uo,lt as fo,m as po,n as mo,nt as ho,o as go,ot as _o,p as vo,q as yo,r as bo,rt as xo,s as So,st as Co,t as wo,tt as To,u as Eo,ut as Do,v as Oo,w as ko,x as Ao,y as jo,z as Mo}from"./CdCuBMLm.js";import{A as No,C as Po,D as Fo,E as Io,M as Lo,N as Ro,O as zo,P as Bo,S as Vo,T as Ho,WebGPURenderer as Uo,_ as Wo,a as Go,b as Ko,c as qo,d as Jo,f as Yo,g as Xo,h as Zo,i as Qo,j as $o,k as es,l as ts,m as ns,n as rs,o as is,p as as,r as os,s as ss,t as cs,u as ls,v as us,w as ds,x as fs,y as ps}from"./BPR_ufQ0.js";import{A as ms,BitmapFont as hs,C as gs,D as _s,E as vs,F as ys,I as bs,M as xs,N as Ss,O as Cs,P as ws,S as Ts,T as Es,_ as Ds,a as Os,b as ks,c as As,d as js,f as Ms,g as Ns,h as Ps,i as Fs,j as Is,k as Ls,l as q,m as Rs,n as zs,o as Bs,p as Vs,r as Hs,s as Us,t as Ws,u as Gs,v as Ks,w as qs,x as Js,y as Ys}from"./Z7TNRcgK.js";function Xs(e,t,n,r,i,a,o,s){let c=o-n,l=s-r,u=i-n,d=a-r,f=e-n,p=t-r,m=c*c+l*l,h=c*u+l*d,g=c*f+l*p,_=u*u+d*d,v=u*f+d*p,y=1/(m*_-h*h),b=(_*g-h*v)*y,x=(m*v-h*g)*y;return b>=0&&x>=0&&b+x<1}var Zs=class e{constructor(e=0,t=0,n=0,r=0,i=0,a=0){this.type=`triangle`,this.x=e,this.y=t,this.x2=n,this.y2=r,this.x3=i,this.y3=a}contains(e,t){let n=(this.x-this.x3)*(t-this.y3)-(this.y-this.y3)*(e-this.x3),r=(this.x2-this.x)*(t-this.y)-(this.y2-this.y)*(e-this.x);if(n<0!=r<0&&n!==0&&r!==0)return!1;let i=(this.x3-this.x2)*(t-this.y2)-(this.y3-this.y2)*(e-this.x2);return i===0||i<0==n+r<=0}strokeContains(e,t,n,r=.5){let i=n/2,a=i*i,{x:o,x2:s,x3:c,y:l,y2:u,y3:d}=this;return zn(e,t,o,l,s,d)<=a||zn(e,t,s,u,c,d)<=a||zn(e,t,c,d,o,l)<=a}clone(){return new e(this.x,this.y,this.x2,this.y2,this.x3,this.y3)}copyFrom(e){return this.x=e.x,this.y=e.y,this.x2=e.x2,this.y2=e.y2,this.x3=e.x3,this.y3=e.y3,this}copyTo(e){return e.copyFrom(this),e}getBounds(e){e||=new p;let t=Math.min(this.x,this.x2,this.x3),n=Math.max(this.x,this.x2,this.x3),r=Math.min(this.y,this.y2,this.y3),i=Math.max(this.y,this.y2,this.y3);return e.x=t,e.y=r,e.width=n-t,e.height=i-r,e}},Qs={extension:{type:W.Environment,name:`browser`,priority:-1},test:()=>!0,load:async()=>{await t(()=>import(`./l_4snZnh2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url)}},$s={extension:{type:W.Environment,name:`webworker`,priority:0},test:()=>typeof self<`u`&&self.WorkerGlobalScope!==void 0,load:async()=>{await t(()=>import(`./CIchr8Tk2.js`),__vite__mapDeps([11,5,1,2,6,4,7,8,9,10]),import.meta.url)}},ec=`
3
+ in vec2 vTextureCoord;
4
+ in vec4 vColor;
5
+
6
+ out vec4 finalColor;
7
+
8
+ uniform float uBlend;
9
+
10
+ uniform sampler2D uTexture;
11
+ uniform sampler2D uBackTexture;
12
+
13
+ {FUNCTIONS}
14
+
15
+ void main()
16
+ {
17
+ vec4 back = texture(uBackTexture, vTextureCoord);
18
+ vec4 front = texture(uTexture, vTextureCoord);
19
+ float blendedAlpha = front.a + back.a * (1.0 - front.a);
20
+
21
+ {MAIN}
22
+ }
23
+ `,tc=`in vec2 aPosition;
24
+ out vec2 vTextureCoord;
25
+ out vec2 backgroundUv;
26
+
27
+ uniform vec4 uInputSize;
28
+ uniform vec4 uOutputFrame;
29
+ uniform vec4 uOutputTexture;
30
+
31
+ vec4 filterVertexPosition( void )
32
+ {
33
+ vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
34
+
35
+ position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
36
+ position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
37
+
38
+ return vec4(position, 0.0, 1.0);
39
+ }
40
+
41
+ vec2 filterTextureCoord( void )
42
+ {
43
+ return aPosition * (uOutputFrame.zw * uInputSize.zw);
44
+ }
45
+
46
+ void main(void)
47
+ {
48
+ gl_Position = filterVertexPosition();
49
+ vTextureCoord = filterTextureCoord();
50
+ }
51
+ `,nc=`
52
+ struct GlobalFilterUniforms {
53
+ uInputSize:vec4<f32>,
54
+ uInputPixel:vec4<f32>,
55
+ uInputClamp:vec4<f32>,
56
+ uOutputFrame:vec4<f32>,
57
+ uGlobalFrame:vec4<f32>,
58
+ uOutputTexture:vec4<f32>,
59
+ };
60
+
61
+ struct BlendUniforms {
62
+ uBlend:f32,
63
+ };
64
+
65
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
66
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
67
+ @group(0) @binding(2) var uSampler : sampler;
68
+ @group(0) @binding(3) var uBackTexture: texture_2d<f32>;
69
+
70
+ @group(1) @binding(0) var<uniform> blendUniforms : BlendUniforms;
71
+
72
+
73
+ struct VSOutput {
74
+ @builtin(position) position: vec4<f32>,
75
+ @location(0) uv : vec2<f32>
76
+ };
77
+
78
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
79
+ {
80
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
81
+
82
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
83
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
84
+
85
+ return vec4(position, 0.0, 1.0);
86
+ }
87
+
88
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
89
+ {
90
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
91
+ }
92
+
93
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
94
+ {
95
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
96
+ }
97
+
98
+ @vertex
99
+ fn mainVertex(
100
+ @location(0) aPosition : vec2<f32>,
101
+ ) -> VSOutput {
102
+ return VSOutput(
103
+ filterVertexPosition(aPosition),
104
+ filterTextureCoord(aPosition)
105
+ );
106
+ }
107
+
108
+ {FUNCTIONS}
109
+
110
+ @fragment
111
+ fn mainFragment(
112
+ @location(0) uv: vec2<f32>
113
+ ) -> @location(0) vec4<f32> {
114
+
115
+
116
+ var back = textureSample(uBackTexture, uSampler, uv);
117
+ var front = textureSample(uTexture, uSampler, uv);
118
+ var blendedAlpha = front.a + back.a * (1.0 - front.a);
119
+
120
+ var out = vec4<f32>(0.0,0.0,0.0,0.0);
121
+
122
+ {MAIN}
123
+
124
+ return out;
125
+ }`,J=class extends at{constructor(e){let t=e.gpu,n=rc({source:nc,...t}),r=ue.from({vertex:{source:n,entryPoint:`mainVertex`},fragment:{source:n,entryPoint:`mainFragment`}}),i=e.gl,a=rc({source:ec,...i}),o=be.from({vertex:tc,fragment:a}),s=new pe({uBlend:{value:1,type:`f32`}});super({gpuProgram:r,glProgram:o,blendRequired:!0,resources:{blendUniforms:s,uBackTexture:h.EMPTY}})}};function rc(e){let{source:t,functions:n,main:r}=e;return t.replace(`{FUNCTIONS}`,n).replace(`{MAIN}`,r)}var ic=`
126
+ float getLuminosity(vec3 c) {
127
+ return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;
128
+ }
129
+
130
+ vec3 setLuminosity(vec3 c, float lum) {
131
+ float modLum = lum - getLuminosity(c);
132
+ vec3 color = c.rgb + vec3(modLum);
133
+
134
+ // clip back into legal range
135
+ modLum = getLuminosity(color);
136
+ vec3 modLumVec = vec3(modLum);
137
+
138
+ float cMin = min(color.r, min(color.g, color.b));
139
+ float cMax = max(color.r, max(color.g, color.b));
140
+
141
+ if(cMin < 0.0) {
142
+ color = mix(modLumVec, color, modLum / (modLum - cMin));
143
+ }
144
+
145
+ if(cMax > 1.0) {
146
+ color = mix(modLumVec, color, (1.0 - modLum) / (cMax - modLum));
147
+ }
148
+
149
+ return color;
150
+ }
151
+
152
+ float getSaturation(vec3 c) {
153
+ return max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));
154
+ }
155
+
156
+ vec3 setSaturationMinMidMax(vec3 cSorted, float s) {
157
+ vec3 colorSorted = cSorted;
158
+
159
+ if(colorSorted.z > colorSorted.x) {
160
+ colorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));
161
+ colorSorted.z = s;
162
+ }
163
+ else {
164
+ colorSorted.y = 0.0;
165
+ colorSorted.z = 0.0;
166
+ }
167
+
168
+ colorSorted.x = 0.0;
169
+
170
+ return colorSorted;
171
+ }
172
+
173
+ vec3 setSaturation(vec3 c, float s) {
174
+ vec3 color = c;
175
+
176
+ if(color.r <= color.g && color.r <= color.b) {
177
+ if(color.g <= color.b) {
178
+ color = setSaturationMinMidMax(color.rgb, s).rgb;
179
+ }
180
+ else {
181
+ color = setSaturationMinMidMax(color.rbg, s).rbg;
182
+ }
183
+ }
184
+ else if(color.g <= color.r && color.g <= color.b) {
185
+ if(color.r <= color.b) {
186
+ color = setSaturationMinMidMax(color.grb, s).grb;
187
+ }
188
+ else {
189
+ color = setSaturationMinMidMax(color.gbr, s).gbr;
190
+ }
191
+ }
192
+ else {
193
+ // Using bgr for both fixes part of hue
194
+ if(color.r <= color.g) {
195
+ color = setSaturationMinMidMax(color.brg, s).brg;
196
+ }
197
+ else {
198
+ color = setSaturationMinMidMax(color.bgr, s).bgr;
199
+ }
200
+ }
201
+
202
+ return color;
203
+ }
204
+ `,ac=`
205
+ fn getLuminosity(c: vec3<f32>) -> f32
206
+ {
207
+ return 0.3*c.r + 0.59*c.g + 0.11*c.b;
208
+ }
209
+
210
+ fn setLuminosity(c: vec3<f32>, lum: f32) -> vec3<f32>
211
+ {
212
+ var modLum: f32 = lum - getLuminosity(c);
213
+ var color: vec3<f32> = c.rgb + modLum;
214
+
215
+ // clip back into legal range
216
+ modLum = getLuminosity(color);
217
+ let modLumVec = vec3<f32>(modLum);
218
+
219
+ let cMin: f32 = min(color.r, min(color.g, color.b));
220
+ let cMax: f32 = max(color.r, max(color.g, color.b));
221
+
222
+ if(cMin < 0.0)
223
+ {
224
+ color = mix(modLumVec, color, modLum / (modLum - cMin));
225
+ }
226
+
227
+ if(cMax > 1.0)
228
+ {
229
+ color = mix(modLumVec, color, (1 - modLum) / (cMax - modLum));
230
+ }
231
+
232
+ return color;
233
+ }
234
+
235
+ fn getSaturation(c: vec3<f32>) -> f32
236
+ {
237
+ return max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));
238
+ }
239
+
240
+ fn setSaturationMinMidMax(cSorted: vec3<f32>, s: f32) -> vec3<f32>
241
+ {
242
+ var colorSorted = cSorted;
243
+
244
+ if(colorSorted.z > colorSorted.x)
245
+ {
246
+ colorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));
247
+ colorSorted.z = s;
248
+ }
249
+ else
250
+ {
251
+ colorSorted.y = 0;
252
+ colorSorted.z = 0;
253
+ }
254
+
255
+ colorSorted.x = 0;
256
+
257
+ return colorSorted;
258
+ }
259
+
260
+ fn setSaturation(c: vec3<f32>, s: f32) -> vec3<f32>
261
+ {
262
+ var color = c;
263
+
264
+ if (color.r <= color.g && color.r <= color.b)
265
+ {
266
+ if (color.g <= color.b)
267
+ {
268
+ color = vec3<f32>(setSaturationMinMidMax(color.rgb, s)).rgb;
269
+ }
270
+ else
271
+ {
272
+ color = vec3<f32>(setSaturationMinMidMax(color.rbg, s)).rbg;
273
+ }
274
+ }
275
+ else if (color.g <= color.r && color.g <= color.b)
276
+ {
277
+ if (color.r <= color.b)
278
+ {
279
+ color = vec3<f32>(setSaturationMinMidMax(color.grb, s)).grb;
280
+ }
281
+ else
282
+ {
283
+ color = vec3<f32>(setSaturationMinMidMax(color.gbr, s)).gbr;
284
+ }
285
+ }
286
+ else
287
+ {
288
+ // Using bgr for both fixes part of hue
289
+ if (color.r <= color.g)
290
+ {
291
+ color = vec3<f32>(setSaturationMinMidMax(color.brg, s)).brg;
292
+ }
293
+ else
294
+ {
295
+ color = vec3<f32>(setSaturationMinMidMax(color.bgr, s)).bgr;
296
+ }
297
+ }
298
+
299
+ return color;
300
+ }
301
+ `,oc=class extends J{constructor(){super({gl:{functions:`
302
+ ${ic}
303
+
304
+ vec3 blendColor(vec3 base, vec3 blend, float opacity)
305
+ {
306
+ return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));
307
+ }
308
+ `,main:`
309
+ finalColor = vec4(blendColor(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
310
+ `},gpu:{functions:`
311
+ ${ac}
312
+
313
+ fn blendColorOpacity(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
314
+ {
315
+ return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));
316
+ }
317
+ `,main:`
318
+ out = vec4<f32>(blendColorOpacity(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
319
+ `}})}};oc.extension={name:`color`,type:W.BlendMode};var sc=class extends J{constructor(){super({gl:{functions:`
320
+ float colorBurn(float base, float blend)
321
+ {
322
+ return max((1.0 - ((1.0 - base) / blend)), 0.0);
323
+ }
324
+
325
+ vec3 blendColorBurn(vec3 base, vec3 blend, float opacity)
326
+ {
327
+ vec3 blended = vec3(
328
+ colorBurn(base.r, blend.r),
329
+ colorBurn(base.g, blend.g),
330
+ colorBurn(base.b, blend.b)
331
+ );
332
+
333
+ return (blended * opacity + base * (1.0 - opacity));
334
+ }
335
+ `,main:`
336
+ finalColor = vec4(blendColorBurn(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
337
+ `},gpu:{functions:`
338
+ fn colorBurn(base:f32, blend:f32) -> f32
339
+ {
340
+ return max((1.0-((1.0-base)/blend)),0.0);
341
+ }
342
+
343
+ fn blendColorBurn(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
344
+ {
345
+ let blended = vec3<f32>(
346
+ colorBurn(base.r, blend.r),
347
+ colorBurn(base.g, blend.g),
348
+ colorBurn(base.b, blend.b)
349
+ );
350
+
351
+ return (blended * opacity + base * (1.0 - opacity));
352
+ }
353
+ `,main:`
354
+ out = vec4<f32>(blendColorBurn(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
355
+ `}})}};sc.extension={name:`color-burn`,type:W.BlendMode};var cc=class extends J{constructor(){super({gl:{functions:`
356
+ float colorDodge(float base, float blend)
357
+ {
358
+ return base / (1.0 - blend);
359
+ }
360
+
361
+ vec3 blendColorDodge(vec3 base, vec3 blend, float opacity)
362
+ {
363
+ vec3 blended = vec3(
364
+ colorDodge(base.r, blend.r),
365
+ colorDodge(base.g, blend.g),
366
+ colorDodge(base.b, blend.b)
367
+ );
368
+
369
+ return (blended * opacity + base * (1.0 - opacity));
370
+ }
371
+ `,main:`
372
+ finalColor = vec4(blendColorDodge(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
373
+ `},gpu:{functions:`
374
+ fn colorDodge(base: f32, blend: f32) -> f32
375
+ {
376
+ return base / (1.0 - blend);
377
+ }
378
+
379
+ fn blendColorDodge(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
380
+ {
381
+ let blended = vec3<f32>(
382
+ colorDodge(base.r, blend.r),
383
+ colorDodge(base.g, blend.g),
384
+ colorDodge(base.b, blend.b)
385
+ );
386
+
387
+ return (blended * opacity + base * (1.0 - opacity));
388
+ }
389
+ `,main:`
390
+ out = vec4<f32>(blendColorDodge(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
391
+ `}})}};cc.extension={name:`color-dodge`,type:W.BlendMode};var lc=class extends J{constructor(){super({gl:{functions:`
392
+ vec3 blendDarken(vec3 base, vec3 blend, float opacity)
393
+ {
394
+ return (min(base, blend) * opacity + base * (1.0 - opacity));
395
+ }
396
+ `,main:`
397
+ finalColor = vec4(blendDarken(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
398
+ `},gpu:{functions:`
399
+ fn blendDarken(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
400
+ {
401
+ return (min(blend,base) * opacity + base * (1.0 - opacity));
402
+ }
403
+ `,main:`
404
+ out = vec4<f32>(blendDarken(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
405
+ `}})}};lc.extension={name:`darken`,type:W.BlendMode};var uc=class extends J{constructor(){super({gl:{functions:`
406
+ vec3 blendDifference(vec3 base, vec3 blend, float opacity)
407
+ {
408
+ return (abs(blend - base) * opacity + base * (1.0 - opacity));
409
+ }
410
+ `,main:`
411
+ finalColor = vec4(blendDifference(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
412
+ `},gpu:{functions:`
413
+ fn blendDifference(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
414
+ {
415
+ return (abs(blend - base) * opacity + base * (1.0 - opacity));
416
+ }
417
+ `,main:`
418
+ out = vec4<f32>(blendDifference(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
419
+ `}})}};uc.extension={name:`difference`,type:W.BlendMode};var dc=class extends J{constructor(){super({gl:{functions:`
420
+ float divide(float base, float blend)
421
+ {
422
+ return (blend > 0.0) ? clamp(base / blend, 0.0, 1.0) : 1.0;
423
+ }
424
+
425
+ vec3 blendDivide(vec3 base, vec3 blend, float opacity)
426
+ {
427
+ vec3 blended = vec3(
428
+ divide(base.r, blend.r),
429
+ divide(base.g, blend.g),
430
+ divide(base.b, blend.b)
431
+ );
432
+
433
+ return (blended * opacity + base * (1.0 - opacity));
434
+ }
435
+ `,main:`
436
+ finalColor = vec4(blendDivide(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
437
+ `},gpu:{functions:`
438
+ fn divide(base: f32, blend: f32) -> f32
439
+ {
440
+ return select(1.0, clamp(base / blend, 0.0, 1.0), blend > 0.0);
441
+ }
442
+
443
+ fn blendDivide(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
444
+ {
445
+ let blended = vec3<f32>(
446
+ divide(base.r, blend.r),
447
+ divide(base.g, blend.g),
448
+ divide(base.b, blend.b)
449
+ );
450
+ return (blended * opacity + base * (1.0 - opacity));
451
+ }
452
+ `,main:`
453
+ out = vec4<f32>(blendDivide(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
454
+ `}})}};dc.extension={name:`divide`,type:W.BlendMode};var fc=class extends J{constructor(){super({gl:{functions:`
455
+ vec3 exclusion(vec3 base, vec3 blend)
456
+ {
457
+ return base + blend - 2.0 * base * blend;
458
+ }
459
+
460
+ vec3 blendExclusion(vec3 base, vec3 blend, float opacity)
461
+ {
462
+ return (exclusion(base, blend) * opacity + base * (1.0 - opacity));
463
+ }
464
+ `,main:`
465
+ finalColor = vec4(blendExclusion(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
466
+ `},gpu:{functions:`
467
+ fn exclusion(base: vec3<f32>, blend: vec3<f32>) -> vec3<f32>
468
+ {
469
+ return base+blend-2.0*base*blend;
470
+ }
471
+
472
+ fn blendExclusion(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
473
+ {
474
+ return (exclusion(base, blend) * opacity + base * (1.0 - opacity));
475
+ }
476
+ `,main:`
477
+ out = vec4<f32>(blendExclusion(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
478
+ `}})}};fc.extension={name:`exclusion`,type:W.BlendMode};var pc=class extends J{constructor(){super({gl:{functions:`
479
+ float hardLight(float base, float blend)
480
+ {
481
+ return (blend < 0.5) ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);
482
+ }
483
+
484
+ vec3 blendHardLight(vec3 base, vec3 blend, float opacity)
485
+ {
486
+ vec3 blended = vec3(
487
+ hardLight(base.r, blend.r),
488
+ hardLight(base.g, blend.g),
489
+ hardLight(base.b, blend.b)
490
+ );
491
+
492
+ return (blended * opacity + base * (1.0 - opacity));
493
+ }
494
+ `,main:`
495
+ finalColor = vec4(blendHardLight(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
496
+ `},gpu:{functions:`
497
+ fn hardLight(base: f32, blend: f32) -> f32
498
+ {
499
+ return select(1.0 - 2.0 * (1.0 - base) * (1.0 - blend), 2.0 * base * blend, blend < 0.5);
500
+ }
501
+
502
+ fn blendHardLight(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
503
+ {
504
+ let blended = vec3<f32>(
505
+ hardLight(base.r, blend.r),
506
+ hardLight(base.g, blend.g),
507
+ hardLight(base.b, blend.b)
508
+ );
509
+ return (blended * opacity + base * (1.0 - opacity));
510
+ }
511
+ `,main:`
512
+ out = vec4<f32>(blendHardLight(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
513
+ `}})}};pc.extension={name:`hard-light`,type:W.BlendMode};var mc=class extends J{constructor(){super({gl:{functions:`
514
+ float hardMix(float base, float blend)
515
+ {
516
+ return (base + blend >= 1.0) ? 1.0 : 0.0;
517
+ }
518
+
519
+ vec3 blendHardMix(vec3 base, vec3 blend, float opacity)
520
+ {
521
+ vec3 blended = vec3(
522
+ hardMix(base.r, blend.r),
523
+ hardMix(base.g, blend.g),
524
+ hardMix(base.b, blend.b)
525
+ );
526
+ return (blended * opacity + base * (1.0 - opacity));
527
+ }
528
+ `,main:`
529
+ finalColor = vec4(blendHardMix(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
530
+ `},gpu:{functions:`
531
+ fn hardMix(base: f32, blend: f32) -> f32
532
+ {
533
+ return select(0.0, 1.0, base + blend >= 1.0);
534
+ }
535
+
536
+ fn blendHardMix(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
537
+ {
538
+ let blended: vec3<f32> = vec3<f32>(
539
+ hardMix(base.r, blend.r),
540
+ hardMix(base.g, blend.g),
541
+ hardMix(base.b, blend.b)
542
+ );
543
+ return (blended * opacity + base * (1.0 - opacity));
544
+ }
545
+ `,main:`
546
+ out = vec4<f32>(blendHardMix(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
547
+ `}})}};mc.extension={name:`hard-mix`,type:W.BlendMode};var hc=class extends J{constructor(){super({gl:{functions:`
548
+ vec3 blendLighten(vec3 base, vec3 blend, float opacity)
549
+ {
550
+ return (max(base, blend) * opacity + base * (1.0 - opacity));
551
+ }
552
+ `,main:`
553
+ finalColor = vec4(blendLighten(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
554
+ `},gpu:{functions:`
555
+ fn blendLighten(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
556
+ {
557
+ return (max(base, blend) * opacity + base * (1.0 - opacity));
558
+ }
559
+ `,main:`
560
+ out = vec4<f32>(blendLighten(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
561
+ `}})}};hc.extension={name:`lighten`,type:W.BlendMode};var gc=class extends J{constructor(){super({gl:{functions:`
562
+ float linearBurn(float base, float blend)
563
+ {
564
+ return max(0.0, base + blend - 1.0);
565
+ }
566
+
567
+ vec3 blendLinearBurn(vec3 base, vec3 blend, float opacity)
568
+ {
569
+ vec3 blended = vec3(
570
+ linearBurn(base.r, blend.r),
571
+ linearBurn(base.g, blend.g),
572
+ linearBurn(base.b, blend.b)
573
+ );
574
+
575
+ return (blended * opacity + base * (1.0 - opacity));
576
+ }
577
+ `,main:`
578
+ finalColor = vec4(blendLinearBurn(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
579
+ `},gpu:{functions:`
580
+ fn linearBurn(base: f32, blend: f32) -> f32
581
+ {
582
+ return max(0.0, base + blend - 1.0);
583
+ }
584
+
585
+ fn blendLinearBurn(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
586
+ {
587
+ let blended = vec3<f32>(
588
+ linearBurn(base.r, blend.r),
589
+ linearBurn(base.g, blend.g),
590
+ linearBurn(base.b, blend.b)
591
+ );
592
+
593
+ return (blended * opacity + base * (1.0 - opacity));
594
+ }
595
+ `,main:`
596
+ out = vec4<f32>(blendLinearBurn(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
597
+ `}})}};gc.extension={name:`linear-burn`,type:W.BlendMode};var _c=class extends J{constructor(){super({gl:{functions:`
598
+ float linearDodge(float base, float blend) {
599
+ return min(1.0, base + blend);
600
+ }
601
+
602
+ vec3 blendLinearDodge(vec3 base, vec3 blend, float opacity) {
603
+ vec3 blended = vec3(
604
+ linearDodge(base.r, blend.r),
605
+ linearDodge(base.g, blend.g),
606
+ linearDodge(base.b, blend.b)
607
+ );
608
+ return (blended * opacity + base * (1.0 - opacity));
609
+ }
610
+ `,main:`
611
+ finalColor = vec4(blendLinearDodge(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
612
+ `},gpu:{functions:`
613
+ fn linearDodge(base: f32, blend: f32) -> f32
614
+ {
615
+ return min(1, base + blend);
616
+ }
617
+
618
+ fn blendLinearDodge(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
619
+ {
620
+ let blended = vec3<f32>(
621
+ linearDodge(base.r, blend.r),
622
+ linearDodge(base.g, blend.g),
623
+ linearDodge(base.b, blend.b)
624
+ );
625
+
626
+ return (blended * opacity + base * (1.0 - opacity));
627
+ }
628
+ `,main:`
629
+ out = vec4<f32>(blendLinearDodge(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
630
+ `}})}};_c.extension={name:`linear-dodge`,type:W.BlendMode};var vc=class extends J{constructor(){super({gl:{functions:`
631
+ float linearBurn(float base, float blend) {
632
+ return max(0.0, base + blend - 1.0);
633
+ }
634
+
635
+ float linearDodge(float base, float blend) {
636
+ return min(1.0, base + blend);
637
+ }
638
+
639
+ float linearLight(float base, float blend) {
640
+ return (blend <= 0.5) ? linearBurn(base,2.0*blend) : linearBurn(base,2.0*(blend-0.5));
641
+ }
642
+
643
+ vec3 blendLinearLight(vec3 base, vec3 blend, float opacity) {
644
+ vec3 blended = vec3(
645
+ linearLight(base.r, blend.r),
646
+ linearLight(base.g, blend.g),
647
+ linearLight(base.b, blend.b)
648
+ );
649
+
650
+ return (blended * opacity + base * (1.0 - opacity));
651
+ }
652
+ `,main:`
653
+ finalColor = vec4(blendLinearLight(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
654
+ `},gpu:{functions:`
655
+ fn linearBurn(base: f32, blend: f32) -> f32
656
+ {
657
+ return max(0.0, base + blend - 1.0);
658
+ }
659
+
660
+ fn linearDodge(base: f32, blend: f32) -> f32
661
+ {
662
+ return min(1.0, base + blend);
663
+ }
664
+
665
+ fn linearLight(base: f32, blend: f32) -> f32
666
+ {
667
+ return select(linearBurn(base,2.0*(blend-0.5)), linearBurn(base,2.0*blend), blend <= 0.5);
668
+ }
669
+
670
+ fn blendLinearLightOpacity(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
671
+ {
672
+ let blended = vec3<f32>(
673
+ linearLight(base.r, blend.r),
674
+ linearLight(base.g, blend.g),
675
+ linearLight(base.b, blend.b)
676
+ );
677
+
678
+ return (blended * opacity + base * (1.0 - opacity));
679
+ }
680
+ `,main:`
681
+ out = vec4<f32>(blendLinearLightOpacity(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
682
+ `}})}};vc.extension={name:`linear-light`,type:W.BlendMode};var yc=class extends J{constructor(){super({gl:{functions:`
683
+ ${ic}
684
+
685
+ vec3 blendLuminosity(vec3 base, vec3 blend, float opacity)
686
+ {
687
+ vec3 blendLuminosity = setLuminosity(base, getLuminosity(blend));
688
+ return (blendLuminosity * opacity + base * (1.0 - opacity));
689
+ }
690
+ `,main:`
691
+ finalColor = vec4(blendLuminosity(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
692
+ `},gpu:{functions:`
693
+ ${ac}
694
+
695
+ fn blendLuminosity(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
696
+ {
697
+ let blendLuminosity: vec3<f32> = setLuminosity(base, getLuminosity(blend));
698
+ return (blendLuminosity * opacity + base * (1.0 - opacity));
699
+ }
700
+ `,main:`
701
+ out = vec4<f32>(blendLuminosity(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
702
+ `}})}};yc.extension={name:`luminosity`,type:W.BlendMode};var bc=class extends J{constructor(){super({gl:{functions:`
703
+ vec3 negation(vec3 base, vec3 blend)
704
+ {
705
+ return 1.0-abs(1.0-base-blend);
706
+ }
707
+
708
+ vec3 blendNegation(vec3 base, vec3 blend, float opacity)
709
+ {
710
+ return (negation(base, blend) * opacity + base * (1.0 - opacity));
711
+ }
712
+ `,main:`
713
+ finalColor = vec4(blendNegation(back.rgb, front.rgb, front.a), blendedAlpha) * uBlend;
714
+ `},gpu:{functions:`
715
+ fn blendNegation(base: vec3<f32>, blend: vec3<f32>) -> vec3<f32>
716
+ {
717
+ return 1.0-abs(1.0-base-blend);
718
+ }
719
+
720
+ fn blendNegationOpacity(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
721
+ {
722
+ return (blendNegation(base, blend) * opacity + base * (1.0 - opacity));
723
+ }
724
+ `,main:`
725
+ out = vec4<f32>(blendNegationOpacity(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
726
+ `}})}};bc.extension={name:`negation`,type:W.BlendMode};var xc=class extends J{constructor(){super({gl:{functions:`
727
+ float overlay(float base, float blend)
728
+ {
729
+ return (base < 0.5) ? (2.0*base*blend) : (1.0-2.0*(1.0-base)*(1.0-blend));
730
+ }
731
+
732
+ vec3 blendOverlay(vec3 base, vec3 blend, float opacity)
733
+ {
734
+ vec3 blended = vec3(
735
+ overlay(base.r, blend.r),
736
+ overlay(base.g, blend.g),
737
+ overlay(base.b, blend.b)
738
+ );
739
+
740
+ return (blended * opacity + base * (1.0 - opacity));
741
+ }
742
+ `,main:`
743
+ finalColor = vec4(blendOverlay(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
744
+ `},gpu:{functions:`
745
+ fn overlay(base: f32, blend: f32) -> f32
746
+ {
747
+ return select((1.0-2.0*(1.0-base)*(1.0-blend)), (2.0*base*blend), base < 0.5);
748
+ }
749
+
750
+ fn blendOverlay(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
751
+ {
752
+ let blended = vec3<f32>(
753
+ overlay(base.r, blend.r),
754
+ overlay(base.g, blend.g),
755
+ overlay(base.b, blend.b)
756
+ );
757
+
758
+ return (blended * opacity + base * (1.0 - opacity));
759
+ }
760
+ `,main:`
761
+ out = vec4<f32>(blendOverlay(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
762
+ `}})}};xc.extension={name:`overlay`,type:W.BlendMode};var Sc=class extends J{constructor(){super({gl:{functions:`
763
+ float pinLight(float base, float blend)
764
+ {
765
+ return (blend <= 0.5) ? min(base, 2.0 * blend) : max(base, 2.0 * (blend - 0.5));
766
+ }
767
+
768
+ vec3 blendPinLight(vec3 base, vec3 blend, float opacity)
769
+ {
770
+ vec3 blended = vec3(
771
+ pinLight(base.r, blend.r),
772
+ pinLight(base.g, blend.g),
773
+ pinLight(base.b, blend.b)
774
+ );
775
+
776
+ return (blended * opacity + base * (1.0 - opacity));
777
+ }
778
+ `,main:`
779
+ finalColor = vec4(blendPinLight(back.rgb, front.rgb, front.a), blendedAlpha) * uBlend;
780
+ `},gpu:{functions:`
781
+ fn pinLight(base: f32, blend: f32) -> f32
782
+ {
783
+ return select(max(base,2.0*(blend-0.5)), min(base,2.0*blend), blend <= 0.5);
784
+ }
785
+
786
+ fn blendPinLight(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
787
+ {
788
+ let blended = vec3<f32>(
789
+ pinLight(base.r, blend.r),
790
+ pinLight(base.g, blend.g),
791
+ pinLight(base.b, blend.b)
792
+ );
793
+
794
+ return (blended * opacity + base * (1.0 - opacity));
795
+ }
796
+ `,main:`
797
+ out = vec4<f32>(blendPinLight(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
798
+ `}})}};Sc.extension={name:`pin-light`,type:W.BlendMode};var Cc=class extends J{constructor(){super({gl:{functions:`
799
+ ${ic}
800
+
801
+ vec3 blendSaturation(vec3 base, vec3 blend, float opacity)
802
+ {
803
+ vec3 blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));
804
+ return (blendSaturation * opacity + base * (1.0 - opacity));
805
+ }
806
+ `,main:`
807
+ finalColor = vec4(blendSaturation(back.rgb, front.rgb, front.a), blendedAlpha) * uBlend;
808
+ `},gpu:{functions:`
809
+ ${ac}
810
+
811
+ fn blendSaturation(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
812
+ {
813
+ let blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));
814
+ return (blendSaturation * opacity + base * (1.0 - opacity));
815
+ }
816
+ `,main:`
817
+ out = vec4<f32>(blendSaturation(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
818
+ `}})}};Cc.extension={name:`saturation`,type:W.BlendMode};var wc=class extends J{constructor(){super({gl:{functions:`
819
+ float softLight(float base, float blend)
820
+ {
821
+ return (blend < 0.5) ? (2.0 * base * blend + base * base * (1.0 - 2.0 * blend)) : (sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend));
822
+ }
823
+
824
+ vec3 blendSoftLight(vec3 base, vec3 blend, float opacity)
825
+ {
826
+ vec3 blended = vec3(
827
+ softLight(base.r, blend.r),
828
+ softLight(base.g, blend.g),
829
+ softLight(base.b, blend.b)
830
+ );
831
+
832
+ return (blended * opacity + base * (1.0 - opacity));
833
+ }
834
+ `,main:`
835
+ finalColor = vec4(blendSoftLight(back.rgb, front.rgb, front.a), blendedAlpha) * uBlend;
836
+ `},gpu:{functions:`
837
+ fn softLight(base: f32, blend: f32) -> f32
838
+ {
839
+ return select(2.0 * base * blend + base * base * (1.0 - 2.0 * blend), sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend), blend < 0.5);
840
+ }
841
+
842
+ fn blendSoftLight(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
843
+ {
844
+ let blended: vec3<f32> = vec3<f32>(
845
+ softLight(base.r, blend.r),
846
+ softLight(base.g, blend.g),
847
+ softLight(base.b, blend.b)
848
+ );
849
+
850
+ return (blended * opacity + base * (1.0 - opacity));
851
+ }
852
+ `,main:`
853
+ out = vec4<f32>(blendSoftLight(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
854
+ `}})}};wc.extension={name:`soft-light`,type:W.BlendMode};var Tc=class extends J{constructor(){super({gl:{functions:`
855
+ float subtract(float base, float blend)
856
+ {
857
+ return max(0.0, base - blend);
858
+ }
859
+
860
+ vec3 blendSubtract(vec3 base, vec3 blend, float opacity)
861
+ {
862
+ vec3 blended = vec3(
863
+ subtract(base.r, blend.r),
864
+ subtract(base.g, blend.g),
865
+ subtract(base.b, blend.b)
866
+ );
867
+
868
+ return (blended * opacity + base * (1.0 - opacity));
869
+ }
870
+ `,main:`
871
+ finalColor = vec4(blendSubtract(back.rgb, front.rgb, front.a), blendedAlpha) * uBlend;
872
+ `},gpu:{functions:`
873
+ fn subtract(base: f32, blend: f32) -> f32
874
+ {
875
+ return max(0, base - blend);
876
+ }
877
+
878
+ fn blendSubtract(base:vec3<f32>, blend:vec3<f32>, opacity:f32) -> vec3<f32>
879
+ {
880
+ let blended = vec3<f32>(
881
+ subtract(base.r, blend.r),
882
+ subtract(base.g, blend.g),
883
+ subtract(base.b, blend.b)
884
+ );
885
+
886
+ return (blended * opacity + base * (1.0 - opacity));
887
+ }
888
+ `,main:`
889
+ out = vec4<f32>(blendSubtract(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
890
+ `}})}};Tc.extension={name:`subtract`,type:W.BlendMode};var Ec=class extends J{constructor(){super({gl:{functions:`
891
+ float colorBurn(float base, float blend)
892
+ {
893
+ return max((1.0-((1.0-base)/blend)),0.0);
894
+ }
895
+
896
+ float colorDodge(float base, float blend)
897
+ {
898
+ return min(1.0, base / (1.0-blend));
899
+ }
900
+
901
+ float vividLight(float base, float blend)
902
+ {
903
+ return (blend < 0.5) ? colorBurn(base,(2.0*blend)) : colorDodge(base,(2.0*(blend-0.5)));
904
+ }
905
+
906
+ vec3 blendVividLight(vec3 base, vec3 blend, float opacity)
907
+ {
908
+ vec3 blended = vec3(
909
+ vividLight(base.r, blend.r),
910
+ vividLight(base.g, blend.g),
911
+ vividLight(base.b, blend.b)
912
+ );
913
+
914
+ return (blended * opacity + base * (1.0 - opacity));
915
+ }
916
+ `,main:`
917
+ finalColor = vec4(blendVividLight(back.rgb, front.rgb,front.a), blendedAlpha) * uBlend;
918
+ `},gpu:{functions:`
919
+ fn colorBurn(base:f32, blend:f32) -> f32
920
+ {
921
+ return max((1.0-((1.0-base)/blend)),0.0);
922
+ }
923
+
924
+ fn colorDodge(base: f32, blend: f32) -> f32
925
+ {
926
+ return min(1.0, base / (1.0-blend));
927
+ }
928
+
929
+ fn vividLight(base: f32, blend: f32) -> f32
930
+ {
931
+ return select(colorDodge(base,(2.0*(blend-0.5))), colorBurn(base,(2.0*blend)), blend<0.5);
932
+ }
933
+
934
+ fn blendVividLight(base: vec3<f32>, blend: vec3<f32>, opacity: f32) -> vec3<f32>
935
+ {
936
+ let blended: vec3<f32> = vec3<f32>(
937
+ vividLight(base.r, blend.r),
938
+ vividLight(base.g, blend.g),
939
+ vividLight(base.b, blend.b)
940
+ );
941
+
942
+ return (blended * opacity + base * (1.0 - opacity));
943
+ }
944
+ `,main:`
945
+ out = vec4<f32>(blendVividLight(back.rgb, front.rgb, front.a), blendedAlpha) * blendUniforms.uBlend;
946
+ `}})}};Ec.extension={name:`vivid-light`,type:W.BlendMode};var Dc;function Oc(e){return Dc===void 0&&(Dc=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:e??Mr.defaultOptions.failIfMajorPerformanceCaveat};try{if(!r.get().getWebGLRenderingContext())return!1;let e=r.get().createCanvas().getContext(`webgl`,t),n=!!e?.getContextAttributes()?.stencil;if(e){let t=e.getExtension(`WEBGL_lose_context`);t&&t.loseContext()}return e=null,n}catch{return!1}})()),Dc}var kc;async function Ac(e={}){return kc===void 0&&(kc=await(async()=>{let t=r.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(e)).requestDevice(),!0}catch{return!1}})()),kc}var jc=[`webgl`,`webgpu`,`canvas`];async function Mc(e){let n=[];e.preference?Array.isArray(e.preference)?n=e.preference.slice():(n.push(e.preference),jc.forEach(t=>{t!==e.preference&&n.push(t)})):n=jc.slice();let r,i={};for(let a=0;a<n.length;a++){let o=n[a];if(o===`webgpu`&&await Ac()){let{WebGPURenderer:n}=await t(async()=>{let{WebGPURenderer:e}=await import(`./BPR_ufQ0.js`);return{WebGPURenderer:e}},__vite__mapDeps([12,1,2,13,4,14,15,16,8]),import.meta.url);r=n,i={...e,...e.webgpu};break}else if(o===`webgl`&&Oc(e.failIfMajorPerformanceCaveat??Mr.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:n}=await t(async()=>{let{WebGLRenderer:e}=await import(`./CdCuBMLm.js`);return{WebGLRenderer:e}},__vite__mapDeps([17,1,2,13,4,14,16]),import.meta.url);r=n,i={...e,...e.webgl};break}else if(o===`canvas`){let{CanvasRenderer:n}=await t(async()=>{let{CanvasRenderer:e}=await import(`./MSB7eA4_.js`);return{CanvasRenderer:e}},__vite__mapDeps([18,1,2,13,19,15,9,4,14,7]),import.meta.url);r=n,i={...e,...e.canvasOptions};break}}if(delete i.webgpu,delete i.webgl,delete i.canvasOptions,!r)throw Error(`No available renderer for the current environment`);let a=new r;return await a.init(i),a}var Nc=class{static init(e){Object.defineProperty(this,`resizeTo`,{configurable:!0,set(e){globalThis.removeEventListener(`resize`,this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener(`resize`,this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&=(cancelAnimationFrame(this._resizeId),null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let e,t;if(this._resizeTo===globalThis.window)e=globalThis.innerWidth,t=globalThis.innerHeight;else{let{clientWidth:n,clientHeight:r}=this._resizeTo;e=n,t=r}this.renderer.resize(e,t),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener(`resize`,this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};Nc.extension=W.Application;var Pc=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,`ticker`,{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,Qe.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?it.shared:new it,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};Pc.extension=W.Application,F.add(Nc),F.add(Pc);var Fc=class e{constructor(...e){this.stage=new G,e[0]!==void 0&&y(n,`Application constructor options are deprecated, please use Application.init() instead.`)}async init(t){t={...t},this.stage||=new G,this.renderer=await Mc(t),e._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return y(n,`Application.view is deprecated, please use Application.canvas instead.`),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,n=!1){let r=e._plugins.slice(0);r.reverse(),r.forEach(e=>{e.destroy.call(this)}),this.stage.destroy(n),this.stage=null,this.renderer.destroy(t),this.renderer=null}};Fc._plugins=[];var Ic=Fc;F.handleByList(W.Application,Ic._plugins),F.add(mr);var Lc={test(e){return typeof e==`string`&&e.startsWith(`info face=`)},parse(e){let t=e.match(/^[a-z]+\s+.+$/gm),n={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(let e in t){let r=t[e].match(/^[a-z]+/gm)[0],i=t[e].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),a={};for(let e in i){let t=i[e].split(`=`),n=t[0],r=t[1].replace(/"/gm,``),o=parseFloat(r);a[n]=isNaN(o)?r:o}n[r].push(a)}let r={chars:{},pages:[],lineHeight:0,fontSize:0,fontFamily:``,distanceField:null,baseLineOffset:0},[i]=n.info,[a]=n.common,[o]=n.distanceField??[];o&&(r.distanceField={range:parseInt(o.distanceRange,10),type:o.fieldType}),r.fontSize=parseInt(i.size,10),r.fontFamily=i.face,r.lineHeight=parseInt(a.lineHeight,10);let s=n.page;for(let e=0;e<s.length;e++)r.pages.push({id:parseInt(s[e].id,10)||0,file:s[e].file});let c={};r.baseLineOffset=r.lineHeight-parseInt(a.base,10);let l=n.char;for(let e=0;e<l.length;e++){let t=l[e],n=parseInt(t.id,10),i=t.letter??t.char??String.fromCharCode(n);i===`space`&&(i=` `),c[n]=i,r.chars[i]={id:n,page:parseInt(t.page,10)||0,x:parseInt(t.x,10),y:parseInt(t.y,10),width:parseInt(t.width,10),height:parseInt(t.height,10),xOffset:parseInt(t.xoffset,10),yOffset:parseInt(t.yoffset,10),xAdvance:parseInt(t.xadvance,10),kerning:{}}}let u=n.kerning||[];for(let e=0;e<u.length;e++){let t=parseInt(u[e].first,10),n=parseInt(u[e].second,10),i=parseInt(u[e].amount,10);r.chars[c[n]]&&(r.chars[c[n]].kerning[c[t]]=i)}return r}},Rc={test(e){let t=e;return typeof t!=`string`&&`getElementsByTagName`in t&&t.getElementsByTagName(`page`).length&&t.getElementsByTagName(`info`)[0].getAttribute(`face`)!==null},parse(e){let t={chars:{},pages:[],lineHeight:0,fontSize:0,fontFamily:``,distanceField:null,baseLineOffset:0},n=e.getElementsByTagName(`info`)[0],r=e.getElementsByTagName(`common`)[0],i=e.getElementsByTagName(`distanceField`)[0];i&&(t.distanceField={type:i.getAttribute(`fieldType`),range:parseInt(i.getAttribute(`distanceRange`),10)});let a=e.getElementsByTagName(`page`),o=e.getElementsByTagName(`char`),s=e.getElementsByTagName(`kerning`);t.fontSize=parseInt(n.getAttribute(`size`),10),t.fontFamily=n.getAttribute(`face`),t.lineHeight=parseInt(r.getAttribute(`lineHeight`),10);for(let e=0;e<a.length;e++)t.pages.push({id:parseInt(a[e].getAttribute(`id`),10)||0,file:a[e].getAttribute(`file`)});let c={};t.baseLineOffset=t.lineHeight-parseInt(r.getAttribute(`base`),10);for(let e=0;e<o.length;e++){let n=o[e],r=parseInt(n.getAttribute(`id`),10),i=n.getAttribute(`letter`)??n.getAttribute(`char`)??String.fromCharCode(r);i===`space`&&(i=` `),c[r]=i,t.chars[i]={id:r,page:parseInt(n.getAttribute(`page`),10)||0,x:parseInt(n.getAttribute(`x`),10),y:parseInt(n.getAttribute(`y`),10),width:parseInt(n.getAttribute(`width`),10),height:parseInt(n.getAttribute(`height`),10),xOffset:parseInt(n.getAttribute(`xoffset`),10),yOffset:parseInt(n.getAttribute(`yoffset`),10),xAdvance:parseInt(n.getAttribute(`xadvance`),10),kerning:{}}}for(let e=0;e<s.length;e++){let n=parseInt(s[e].getAttribute(`first`),10),r=parseInt(s[e].getAttribute(`second`),10),i=parseInt(s[e].getAttribute(`amount`),10);t.chars[c[r]]&&(t.chars[c[r]].kerning[c[n]]=i)}return t}},zc={test(e){return typeof e==`string`&&e.match(/<font(\s|>)/)?Rc.test(r.get().parseXML(e)):!1},parse(e){return Rc.parse(r.get().parseXML(e))}},Bc=[`.xml`,`.fnt`],Vc={extension:{type:W.CacheParser,name:`cacheBitmapFont`},test:e=>!!e?.pages&&!!e?.chars&&typeof e?.fontFamily==`string`&&e.fontFamily!==``,getCacheableAssets(e,t){let n={};return e.forEach(e=>{n[e]=t,n[`${e}-bitmap`]=t}),n[`${t.fontFamily}-bitmap`]=t,n}},Hc={extension:{type:W.LoadParser,priority:Bt.Normal},name:`loadBitmapFont`,id:`bitmap-font`,test(e){return Bc.includes(Ot.extname(e).toLowerCase())},async testParse(e){return Lc.test(e)||zc.test(e)},async parse(e,n,r){let i=Lc.test(e)?Lc.parse(e):zc.parse(e),{src:a}=n,{pages:o}=i,s=[],c=i.distanceField?{scaleMode:`linear`,alphaMode:`premultiply-alpha-on-upload`,autoGenerateMipmaps:!1,resolution:1}:{};for(let e=0;e<o.length;++e){let t=o[e].file,n=Ot.join(Ot.dirname(a),t);n=Tt(n,a),s.push({src:n,data:c})}let[l,{BitmapFont:u}]=await Promise.all([r.load(s),t(()=>import(`./Z7TNRcgK.js`),__vite__mapDeps([20,1,2,19,13,15,9,6,8]),import.meta.url)]);return new u({data:i,textures:s.map(e=>l[e.src])},a)},async load(e,t){return await(await r.get().fetch(e)).text()},async unload(e,t,n){await Promise.all(e.pages.map(e=>n.unload(e.texture.source._sourceOrigin))),e.destroy()}},Uc=class{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach(e=>{this._assetList.push(e)}),this.verbose&&console.log(`[BackgroundLoader] assets: `,this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;let e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let n=0;n<t;n++)e.push(this._assetList.pop());await this._loader.load(e),this._isLoading=!1,this._next()}}get active(){return this._isActive}set active(e){this._isActive!==e&&(this._isActive=e,e&&!this._isLoading&&this._next())}},Wc={extension:{type:W.CacheParser,name:`cacheTextureArray`},test:e=>Array.isArray(e)&&e.every(e=>e instanceof h),getCacheableAssets:(e,t)=>{let n={};return e.forEach(e=>{t.forEach((t,r)=>{n[e+(r===0?``:r+1)]=t})}),n}};async function Gc(e){if(`Image`in globalThis)return new Promise(t=>{let n=new Image;n.onload=()=>{t(!0)},n.onerror=()=>{t(!1)},n.src=e});if(`createImageBitmap`in globalThis&&`fetch`in globalThis){try{let t=await(await fetch(e)).blob();await createImageBitmap(t)}catch{return!1}return!0}return!1}var Kc={extension:{type:W.DetectionParser,priority:1},test:async()=>Gc(`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=`),add:async e=>[...e,`avif`],remove:async e=>e.filter(e=>e!==`avif`)},qc=[`png`,`jpg`,`jpeg`],Jc={extension:{type:W.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async e=>[...e,...qc],remove:async e=>e.filter(e=>!qc.includes(e))},Yc=`WorkerGlobalScope`in globalThis&&globalThis instanceof globalThis.WorkerGlobalScope;function Xc(e){return Yc?!1:document.createElement(`video`).canPlayType(e)!==``}var Zc={extension:{type:W.DetectionParser,priority:0},test:async()=>Xc(`video/mp4`),add:async e=>[...e,`mp4`,`m4v`],remove:async e=>e.filter(e=>e!==`mp4`&&e!==`m4v`)},Qc={extension:{type:W.DetectionParser,priority:0},test:async()=>Xc(`video/ogg`),add:async e=>[...e,`ogv`],remove:async e=>e.filter(e=>e!==`ogv`)},$c={extension:{type:W.DetectionParser,priority:0},test:async()=>Xc(`video/webm`),add:async e=>[...e,`webm`],remove:async e=>e.filter(e=>e!==`webm`)},el={extension:{type:W.DetectionParser,priority:0},test:async()=>Gc(`data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=`),add:async e=>[...e,`webp`],remove:async e=>e.filter(e=>e!==`webp`)},tl=class e{constructor(){this.loadOptions={...e.defaultOptions},this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,n)=>(this._parsersValidated=!1,e[t]=n,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){let n={promise:null,parser:null};return n.promise=(async()=>{let r=null,i=null;if((t.parser||t.loadParser)&&(i=this._parserHash[t.parser||t.loadParser],t.loadParser&&D(`[Assets] "loadParser" is deprecated, use "parser" instead for ${e}`),i||D(`[Assets] specified load parser "${t.parser||t.loadParser}" not found while loading ${e}`)),!i){for(let n=0;n<this.parsers.length;n++){let r=this.parsers[n];if(r.load&&r.test?.(e,t,this)){i=r;break}}if(!i)return D(`[Assets] ${e} could not be loaded as we don't know how to parse it, ensure the correct parser has been added`),null}r=await i.load(e,t,this),n.parser=i;for(let e=0;e<this.parsers.length;e++){let i=this.parsers[e];i.parse&&i.parse&&await i.testParse?.(r,t,this)&&(r=await i.parse(r,t,this)||r,n.parser=i)}return r})(),n}async load(t,n){this._parsersValidated||this._validateParsers();let{onProgress:r,onError:i,strategy:a,retryCount:o,retryDelay:s}=typeof n==`function`?{...e.defaultOptions,...this.loadOptions,onProgress:n}:{...e.defaultOptions,...this.loadOptions,...n||{}},c=0,l={},u=Dt(t),d=en(t,e=>({alias:[e],src:e,data:{}})),f=d.reduce((e,t)=>e+(t.progressSize||1),0),p=d.map(async e=>{let t=Ot.toAbsolute(e.src);l[e.src]||(await this._loadAssetWithRetry(t,e,{onProgress:r,onError:i,strategy:a,retryCount:o,retryDelay:s},l),c+=e.progressSize||1,r&&r(c/f))});return await Promise.all(p),u?l[d[0].src]:l}async unload(e){let t=en(e,e=>({alias:[e],src:e})).map(async e=>{let t=Ot.toAbsolute(e.src),n=this.promiseCache[t];if(n){let r=await n.promise;delete this.promiseCache[t],await n.parser?.unload?.(r,e,this)}});await Promise.all(t)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(e=>e.name||e.id).reduce((e,t)=>(!t.name&&!t.id?D(`[Assets] parser should have an id`):(e[t.name]||e[t.id])&&D(`[Assets] parser id conflict "${t.id}"`),e[t.name]=t,t.id&&(e[t.id]=t),e),{})}async _loadAssetWithRetry(e,t,n,r){let i=0,{onError:a,strategy:o,retryCount:s,retryDelay:c}=n,l=e=>new Promise(t=>setTimeout(t,e));for(;;)try{this.promiseCache[e]||(this.promiseCache[e]=this._getLoadPromiseAndParser(e,t)),r[t.src]=await this.promiseCache[e].promise;return}catch(n){if(delete this.promiseCache[e],delete r[t.src],i++,o===`retry`&&!(o!==`retry`||i>s)){a&&a(n,t),await l(c);continue}if(o===`skip`){a&&a(n,t);return}a&&a(n,t);let u=Error(`[Loader.load] Failed to load ${e}.
947
+ ${n}`);throw n instanceof Error&&n.stack&&(u.stack=n.stack),u}}};tl.defaultOptions={onProgress:void 0,onError:void 0,strategy:`throw`,retryCount:3,retryDelay:250};var nl=tl;function rl(e,t){if(Array.isArray(t)){for(let n of t)if(e.startsWith(`data:${n}`))return!0;return!1}return e.startsWith(`data:${t}`)}function il(e,t){let n=e.split(`?`)[0],r=Ot.extname(n).toLowerCase();return Array.isArray(t)?t.includes(r):r===t}var al=`.json`,ol=`application/json`,sl={extension:{type:W.LoadParser,priority:Bt.Low},name:`loadJson`,id:`json`,test(e){return rl(e,ol)||il(e,al)},async load(e){return await(await r.get().fetch(e)).json()}},cl=`.txt`,ll=`text/plain`,ul={name:`loadTxt`,id:`text`,extension:{type:W.LoadParser,priority:Bt.Low,name:`loadTxt`},test(e){return rl(e,ll)||il(e,cl)},async load(e){return await(await r.get().fetch(e)).text()}},dl=[`normal`,`bold`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`],fl=[`.ttf`,`.otf`,`.woff`,`.woff2`],pl=[`font/ttf`,`font/otf`,`font/woff`,`font/woff2`],ml=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function hl(e){let t=Ot.extname(e),n=Ot.basename(e,t).replace(/(-|_)/g,` `).toLowerCase().split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1)),r=n.length>0;for(let e of n)if(!e.match(ml)){r=!1;break}let i=n.join(` `);return r||(i=`"${i.replace(/[\\"]/g,`\\$&`)}"`),i}var gl=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;function _l(e){return gl.test(e)?e:encodeURI(e)}var vl={extension:{type:W.LoadParser,priority:Bt.Low},name:`loadWebFont`,id:`web-font`,test(e){return rl(e,pl)||il(e,fl)},async load(e,t){let n=r.get().getFontFaceSet();if(n){let r=[],i=t.data?.family??hl(e),a=t.data?.weights?.filter(e=>dl.includes(e))??[`normal`],o=t.data??{};for(let t=0;t<a.length;t++){let s=a[t],c=new FontFace(i,`url('${_l(e)}')`,{...o,weight:s});await c.load(),n.add(c),r.push(c)}return K.has(`${i}-and-url`)?K.get(`${i}-and-url`).entries.push({url:e,faces:r}):K.set(`${i}-and-url`,{entries:[{url:e,faces:r}]}),r.length===1?r[0]:r}return D(`[loadWebFont] FontFace API is not supported. Skipping loading font`),null},unload(e){let t=Array.isArray(e)?e:[e],n=t[0].family,i=K.get(`${n}-and-url`),a=i.entries.find(e=>e.faces.some(e=>t.indexOf(e)!==-1));a.faces=a.faces.filter(e=>t.indexOf(e)===-1),a.faces.length===0&&(i.entries=i.entries.filter(e=>e!==a)),t.forEach(e=>{r.get().getFontFaceSet().delete(e)}),i.entries.length===0&&K.remove(`${n}-and-url`)}};function yl(e,t=1){let n=Zt.RETINA_PREFIX?.exec(e);return n?parseFloat(n[1]):t}function bl(e,t,n){e.label=n,e._sourceOrigin=n;let r=new h({source:e,label:n}),i=()=>{delete t.promiseCache[n],K.has(n)&&K.remove(n)};return r.source.once(`destroy`,()=>{t.promiseCache[n]&&(D(`[Assets] A TextureSource managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the TextureSource.`),i())}),r.once(`destroy`,()=>{e.destroyed||(D(`[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture.`),i())}),r}var xl=`.svg`,Sl=`image/svg+xml`,Cl={extension:{type:W.LoadParser,priority:Bt.Low,name:`loadSVG`},name:`loadSVG`,id:`svg`,config:{crossOrigin:`anonymous`,parseAsGraphicsContext:!1},test(e){return rl(e,Sl)||il(e,xl)},async load(e,t,n){return t.data?.parseAsGraphicsContext??this.config.parseAsGraphicsContext?Tl(e):wl(e,t,n,this.config.crossOrigin)},unload(e){e.destroy(!0)}};async function wl(e,t,n,i){let a=await r.get().fetch(e),o=r.get().createImage();o.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(await a.text())}`,o.crossOrigin=i,await o.decode();let s=t.data?.width??o.width,c=t.data?.height??o.height,l=t.data?.resolution||yl(e),u=Math.ceil(s*l),d=Math.ceil(c*l),f=r.get().createCanvas(u,d),p=f.getContext(`2d`);p.imageSmoothingEnabled=!0,p.imageSmoothingQuality=`high`,p.drawImage(o,0,0,s*l,c*l);let{parseAsGraphicsContext:m,...h}=t.data??{};return bl(new tn({resource:f,alphaMode:`premultiply-alpha-on-upload`,resolution:l,...h}),n,e)}async function Tl(e){let t=await(await r.get().fetch(e)).text(),n=new er;return n.svg(t),n}var El=`(function () {
948
+ 'use strict';
949
+
950
+ const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=";
951
+ async function checkImageBitmap() {
952
+ try {
953
+ if (typeof createImageBitmap !== "function") return false;
954
+ const response = await fetch(WHITE_PNG);
955
+ const imageBlob = await response.blob();
956
+ const imageBitmap = await createImageBitmap(imageBlob);
957
+ return imageBitmap.width === 1 && imageBitmap.height === 1;
958
+ } catch (_e) {
959
+ return false;
960
+ }
961
+ }
962
+ void checkImageBitmap().then((result) => {
963
+ self.postMessage(result);
964
+ });
965
+
966
+ })();
967
+ `,Dl=null,Ol=class{constructor(){Dl||=URL.createObjectURL(new Blob([El],{type:`application/javascript`})),this.worker=new Worker(Dl)}};Ol.revokeObjectURL=function(){Dl&&=(URL.revokeObjectURL(Dl),null)};var kl=`(function () {
968
+ 'use strict';
969
+
970
+ async function loadImageBitmap(url, alphaMode) {
971
+ const response = await fetch(url);
972
+ if (!response.ok) {
973
+ throw new Error(\`[WorkerManager.loadImageBitmap] Failed to fetch \${url}: \${response.status} \${response.statusText}\`);
974
+ }
975
+ const imageBlob = await response.blob();
976
+ return alphaMode === "premultiplied-alpha" ? createImageBitmap(imageBlob, { premultiplyAlpha: "none" }) : createImageBitmap(imageBlob);
977
+ }
978
+ self.onmessage = async (event) => {
979
+ try {
980
+ const imageBitmap = await loadImageBitmap(event.data.data[0], event.data.data[1]);
981
+ self.postMessage({
982
+ data: imageBitmap,
983
+ uuid: event.data.uuid,
984
+ id: event.data.id
985
+ }, [imageBitmap]);
986
+ } catch (e) {
987
+ self.postMessage({
988
+ error: e,
989
+ uuid: event.data.uuid,
990
+ id: event.data.id
991
+ });
992
+ }
993
+ };
994
+
995
+ })();
996
+ `,Al=null,jl=class{constructor(){Al||=URL.createObjectURL(new Blob([kl],{type:`application/javascript`})),this.worker=new Worker(Al)}};jl.revokeObjectURL=function(){Al&&=(URL.revokeObjectURL(Al),null)};var Ml=0,Nl,Pl=new class{constructor(){this._initialized=!1,this._createdWorkers=0,this._workerPool=[],this._queue=[],this._resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported===void 0&&(this._isImageBitmapSupported=new Promise(e=>{let{worker:t}=new Ol;t.addEventListener(`message`,n=>{t.terminate(),Ol.revokeObjectURL(),e(n.data)})})),this._isImageBitmapSupported}loadImageBitmap(e,t){return this._run(`loadImageBitmap`,[e,t?.data?.alphaMode])}async _initWorkers(){this._initialized||=!0}_getWorker(){Nl===void 0&&(Nl=navigator.hardwareConcurrency||4);let e=this._workerPool.pop();return!e&&this._createdWorkers<Nl&&(this._createdWorkers++,e=new jl().worker,e.addEventListener(`message`,e=>{this._complete(e.data),this._returnWorker(e.target),this._next()})),e}_returnWorker(e){this._workerPool.push(e)}_complete(e){this._resolveHash[e.uuid]&&(e.error===void 0?this._resolveHash[e.uuid].resolve(e.data):this._resolveHash[e.uuid].reject(e.error),delete this._resolveHash[e.uuid])}async _run(e,t){await this._initWorkers();let n=new Promise((n,r)=>{this._queue.push({id:e,arguments:t,resolve:n,reject:r})});return this._next(),n}_next(){if(!this._queue.length)return;let e=this._getWorker();if(!e)return;let t=this._queue.pop(),n=t.id;this._resolveHash[Ml]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:Ml++,id:n})}reset(){this._workerPool.forEach(e=>e.terminate()),this._workerPool.length=0,Object.values(this._resolveHash).forEach(({reject:e})=>{e?.(Error(`WorkerManager has been reset before completion`))}),this._resolveHash={},this._queue.length=0,this._initialized=!1,this._createdWorkers=0}},Fl=[`.jpeg`,`.jpg`,`.png`,`.webp`,`.avif`],Il=[`image/jpeg`,`image/png`,`image/webp`,`image/avif`];async function Ll(e,t){let n=await r.get().fetch(e);if(!n.ok)throw Error(`[loadImageBitmap] Failed to fetch ${e}: ${n.status} ${n.statusText}`);let i=await n.blob();return t?.data?.alphaMode===`premultiplied-alpha`?createImageBitmap(i,{premultiplyAlpha:`none`}):createImageBitmap(i)}var Rl={name:`loadTextures`,id:`texture`,extension:{type:W.LoadParser,priority:Bt.High,name:`loadTextures`},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:`anonymous`},test(e){return rl(e,Il)||il(e,Fl)},async load(e,t,n){let i=null;return i=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await Pl.isImageBitmapSupported()?await Pl.loadImageBitmap(e,t):await Ll(e,t):await new Promise((t,n)=>{i=r.get().createImage(),i.crossOrigin=this.config.crossOrigin,i.src=e,i.complete?t(i):(i.onload=()=>{t(i)},i.onerror=n)}),bl(new tn({resource:i,alphaMode:`premultiply-alpha-on-upload`,resolution:t.data?.resolution||yl(e),...t.data}),n,e)},unload(e){e.destroy(!0)}},zl=[`.mp4`,`.m4v`,`.webm`,`.ogg`,`.ogv`,`.h264`,`.avi`,`.mov`],Bl,Vl;function Hl(e,t,n){n===void 0&&!t.startsWith(`data:`)?e.crossOrigin=Wl(t):n!==!1&&(e.crossOrigin=typeof n==`string`?n:`anonymous`)}function Ul(e){return new Promise((t,n)=>{e.addEventListener(`canplaythrough`,r),e.addEventListener(`error`,i),e.load();function r(){a(),t()}function i(e){a(),n(e)}function a(){e.removeEventListener(`canplaythrough`,r),e.removeEventListener(`error`,i)}})}function Wl(e,t=globalThis.location){if(e.startsWith(`data:`))return``;t||=globalThis.location;let n=new URL(e,document.baseURI);return n.hostname!==t.hostname||n.port!==t.port||n.protocol!==t.protocol?`anonymous`:``}function Gl(){let e=[],t=[];for(let n of zl){let r=Ht.MIME_TYPES[n.substring(1)]||`video/${n.substring(1)}`;Xc(r)&&(e.push(n),t.includes(r)||t.push(r))}return{validVideoExtensions:e,validVideoMime:t}}var Kl={name:`loadVideo`,id:`video`,extension:{type:W.LoadParser,name:`loadVideo`},test(e){if(!Bl||!Vl){let{validVideoExtensions:e,validVideoMime:t}=Gl();Bl=e,Vl=t}let t=rl(e,Vl),n=il(e,Bl);return t||n},async load(e,t,n){let r={...Ht.defaultOptions,resolution:t.data?.resolution||yl(e),alphaMode:t.data?.alphaMode||await Rt(),...t.data},i=document.createElement(`video`),a={preload:r.autoLoad===!1?void 0:`auto`,"webkit-playsinline":r.playsinline===!1?void 0:``,playsinline:r.playsinline===!1?void 0:``,muted:r.muted===!0?``:void 0,loop:r.loop===!0?``:void 0,autoplay:r.autoPlay===!1?void 0:``};Object.keys(a).forEach(e=>{let t=a[e];t!==void 0&&i.setAttribute(e,t)}),r.muted===!0&&(i.muted=!0),Hl(i,e,r.crossorigin);let o=document.createElement(`source`),s;if(r.mime)s=r.mime;else if(e.startsWith(`data:`))s=e.slice(5,e.indexOf(`;`));else if(!e.startsWith(`blob:`)){let t=e.split(`?`)[0].slice(e.lastIndexOf(`.`)+1).toLowerCase();s=Ht.MIME_TYPES[t]||`video/${t}`}return o.src=e,s&&(o.type=s),new Promise((a,s)=>{r.preload&&!r.autoPlay&&i.load(),i.addEventListener(`canplay`,c),i.addEventListener(`error`,l),o.addEventListener(`error`,l),i.appendChild(o);async function c(){let o=new Ht({...r,resource:i});u(),t.data.preload&&await Ul(i),a(bl(o,n,e))}function l(e){u(),s(e)}function u(){i.removeEventListener(`canplay`,c),i.removeEventListener(`error`,l),o.removeEventListener(`error`,l)}})},unload(e){e.destroy(!0)}},ql={extension:{type:W.ResolveParser,name:`resolveTexture`},test:Rl.test,parse:e=>({resolution:parseFloat(Zt.RETINA_PREFIX.exec(e)?.[1]??`1`),format:e.split(`.`).pop(),src:e})},Jl={extension:{type:W.ResolveParser,priority:-2,name:`resolveJson`},test:e=>Zt.RETINA_PREFIX.test(e)&&e.endsWith(`.json`),parse:ql.parse},Yl=class{constructor(){this._detections=[],this._initialized=!1,this.resolver=new Zt,this.loader=new nl,this.cache=K,this._backgroundLoader=new Uc(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){if(this._initialized){D(`[Assets]AssetManager already initialized, did you load before calling this Assets.init()?`);return}if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let t=e.manifest;typeof t==`string`&&(t=await this.load(t)),this.resolver.addManifest(t)}let t=e.texturePreference?.resolution??1,n=typeof t==`number`?[t]:t,r=await this._detectFormats({preferredFormats:e.texturePreference?.format,skipDetections:e.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:r,resolution:n}}),e.preferences&&this.setPreferences(e.preferences),e.loadOptions&&(this.loader.loadOptions={...this.loader.loadOptions,...e.loadOptions})}add(e){this.resolver.add(e)}async load(e,t){this._initialized||await this.init();let n=Dt(e),r=en(e).map(e=>{if(typeof e!=`string`){let t=this.resolver.getAlias(e);return t.some(e=>!this.resolver.hasKey(e))&&this.add(e),Array.isArray(t)?t[0]:t}return this.resolver.hasKey(e)||this.add({alias:e,src:e}),e}),i=this.resolver.resolve(r),a=await this._mapLoadToResolve(i,t);return n?a[r[0]]:a}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let n=!1;typeof e==`string`&&(n=!0,e=[e]);let r=this.resolver.resolveBundle(e),i={},a=Object.keys(r),o=0,s=[],c=()=>{t?.(s.reduce((e,t)=>e+t,0)/o)},l=a.map((e,t)=>{let n=r[e],a=Object.values(n),l=[...new Set(a.flat())].reduce((e,t)=>e+(t.progressSize||1),0);return s.push(0),o+=l,this._mapLoadToResolve(n,e=>{s[t]=e*l,c()}).then(t=>{i[e]=t})});return await Promise.all(l),n?i[e[0]]:i}async backgroundLoad(e){this._initialized||await this.init(),typeof e==`string`&&(e=[e]);let t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),typeof e==`string`&&(e=[e]);let t=this.resolver.resolveBundle(e);Object.values(t).forEach(e=>{this._backgroundLoader.add(Object.values(e))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if(typeof e==`string`)return K.get(e);let t={};for(let n=0;n<e.length;n++)t[n]=K.get(e[n]);return t}async _mapLoadToResolve(e,t){let n=[...new Set(Object.values(e))];this._backgroundLoader.active=!1;let r=await this.loader.load(n,t);this._backgroundLoader.active=!0;let i={};return n.forEach(e=>{let t=r[e.src],n=[e.src];e.alias&&n.push(...e.alias),n.forEach(e=>{i[e]=t}),K.set(n,t)}),i}async unload(e){this._initialized||await this.init();let t=en(e).map(e=>typeof e==`string`?e:e.src),n=this.resolver.resolve(t);await this._unloadFromResolved(n)}async unloadBundle(e){this._initialized||await this.init(),e=en(e);let t=this.resolver.resolveBundle(e),n=Object.keys(t).map(e=>this._unloadFromResolved(t[e]));await Promise.all(n)}async _unloadFromResolved(e){let t=Object.values(e);t.forEach(e=>{K.remove(e.src)}),await this.loader.unload(t)}async _detectFormats(e){let t=[];e.preferredFormats&&(t=Array.isArray(e.preferredFormats)?e.preferredFormats:[e.preferredFormats]);for(let n of e.detections)e.skipDetections||await n.test()?t=await n.add(t):e.skipDetections||(t=await n.remove(t));return t=t.filter((e,n)=>t.indexOf(e)===n),t}get detections(){return this._detections}setPreferences(e){this.loader.parsers.forEach(t=>{t.config&&Object.keys(t.config).filter(t=>t in e).forEach(n=>{t.config[n]=e[n]})})}},Xl=new Yl;F.handleByList(W.LoadParser,Xl.loader.parsers).handleByList(W.ResolveParser,Xl.resolver.parsers).handleByList(W.CacheParser,Xl.cache.parsers).handleByList(W.DetectionParser,Xl.detections),F.add(Wc,Jc,Kc,el,Zc,Qc,$c,sl,ul,vl,Cl,Rl,Kl,Hc,Vc,ql,Jl);var Zl={loader:W.LoadParser,resolver:W.ResolveParser,cache:W.CacheParser,detection:W.DetectionParser};F.handle(W.Asset,e=>{let t=e.ref;Object.entries(Zl).filter(([e])=>!!t[e]).forEach(([e,n])=>F.add(Object.assign(t[e],{extension:t[e].extension??n})))},e=>{let t=e.ref;Object.keys(Zl).filter(e=>!!t[e]).forEach(e=>F.remove(t[e]))});var Ql={extension:{type:W.DetectionParser,priority:3},test:async()=>!!(await Ac()||Oc()),add:async e=>[...e,`basis`],remove:async e=>e.filter(e=>e!==`basis`)},$l=class extends m{constructor(e){super({...e,mipLevelCount:e.resource.length}),this.uploadMethodId=`compressed`}},eu;function tu(){if(eu)return eu;let e=r.get().createCanvas(1,1).getContext(`webgl`);return e?(eu=[...e.getExtension(`EXT_texture_compression_bptc`)?[`bc6h-rgb-ufloat`,`bc6h-rgb-float`,`bc7-rgba-unorm`,`bc7-rgba-unorm-srgb`]:[],...e.getExtension(`WEBGL_compressed_texture_s3tc`)?[`bc1-rgba-unorm`,`bc2-rgba-unorm`,`bc3-rgba-unorm`]:[],...e.getExtension(`WEBGL_compressed_texture_s3tc_srgb`)?[`bc1-rgba-unorm-srgb`,`bc2-rgba-unorm-srgb`,`bc3-rgba-unorm-srgb`]:[],...e.getExtension(`EXT_texture_compression_rgtc`)?[`bc4-r-unorm`,`bc4-r-snorm`,`bc5-rg-unorm`,`bc5-rg-snorm`]:[],...e.getExtension(`WEBGL_compressed_texture_etc`)?[`etc2-rgb8unorm`,`etc2-rgb8unorm-srgb`,`etc2-rgba8unorm`,`etc2-rgba8unorm-srgb`,`etc2-rgb8a1unorm`,`etc2-rgb8a1unorm-srgb`,`eac-r11unorm`,`eac-rg11unorm`]:[],...e.getExtension(`WEBGL_compressed_texture_astc`)?`astc-4x4-unorm.astc-4x4-unorm-srgb.astc-5x4-unorm.astc-5x4-unorm-srgb.astc-5x5-unorm.astc-5x5-unorm-srgb.astc-6x5-unorm.astc-6x5-unorm-srgb.astc-6x6-unorm.astc-6x6-unorm-srgb.astc-8x5-unorm.astc-8x5-unorm-srgb.astc-8x6-unorm.astc-8x6-unorm-srgb.astc-8x8-unorm.astc-8x8-unorm-srgb.astc-10x5-unorm.astc-10x5-unorm-srgb.astc-10x6-unorm.astc-10x6-unorm-srgb.astc-10x8-unorm.astc-10x8-unorm-srgb.astc-10x10-unorm.astc-10x10-unorm-srgb.astc-12x10-unorm.astc-12x10-unorm-srgb.astc-12x12-unorm.astc-12x12-unorm-srgb`.split(`.`):[]],eu):[]}var nu;async function ru(){if(nu)return nu;let e=await r.get().getNavigator().gpu.requestAdapter();return nu=[...e.features.has(`texture-compression-bc`)?[`bc1-rgba-unorm`,`bc1-rgba-unorm-srgb`,`bc2-rgba-unorm`,`bc2-rgba-unorm-srgb`,`bc3-rgba-unorm`,`bc3-rgba-unorm-srgb`,`bc4-r-unorm`,`bc4-r-snorm`,`bc5-rg-unorm`,`bc5-rg-snorm`,`bc6h-rgb-ufloat`,`bc6h-rgb-float`,`bc7-rgba-unorm`,`bc7-rgba-unorm-srgb`]:[],...e.features.has(`texture-compression-etc2`)?[`etc2-rgb8unorm`,`etc2-rgb8unorm-srgb`,`etc2-rgb8a1unorm`,`etc2-rgb8a1unorm-srgb`,`etc2-rgba8unorm`,`etc2-rgba8unorm-srgb`,`eac-r11unorm`,`eac-r11snorm`,`eac-rg11unorm`,`eac-rg11snorm`]:[],...e.features.has(`texture-compression-astc`)?`astc-4x4-unorm.astc-4x4-unorm-srgb.astc-5x4-unorm.astc-5x4-unorm-srgb.astc-5x5-unorm.astc-5x5-unorm-srgb.astc-6x5-unorm.astc-6x5-unorm-srgb.astc-6x6-unorm.astc-6x6-unorm-srgb.astc-8x5-unorm.astc-8x5-unorm-srgb.astc-8x6-unorm.astc-8x6-unorm-srgb.astc-8x8-unorm.astc-8x8-unorm-srgb.astc-10x5-unorm.astc-10x5-unorm-srgb.astc-10x6-unorm.astc-10x6-unorm-srgb.astc-10x8-unorm.astc-10x8-unorm-srgb.astc-10x10-unorm.astc-10x10-unorm-srgb.astc-12x10-unorm.astc-12x10-unorm-srgb.astc-12x12-unorm.astc-12x12-unorm-srgb`.split(`.`):[]],nu}var iu;async function au(){return iu===void 0&&(iu=await(async()=>{let e=await Ac(),t=Oc();if(e&&t){let e=await ru(),t=tu();return e.filter(e=>t.includes(e))}else if(e)return await ru();else if(t)return tu();return[]})()),iu}var ou=`r8unorm.r8snorm.r8uint.r8sint.r16uint.r16sint.r16float.rg8unorm.rg8snorm.rg8uint.rg8sint.r32uint.r32sint.r32float.rg16uint.rg16sint.rg16float.rgba8unorm.rgba8unorm-srgb.rgba8snorm.rgba8uint.rgba8sint.bgra8unorm.bgra8unorm-srgb.rgb9e5ufloat.rgb10a2unorm.rg11b10ufloat.rg32uint.rg32sint.rg32float.rgba16uint.rgba16sint.rgba16float.rgba32uint.rgba32sint.rgba32float.stencil8.depth16unorm.depth24plus.depth24plus-stencil8.depth32float.depth32float-stencil8`.split(`.`),su;async function cu(){if(su!==void 0)return su;let e=await au();return su=[...ou,...e],su}var lu=`(function () {
997
+ 'use strict';
998
+
999
+ function createLevelBuffers(basisTexture, basisTranscoderFormat) {
1000
+ const images = basisTexture.getNumImages();
1001
+ const levels = basisTexture.getNumLevels(0);
1002
+ const success = basisTexture.startTranscoding();
1003
+ if (!success) {
1004
+ throw new Error("startTranscoding failed");
1005
+ }
1006
+ const levelBuffers = [];
1007
+ for (let levelIndex = 0; levelIndex < levels; ++levelIndex) {
1008
+ for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex) {
1009
+ const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);
1010
+ const levelBuffer = new Uint8Array(transcodeSize);
1011
+ const success2 = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);
1012
+ if (!success2) {
1013
+ throw new Error("transcodeImage failed");
1014
+ }
1015
+ levelBuffers.push(levelBuffer);
1016
+ }
1017
+ }
1018
+ return levelBuffers;
1019
+ }
1020
+
1021
+ const gpuFormatToBasisTranscoderFormatMap = {
1022
+ "bc3-rgba-unorm": 3,
1023
+ // cTFBC3_RGBA
1024
+ "bc7-rgba-unorm": 6,
1025
+ // cTFBC7_RGBA,
1026
+ "etc2-rgba8unorm": 1,
1027
+ // cTFETC2_RGBA,
1028
+ "astc-4x4-unorm": 10,
1029
+ // cTFASTC_4x4_RGBA,
1030
+ // Uncompressed
1031
+ rgba8unorm: 13,
1032
+ // cTFRGBA32,
1033
+ rgba4unorm: 16
1034
+ // cTFRGBA4444,
1035
+ };
1036
+ function gpuFormatToBasisTranscoderFormat(transcoderFormat) {
1037
+ const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];
1038
+ if (format) {
1039
+ return format;
1040
+ }
1041
+ throw new Error(\`Unsupported transcoderFormat: \${transcoderFormat}\`);
1042
+ }
1043
+
1044
+ const settings = {
1045
+ jsUrl: "basis/basis_transcoder.js",
1046
+ wasmUrl: "basis/basis_transcoder.wasm"
1047
+ };
1048
+ let basisTranscoderFormat;
1049
+ let basisTranscodedTextureFormat;
1050
+ let basisPromise;
1051
+ async function getBasis() {
1052
+ if (!basisPromise) {
1053
+ const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;
1054
+ const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;
1055
+ importScripts(absoluteJsUrl);
1056
+ basisPromise = new Promise((resolve) => {
1057
+ BASIS({
1058
+ locateFile: (_file) => absoluteWasmUrl
1059
+ }).then((module) => {
1060
+ module.initializeBasis();
1061
+ resolve(module.BasisFile);
1062
+ });
1063
+ });
1064
+ }
1065
+ return basisPromise;
1066
+ }
1067
+ async function fetchBasisTexture(url, BasisTexture) {
1068
+ const basisResponse = await fetch(url);
1069
+ if (basisResponse.ok) {
1070
+ const basisArrayBuffer = await basisResponse.arrayBuffer();
1071
+ return new BasisTexture(new Uint8Array(basisArrayBuffer));
1072
+ }
1073
+ throw new Error(\`Failed to load Basis texture: \${url}\`);
1074
+ }
1075
+ const preferredTranscodedFormat = [
1076
+ "bc7-rgba-unorm",
1077
+ "astc-4x4-unorm",
1078
+ "etc2-rgba8unorm",
1079
+ "bc3-rgba-unorm",
1080
+ "rgba8unorm"
1081
+ ];
1082
+ async function load(url) {
1083
+ const BasisTexture = await getBasis();
1084
+ const basisTexture = await fetchBasisTexture(url, BasisTexture);
1085
+ const levelBuffers = createLevelBuffers(basisTexture, basisTranscoderFormat);
1086
+ return {
1087
+ width: basisTexture.getImageWidth(0, 0),
1088
+ height: basisTexture.getImageHeight(0, 0),
1089
+ format: basisTranscodedTextureFormat,
1090
+ resource: levelBuffers,
1091
+ alphaMode: "no-premultiply-alpha"
1092
+ };
1093
+ }
1094
+ async function init(jsUrl, wasmUrl, supportedTextures) {
1095
+ if (jsUrl) settings.jsUrl = jsUrl;
1096
+ if (wasmUrl) settings.wasmUrl = wasmUrl;
1097
+ basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];
1098
+ basisTranscoderFormat = gpuFormatToBasisTranscoderFormat(basisTranscodedTextureFormat);
1099
+ await getBasis();
1100
+ }
1101
+ const messageHandlers = {
1102
+ init: async (data) => {
1103
+ const { jsUrl, wasmUrl, supportedTextures } = data;
1104
+ await init(jsUrl, wasmUrl, supportedTextures);
1105
+ },
1106
+ load: async (data) => {
1107
+ try {
1108
+ const textureOptions = await load(data.url);
1109
+ return {
1110
+ type: "load",
1111
+ url: data.url,
1112
+ success: true,
1113
+ textureOptions,
1114
+ transferables: textureOptions.resource?.map((arr) => arr.buffer)
1115
+ };
1116
+ } catch (e) {
1117
+ throw e;
1118
+ }
1119
+ }
1120
+ };
1121
+ self.onmessage = (async (messageEvent) => {
1122
+ const message = messageEvent.data;
1123
+ const response = await messageHandlers[message.type](message);
1124
+ if (response) {
1125
+ self.postMessage(response, response.transferables);
1126
+ }
1127
+ });
1128
+
1129
+ })();
1130
+ `,uu=null,du=class{constructor(){uu||=URL.createObjectURL(new Blob([lu],{type:`application/javascript`})),this.worker=new Worker(uu)}};du.revokeObjectURL=function(){uu&&=(URL.revokeObjectURL(uu),null)};var fu={jsUrl:`https://cdn.jsdelivr.net/npm/pixi.js/transcoders/basis/basis_transcoder.js`,wasmUrl:`https://cdn.jsdelivr.net/npm/pixi.js/transcoders/basis/basis_transcoder.wasm`};function pu(e){Object.assign(fu,e)}var mu,hu={};function gu(e){return mu||(mu=new du().worker,mu.onmessage=e=>{let{success:t,url:n,textureOptions:r}=e.data;t||console.warn(`Failed to load Basis texture`,n),hu[n](r)},mu.postMessage({type:`init`,jsUrl:fu.jsUrl,wasmUrl:fu.wasmUrl,supportedTextures:e})),mu}function _u(e,t){let n=gu(t);return new Promise(t=>{hu[e]=t,n.postMessage({type:`load`,url:e})})}var vu={extension:{type:W.LoadParser,priority:Bt.High,name:`loadBasis`},name:`loadBasis`,id:`basis`,test(e){return il(e,[`.basis`])},async load(e,t,n){return bl(new $l({...await _u(e,await cu()),resolution:t.data?.resolution||yl(e)}),n,e)},unload(e){Array.isArray(e)?e.forEach(e=>e.destroy(!0)):e.destroy(!0)}};function yu(e,t){let n=e.getNumImages(),r=e.getNumLevels(0);if(!e.startTranscoding())throw Error(`startTranscoding failed`);let i=[];for(let a=0;a<r;++a)for(let r=0;r<n;++r){let n=e.getImageTranscodedSizeInBytes(r,a,t),o=new Uint8Array(n);if(!e.transcodeImage(o,r,a,t,1,0))throw Error(`transcodeImage failed`);i.push(o)}return i}var bu={"bc3-rgba-unorm":3,"bc7-rgba-unorm":6,"etc2-rgba8unorm":1,"astc-4x4-unorm":10,rgba8unorm:13,rgba4unorm:16};function xu(e){let t=bu[e];if(t)return t;throw Error(`Unsupported transcoderFormat: ${e}`)}var Su={MAGIC:0,SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19,PF_FLAGS:20,FOURCC:21,RGB_BITCOUNT:22,R_BIT_MASK:23,G_BIT_MASK:24,B_BIT_MASK:25,A_BIT_MASK:26},Cu={DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4},wu=(e=>(e[e.DXGI_FORMAT_UNKNOWN=0]=`DXGI_FORMAT_UNKNOWN`,e[e.DXGI_FORMAT_R32G32B32A32_TYPELESS=1]=`DXGI_FORMAT_R32G32B32A32_TYPELESS`,e[e.DXGI_FORMAT_R32G32B32A32_FLOAT=2]=`DXGI_FORMAT_R32G32B32A32_FLOAT`,e[e.DXGI_FORMAT_R32G32B32A32_UINT=3]=`DXGI_FORMAT_R32G32B32A32_UINT`,e[e.DXGI_FORMAT_R32G32B32A32_SINT=4]=`DXGI_FORMAT_R32G32B32A32_SINT`,e[e.DXGI_FORMAT_R32G32B32_TYPELESS=5]=`DXGI_FORMAT_R32G32B32_TYPELESS`,e[e.DXGI_FORMAT_R32G32B32_FLOAT=6]=`DXGI_FORMAT_R32G32B32_FLOAT`,e[e.DXGI_FORMAT_R32G32B32_UINT=7]=`DXGI_FORMAT_R32G32B32_UINT`,e[e.DXGI_FORMAT_R32G32B32_SINT=8]=`DXGI_FORMAT_R32G32B32_SINT`,e[e.DXGI_FORMAT_R16G16B16A16_TYPELESS=9]=`DXGI_FORMAT_R16G16B16A16_TYPELESS`,e[e.DXGI_FORMAT_R16G16B16A16_FLOAT=10]=`DXGI_FORMAT_R16G16B16A16_FLOAT`,e[e.DXGI_FORMAT_R16G16B16A16_UNORM=11]=`DXGI_FORMAT_R16G16B16A16_UNORM`,e[e.DXGI_FORMAT_R16G16B16A16_UINT=12]=`DXGI_FORMAT_R16G16B16A16_UINT`,e[e.DXGI_FORMAT_R16G16B16A16_SNORM=13]=`DXGI_FORMAT_R16G16B16A16_SNORM`,e[e.DXGI_FORMAT_R16G16B16A16_SINT=14]=`DXGI_FORMAT_R16G16B16A16_SINT`,e[e.DXGI_FORMAT_R32G32_TYPELESS=15]=`DXGI_FORMAT_R32G32_TYPELESS`,e[e.DXGI_FORMAT_R32G32_FLOAT=16]=`DXGI_FORMAT_R32G32_FLOAT`,e[e.DXGI_FORMAT_R32G32_UINT=17]=`DXGI_FORMAT_R32G32_UINT`,e[e.DXGI_FORMAT_R32G32_SINT=18]=`DXGI_FORMAT_R32G32_SINT`,e[e.DXGI_FORMAT_R32G8X24_TYPELESS=19]=`DXGI_FORMAT_R32G8X24_TYPELESS`,e[e.DXGI_FORMAT_D32_FLOAT_S8X24_UINT=20]=`DXGI_FORMAT_D32_FLOAT_S8X24_UINT`,e[e.DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS=21]=`DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS`,e[e.DXGI_FORMAT_X32_TYPELESS_G8X24_UINT=22]=`DXGI_FORMAT_X32_TYPELESS_G8X24_UINT`,e[e.DXGI_FORMAT_R10G10B10A2_TYPELESS=23]=`DXGI_FORMAT_R10G10B10A2_TYPELESS`,e[e.DXGI_FORMAT_R10G10B10A2_UNORM=24]=`DXGI_FORMAT_R10G10B10A2_UNORM`,e[e.DXGI_FORMAT_R10G10B10A2_UINT=25]=`DXGI_FORMAT_R10G10B10A2_UINT`,e[e.DXGI_FORMAT_R11G11B10_FLOAT=26]=`DXGI_FORMAT_R11G11B10_FLOAT`,e[e.DXGI_FORMAT_R8G8B8A8_TYPELESS=27]=`DXGI_FORMAT_R8G8B8A8_TYPELESS`,e[e.DXGI_FORMAT_R8G8B8A8_UNORM=28]=`DXGI_FORMAT_R8G8B8A8_UNORM`,e[e.DXGI_FORMAT_R8G8B8A8_UNORM_SRGB=29]=`DXGI_FORMAT_R8G8B8A8_UNORM_SRGB`,e[e.DXGI_FORMAT_R8G8B8A8_UINT=30]=`DXGI_FORMAT_R8G8B8A8_UINT`,e[e.DXGI_FORMAT_R8G8B8A8_SNORM=31]=`DXGI_FORMAT_R8G8B8A8_SNORM`,e[e.DXGI_FORMAT_R8G8B8A8_SINT=32]=`DXGI_FORMAT_R8G8B8A8_SINT`,e[e.DXGI_FORMAT_R16G16_TYPELESS=33]=`DXGI_FORMAT_R16G16_TYPELESS`,e[e.DXGI_FORMAT_R16G16_FLOAT=34]=`DXGI_FORMAT_R16G16_FLOAT`,e[e.DXGI_FORMAT_R16G16_UNORM=35]=`DXGI_FORMAT_R16G16_UNORM`,e[e.DXGI_FORMAT_R16G16_UINT=36]=`DXGI_FORMAT_R16G16_UINT`,e[e.DXGI_FORMAT_R16G16_SNORM=37]=`DXGI_FORMAT_R16G16_SNORM`,e[e.DXGI_FORMAT_R16G16_SINT=38]=`DXGI_FORMAT_R16G16_SINT`,e[e.DXGI_FORMAT_R32_TYPELESS=39]=`DXGI_FORMAT_R32_TYPELESS`,e[e.DXGI_FORMAT_D32_FLOAT=40]=`DXGI_FORMAT_D32_FLOAT`,e[e.DXGI_FORMAT_R32_FLOAT=41]=`DXGI_FORMAT_R32_FLOAT`,e[e.DXGI_FORMAT_R32_UINT=42]=`DXGI_FORMAT_R32_UINT`,e[e.DXGI_FORMAT_R32_SINT=43]=`DXGI_FORMAT_R32_SINT`,e[e.DXGI_FORMAT_R24G8_TYPELESS=44]=`DXGI_FORMAT_R24G8_TYPELESS`,e[e.DXGI_FORMAT_D24_UNORM_S8_UINT=45]=`DXGI_FORMAT_D24_UNORM_S8_UINT`,e[e.DXGI_FORMAT_R24_UNORM_X8_TYPELESS=46]=`DXGI_FORMAT_R24_UNORM_X8_TYPELESS`,e[e.DXGI_FORMAT_X24_TYPELESS_G8_UINT=47]=`DXGI_FORMAT_X24_TYPELESS_G8_UINT`,e[e.DXGI_FORMAT_R8G8_TYPELESS=48]=`DXGI_FORMAT_R8G8_TYPELESS`,e[e.DXGI_FORMAT_R8G8_UNORM=49]=`DXGI_FORMAT_R8G8_UNORM`,e[e.DXGI_FORMAT_R8G8_UINT=50]=`DXGI_FORMAT_R8G8_UINT`,e[e.DXGI_FORMAT_R8G8_SNORM=51]=`DXGI_FORMAT_R8G8_SNORM`,e[e.DXGI_FORMAT_R8G8_SINT=52]=`DXGI_FORMAT_R8G8_SINT`,e[e.DXGI_FORMAT_R16_TYPELESS=53]=`DXGI_FORMAT_R16_TYPELESS`,e[e.DXGI_FORMAT_R16_FLOAT=54]=`DXGI_FORMAT_R16_FLOAT`,e[e.DXGI_FORMAT_D16_UNORM=55]=`DXGI_FORMAT_D16_UNORM`,e[e.DXGI_FORMAT_R16_UNORM=56]=`DXGI_FORMAT_R16_UNORM`,e[e.DXGI_FORMAT_R16_UINT=57]=`DXGI_FORMAT_R16_UINT`,e[e.DXGI_FORMAT_R16_SNORM=58]=`DXGI_FORMAT_R16_SNORM`,e[e.DXGI_FORMAT_R16_SINT=59]=`DXGI_FORMAT_R16_SINT`,e[e.DXGI_FORMAT_R8_TYPELESS=60]=`DXGI_FORMAT_R8_TYPELESS`,e[e.DXGI_FORMAT_R8_UNORM=61]=`DXGI_FORMAT_R8_UNORM`,e[e.DXGI_FORMAT_R8_UINT=62]=`DXGI_FORMAT_R8_UINT`,e[e.DXGI_FORMAT_R8_SNORM=63]=`DXGI_FORMAT_R8_SNORM`,e[e.DXGI_FORMAT_R8_SINT=64]=`DXGI_FORMAT_R8_SINT`,e[e.DXGI_FORMAT_A8_UNORM=65]=`DXGI_FORMAT_A8_UNORM`,e[e.DXGI_FORMAT_R1_UNORM=66]=`DXGI_FORMAT_R1_UNORM`,e[e.DXGI_FORMAT_R9G9B9E5_SHAREDEXP=67]=`DXGI_FORMAT_R9G9B9E5_SHAREDEXP`,e[e.DXGI_FORMAT_R8G8_B8G8_UNORM=68]=`DXGI_FORMAT_R8G8_B8G8_UNORM`,e[e.DXGI_FORMAT_G8R8_G8B8_UNORM=69]=`DXGI_FORMAT_G8R8_G8B8_UNORM`,e[e.DXGI_FORMAT_BC1_TYPELESS=70]=`DXGI_FORMAT_BC1_TYPELESS`,e[e.DXGI_FORMAT_BC1_UNORM=71]=`DXGI_FORMAT_BC1_UNORM`,e[e.DXGI_FORMAT_BC1_UNORM_SRGB=72]=`DXGI_FORMAT_BC1_UNORM_SRGB`,e[e.DXGI_FORMAT_BC2_TYPELESS=73]=`DXGI_FORMAT_BC2_TYPELESS`,e[e.DXGI_FORMAT_BC2_UNORM=74]=`DXGI_FORMAT_BC2_UNORM`,e[e.DXGI_FORMAT_BC2_UNORM_SRGB=75]=`DXGI_FORMAT_BC2_UNORM_SRGB`,e[e.DXGI_FORMAT_BC3_TYPELESS=76]=`DXGI_FORMAT_BC3_TYPELESS`,e[e.DXGI_FORMAT_BC3_UNORM=77]=`DXGI_FORMAT_BC3_UNORM`,e[e.DXGI_FORMAT_BC3_UNORM_SRGB=78]=`DXGI_FORMAT_BC3_UNORM_SRGB`,e[e.DXGI_FORMAT_BC4_TYPELESS=79]=`DXGI_FORMAT_BC4_TYPELESS`,e[e.DXGI_FORMAT_BC4_UNORM=80]=`DXGI_FORMAT_BC4_UNORM`,e[e.DXGI_FORMAT_BC4_SNORM=81]=`DXGI_FORMAT_BC4_SNORM`,e[e.DXGI_FORMAT_BC5_TYPELESS=82]=`DXGI_FORMAT_BC5_TYPELESS`,e[e.DXGI_FORMAT_BC5_UNORM=83]=`DXGI_FORMAT_BC5_UNORM`,e[e.DXGI_FORMAT_BC5_SNORM=84]=`DXGI_FORMAT_BC5_SNORM`,e[e.DXGI_FORMAT_B5G6R5_UNORM=85]=`DXGI_FORMAT_B5G6R5_UNORM`,e[e.DXGI_FORMAT_B5G5R5A1_UNORM=86]=`DXGI_FORMAT_B5G5R5A1_UNORM`,e[e.DXGI_FORMAT_B8G8R8A8_UNORM=87]=`DXGI_FORMAT_B8G8R8A8_UNORM`,e[e.DXGI_FORMAT_B8G8R8X8_UNORM=88]=`DXGI_FORMAT_B8G8R8X8_UNORM`,e[e.DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM=89]=`DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM`,e[e.DXGI_FORMAT_B8G8R8A8_TYPELESS=90]=`DXGI_FORMAT_B8G8R8A8_TYPELESS`,e[e.DXGI_FORMAT_B8G8R8A8_UNORM_SRGB=91]=`DXGI_FORMAT_B8G8R8A8_UNORM_SRGB`,e[e.DXGI_FORMAT_B8G8R8X8_TYPELESS=92]=`DXGI_FORMAT_B8G8R8X8_TYPELESS`,e[e.DXGI_FORMAT_B8G8R8X8_UNORM_SRGB=93]=`DXGI_FORMAT_B8G8R8X8_UNORM_SRGB`,e[e.DXGI_FORMAT_BC6H_TYPELESS=94]=`DXGI_FORMAT_BC6H_TYPELESS`,e[e.DXGI_FORMAT_BC6H_UF16=95]=`DXGI_FORMAT_BC6H_UF16`,e[e.DXGI_FORMAT_BC6H_SF16=96]=`DXGI_FORMAT_BC6H_SF16`,e[e.DXGI_FORMAT_BC7_TYPELESS=97]=`DXGI_FORMAT_BC7_TYPELESS`,e[e.DXGI_FORMAT_BC7_UNORM=98]=`DXGI_FORMAT_BC7_UNORM`,e[e.DXGI_FORMAT_BC7_UNORM_SRGB=99]=`DXGI_FORMAT_BC7_UNORM_SRGB`,e[e.DXGI_FORMAT_AYUV=100]=`DXGI_FORMAT_AYUV`,e[e.DXGI_FORMAT_Y410=101]=`DXGI_FORMAT_Y410`,e[e.DXGI_FORMAT_Y416=102]=`DXGI_FORMAT_Y416`,e[e.DXGI_FORMAT_NV12=103]=`DXGI_FORMAT_NV12`,e[e.DXGI_FORMAT_P010=104]=`DXGI_FORMAT_P010`,e[e.DXGI_FORMAT_P016=105]=`DXGI_FORMAT_P016`,e[e.DXGI_FORMAT_420_OPAQUE=106]=`DXGI_FORMAT_420_OPAQUE`,e[e.DXGI_FORMAT_YUY2=107]=`DXGI_FORMAT_YUY2`,e[e.DXGI_FORMAT_Y210=108]=`DXGI_FORMAT_Y210`,e[e.DXGI_FORMAT_Y216=109]=`DXGI_FORMAT_Y216`,e[e.DXGI_FORMAT_NV11=110]=`DXGI_FORMAT_NV11`,e[e.DXGI_FORMAT_AI44=111]=`DXGI_FORMAT_AI44`,e[e.DXGI_FORMAT_IA44=112]=`DXGI_FORMAT_IA44`,e[e.DXGI_FORMAT_P8=113]=`DXGI_FORMAT_P8`,e[e.DXGI_FORMAT_A8P8=114]=`DXGI_FORMAT_A8P8`,e[e.DXGI_FORMAT_B4G4R4A4_UNORM=115]=`DXGI_FORMAT_B4G4R4A4_UNORM`,e[e.DXGI_FORMAT_P208=116]=`DXGI_FORMAT_P208`,e[e.DXGI_FORMAT_V208=117]=`DXGI_FORMAT_V208`,e[e.DXGI_FORMAT_V408=118]=`DXGI_FORMAT_V408`,e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE=119]=`DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE`,e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE=120]=`DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE`,e[e.DXGI_FORMAT_FORCE_UINT=121]=`DXGI_FORMAT_FORCE_UINT`,e))(wu||{}),Tu=(e=>(e[e.DDS_DIMENSION_TEXTURE1D=2]=`DDS_DIMENSION_TEXTURE1D`,e[e.DDS_DIMENSION_TEXTURE2D=3]=`DDS_DIMENSION_TEXTURE2D`,e[e.DDS_DIMENSION_TEXTURE3D=6]=`DDS_DIMENSION_TEXTURE3D`,e))(Tu||{});function Y(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var Eu=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.R8G8B8=20]=`R8G8B8`,e[e.A8R8G8B8=21]=`A8R8G8B8`,e[e.X8R8G8B8=22]=`X8R8G8B8`,e[e.R5G6B5=23]=`R5G6B5`,e[e.X1R5G5B5=24]=`X1R5G5B5`,e[e.A1R5G5B5=25]=`A1R5G5B5`,e[e.A4R4G4B4=26]=`A4R4G4B4`,e[e.R3G3B2=27]=`R3G3B2`,e[e.A8=28]=`A8`,e[e.A8R3G3B2=29]=`A8R3G3B2`,e[e.X4R4G4B4=30]=`X4R4G4B4`,e[e.A2B10G10R10=31]=`A2B10G10R10`,e[e.A8B8G8R8=32]=`A8B8G8R8`,e[e.X8B8G8R8=33]=`X8B8G8R8`,e[e.G16R16=34]=`G16R16`,e[e.A2R10G10B10=35]=`A2R10G10B10`,e[e.A16B16G16R16=36]=`A16B16G16R16`,e[e.A8P8=40]=`A8P8`,e[e.P8=41]=`P8`,e[e.L8=50]=`L8`,e[e.A8L8=51]=`A8L8`,e[e.A4L4=52]=`A4L4`,e[e.V8U8=60]=`V8U8`,e[e.L6V5U5=61]=`L6V5U5`,e[e.X8L8V8U8=62]=`X8L8V8U8`,e[e.Q8W8V8U8=63]=`Q8W8V8U8`,e[e.V16U16=64]=`V16U16`,e[e.A2W10V10U10=67]=`A2W10V10U10`,e[e.Q16W16V16U16=110]=`Q16W16V16U16`,e[e.R16F=111]=`R16F`,e[e.G16R16F=112]=`G16R16F`,e[e.A16B16G16R16F=113]=`A16B16G16R16F`,e[e.R32F=114]=`R32F`,e[e.G32R32F=115]=`G32R32F`,e[e.A32B32G32R32F=116]=`A32B32G32R32F`,e[e.UYVY=Y(`UYVY`)]=`UYVY`,e[e.R8G8_B8G8=Y(`RGBG`)]=`R8G8_B8G8`,e[e.YUY2=Y(`YUY2`)]=`YUY2`,e[e.D3DFMT_G8R8_G8B8=Y(`GRGB`)]=`D3DFMT_G8R8_G8B8`,e[e.DXT1=Y(`DXT1`)]=`DXT1`,e[e.DXT2=Y(`DXT2`)]=`DXT2`,e[e.DXT3=Y(`DXT3`)]=`DXT3`,e[e.DXT4=Y(`DXT4`)]=`DXT4`,e[e.DXT5=Y(`DXT5`)]=`DXT5`,e[e.ATI1=Y(`ATI1`)]=`ATI1`,e[e.AT1N=Y(`AT1N`)]=`AT1N`,e[e.ATI2=Y(`ATI2`)]=`ATI2`,e[e.AT2N=Y(`AT2N`)]=`AT2N`,e[e.BC4U=Y(`BC4U`)]=`BC4U`,e[e.BC4S=Y(`BC4S`)]=`BC4S`,e[e.BC5U=Y(`BC5U`)]=`BC5U`,e[e.BC5S=Y(`BC5S`)]=`BC5S`,e[e.DX10=Y(`DX10`)]=`DX10`,e))(Eu||{}),Du={[Eu.DXT1]:`bc1-rgba-unorm`,[Eu.DXT2]:`bc2-rgba-unorm`,[Eu.DXT3]:`bc2-rgba-unorm`,[Eu.DXT4]:`bc3-rgba-unorm`,[Eu.DXT5]:`bc3-rgba-unorm`,[Eu.ATI1]:`bc4-r-unorm`,[Eu.BC4U]:`bc4-r-unorm`,[Eu.BC4S]:`bc4-r-snorm`,[Eu.ATI2]:`bc5-rg-unorm`,[Eu.BC5U]:`bc5-rg-unorm`,[Eu.BC5S]:`bc5-rg-snorm`,36:`rgba16uint`,110:`rgba16sint`,111:`r16float`,112:`rg16float`,113:`rgba16float`,114:`r32float`,115:`rg32float`,116:`rgba32float`},Ou={70:`bc1-rgba-unorm`,71:`bc1-rgba-unorm`,72:`bc1-rgba-unorm-srgb`,73:`bc2-rgba-unorm`,74:`bc2-rgba-unorm`,75:`bc2-rgba-unorm-srgb`,76:`bc3-rgba-unorm`,77:`bc3-rgba-unorm`,78:`bc3-rgba-unorm-srgb`,79:`bc4-r-unorm`,80:`bc4-r-unorm`,81:`bc4-r-snorm`,82:`bc5-rg-unorm`,83:`bc5-rg-unorm`,84:`bc5-rg-snorm`,94:`bc6h-rgb-ufloat`,95:`bc6h-rgb-ufloat`,96:`bc6h-rgb-float`,97:`bc7-rgba-unorm`,98:`bc7-rgba-unorm`,99:`bc7-rgba-unorm-srgb`,28:`rgba8unorm`,29:`rgba8unorm-srgb`,87:`bgra8unorm`,91:`bgra8unorm-srgb`,41:`r32float`,49:`rg8unorm`,56:`r16uint`,61:`r8unorm`,24:`rgb10a2unorm`,11:`rgba16uint`,13:`rgba16sint`,10:`rgba16float`,54:`r16float`,34:`rg16float`,16:`rg32float`,2:`rgba32float`},X={MAGIC_VALUE:542327876,MAGIC_SIZE:4,HEADER_SIZE:124,HEADER_DX10_SIZE:20,PIXEL_FORMAT_FLAGS:{ALPHAPIXELS:1,ALPHA:2,FOURCC:4,RGB:64,RGBA:65,YUV:512,LUMINANCE:131072,LUMINANCEA:131073},RESOURCE_MISC_TEXTURECUBE:4,HEADER_FIELDS:Su,HEADER_DX10_FIELDS:Cu,DXGI_FORMAT:wu,D3D10_RESOURCE_DIMENSION:Tu,D3DFMT:Eu},ku={"bc1-rgba-unorm":8,"bc1-rgba-unorm-srgb":8,"bc2-rgba-unorm":16,"bc2-rgba-unorm-srgb":16,"bc3-rgba-unorm":16,"bc3-rgba-unorm-srgb":16,"bc4-r-unorm":8,"bc4-r-snorm":8,"bc5-rg-unorm":16,"bc5-rg-snorm":16,"bc6h-rgb-ufloat":16,"bc6h-rgb-float":16,"bc7-rgba-unorm":16,"bc7-rgba-unorm-srgb":16};function Au(e,t){let{format:n,fourCC:r,width:i,height:a,dataOffset:o,mipmapCount:s}=Mu(e);if(!t.includes(n))throw Error(`Unsupported texture format: ${r} ${n}, supported: ${t}`);return s<=1?{format:n,width:i,height:a,resource:[new Uint8Array(e,o)],alphaMode:`no-premultiply-alpha`}:{format:n,width:i,height:a,resource:ju(n,i,a,o,s,e),alphaMode:`no-premultiply-alpha`}}function ju(e,t,n,r,i,a){let o=[],s=ku[e],c=t,l=n,u=r;for(let e=0;e<i;++e){let e=Math.ceil(Math.max(4,c)/4)*4,t=Math.ceil(Math.max(4,l)/4)*4,n=s?e/4*t/4*s:c*l*4,r=new Uint8Array(a,u,n);o.push(r),u+=n,c=Math.max(c>>1,1),l=Math.max(l>>1,1)}return o}function Mu(e){let t=new Uint32Array(e,0,X.HEADER_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(t[X.HEADER_FIELDS.MAGIC]!==X.MAGIC_VALUE)throw Error(`Invalid magic number in DDS header`);let n=t[X.HEADER_FIELDS.HEIGHT],r=t[X.HEADER_FIELDS.WIDTH],i=Math.max(1,t[X.HEADER_FIELDS.MIPMAP_COUNT]),a=t[X.HEADER_FIELDS.PF_FLAGS],o=t[X.HEADER_FIELDS.FOURCC];return{format:Nu(t,a,o,e),fourCC:o,width:r,height:n,dataOffset:X.MAGIC_SIZE+X.HEADER_SIZE+(o===X.D3DFMT.DX10?X.HEADER_DX10_SIZE:0),mipmapCount:i}}function Nu(e,t,n,r){if(t&X.PIXEL_FORMAT_FLAGS.FOURCC){if(n===X.D3DFMT.DX10){let e=new Uint32Array(r,X.MAGIC_SIZE+X.HEADER_SIZE,X.HEADER_DX10_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(e[X.HEADER_DX10_FIELDS.MISC_FLAG]===X.RESOURCE_MISC_TEXTURECUBE)throw Error(`DDSParser does not support cubemap textures`);if(e[X.HEADER_DX10_FIELDS.RESOURCE_DIMENSION]===X.D3D10_RESOURCE_DIMENSION.DDS_DIMENSION_TEXTURE3D)throw Error(`DDSParser does not supported 3D texture data`);let t=e[X.HEADER_DX10_FIELDS.DXGI_FORMAT];if(t in Ou)return Ou[t];throw Error(`DDSParser cannot parse texture data with DXGI format ${t}`)}if(n in Du)return Du[n];throw Error(`DDSParser cannot parse texture data with fourCC format ${n}`)}if(t&X.PIXEL_FORMAT_FLAGS.RGB||t&X.PIXEL_FORMAT_FLAGS.RGBA)return Pu(e);throw t&X.PIXEL_FORMAT_FLAGS.YUV?Error(`DDSParser does not supported YUV uncompressed texture data.`):t&X.PIXEL_FORMAT_FLAGS.LUMINANCE||t&X.PIXEL_FORMAT_FLAGS.LUMINANCEA?Error(`DDSParser does not support single-channel (lumninance) texture data!`):t&X.PIXEL_FORMAT_FLAGS.ALPHA||t&X.PIXEL_FORMAT_FLAGS.ALPHAPIXELS?Error(`DDSParser does not support single-channel (alpha) texture data!`):Error(`DDSParser failed to load a texture file due to an unknown reason!`)}function Pu(e){let t=e[X.HEADER_FIELDS.RGB_BITCOUNT],n=e[X.HEADER_FIELDS.R_BIT_MASK],r=e[X.HEADER_FIELDS.G_BIT_MASK],i=e[X.HEADER_FIELDS.B_BIT_MASK],a=e[X.HEADER_FIELDS.A_BIT_MASK];switch(t){case 32:if(n===255&&r===65280&&i===16711680&&a===4278190080)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R8G8B8A8_UNORM];if(n===16711680&&r===65280&&i===255&&a===4278190080)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM];if(n===1072693248&&r===1047552&&i===1023&&a===3221225472)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R10G10B10A2_UNORM];if(n===65535&&r===4294901760&&i===0&&a===0)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R16G16_UNORM];if(n===4294967295&&r===0&&i===0&&a===0)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R32_FLOAT];break;case 24:break;case 16:if(n===31744&&r===992&&i===31&&a===32768)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_B5G5R5A1_UNORM];if(n===63488&&r===2016&&i===31&&a===0)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_B5G6R5_UNORM];if(n===3840&&r===240&&i===15&&a===61440)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_B4G4R4A4_UNORM];if(n===255&&r===0&&i===0&&a===65280)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R8G8_UNORM];if(n===65535&&r===0&&i===0&&a===0)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R16_UNORM];break;case 8:if(n===255&&r===0&&i===0&&a===0)return Ou[X.DXGI_FORMAT.DXGI_FORMAT_R8_UNORM];break}throw Error(`DDSParser does not support uncompressed texture with configuration:
1131
+ bitCount = ${t}, rBitMask = ${n}, gBitMask = ${r}, aBitMask = ${a}`)}var Fu={extension:{type:W.LoadParser,priority:Bt.High,name:`loadDDS`},name:`loadDDS`,id:`dds`,test(e){return il(e,[`.dds`])},async load(e,t,n){let r=await cu();return bl(new $l({...Au(await(await fetch(e)).arrayBuffer(),r),resolution:t.data?.resolution||yl(e)}),n,e)},unload(e){Array.isArray(e)?e.forEach(e=>e.destroy(!0)):e.destroy(!0)}},Iu=(e=>(e[e.RGBA8_SNORM=36759]=`RGBA8_SNORM`,e[e.RGBA=6408]=`RGBA`,e[e.RGBA8UI=36220]=`RGBA8UI`,e[e.SRGB8_ALPHA8=35907]=`SRGB8_ALPHA8`,e[e.RGBA8I=36238]=`RGBA8I`,e[e.RGBA8=32856]=`RGBA8`,e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]=`COMPRESSED_RGB_S3TC_DXT1_EXT`,e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]=`COMPRESSED_RGBA_S3TC_DXT1_EXT`,e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]=`COMPRESSED_RGBA_S3TC_DXT3_EXT`,e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]=`COMPRESSED_RGBA_S3TC_DXT5_EXT`,e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]=`COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT`,e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]=`COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT`,e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]=`COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT`,e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]=`COMPRESSED_SRGB_S3TC_DXT1_EXT`,e[e.COMPRESSED_RED_RGTC1_EXT=36283]=`COMPRESSED_RED_RGTC1_EXT`,e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]=`COMPRESSED_SIGNED_RED_RGTC1_EXT`,e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]=`COMPRESSED_RED_GREEN_RGTC2_EXT`,e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]=`COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT`,e[e.COMPRESSED_R11_EAC=37488]=`COMPRESSED_R11_EAC`,e[e.COMPRESSED_SIGNED_R11_EAC=37489]=`COMPRESSED_SIGNED_R11_EAC`,e[e.COMPRESSED_RG11_EAC=37490]=`COMPRESSED_RG11_EAC`,e[e.COMPRESSED_SIGNED_RG11_EAC=37491]=`COMPRESSED_SIGNED_RG11_EAC`,e[e.COMPRESSED_RGB8_ETC2=37492]=`COMPRESSED_RGB8_ETC2`,e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]=`COMPRESSED_RGBA8_ETC2_EAC`,e[e.COMPRESSED_SRGB8_ETC2=37493]=`COMPRESSED_SRGB8_ETC2`,e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]=`COMPRESSED_SRGB8_ALPHA8_ETC2_EAC`,e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]=`COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2`,e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]=`COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2`,e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]=`COMPRESSED_RGBA_ASTC_4x4_KHR`,e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]=`COMPRESSED_RGBA_ASTC_5x4_KHR`,e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]=`COMPRESSED_RGBA_ASTC_5x5_KHR`,e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]=`COMPRESSED_RGBA_ASTC_6x5_KHR`,e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]=`COMPRESSED_RGBA_ASTC_6x6_KHR`,e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]=`COMPRESSED_RGBA_ASTC_8x5_KHR`,e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]=`COMPRESSED_RGBA_ASTC_8x6_KHR`,e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]=`COMPRESSED_RGBA_ASTC_8x8_KHR`,e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]=`COMPRESSED_RGBA_ASTC_10x5_KHR`,e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]=`COMPRESSED_RGBA_ASTC_10x6_KHR`,e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]=`COMPRESSED_RGBA_ASTC_10x8_KHR`,e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]=`COMPRESSED_RGBA_ASTC_10x10_KHR`,e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]=`COMPRESSED_RGBA_ASTC_12x10_KHR`,e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]=`COMPRESSED_RGBA_ASTC_12x12_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]=`COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]=`COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]=`COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]=`COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]=`COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]=`COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]=`COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]=`COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]=`COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]=`COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]=`COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]=`COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]=`COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR`,e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]=`COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR`,e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]=`COMPRESSED_RGBA_BPTC_UNORM_EXT`,e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]=`COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT`,e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]=`COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT`,e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]=`COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT`,e))(Iu||{}),Z={FILE_HEADER_SIZE:64,FILE_IDENTIFIER:[171,75,84,88,32,49,49,187,13,10,26,10],FORMATS_TO_COMPONENTS:{6408:4,6407:3,33319:2,6403:1,6409:1,6410:2,6406:1},INTERNAL_FORMAT_TO_BYTES_PER_PIXEL:{33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,36283:.5,36284:.5,36285:1,36286:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,37808:1,37840:1,37809:.8,37841:.8,37810:.64,37842:.64,37811:.53375,37843:.53375,37812:.445,37844:.445,37813:.4,37845:.4,37814:.33375,37846:.33375,37815:.25,37847:.25,37816:.32,37848:.32,37817:.26625,37849:.26625,37818:.2,37850:.2,37819:.16,37851:.16,37820:.13375,37852:.13375,37821:.11125,37853:.11125,36492:1,36493:1,36494:1,36495:1},INTERNAL_FORMAT_TO_TEXTURE_FORMATS:{33776:`bc1-rgba-unorm`,33777:`bc1-rgba-unorm`,33778:`bc2-rgba-unorm`,33779:`bc3-rgba-unorm`,35916:`bc1-rgba-unorm-srgb`,35917:`bc1-rgba-unorm-srgb`,35918:`bc2-rgba-unorm-srgb`,35919:`bc3-rgba-unorm-srgb`,36283:`bc4-r-unorm`,36284:`bc4-r-snorm`,36285:`bc5-rg-unorm`,36286:`bc5-rg-snorm`,37488:`eac-r11unorm`,37490:`eac-rg11snorm`,37492:`etc2-rgb8unorm`,37496:`etc2-rgba8unorm`,37493:`etc2-rgb8unorm-srgb`,37497:`etc2-rgba8unorm-srgb`,37494:`etc2-rgb8a1unorm`,37495:`etc2-rgb8a1unorm-srgb`,37808:`astc-4x4-unorm`,37840:`astc-4x4-unorm-srgb`,37809:`astc-5x4-unorm`,37841:`astc-5x4-unorm-srgb`,37810:`astc-5x5-unorm`,37842:`astc-5x5-unorm-srgb`,37811:`astc-6x5-unorm`,37843:`astc-6x5-unorm-srgb`,37812:`astc-6x6-unorm`,37844:`astc-6x6-unorm-srgb`,37813:`astc-8x5-unorm`,37845:`astc-8x5-unorm-srgb`,37814:`astc-8x6-unorm`,37846:`astc-8x6-unorm-srgb`,37815:`astc-8x8-unorm`,37847:`astc-8x8-unorm-srgb`,37816:`astc-10x5-unorm`,37848:`astc-10x5-unorm-srgb`,37817:`astc-10x6-unorm`,37849:`astc-10x6-unorm-srgb`,37818:`astc-10x8-unorm`,37850:`astc-10x8-unorm-srgb`,37819:`astc-10x10-unorm`,37851:`astc-10x10-unorm-srgb`,37820:`astc-12x10-unorm`,37852:`astc-12x10-unorm-srgb`,37821:`astc-12x12-unorm`,37853:`astc-12x12-unorm-srgb`,36492:`bc7-rgba-unorm`,36493:`bc7-rgba-unorm-srgb`,36494:`bc6h-rgb-float`,36495:`bc6h-rgb-ufloat`,35907:`rgba8unorm-srgb`,36759:`rgba8snorm`,36220:`rgba8uint`,36238:`rgba8sint`,6408:`rgba8unorm`},FIELDS:{FILE_IDENTIFIER:0,ENDIANNESS:12,GL_TYPE:16,GL_TYPE_SIZE:20,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,GL_BASE_INTERNAL_FORMAT:32,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},TYPES_TO_BYTES_PER_COMPONENT:{5121:1,5123:2,5124:4,5125:4,5126:4,36193:8},TYPES_TO_BYTES_PER_PIXEL:{32819:2,32820:2,33635:2},ENDIANNESS:67305985};function Lu(e,t){let n=new DataView(e);if(!Vu(n))throw Error(`Invalid KTX identifier in header`);let{littleEndian:r,glType:i,glFormat:a,glInternalFormat:o,pixelWidth:s,pixelHeight:c,numberOfMipmapLevels:l,offset:u}=Bu(n),d=Z.INTERNAL_FORMAT_TO_TEXTURE_FORMATS[o];if(!d)throw Error(`Unknown texture format ${o}`);if(!t.includes(d))throw Error(`Unsupported texture format: ${d}, supportedFormats: ${t}`);return{format:d,width:s,height:c,resource:Ru(n,i,zu(i,a,o),s,c,u,l,r),alphaMode:`no-premultiply-alpha`}}function Ru(e,t,n,r,i,a,o,s){let c=r+3&-4,l=i+3&-4,u=r*i;t===0&&(u=c*l);let d=u*n,f=r,p=i,m=c,h=l,g=a,_=Array(o);for(let t=0;t<o;t++){let r=e.getUint32(g,s),i=g+4;_[t]=new Uint8Array(e.buffer,i,d),i+=d,g+=r+4,g=g%4==0?g:g+4-g%4,f=f>>1||1,p=p>>1||1,m=f+4-1&-4,h=p+4-1&-4,d=m*h*n}return _}function zu(e,t,n){let r=Z.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[n];if(e!==0&&(r=Z.TYPES_TO_BYTES_PER_COMPONENT[e]?Z.TYPES_TO_BYTES_PER_COMPONENT[e]*Z.FORMATS_TO_COMPONENTS[t]:Z.TYPES_TO_BYTES_PER_PIXEL[e]),r===void 0)throw Error(`Unable to resolve the pixel format stored in the *.ktx file!`);return r}function Bu(e){let t=e.getUint32(Z.FIELDS.ENDIANNESS,!0)===Z.ENDIANNESS,n=e.getUint32(Z.FIELDS.GL_TYPE,t),r=e.getUint32(Z.FIELDS.GL_FORMAT,t),i=e.getUint32(Z.FIELDS.GL_INTERNAL_FORMAT,t),a=e.getUint32(Z.FIELDS.PIXEL_WIDTH,t),o=e.getUint32(Z.FIELDS.PIXEL_HEIGHT,t)||1,s=e.getUint32(Z.FIELDS.PIXEL_DEPTH,t)||1,c=e.getUint32(Z.FIELDS.NUMBER_OF_ARRAY_ELEMENTS,t)||1,l=e.getUint32(Z.FIELDS.NUMBER_OF_FACES,t),u=e.getUint32(Z.FIELDS.NUMBER_OF_MIPMAP_LEVELS,t),d=e.getUint32(Z.FIELDS.BYTES_OF_KEY_VALUE_DATA,t);if(o===0||s!==1)throw Error(`Only 2D textures are supported`);if(l!==1)throw Error(`CubeTextures are not supported by KTXLoader yet!`);if(c!==1)throw Error(`WebGL does not support array textures`);return{littleEndian:t,glType:n,glFormat:r,glInternalFormat:i,pixelWidth:a,pixelHeight:o,numberOfMipmapLevels:u,offset:Z.FILE_HEADER_SIZE+d}}function Vu(e){for(let t=0;t<Z.FILE_IDENTIFIER.length;t++)if(e.getUint8(t)!==Z.FILE_IDENTIFIER[t])return!1;return!0}var Hu={extension:{type:W.LoadParser,priority:Bt.High,name:`loadKTX`},name:`loadKTX`,id:`ktx`,test(e){return il(e,`.ktx`)},async load(e,t,n){let r=await cu();return bl(new $l({...Lu(await(await fetch(e)).arrayBuffer(),r),resolution:t.data?.resolution||yl(e)}),n,e)},unload(e){Array.isArray(e)?e.forEach(e=>e.destroy(!0)):e.destroy(!0)}},Uu=`(function () {
1132
+ 'use strict';
1133
+
1134
+ const converters = {
1135
+ rgb8unorm: {
1136
+ convertedFormat: "rgba8unorm",
1137
+ convertFunction: convertRGBtoRGBA
1138
+ },
1139
+ "rgb8unorm-srgb": {
1140
+ convertedFormat: "rgba8unorm-srgb",
1141
+ convertFunction: convertRGBtoRGBA
1142
+ }
1143
+ };
1144
+ function convertFormatIfRequired(textureOptions) {
1145
+ const format = textureOptions.format;
1146
+ if (converters[format]) {
1147
+ const convertFunction = converters[format].convertFunction;
1148
+ const levelBuffers = textureOptions.resource;
1149
+ for (let i = 0; i < levelBuffers.length; i++) {
1150
+ levelBuffers[i] = convertFunction(levelBuffers[i]);
1151
+ }
1152
+ textureOptions.format = converters[format].convertedFormat;
1153
+ }
1154
+ }
1155
+ function convertRGBtoRGBA(levelBuffer) {
1156
+ const pixelCount = levelBuffer.byteLength / 3;
1157
+ const levelBufferWithAlpha = new Uint32Array(pixelCount);
1158
+ for (let i = 0; i < pixelCount; ++i) {
1159
+ levelBufferWithAlpha[i] = levelBuffer[i * 3] + (levelBuffer[i * 3 + 1] << 8) + (levelBuffer[i * 3 + 2] << 16) + 4278190080;
1160
+ }
1161
+ return new Uint8Array(levelBufferWithAlpha.buffer);
1162
+ }
1163
+
1164
+ function createLevelBuffersFromKTX(ktxTexture) {
1165
+ const levelBuffers = [];
1166
+ for (let i = 0; i < ktxTexture.numLevels; i++) {
1167
+ const imageData = ktxTexture.getImageData(i, 0, 0);
1168
+ const levelBuffer = new Uint8Array(imageData.byteLength);
1169
+ levelBuffer.set(imageData);
1170
+ levelBuffers.push(levelBuffer);
1171
+ }
1172
+ return levelBuffers;
1173
+ }
1174
+
1175
+ const glFormatToGPUFormatMap = {
1176
+ 6408: "rgba8unorm",
1177
+ 32856: "bgra8unorm",
1178
+ //
1179
+ 32857: "rgb10a2unorm",
1180
+ 33189: "depth16unorm",
1181
+ 33190: "depth24plus",
1182
+ 33321: "r8unorm",
1183
+ 33323: "rg8unorm",
1184
+ 33325: "r16float",
1185
+ 33326: "r32float",
1186
+ 33327: "rg16float",
1187
+ 33328: "rg32float",
1188
+ 33329: "r8sint",
1189
+ 33330: "r8uint",
1190
+ 33331: "r16sint",
1191
+ 33332: "r16uint",
1192
+ 33333: "r32sint",
1193
+ 33334: "r32uint",
1194
+ 33335: "rg8sint",
1195
+ 33336: "rg8uint",
1196
+ 33337: "rg16sint",
1197
+ 33338: "rg16uint",
1198
+ 33339: "rg32sint",
1199
+ 33340: "rg32uint",
1200
+ 33778: "bc2-rgba-unorm",
1201
+ 33779: "bc3-rgba-unorm",
1202
+ 34836: "rgba32float",
1203
+ 34842: "rgba16float",
1204
+ 35056: "depth24plus-stencil8",
1205
+ 35898: "rg11b10ufloat",
1206
+ 35901: "rgb9e5ufloat",
1207
+ 35907: "rgba8unorm-srgb",
1208
+ // bgra8unorm-srgb
1209
+ 36012: "depth32float",
1210
+ 36013: "depth32float-stencil8",
1211
+ 36168: "stencil8",
1212
+ 36208: "rgba32uint",
1213
+ 36214: "rgba16uint",
1214
+ 36220: "rgba8uint",
1215
+ 36226: "rgba32sint",
1216
+ 36232: "rgba16sint",
1217
+ 36238: "rgba8sint",
1218
+ 36492: "bc7-rgba-unorm",
1219
+ 36756: "r8snorm",
1220
+ 36757: "rg8snorm",
1221
+ 36759: "rgba8snorm",
1222
+ 37496: "etc2-rgba8unorm",
1223
+ 37808: "astc-4x4-unorm"
1224
+ };
1225
+ function glFormatToGPUFormat(glInternalFormat) {
1226
+ const format = glFormatToGPUFormatMap[glInternalFormat];
1227
+ if (format) {
1228
+ return format;
1229
+ }
1230
+ throw new Error(\`Unsupported glInternalFormat: \${glInternalFormat}\`);
1231
+ }
1232
+
1233
+ const vkFormatToGPUFormatMap = {
1234
+ 23: "rgb8unorm",
1235
+ // VK_FORMAT_R8G8B8_UNORM
1236
+ 37: "rgba8unorm",
1237
+ // VK_FORMAT_R8G8B8A8_UNORM
1238
+ 43: "rgba8unorm-srgb"
1239
+ // VK_FORMAT_R8G8B8A8_SRGB
1240
+ // TODO add more!
1241
+ };
1242
+ function vkFormatToGPUFormat(vkFormat) {
1243
+ const format = vkFormatToGPUFormatMap[vkFormat];
1244
+ if (format) {
1245
+ return format;
1246
+ }
1247
+ throw new Error(\`Unsupported VkFormat: \${vkFormat}\`);
1248
+ }
1249
+
1250
+ function getTextureFormatFromKTXTexture(ktxTexture) {
1251
+ if (ktxTexture.classId === 2) {
1252
+ return vkFormatToGPUFormat(ktxTexture.vkFormat);
1253
+ }
1254
+ return glFormatToGPUFormat(ktxTexture.glInternalformat);
1255
+ }
1256
+
1257
+ const gpuFormatToBasisTranscoderFormatMap = {
1258
+ "bc3-rgba-unorm": "BC3_RGBA",
1259
+ "bc7-rgba-unorm": "BC7_M5_RGBA",
1260
+ "etc2-rgba8unorm": "ETC2_RGBA",
1261
+ "astc-4x4-unorm": "ASTC_4x4_RGBA",
1262
+ // Uncompressed
1263
+ rgba8unorm: "RGBA32",
1264
+ rg11b10ufloat: "R11F_G11F_B10F"
1265
+ };
1266
+ function gpuFormatToKTXBasisTranscoderFormat(transcoderFormat) {
1267
+ const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];
1268
+ if (format) {
1269
+ return format;
1270
+ }
1271
+ throw new Error(\`Unsupported transcoderFormat: \${transcoderFormat}\`);
1272
+ }
1273
+
1274
+ const settings = {
1275
+ jsUrl: "",
1276
+ wasmUrl: ""
1277
+ };
1278
+ let basisTranscoderFormat;
1279
+ let basisTranscodedTextureFormat;
1280
+ let ktxPromise;
1281
+ async function getKTX() {
1282
+ if (!ktxPromise) {
1283
+ const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;
1284
+ const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;
1285
+ importScripts(absoluteJsUrl);
1286
+ ktxPromise = new Promise((resolve) => {
1287
+ LIBKTX({
1288
+ locateFile: (_file) => absoluteWasmUrl
1289
+ }).then((libktx) => {
1290
+ resolve(libktx);
1291
+ });
1292
+ });
1293
+ }
1294
+ return ktxPromise;
1295
+ }
1296
+ async function fetchKTXTexture(url, ktx) {
1297
+ const ktx2Response = await fetch(url);
1298
+ if (ktx2Response.ok) {
1299
+ const ktx2ArrayBuffer = await ktx2Response.arrayBuffer();
1300
+ return new ktx.ktxTexture(new Uint8Array(ktx2ArrayBuffer));
1301
+ }
1302
+ throw new Error(\`Failed to load KTX(2) texture: \${url}\`);
1303
+ }
1304
+ const preferredTranscodedFormat = [
1305
+ "bc7-rgba-unorm",
1306
+ "astc-4x4-unorm",
1307
+ "etc2-rgba8unorm",
1308
+ "bc3-rgba-unorm",
1309
+ "rgba8unorm"
1310
+ ];
1311
+ async function load(url) {
1312
+ const ktx = await getKTX();
1313
+ const ktxTexture = await fetchKTXTexture(url, ktx);
1314
+ let format;
1315
+ if (ktxTexture.needsTranscoding) {
1316
+ format = basisTranscodedTextureFormat;
1317
+ const transcodeFormat = ktx.TranscodeTarget[basisTranscoderFormat];
1318
+ const result = ktxTexture.transcodeBasis(transcodeFormat, 0);
1319
+ if (result !== ktx.ErrorCode.SUCCESS) {
1320
+ throw new Error("Unable to transcode basis texture.");
1321
+ }
1322
+ } else {
1323
+ format = getTextureFormatFromKTXTexture(ktxTexture);
1324
+ }
1325
+ const levelBuffers = createLevelBuffersFromKTX(ktxTexture);
1326
+ const textureOptions = {
1327
+ width: ktxTexture.baseWidth,
1328
+ height: ktxTexture.baseHeight,
1329
+ format,
1330
+ mipLevelCount: ktxTexture.numLevels,
1331
+ resource: levelBuffers,
1332
+ alphaMode: "no-premultiply-alpha"
1333
+ };
1334
+ convertFormatIfRequired(textureOptions);
1335
+ return textureOptions;
1336
+ }
1337
+ async function init(jsUrl, wasmUrl, supportedTextures) {
1338
+ if (jsUrl) settings.jsUrl = jsUrl;
1339
+ if (wasmUrl) settings.wasmUrl = wasmUrl;
1340
+ basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];
1341
+ basisTranscoderFormat = gpuFormatToKTXBasisTranscoderFormat(basisTranscodedTextureFormat);
1342
+ await getKTX();
1343
+ }
1344
+ const messageHandlers = {
1345
+ init: async (data) => {
1346
+ const { jsUrl, wasmUrl, supportedTextures } = data;
1347
+ await init(jsUrl, wasmUrl, supportedTextures);
1348
+ },
1349
+ load: async (data) => {
1350
+ try {
1351
+ const textureOptions = await load(data.url);
1352
+ return {
1353
+ type: "load",
1354
+ url: data.url,
1355
+ success: true,
1356
+ textureOptions,
1357
+ transferables: textureOptions.resource?.map((arr) => arr.buffer)
1358
+ };
1359
+ } catch (e) {
1360
+ throw e;
1361
+ }
1362
+ }
1363
+ };
1364
+ self.onmessage = (async (messageEvent) => {
1365
+ const message = messageEvent.data;
1366
+ try {
1367
+ const response = await messageHandlers[message.type]?.(message);
1368
+ if (response) {
1369
+ self.postMessage(response, response.transferables);
1370
+ }
1371
+ } catch (err) {
1372
+ self.postMessage({
1373
+ type: "error",
1374
+ err,
1375
+ url: message.url
1376
+ });
1377
+ }
1378
+ });
1379
+
1380
+ })();
1381
+ `,Wu=null,Gu=class{constructor(){Wu||=URL.createObjectURL(new Blob([Uu],{type:`application/javascript`})),this.worker=new Worker(Wu)}};Gu.revokeObjectURL=function(){Wu&&=(URL.revokeObjectURL(Wu),null)};var Ku={jsUrl:`https://cdn.jsdelivr.net/npm/pixi.js/transcoders/ktx/libktx.js`,wasmUrl:`https://cdn.jsdelivr.net/npm/pixi.js/transcoders/ktx/libktx.wasm`};function qu(e){Object.assign(Ku,e)}var Ju,Yu={},Xu={};function Zu(e){return Ju||(Ju=new Gu().worker,Ju.onmessage=e=>{let{err:t,success:n,url:r,textureOptions:i}=e.data;if(t){Xu[r](t);return}n||console.warn(`Failed to load KTX texture`,r),Yu[r](i)},Ju.postMessage({type:`init`,jsUrl:Ku.jsUrl,wasmUrl:Ku.wasmUrl,supportedTextures:e})),Ju}function Qu(e,t){let n=Zu(t);return new Promise((t,r)=>{Yu[e]=t,Xu[e]=r,n.postMessage({type:`load`,url:e})})}var $u={extension:{type:W.LoadParser,priority:Bt.High,name:`loadKTX2`},name:`loadKTX2`,id:`ktx2`,test(e){return il(e,`.ktx2`)},async load(e,t,n){return bl(new $l({...await Qu(e,await cu()),resolution:t.data?.resolution||yl(e)}),n,e)},async unload(e){Array.isArray(e)?e.forEach(e=>e.destroy(!0)):e.destroy(!0)}},ed={rgb8unorm:{convertedFormat:`rgba8unorm`,convertFunction:nd},"rgb8unorm-srgb":{convertedFormat:`rgba8unorm-srgb`,convertFunction:nd}};function td(e){let t=e.format;if(ed[t]){let n=ed[t].convertFunction,r=e.resource;for(let e=0;e<r.length;e++)r[e]=n(r[e]);e.format=ed[t].convertedFormat}}function nd(e){let t=e.byteLength/3,n=new Uint32Array(t);for(let r=0;r<t;++r)n[r]=e[r*3]+(e[r*3+1]<<8)+(e[r*3+2]<<16)+4278190080;return new Uint8Array(n.buffer)}function rd(e){let t=[];for(let n=0;n<e.numLevels;n++){let r=e.getImageData(n,0,0),i=new Uint8Array(r.byteLength);i.set(r),t.push(i)}return t}var id={6408:`rgba8unorm`,32856:`bgra8unorm`,32857:`rgb10a2unorm`,33189:`depth16unorm`,33190:`depth24plus`,33321:`r8unorm`,33323:`rg8unorm`,33325:`r16float`,33326:`r32float`,33327:`rg16float`,33328:`rg32float`,33329:`r8sint`,33330:`r8uint`,33331:`r16sint`,33332:`r16uint`,33333:`r32sint`,33334:`r32uint`,33335:`rg8sint`,33336:`rg8uint`,33337:`rg16sint`,33338:`rg16uint`,33339:`rg32sint`,33340:`rg32uint`,33778:`bc2-rgba-unorm`,33779:`bc3-rgba-unorm`,34836:`rgba32float`,34842:`rgba16float`,35056:`depth24plus-stencil8`,35898:`rg11b10ufloat`,35901:`rgb9e5ufloat`,35907:`rgba8unorm-srgb`,36012:`depth32float`,36013:`depth32float-stencil8`,36168:`stencil8`,36208:`rgba32uint`,36214:`rgba16uint`,36220:`rgba8uint`,36226:`rgba32sint`,36232:`rgba16sint`,36238:`rgba8sint`,36492:`bc7-rgba-unorm`,36756:`r8snorm`,36757:`rg8snorm`,36759:`rgba8snorm`,37496:`etc2-rgba8unorm`,37808:`astc-4x4-unorm`};function ad(e){let t=id[e];if(t)return t;throw Error(`Unsupported glInternalFormat: ${e}`)}var od={23:`rgb8unorm`,37:`rgba8unorm`,43:`rgba8unorm-srgb`};function sd(e){let t=od[e];if(t)return t;throw Error(`Unsupported VkFormat: ${e}`)}function cd(e){return e.classId===2?sd(e.vkFormat):ad(e.glInternalformat)}var ld={"bc3-rgba-unorm":`BC3_RGBA`,"bc7-rgba-unorm":`BC7_M5_RGBA`,"etc2-rgba8unorm":`ETC2_RGBA`,"astc-4x4-unorm":`ASTC_4x4_RGBA`,rgba8unorm:`RGBA32`,rg11b10ufloat:`R11F_G11F_B10F`};function ud(e){let t=ld[e];if(t)return t;throw Error(`Unsupported transcoderFormat: ${e}`)}var dd=[`basis`,`bc7`,`bc6h`,`astc`,`etc2`,`bc5`,`bc4`,`bc3`,`bc2`,`bc1`,`eac`],fd={extension:W.ResolveParser,test:e=>il(e,[`.ktx`,`.ktx2`,`.dds`]),parse:e=>{let t,n=e.split(`.`);if(n.length>2){let e=n[n.length-2];dd.includes(e)&&(t=e)}else t=n[n.length-1];return{resolution:parseFloat(Zt.RETINA_PREFIX.exec(e)?.[1]??`1`),format:t,src:e}}},pd,md={extension:{type:W.DetectionParser,priority:2},test:async()=>!!(await Ac()||Oc()),add:async e=>(pd=hd(await au()),[...pd,...e]),remove:async e=>pd?e.filter(e=>!(e in pd)):e};function hd(e){let t=[`basis`],n={};return e.forEach(e=>{let r=e.split(`-`)[0];r&&!n[r]&&(n[r]=!0,t.push(r))}),t.sort((e,t)=>{let n=dd.indexOf(e),r=dd.indexOf(t);return n===-1?1:r===-1?-1:n-r}),t}var gd=new l,_d=new U,vd=new p,yd=class{cull(e,t,n=!0){this._cullRecursive(e,t,n)}_cullRecursive(e,t,n=!0){if(e.cullable&&e.measurable&&e.includeInBuild)if(e.cullArea){vd.x=t.x,vd.y=t.y,vd.width=t.width,vd.height=t.height;let r=n?e.worldTransform:e.getGlobalTransform(_d,n);e.culled=!vd.intersects(e.cullArea,r)}else{let r=Pe(e,n,gd);e.culled=r.x>=t.x+t.width||r.y>=t.y+t.height||r.x+r.width<=t.x||r.y+r.height<=t.y}else e.culled=!1;if(!(!e.cullableChildren||e.culled||!e.renderable||!e.measurable||!e.includeInBuild))for(let r=0;r<e.children.length;r++)this._cullRecursive(e.children[r],t,n)}};yd.shared=new yd;var bd=yd,xd=class{static init(e){this._renderRef=this.render.bind(this),this.render=()=>{let t=e?.culler?.updateTransform!==!0;bd.shared.cull(this.stage,this.renderer.screen,t),this.renderer.render({container:this.stage})}}static destroy(){this.render=this._renderRef}};xd.extension={priority:10,type:W.Application,name:`culler`};var Sd=e((e=>{function t(e,t,n){if(n===void 0&&(n=Array.prototype),e&&typeof n.find==`function`)return n.find.call(e,t);for(var r=0;r<e.length;r++)if(Object.prototype.hasOwnProperty.call(e,r)){var i=e[r];if(t.call(void 0,i,r,e))return i}}function n(e,t){return t===void 0&&(t=Object),t&&typeof t.freeze==`function`?t.freeze(e):e}function r(e,t){if(typeof e!=`object`||!e)throw TypeError(`target is not an object`);for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}var i=n({HTML:`text/html`,isHTML:function(e){return e===i.HTML},XML_APPLICATION:`application/xml`,XML_TEXT:`text/xml`,XML_XHTML_APPLICATION:`application/xhtml+xml`,XML_SVG_IMAGE:`image/svg+xml`}),a=n({HTML:`http://www.w3.org/1999/xhtml`,isHTML:function(e){return e===a.HTML},SVG:`http://www.w3.org/2000/svg`,XML:`http://www.w3.org/XML/1998/namespace`,XMLNS:`http://www.w3.org/2000/xmlns/`});e.assign=r,e.find=t,e.freeze=n,e.MIME_TYPE=i,e.NAMESPACE=a})),Cd=e((e=>{var t=Sd(),n=t.find,r=t.NAMESPACE;function i(e){return e!==``}function a(e){return e?e.split(/[\t\n\f\r ]+/).filter(i):[]}function o(e,t){return e.hasOwnProperty(t)||(e[t]=!0),e}function s(e){if(!e)return[];var t=a(e);return Object.keys(t.reduce(o,{}))}function c(e){return function(t){return e&&e.indexOf(t)!==-1}}function l(e,t){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}function u(e,t){var n=e.prototype;if(!(n instanceof t)){function r(){}r.prototype=t.prototype,r=new r,l(n,r),e.prototype=n=r}n.constructor!=e&&(typeof e!=`function`&&console.error(`unknown Class:`+e),n.constructor=e)}var d={},f=d.ELEMENT_NODE=1,p=d.ATTRIBUTE_NODE=2,m=d.TEXT_NODE=3,h=d.CDATA_SECTION_NODE=4,g=d.ENTITY_REFERENCE_NODE=5,_=d.ENTITY_NODE=6,v=d.PROCESSING_INSTRUCTION_NODE=7,y=d.COMMENT_NODE=8,b=d.DOCUMENT_NODE=9,x=d.DOCUMENT_TYPE_NODE=10,S=d.DOCUMENT_FRAGMENT_NODE=11,C=d.NOTATION_NODE=12,w={},T={};w.INDEX_SIZE_ERR=(T[1]=`Index size error`,1),w.DOMSTRING_SIZE_ERR=(T[2]=`DOMString size error`,2);var E=w.HIERARCHY_REQUEST_ERR=(T[3]=`Hierarchy request error`,3);w.WRONG_DOCUMENT_ERR=(T[4]=`Wrong document`,4);var ee=w.INVALID_CHARACTER_ERR=(T[5]=`Invalid character`,5);w.NO_DATA_ALLOWED_ERR=(T[6]=`No data allowed`,6),w.NO_MODIFICATION_ALLOWED_ERR=(T[7]=`No modification allowed`,7);var D=w.NOT_FOUND_ERR=(T[8]=`Not found`,8);w.NOT_SUPPORTED_ERR=(T[9]=`Not supported`,9);var O=w.INUSE_ATTRIBUTE_ERR=(T[10]=`Attribute in use`,10),k=w.INVALID_STATE_ERR=(T[11]=`Invalid state`,11);w.SYNTAX_ERR=(T[12]=`Syntax error`,12),w.INVALID_MODIFICATION_ERR=(T[13]=`Invalid modification`,13),w.NAMESPACE_ERR=(T[14]=`Invalid namespace`,14),w.INVALID_ACCESS_ERR=(T[15]=`Invalid access`,15);function A(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,T[e]),this.message=T[e],Error.captureStackTrace&&Error.captureStackTrace(this,A);return n.code=e,t&&(this.message=this.message+`: `+t),n}A.prototype=Error.prototype,l(w,A);function j(){}j.prototype={length:0,item:function(e){return e>=0&&e<this.length?this[e]:null},toString:function(e,t,n){for(var r=!!n&&!!n.requireWellFormed,i=[],a=0;a<this.length;a++)Ne(this[a],i,e,t,null,r);return i.join(``)},filter:function(e){return Array.prototype.filter.call(this,e)},indexOf:function(e){return Array.prototype.indexOf.call(this,e)}};function M(e,t){this._node=e,this._refresh=t,N(this)}function N(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==t){var n=e._refresh(e._node);if(Ie(e,`length`,n.length),!e.$$length||n.length<e.$$length)for(var r=n.length;r in e;r++)Object.prototype.hasOwnProperty.call(e,r)&&delete e[r];l(n,e),e._inc=t}}M.prototype.item=function(e){return N(this),this[e]||null},u(M,j);function P(){}function F(e,t){for(var n=e.length;n--;)if(e[n]===t)return n}function I(e,t,n,r){if(r?t[F(t,r)]=n:t[t.length++]=n,e){n.ownerElement=e;var i=e.ownerDocument;i&&(r&&re(i,e,r),ne(i,e,n))}}function L(e,t,n){var r=F(t,n);if(r>=0){for(var i=t.length-1;r<i;)t[r]=t[++r];if(t.length=i,e){var a=e.ownerDocument;a&&(re(a,e,n),n.ownerElement=null)}}else throw new A(D,Error(e.tagName+`@`+n))}P.prototype={length:0,item:j.prototype.item,getNamedItem:function(e){for(var t=this.length;t--;){var n=this[t];if(n.nodeName==e)return n}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new A(O);var n=this.getNamedItem(e.nodeName);return I(this._ownerElement,this,e,n),n},setNamedItemNS:function(e){var t=e.ownerElement,n;if(t&&t!=this._ownerElement)throw new A(O);return n=this.getNamedItemNS(e.namespaceURI,e.localName),I(this._ownerElement,this,e,n),n},removeNamedItem:function(e){var t=this.getNamedItem(e);return L(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var n=this.getNamedItemNS(e,t);return L(this._ownerElement,this,n),n},getNamedItemNS:function(e,t){for(var n=this.length;n--;){var r=this[n];if(r.localName==t&&r.namespaceURI==e)return r}return null}};function R(){}R.prototype={hasFeature:function(e,t){return!0},createDocument:function(e,t,n){var r=new H;if(r.implementation=this,r.childNodes=new j,r.doctype=n||null,n&&r.appendChild(n),t){var i=r.createElementNS(e,t);r.appendChild(i)}return r},createDocumentType:function(e,t,n){var r=new Ce;return r.name=e,r.nodeName=e,r.publicId=t||``,r.systemId=n||``,r}};function z(){}z.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return he(this,e,t)},replaceChild:function(e,t){he(this,e,t,me),t&&this.removeChild(t)},removeChild:function(e){return ae(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return Fe(this.ownerDocument||this,this,e)},normalize:function(){V(this,null,{enter:function(e){for(var t=e.firstChild;t;){var n=t.nextSibling;n!==null&&n.nodeType===m&&t.nodeType===m?(e.removeChild(n),t.appendData(n.data)):t=n}return!0}})},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&n[r]===e)return r}t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&Object.prototype.hasOwnProperty.call(n,e))return n[e];t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return this.lookupPrefix(e)==null}};function te(e){return e==`<`&&`&lt;`||e==`>`&&`&gt;`||e==`&`&&`&amp;`||e==`"`&&`&quot;`||`&#`+e.charCodeAt()+`;`}l(d,z),l(d,z.prototype);function B(e,t){return V(e,null,{enter:function(e){return t(e)?V.STOP:!0}})===V.STOP}function V(e,t,n){for(var r=[{node:e,context:t,phase:V.ENTER}];r.length>0;){var i=r.pop();if(i.phase===V.ENTER){var a=n.enter(i.node,i.context);if(a===V.STOP)return V.STOP;if(r.push({node:i.node,context:a,phase:V.EXIT}),a==null)continue;for(var o=i.node.lastChild;o;)r.push({node:o,context:a,phase:V.ENTER}),o=o.previousSibling}else n.exit&&n.exit(i.node,i.context)}}V.STOP=Symbol(`walkDOM.STOP`),V.ENTER=0,V.EXIT=1;function H(){this.ownerDocument=this}function ne(e,t,n){e&&e._inc++,n.namespaceURI===r.XMLNS&&(t._nsMap[n.prefix?n.localName:``]=n.value)}function re(e,t,n,i){e&&e._inc++,n.namespaceURI===r.XMLNS&&delete t._nsMap[n.prefix?n.localName:``]}function ie(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{for(var i=t.firstChild,a=0;i;)r[a++]=i,i=i.nextSibling;r.length=a,delete r[r.length]}}}function ae(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,ie(e.ownerDocument,e),t}function oe(e){return e&&(e.nodeType===z.DOCUMENT_NODE||e.nodeType===z.DOCUMENT_FRAGMENT_NODE||e.nodeType===z.ELEMENT_NODE)}function se(e){return e&&(le(e)||ue(e)||ce(e)||e.nodeType===z.DOCUMENT_FRAGMENT_NODE||e.nodeType===z.COMMENT_NODE||e.nodeType===z.PROCESSING_INSTRUCTION_NODE)}function ce(e){return e&&e.nodeType===z.DOCUMENT_TYPE_NODE}function le(e){return e&&e.nodeType===z.ELEMENT_NODE}function ue(e){return e&&e.nodeType===z.TEXT_NODE}function de(e,t){var r=e.childNodes||[];if(n(r,le)||ce(t))return!1;var i=n(r,ce);return!(t&&i&&r.indexOf(i)>r.indexOf(t))}function fe(e,t){var r=e.childNodes||[];function i(e){return le(e)&&e!==t}if(n(r,i))return!1;var a=n(r,ce);return!(t&&a&&r.indexOf(a)>r.indexOf(t))}function U(e,t,n){if(!oe(e))throw new A(E,`Unexpected parent node type `+e.nodeType);if(n&&n.parentNode!==e)throw new A(D,`child not in parent`);if(!se(t)||ce(t)&&e.nodeType!==z.DOCUMENT_NODE)throw new A(E,`Unexpected node type `+t.nodeType+` for parent node type `+e.nodeType)}function pe(e,t,r){var i=e.childNodes||[],a=t.childNodes||[];if(t.nodeType===z.DOCUMENT_FRAGMENT_NODE){var o=a.filter(le);if(o.length>1||n(a,ue))throw new A(E,`More than one element or text in fragment`);if(o.length===1&&!de(e,r))throw new A(E,`Element in fragment can not be inserted before doctype`)}if(le(t)&&!de(e,r))throw new A(E,`Only one element can be added and only after doctype`);if(ce(t)){if(n(i,ce))throw new A(E,`Only one doctype is allowed`);var s=n(i,le);if(r&&i.indexOf(s)<i.indexOf(r))throw new A(E,`Doctype can only be inserted before an element`);if(!r&&s)throw new A(E,`Doctype can not be appended since element is present`)}}function me(e,t,r){var i=e.childNodes||[],a=t.childNodes||[];if(t.nodeType===z.DOCUMENT_FRAGMENT_NODE){var o=a.filter(le);if(o.length>1||n(a,ue))throw new A(E,`More than one element or text in fragment`);if(o.length===1&&!fe(e,r))throw new A(E,`Element in fragment can not be inserted before doctype`)}if(le(t)&&!fe(e,r))throw new A(E,`Only one element can be added and only after doctype`);if(ce(t)){function e(e){return ce(e)&&e!==r}if(n(i,e))throw new A(E,`Only one doctype is allowed`);var s=n(i,le);if(r&&i.indexOf(s)<i.indexOf(r))throw new A(E,`Doctype can only be inserted before an element`)}}function he(e,t,n,r){U(e,t,n),e.nodeType===z.DOCUMENT_NODE&&(r||pe)(e,t,n);var i=t.parentNode;if(i&&i.removeChild(t),t.nodeType===S){var a=t.firstChild;if(a==null)return t;var o=t.lastChild}else a=o=t;var s=n?n.previousSibling:e.lastChild;a.previousSibling=s,o.nextSibling=n,s?s.nextSibling=a:e.firstChild=a,n==null?e.lastChild=o:n.previousSibling=o;do{a.parentNode=e;var c=e.ownerDocument||e;ge(a,c)}while(a!==o&&(a=a.nextSibling));return ie(e.ownerDocument||e,e),t.nodeType==S&&(t.firstChild=t.lastChild=null),t}function ge(e,t){if(e.ownerDocument!==t){if(e.ownerDocument=t,e.nodeType===f&&e.attributes)for(var n=0;n<e.attributes.length;n++){var r=e.attributes.item(n);r&&(r.ownerDocument=t)}for(var i=e.firstChild;i;)ge(i,t),i=i.nextSibling}}function _e(e,t){return t.parentNode&&t.parentNode.removeChild(t),t.parentNode=e,t.previousSibling=e.lastChild,t.nextSibling=null,t.previousSibling?t.previousSibling.nextSibling=t:e.firstChild=t,e.lastChild=t,ie(e.ownerDocument,e,t),ge(t,e.ownerDocument||e),t}H.prototype={nodeName:`#document`,nodeType:b,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==S){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return he(this,e,t),ge(e,this),this.documentElement===null&&e.nodeType===f&&(this.documentElement=e),e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),ae(this,e)},replaceChild:function(e,t){he(this,e,t,me),ge(e,this),t&&this.removeChild(t),le(e)&&(this.documentElement=e)},importNode:function(e,t){return Pe(this,e,t)},getElementById:function(e){var t=null;return B(this.documentElement,function(n){if(n.nodeType==f&&n.getAttribute(`id`)==e)return t=n,!0}),t},getElementsByClassName:function(e){var t=s(e);return new M(this,function(n){var r=[];return t.length>0&&B(n.documentElement,function(i){if(i!==n&&i.nodeType===f){var a=i.getAttribute(`class`);if(a){var o=e===a;if(!o){var l=s(a);o=t.every(c(l))}o&&r.push(i)}}}),r})},createElement:function(e){var t=new W;t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new j;var n=t.attributes=new P;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new De;return e.ownerDocument=this,e.childNodes=new j,e},createTextNode:function(e){var t=new be;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new xe;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){if(e.indexOf(`]]>`)!==-1)throw new A(ee,`data contains "]]>"`);var t=new Se;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new Oe;return n.ownerDocument=this,n.tagName=n.nodeName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new ve;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new Ee;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new W,r=t.split(`:`),i=n.attributes=new P;return n.childNodes=new j,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new ve,r=t.split(`:`);return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},u(H,z);function W(){this._nsMap={}}W.prototype={nodeType:f,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||``},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=``+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===S?this.insertBefore(e,null):_e(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||``},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=``+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new M(this,function(t){var n=[];return B(t,function(r){r!==t&&r.nodeType==f&&(e===`*`||r.tagName==e)&&n.push(r)}),n})},getElementsByTagNameNS:function(e,t){return new M(this,function(n){var r=[];return B(n,function(i){i!==n&&i.nodeType===f&&(e===`*`||i.namespaceURI===e)&&(t===`*`||i.localName==t)&&r.push(i)}),r})}},H.prototype.getElementsByTagName=W.prototype.getElementsByTagName,H.prototype.getElementsByTagNameNS=W.prototype.getElementsByTagNameNS,u(W,z);function ve(){}ve.prototype.nodeType=p,u(ve,z);function ye(){}ye.prototype={data:``,substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw Error(T[E])},deleteData:function(e,t){this.replaceData(e,t,``)},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}},u(ye,z);function be(){}be.prototype={nodeName:`#text`,nodeType:m,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},u(be,ye);function xe(){}xe.prototype={nodeName:`#comment`,nodeType:y},u(xe,ye);function Se(){}Se.prototype={nodeName:`#cdata-section`,nodeType:h},u(Se,ye);function Ce(){}Ce.prototype.nodeType=x,u(Ce,z);function we(){}we.prototype.nodeType=C,u(we,z);function Te(){}Te.prototype.nodeType=_,u(Te,z);function Ee(){}Ee.prototype.nodeType=g,u(Ee,z);function De(){}De.prototype.nodeName=`#document-fragment`,De.prototype.nodeType=S,u(De,z);function Oe(){}Oe.prototype.nodeType=v,u(Oe,z);function ke(){}ke.prototype.serializeToString=function(e,t,n,r){return Ae.call(e,t,n,r)},z.prototype.toString=Ae;function Ae(e,t,n){var r=!!n&&!!n.requireWellFormed,i=[],a=this.nodeType==9&&this.documentElement||this,o=a.prefix,s=a.namespaceURI;if(s&&o==null){var o=a.lookupPrefix(s);if(o==null)var c=[{namespace:s,prefix:null}]}return Ne(this,i,e,t,c,r),i.join(``)}function je(e,t,n){var i=e.prefix||``,a=e.namespaceURI;if(!a||i===`xml`&&a===r.XML||a===r.XMLNS)return!1;for(var o=n.length;o--;){var s=n[o];if(s.prefix===i)return s.namespace!==a}return!0}function Me(e,t,n){e.push(` `,t,`="`,n.replace(/[<>&"\t\n\r]/g,te),`"`)}function Ne(e,t,n,i,a,o){a||=[],V(e,{ns:a,isHTML:n},{enter:function(e,n){var a=n.ns,s=n.isHTML;if(i)if(e=i(e),e){if(typeof e==`string`)return t.push(e),null}else return null;switch(e.nodeType){case f:var c=e.attributes,l=c.length,u=e.tagName;s=r.isHTML(e.namespaceURI)||s;var d=u;if(!s&&!e.prefix&&e.namespaceURI){for(var _,C=0;C<c.length;C++)if(c.item(C).name===`xmlns`){_=c.item(C).value;break}if(!_)for(var w=a.length-1;w>=0;w--){var T=a[w];if(T.prefix===``&&T.namespace===e.namespaceURI){_=T.namespace;break}}if(_!==e.namespaceURI)for(var w=a.length-1;w>=0;w--){var T=a[w];if(T.namespace===e.namespaceURI){T.prefix&&(d=T.prefix+`:`+u);break}}}t.push(`<`,d);for(var E=a.slice(),ee=0;ee<l;ee++){var D=c.item(ee);D.prefix==`xmlns`?E.push({prefix:D.localName,namespace:D.value}):D.nodeName==`xmlns`&&E.push({prefix:``,namespace:D.value})}for(var ee=0;ee<l;ee++){var D=c.item(ee);if(je(D,s,E)){var O=D.prefix||``,j=D.namespaceURI;Me(t,O?`xmlns:`+O:`xmlns`,j),E.push({prefix:O,namespace:j})}var M=i?i(D):D;M&&(typeof M==`string`?t.push(M):Me(t,M.name,M.value))}if(u===d&&je(e,s,E)){var N=e.prefix||``,j=e.namespaceURI;Me(t,N?`xmlns:`+N:`xmlns`,j),E.push({prefix:N,namespace:j})}var P=e.firstChild;if(P||s&&!/^(?:meta|link|img|br|hr|input)$/i.test(u)){if(t.push(`>`),s&&/^script$/i.test(u)){for(;P;)P.data?t.push(P.data):Ne(P,t,s,i,E.slice(),o),P=P.nextSibling;return t.push(`</`,u,`>`),null}return{ns:E,isHTML:s,tag:d}}else return t.push(`/>`),null;case b:case S:return{ns:a.slice(),isHTML:s,tag:null};case p:return Me(t,e.name,e.value),null;case m:return t.push(e.data.replace(/[<&>]/g,te)),null;case h:if(o&&e.data.indexOf(`]]>`)!==-1)throw new A(k,`The CDATASection data contains "]]>"`);return t.push(`<![CDATA[`,e.data.replace(/]]>/g,`]]]]><![CDATA[>`),`]]>`),null;case y:if(o&&e.data.indexOf(`-->`)!==-1)throw new A(k,`The comment node data contains "-->"`);return t.push(`<!--`,e.data,`-->`),null;case x:if(o){if(e.publicId&&!/^("[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%']*"|'[\x20\r\na-zA-Z0-9\-()+,.\/:=?;!*#@$_%'"]*')$/.test(e.publicId))throw new A(k,`DocumentType publicId is not a valid PubidLiteral`);if(e.systemId&&!/^("[^"]*"|'[^']*')$/.test(e.systemId))throw new A(k,`DocumentType systemId is not a valid SystemLiteral`);if(e.internalSubset&&e.internalSubset.indexOf(`]>`)!==-1)throw new A(k,`DocumentType internalSubset contains "]>"`)}var F=e.publicId,I=e.systemId;if(t.push(`<!DOCTYPE `,e.name),F)t.push(` PUBLIC `,F),I&&I!=`.`&&t.push(` `,I),t.push(`>`);else if(I&&I!=`.`)t.push(` SYSTEM `,I,`>`);else{var L=e.internalSubset;L&&t.push(` [`,L,`]`),t.push(`>`)}return null;case v:if(o&&e.data.indexOf(`?>`)!==-1)throw new A(k,`The ProcessingInstruction data contains "?>"`);return t.push(`<?`,e.target,` `,e.data,`?>`),null;case g:return t.push(`&`,e.nodeName,`;`),null;default:return t.push(`??`,e.nodeName),null}},exit:function(e,n){n&&n.tag&&t.push(`</`,n.tag,`>`)}})}function Pe(e,t,n){var r;return V(t,null,{enter:function(t,i){var a=t.cloneNode(!1);return a.ownerDocument=e,a.parentNode=null,i===null?r=a:i.appendChild(a),t.nodeType===p||n?a:null}}),r}function Fe(e,t,n){var r;return V(t,null,{enter:function(t,i){var a=new t.constructor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var s=t[o];typeof s!=`object`&&s!=a[o]&&(a[o]=s)}t.childNodes&&(a.childNodes=new j),a.ownerDocument=e;var c=n;switch(a.nodeType){case f:var l=t.attributes,u=a.attributes=new P,d=l.length;u._ownerElement=a;for(var m=0;m<d;m++)a.setAttributeNode(Fe(e,l.item(m),!0));break;case p:c=!0}return i===null?r=a:i.appendChild(a),c?a:null}}),r}function Ie(e,t,n){e[t]=n}try{Object.defineProperty&&(Object.defineProperty(M.prototype,`length`,{get:function(){return N(this),this.$$length}}),Object.defineProperty(z.prototype,`textContent`,{get:function(){if(this.nodeType===f||this.nodeType===S){var e=[];return V(this,null,{enter:function(t){if(t.nodeType===f||t.nodeType===S)return!0;if(t.nodeType===v||t.nodeType===y)return null;e.push(t.nodeValue)}}),e.join(``)}return this.nodeValue},set:function(e){switch(this.nodeType){case f:case S:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),Ie=function(e,t,n){e[`$$`+t]=n})}catch{}e.DocumentType=Ce,e.DOMException=A,e.DOMImplementation=R,e.Element=W,e.Node=z,e.NodeList=j,e.walkDOM=V,e.XMLSerializer=ke})),wd=e((e=>{var t=Sd().freeze;e.XML_ENTITIES=t({amp:`&`,apos:`'`,gt:`>`,lt:`<`,quot:`"`}),e.HTML_ENTITIES=t({Aacute:`Á`,aacute:`á`,Abreve:`Ă`,abreve:`ă`,ac:`∾`,acd:`∿`,acE:`∾̳`,Acirc:`Â`,acirc:`â`,acute:`´`,Acy:`А`,acy:`а`,AElig:`Æ`,aelig:`æ`,af:`⁡`,Afr:`𝔄`,afr:`𝔞`,Agrave:`À`,agrave:`à`,alefsym:`ℵ`,aleph:`ℵ`,Alpha:`Α`,alpha:`α`,Amacr:`Ā`,amacr:`ā`,amalg:`⨿`,AMP:`&`,amp:`&`,And:`⩓`,and:`∧`,andand:`⩕`,andd:`⩜`,andslope:`⩘`,andv:`⩚`,ang:`∠`,ange:`⦤`,angle:`∠`,angmsd:`∡`,angmsdaa:`⦨`,angmsdab:`⦩`,angmsdac:`⦪`,angmsdad:`⦫`,angmsdae:`⦬`,angmsdaf:`⦭`,angmsdag:`⦮`,angmsdah:`⦯`,angrt:`∟`,angrtvb:`⊾`,angrtvbd:`⦝`,angsph:`∢`,angst:`Å`,angzarr:`⍼`,Aogon:`Ą`,aogon:`ą`,Aopf:`𝔸`,aopf:`𝕒`,ap:`≈`,apacir:`⩯`,apE:`⩰`,ape:`≊`,apid:`≋`,apos:`'`,ApplyFunction:`⁡`,approx:`≈`,approxeq:`≊`,Aring:`Å`,aring:`å`,Ascr:`𝒜`,ascr:`𝒶`,Assign:`≔`,ast:`*`,asymp:`≈`,asympeq:`≍`,Atilde:`Ã`,atilde:`ã`,Auml:`Ä`,auml:`ä`,awconint:`∳`,awint:`⨑`,backcong:`≌`,backepsilon:`϶`,backprime:`‵`,backsim:`∽`,backsimeq:`⋍`,Backslash:`∖`,Barv:`⫧`,barvee:`⊽`,Barwed:`⌆`,barwed:`⌅`,barwedge:`⌅`,bbrk:`⎵`,bbrktbrk:`⎶`,bcong:`≌`,Bcy:`Б`,bcy:`б`,bdquo:`„`,becaus:`∵`,Because:`∵`,because:`∵`,bemptyv:`⦰`,bepsi:`϶`,bernou:`ℬ`,Bernoullis:`ℬ`,Beta:`Β`,beta:`β`,beth:`ℶ`,between:`≬`,Bfr:`𝔅`,bfr:`𝔟`,bigcap:`⋂`,bigcirc:`◯`,bigcup:`⋃`,bigodot:`⨀`,bigoplus:`⨁`,bigotimes:`⨂`,bigsqcup:`⨆`,bigstar:`★`,bigtriangledown:`▽`,bigtriangleup:`△`,biguplus:`⨄`,bigvee:`⋁`,bigwedge:`⋀`,bkarow:`⤍`,blacklozenge:`⧫`,blacksquare:`▪`,blacktriangle:`▴`,blacktriangledown:`▾`,blacktriangleleft:`◂`,blacktriangleright:`▸`,blank:`␣`,blk12:`▒`,blk14:`░`,blk34:`▓`,block:`█`,bne:`=⃥`,bnequiv:`≡⃥`,bNot:`⫭`,bnot:`⌐`,Bopf:`𝔹`,bopf:`𝕓`,bot:`⊥`,bottom:`⊥`,bowtie:`⋈`,boxbox:`⧉`,boxDL:`╗`,boxDl:`╖`,boxdL:`╕`,boxdl:`┐`,boxDR:`╔`,boxDr:`╓`,boxdR:`╒`,boxdr:`┌`,boxH:`═`,boxh:`─`,boxHD:`╦`,boxHd:`╤`,boxhD:`╥`,boxhd:`┬`,boxHU:`╩`,boxHu:`╧`,boxhU:`╨`,boxhu:`┴`,boxminus:`⊟`,boxplus:`⊞`,boxtimes:`⊠`,boxUL:`╝`,boxUl:`╜`,boxuL:`╛`,boxul:`┘`,boxUR:`╚`,boxUr:`╙`,boxuR:`╘`,boxur:`└`,boxV:`║`,boxv:`│`,boxVH:`╬`,boxVh:`╫`,boxvH:`╪`,boxvh:`┼`,boxVL:`╣`,boxVl:`╢`,boxvL:`╡`,boxvl:`┤`,boxVR:`╠`,boxVr:`╟`,boxvR:`╞`,boxvr:`├`,bprime:`‵`,Breve:`˘`,breve:`˘`,brvbar:`¦`,Bscr:`ℬ`,bscr:`𝒷`,bsemi:`⁏`,bsim:`∽`,bsime:`⋍`,bsol:`\\`,bsolb:`⧅`,bsolhsub:`⟈`,bull:`•`,bullet:`•`,bump:`≎`,bumpE:`⪮`,bumpe:`≏`,Bumpeq:`≎`,bumpeq:`≏`,Cacute:`Ć`,cacute:`ć`,Cap:`⋒`,cap:`∩`,capand:`⩄`,capbrcup:`⩉`,capcap:`⩋`,capcup:`⩇`,capdot:`⩀`,CapitalDifferentialD:`ⅅ`,caps:`∩︀`,caret:`⁁`,caron:`ˇ`,Cayleys:`ℭ`,ccaps:`⩍`,Ccaron:`Č`,ccaron:`č`,Ccedil:`Ç`,ccedil:`ç`,Ccirc:`Ĉ`,ccirc:`ĉ`,Cconint:`∰`,ccups:`⩌`,ccupssm:`⩐`,Cdot:`Ċ`,cdot:`ċ`,cedil:`¸`,Cedilla:`¸`,cemptyv:`⦲`,cent:`¢`,CenterDot:`·`,centerdot:`·`,Cfr:`ℭ`,cfr:`𝔠`,CHcy:`Ч`,chcy:`ч`,check:`✓`,checkmark:`✓`,Chi:`Χ`,chi:`χ`,cir:`○`,circ:`ˆ`,circeq:`≗`,circlearrowleft:`↺`,circlearrowright:`↻`,circledast:`⊛`,circledcirc:`⊚`,circleddash:`⊝`,CircleDot:`⊙`,circledR:`®`,circledS:`Ⓢ`,CircleMinus:`⊖`,CirclePlus:`⊕`,CircleTimes:`⊗`,cirE:`⧃`,cire:`≗`,cirfnint:`⨐`,cirmid:`⫯`,cirscir:`⧂`,ClockwiseContourIntegral:`∲`,CloseCurlyDoubleQuote:`”`,CloseCurlyQuote:`’`,clubs:`♣`,clubsuit:`♣`,Colon:`∷`,colon:`:`,Colone:`⩴`,colone:`≔`,coloneq:`≔`,comma:`,`,commat:`@`,comp:`∁`,compfn:`∘`,complement:`∁`,complexes:`ℂ`,cong:`≅`,congdot:`⩭`,Congruent:`≡`,Conint:`∯`,conint:`∮`,ContourIntegral:`∮`,Copf:`ℂ`,copf:`𝕔`,coprod:`∐`,Coproduct:`∐`,COPY:`©`,copy:`©`,copysr:`℗`,CounterClockwiseContourIntegral:`∳`,crarr:`↵`,Cross:`⨯`,cross:`✗`,Cscr:`𝒞`,cscr:`𝒸`,csub:`⫏`,csube:`⫑`,csup:`⫐`,csupe:`⫒`,ctdot:`⋯`,cudarrl:`⤸`,cudarrr:`⤵`,cuepr:`⋞`,cuesc:`⋟`,cularr:`↶`,cularrp:`⤽`,Cup:`⋓`,cup:`∪`,cupbrcap:`⩈`,CupCap:`≍`,cupcap:`⩆`,cupcup:`⩊`,cupdot:`⊍`,cupor:`⩅`,cups:`∪︀`,curarr:`↷`,curarrm:`⤼`,curlyeqprec:`⋞`,curlyeqsucc:`⋟`,curlyvee:`⋎`,curlywedge:`⋏`,curren:`¤`,curvearrowleft:`↶`,curvearrowright:`↷`,cuvee:`⋎`,cuwed:`⋏`,cwconint:`∲`,cwint:`∱`,cylcty:`⌭`,Dagger:`‡`,dagger:`†`,daleth:`ℸ`,Darr:`↡`,dArr:`⇓`,darr:`↓`,dash:`‐`,Dashv:`⫤`,dashv:`⊣`,dbkarow:`⤏`,dblac:`˝`,Dcaron:`Ď`,dcaron:`ď`,Dcy:`Д`,dcy:`д`,DD:`ⅅ`,dd:`ⅆ`,ddagger:`‡`,ddarr:`⇊`,DDotrahd:`⤑`,ddotseq:`⩷`,deg:`°`,Del:`∇`,Delta:`Δ`,delta:`δ`,demptyv:`⦱`,dfisht:`⥿`,Dfr:`𝔇`,dfr:`𝔡`,dHar:`⥥`,dharl:`⇃`,dharr:`⇂`,DiacriticalAcute:`´`,DiacriticalDot:`˙`,DiacriticalDoubleAcute:`˝`,DiacriticalGrave:"`",DiacriticalTilde:`˜`,diam:`⋄`,Diamond:`⋄`,diamond:`⋄`,diamondsuit:`♦`,diams:`♦`,die:`¨`,DifferentialD:`ⅆ`,digamma:`ϝ`,disin:`⋲`,div:`÷`,divide:`÷`,divideontimes:`⋇`,divonx:`⋇`,DJcy:`Ђ`,djcy:`ђ`,dlcorn:`⌞`,dlcrop:`⌍`,dollar:`$`,Dopf:`𝔻`,dopf:`𝕕`,Dot:`¨`,dot:`˙`,DotDot:`⃜`,doteq:`≐`,doteqdot:`≑`,DotEqual:`≐`,dotminus:`∸`,dotplus:`∔`,dotsquare:`⊡`,doublebarwedge:`⌆`,DoubleContourIntegral:`∯`,DoubleDot:`¨`,DoubleDownArrow:`⇓`,DoubleLeftArrow:`⇐`,DoubleLeftRightArrow:`⇔`,DoubleLeftTee:`⫤`,DoubleLongLeftArrow:`⟸`,DoubleLongLeftRightArrow:`⟺`,DoubleLongRightArrow:`⟹`,DoubleRightArrow:`⇒`,DoubleRightTee:`⊨`,DoubleUpArrow:`⇑`,DoubleUpDownArrow:`⇕`,DoubleVerticalBar:`∥`,DownArrow:`↓`,Downarrow:`⇓`,downarrow:`↓`,DownArrowBar:`⤓`,DownArrowUpArrow:`⇵`,DownBreve:`̑`,downdownarrows:`⇊`,downharpoonleft:`⇃`,downharpoonright:`⇂`,DownLeftRightVector:`⥐`,DownLeftTeeVector:`⥞`,DownLeftVector:`↽`,DownLeftVectorBar:`⥖`,DownRightTeeVector:`⥟`,DownRightVector:`⇁`,DownRightVectorBar:`⥗`,DownTee:`⊤`,DownTeeArrow:`↧`,drbkarow:`⤐`,drcorn:`⌟`,drcrop:`⌌`,Dscr:`𝒟`,dscr:`𝒹`,DScy:`Ѕ`,dscy:`ѕ`,dsol:`⧶`,Dstrok:`Đ`,dstrok:`đ`,dtdot:`⋱`,dtri:`▿`,dtrif:`▾`,duarr:`⇵`,duhar:`⥯`,dwangle:`⦦`,DZcy:`Џ`,dzcy:`џ`,dzigrarr:`⟿`,Eacute:`É`,eacute:`é`,easter:`⩮`,Ecaron:`Ě`,ecaron:`ě`,ecir:`≖`,Ecirc:`Ê`,ecirc:`ê`,ecolon:`≕`,Ecy:`Э`,ecy:`э`,eDDot:`⩷`,Edot:`Ė`,eDot:`≑`,edot:`ė`,ee:`ⅇ`,efDot:`≒`,Efr:`𝔈`,efr:`𝔢`,eg:`⪚`,Egrave:`È`,egrave:`è`,egs:`⪖`,egsdot:`⪘`,el:`⪙`,Element:`∈`,elinters:`⏧`,ell:`ℓ`,els:`⪕`,elsdot:`⪗`,Emacr:`Ē`,emacr:`ē`,empty:`∅`,emptyset:`∅`,EmptySmallSquare:`◻`,emptyv:`∅`,EmptyVerySmallSquare:`▫`,emsp:` `,emsp13:` `,emsp14:` `,ENG:`Ŋ`,eng:`ŋ`,ensp:` `,Eogon:`Ę`,eogon:`ę`,Eopf:`𝔼`,eopf:`𝕖`,epar:`⋕`,eparsl:`⧣`,eplus:`⩱`,epsi:`ε`,Epsilon:`Ε`,epsilon:`ε`,epsiv:`ϵ`,eqcirc:`≖`,eqcolon:`≕`,eqsim:`≂`,eqslantgtr:`⪖`,eqslantless:`⪕`,Equal:`⩵`,equals:`=`,EqualTilde:`≂`,equest:`≟`,Equilibrium:`⇌`,equiv:`≡`,equivDD:`⩸`,eqvparsl:`⧥`,erarr:`⥱`,erDot:`≓`,Escr:`ℰ`,escr:`ℯ`,esdot:`≐`,Esim:`⩳`,esim:`≂`,Eta:`Η`,eta:`η`,ETH:`Ð`,eth:`ð`,Euml:`Ë`,euml:`ë`,euro:`€`,excl:`!`,exist:`∃`,Exists:`∃`,expectation:`ℰ`,ExponentialE:`ⅇ`,exponentiale:`ⅇ`,fallingdotseq:`≒`,Fcy:`Ф`,fcy:`ф`,female:`♀`,ffilig:`ffi`,fflig:`ff`,ffllig:`ffl`,Ffr:`𝔉`,ffr:`𝔣`,filig:`fi`,FilledSmallSquare:`◼`,FilledVerySmallSquare:`▪`,fjlig:`fj`,flat:`♭`,fllig:`fl`,fltns:`▱`,fnof:`ƒ`,Fopf:`𝔽`,fopf:`𝕗`,ForAll:`∀`,forall:`∀`,fork:`⋔`,forkv:`⫙`,Fouriertrf:`ℱ`,fpartint:`⨍`,frac12:`½`,frac13:`⅓`,frac14:`¼`,frac15:`⅕`,frac16:`⅙`,frac18:`⅛`,frac23:`⅔`,frac25:`⅖`,frac34:`¾`,frac35:`⅗`,frac38:`⅜`,frac45:`⅘`,frac56:`⅚`,frac58:`⅝`,frac78:`⅞`,frasl:`⁄`,frown:`⌢`,Fscr:`ℱ`,fscr:`𝒻`,gacute:`ǵ`,Gamma:`Γ`,gamma:`γ`,Gammad:`Ϝ`,gammad:`ϝ`,gap:`⪆`,Gbreve:`Ğ`,gbreve:`ğ`,Gcedil:`Ģ`,Gcirc:`Ĝ`,gcirc:`ĝ`,Gcy:`Г`,gcy:`г`,Gdot:`Ġ`,gdot:`ġ`,gE:`≧`,ge:`≥`,gEl:`⪌`,gel:`⋛`,geq:`≥`,geqq:`≧`,geqslant:`⩾`,ges:`⩾`,gescc:`⪩`,gesdot:`⪀`,gesdoto:`⪂`,gesdotol:`⪄`,gesl:`⋛︀`,gesles:`⪔`,Gfr:`𝔊`,gfr:`𝔤`,Gg:`⋙`,gg:`≫`,ggg:`⋙`,gimel:`ℷ`,GJcy:`Ѓ`,gjcy:`ѓ`,gl:`≷`,gla:`⪥`,glE:`⪒`,glj:`⪤`,gnap:`⪊`,gnapprox:`⪊`,gnE:`≩`,gne:`⪈`,gneq:`⪈`,gneqq:`≩`,gnsim:`⋧`,Gopf:`𝔾`,gopf:`𝕘`,grave:"`",GreaterEqual:`≥`,GreaterEqualLess:`⋛`,GreaterFullEqual:`≧`,GreaterGreater:`⪢`,GreaterLess:`≷`,GreaterSlantEqual:`⩾`,GreaterTilde:`≳`,Gscr:`𝒢`,gscr:`ℊ`,gsim:`≳`,gsime:`⪎`,gsiml:`⪐`,Gt:`≫`,GT:`>`,gt:`>`,gtcc:`⪧`,gtcir:`⩺`,gtdot:`⋗`,gtlPar:`⦕`,gtquest:`⩼`,gtrapprox:`⪆`,gtrarr:`⥸`,gtrdot:`⋗`,gtreqless:`⋛`,gtreqqless:`⪌`,gtrless:`≷`,gtrsim:`≳`,gvertneqq:`≩︀`,gvnE:`≩︀`,Hacek:`ˇ`,hairsp:` `,half:`½`,hamilt:`ℋ`,HARDcy:`Ъ`,hardcy:`ъ`,hArr:`⇔`,harr:`↔`,harrcir:`⥈`,harrw:`↭`,Hat:`^`,hbar:`ℏ`,Hcirc:`Ĥ`,hcirc:`ĥ`,hearts:`♥`,heartsuit:`♥`,hellip:`…`,hercon:`⊹`,Hfr:`ℌ`,hfr:`𝔥`,HilbertSpace:`ℋ`,hksearow:`⤥`,hkswarow:`⤦`,hoarr:`⇿`,homtht:`∻`,hookleftarrow:`↩`,hookrightarrow:`↪`,Hopf:`ℍ`,hopf:`𝕙`,horbar:`―`,HorizontalLine:`─`,Hscr:`ℋ`,hscr:`𝒽`,hslash:`ℏ`,Hstrok:`Ħ`,hstrok:`ħ`,HumpDownHump:`≎`,HumpEqual:`≏`,hybull:`⁃`,hyphen:`‐`,Iacute:`Í`,iacute:`í`,ic:`⁣`,Icirc:`Î`,icirc:`î`,Icy:`И`,icy:`и`,Idot:`İ`,IEcy:`Е`,iecy:`е`,iexcl:`¡`,iff:`⇔`,Ifr:`ℑ`,ifr:`𝔦`,Igrave:`Ì`,igrave:`ì`,ii:`ⅈ`,iiiint:`⨌`,iiint:`∭`,iinfin:`⧜`,iiota:`℩`,IJlig:`IJ`,ijlig:`ij`,Im:`ℑ`,Imacr:`Ī`,imacr:`ī`,image:`ℑ`,ImaginaryI:`ⅈ`,imagline:`ℐ`,imagpart:`ℑ`,imath:`ı`,imof:`⊷`,imped:`Ƶ`,Implies:`⇒`,in:`∈`,incare:`℅`,infin:`∞`,infintie:`⧝`,inodot:`ı`,Int:`∬`,int:`∫`,intcal:`⊺`,integers:`ℤ`,Integral:`∫`,intercal:`⊺`,Intersection:`⋂`,intlarhk:`⨗`,intprod:`⨼`,InvisibleComma:`⁣`,InvisibleTimes:`⁢`,IOcy:`Ё`,iocy:`ё`,Iogon:`Į`,iogon:`į`,Iopf:`𝕀`,iopf:`𝕚`,Iota:`Ι`,iota:`ι`,iprod:`⨼`,iquest:`¿`,Iscr:`ℐ`,iscr:`𝒾`,isin:`∈`,isindot:`⋵`,isinE:`⋹`,isins:`⋴`,isinsv:`⋳`,isinv:`∈`,it:`⁢`,Itilde:`Ĩ`,itilde:`ĩ`,Iukcy:`І`,iukcy:`і`,Iuml:`Ï`,iuml:`ï`,Jcirc:`Ĵ`,jcirc:`ĵ`,Jcy:`Й`,jcy:`й`,Jfr:`𝔍`,jfr:`𝔧`,jmath:`ȷ`,Jopf:`𝕁`,jopf:`𝕛`,Jscr:`𝒥`,jscr:`𝒿`,Jsercy:`Ј`,jsercy:`ј`,Jukcy:`Є`,jukcy:`є`,Kappa:`Κ`,kappa:`κ`,kappav:`ϰ`,Kcedil:`Ķ`,kcedil:`ķ`,Kcy:`К`,kcy:`к`,Kfr:`𝔎`,kfr:`𝔨`,kgreen:`ĸ`,KHcy:`Х`,khcy:`х`,KJcy:`Ќ`,kjcy:`ќ`,Kopf:`𝕂`,kopf:`𝕜`,Kscr:`𝒦`,kscr:`𝓀`,lAarr:`⇚`,Lacute:`Ĺ`,lacute:`ĺ`,laemptyv:`⦴`,lagran:`ℒ`,Lambda:`Λ`,lambda:`λ`,Lang:`⟪`,lang:`⟨`,langd:`⦑`,langle:`⟨`,lap:`⪅`,Laplacetrf:`ℒ`,laquo:`«`,Larr:`↞`,lArr:`⇐`,larr:`←`,larrb:`⇤`,larrbfs:`⤟`,larrfs:`⤝`,larrhk:`↩`,larrlp:`↫`,larrpl:`⤹`,larrsim:`⥳`,larrtl:`↢`,lat:`⪫`,lAtail:`⤛`,latail:`⤙`,late:`⪭`,lates:`⪭︀`,lBarr:`⤎`,lbarr:`⤌`,lbbrk:`❲`,lbrace:`{`,lbrack:`[`,lbrke:`⦋`,lbrksld:`⦏`,lbrkslu:`⦍`,Lcaron:`Ľ`,lcaron:`ľ`,Lcedil:`Ļ`,lcedil:`ļ`,lceil:`⌈`,lcub:`{`,Lcy:`Л`,lcy:`л`,ldca:`⤶`,ldquo:`“`,ldquor:`„`,ldrdhar:`⥧`,ldrushar:`⥋`,ldsh:`↲`,lE:`≦`,le:`≤`,LeftAngleBracket:`⟨`,LeftArrow:`←`,Leftarrow:`⇐`,leftarrow:`←`,LeftArrowBar:`⇤`,LeftArrowRightArrow:`⇆`,leftarrowtail:`↢`,LeftCeiling:`⌈`,LeftDoubleBracket:`⟦`,LeftDownTeeVector:`⥡`,LeftDownVector:`⇃`,LeftDownVectorBar:`⥙`,LeftFloor:`⌊`,leftharpoondown:`↽`,leftharpoonup:`↼`,leftleftarrows:`⇇`,LeftRightArrow:`↔`,Leftrightarrow:`⇔`,leftrightarrow:`↔`,leftrightarrows:`⇆`,leftrightharpoons:`⇋`,leftrightsquigarrow:`↭`,LeftRightVector:`⥎`,LeftTee:`⊣`,LeftTeeArrow:`↤`,LeftTeeVector:`⥚`,leftthreetimes:`⋋`,LeftTriangle:`⊲`,LeftTriangleBar:`⧏`,LeftTriangleEqual:`⊴`,LeftUpDownVector:`⥑`,LeftUpTeeVector:`⥠`,LeftUpVector:`↿`,LeftUpVectorBar:`⥘`,LeftVector:`↼`,LeftVectorBar:`⥒`,lEg:`⪋`,leg:`⋚`,leq:`≤`,leqq:`≦`,leqslant:`⩽`,les:`⩽`,lescc:`⪨`,lesdot:`⩿`,lesdoto:`⪁`,lesdotor:`⪃`,lesg:`⋚︀`,lesges:`⪓`,lessapprox:`⪅`,lessdot:`⋖`,lesseqgtr:`⋚`,lesseqqgtr:`⪋`,LessEqualGreater:`⋚`,LessFullEqual:`≦`,LessGreater:`≶`,lessgtr:`≶`,LessLess:`⪡`,lesssim:`≲`,LessSlantEqual:`⩽`,LessTilde:`≲`,lfisht:`⥼`,lfloor:`⌊`,Lfr:`𝔏`,lfr:`𝔩`,lg:`≶`,lgE:`⪑`,lHar:`⥢`,lhard:`↽`,lharu:`↼`,lharul:`⥪`,lhblk:`▄`,LJcy:`Љ`,ljcy:`љ`,Ll:`⋘`,ll:`≪`,llarr:`⇇`,llcorner:`⌞`,Lleftarrow:`⇚`,llhard:`⥫`,lltri:`◺`,Lmidot:`Ŀ`,lmidot:`ŀ`,lmoust:`⎰`,lmoustache:`⎰`,lnap:`⪉`,lnapprox:`⪉`,lnE:`≨`,lne:`⪇`,lneq:`⪇`,lneqq:`≨`,lnsim:`⋦`,loang:`⟬`,loarr:`⇽`,lobrk:`⟦`,LongLeftArrow:`⟵`,Longleftarrow:`⟸`,longleftarrow:`⟵`,LongLeftRightArrow:`⟷`,Longleftrightarrow:`⟺`,longleftrightarrow:`⟷`,longmapsto:`⟼`,LongRightArrow:`⟶`,Longrightarrow:`⟹`,longrightarrow:`⟶`,looparrowleft:`↫`,looparrowright:`↬`,lopar:`⦅`,Lopf:`𝕃`,lopf:`𝕝`,loplus:`⨭`,lotimes:`⨴`,lowast:`∗`,lowbar:`_`,LowerLeftArrow:`↙`,LowerRightArrow:`↘`,loz:`◊`,lozenge:`◊`,lozf:`⧫`,lpar:`(`,lparlt:`⦓`,lrarr:`⇆`,lrcorner:`⌟`,lrhar:`⇋`,lrhard:`⥭`,lrm:`‎`,lrtri:`⊿`,lsaquo:`‹`,Lscr:`ℒ`,lscr:`𝓁`,Lsh:`↰`,lsh:`↰`,lsim:`≲`,lsime:`⪍`,lsimg:`⪏`,lsqb:`[`,lsquo:`‘`,lsquor:`‚`,Lstrok:`Ł`,lstrok:`ł`,Lt:`≪`,LT:`<`,lt:`<`,ltcc:`⪦`,ltcir:`⩹`,ltdot:`⋖`,lthree:`⋋`,ltimes:`⋉`,ltlarr:`⥶`,ltquest:`⩻`,ltri:`◃`,ltrie:`⊴`,ltrif:`◂`,ltrPar:`⦖`,lurdshar:`⥊`,luruhar:`⥦`,lvertneqq:`≨︀`,lvnE:`≨︀`,macr:`¯`,male:`♂`,malt:`✠`,maltese:`✠`,Map:`⤅`,map:`↦`,mapsto:`↦`,mapstodown:`↧`,mapstoleft:`↤`,mapstoup:`↥`,marker:`▮`,mcomma:`⨩`,Mcy:`М`,mcy:`м`,mdash:`—`,mDDot:`∺`,measuredangle:`∡`,MediumSpace:` `,Mellintrf:`ℳ`,Mfr:`𝔐`,mfr:`𝔪`,mho:`℧`,micro:`µ`,mid:`∣`,midast:`*`,midcir:`⫰`,middot:`·`,minus:`−`,minusb:`⊟`,minusd:`∸`,minusdu:`⨪`,MinusPlus:`∓`,mlcp:`⫛`,mldr:`…`,mnplus:`∓`,models:`⊧`,Mopf:`𝕄`,mopf:`𝕞`,mp:`∓`,Mscr:`ℳ`,mscr:`𝓂`,mstpos:`∾`,Mu:`Μ`,mu:`μ`,multimap:`⊸`,mumap:`⊸`,nabla:`∇`,Nacute:`Ń`,nacute:`ń`,nang:`∠⃒`,nap:`≉`,napE:`⩰̸`,napid:`≋̸`,napos:`ʼn`,napprox:`≉`,natur:`♮`,natural:`♮`,naturals:`ℕ`,nbsp:`\xA0`,nbump:`≎̸`,nbumpe:`≏̸`,ncap:`⩃`,Ncaron:`Ň`,ncaron:`ň`,Ncedil:`Ņ`,ncedil:`ņ`,ncong:`≇`,ncongdot:`⩭̸`,ncup:`⩂`,Ncy:`Н`,ncy:`н`,ndash:`–`,ne:`≠`,nearhk:`⤤`,neArr:`⇗`,nearr:`↗`,nearrow:`↗`,nedot:`≐̸`,NegativeMediumSpace:`​`,NegativeThickSpace:`​`,NegativeThinSpace:`​`,NegativeVeryThinSpace:`​`,nequiv:`≢`,nesear:`⤨`,nesim:`≂̸`,NestedGreaterGreater:`≫`,NestedLessLess:`≪`,NewLine:`
1382
+ `,nexist:`∄`,nexists:`∄`,Nfr:`𝔑`,nfr:`𝔫`,ngE:`≧̸`,nge:`≱`,ngeq:`≱`,ngeqq:`≧̸`,ngeqslant:`⩾̸`,nges:`⩾̸`,nGg:`⋙̸`,ngsim:`≵`,nGt:`≫⃒`,ngt:`≯`,ngtr:`≯`,nGtv:`≫̸`,nhArr:`⇎`,nharr:`↮`,nhpar:`⫲`,ni:`∋`,nis:`⋼`,nisd:`⋺`,niv:`∋`,NJcy:`Њ`,njcy:`њ`,nlArr:`⇍`,nlarr:`↚`,nldr:`‥`,nlE:`≦̸`,nle:`≰`,nLeftarrow:`⇍`,nleftarrow:`↚`,nLeftrightarrow:`⇎`,nleftrightarrow:`↮`,nleq:`≰`,nleqq:`≦̸`,nleqslant:`⩽̸`,nles:`⩽̸`,nless:`≮`,nLl:`⋘̸`,nlsim:`≴`,nLt:`≪⃒`,nlt:`≮`,nltri:`⋪`,nltrie:`⋬`,nLtv:`≪̸`,nmid:`∤`,NoBreak:`⁠`,NonBreakingSpace:`\xA0`,Nopf:`ℕ`,nopf:`𝕟`,Not:`⫬`,not:`¬`,NotCongruent:`≢`,NotCupCap:`≭`,NotDoubleVerticalBar:`∦`,NotElement:`∉`,NotEqual:`≠`,NotEqualTilde:`≂̸`,NotExists:`∄`,NotGreater:`≯`,NotGreaterEqual:`≱`,NotGreaterFullEqual:`≧̸`,NotGreaterGreater:`≫̸`,NotGreaterLess:`≹`,NotGreaterSlantEqual:`⩾̸`,NotGreaterTilde:`≵`,NotHumpDownHump:`≎̸`,NotHumpEqual:`≏̸`,notin:`∉`,notindot:`⋵̸`,notinE:`⋹̸`,notinva:`∉`,notinvb:`⋷`,notinvc:`⋶`,NotLeftTriangle:`⋪`,NotLeftTriangleBar:`⧏̸`,NotLeftTriangleEqual:`⋬`,NotLess:`≮`,NotLessEqual:`≰`,NotLessGreater:`≸`,NotLessLess:`≪̸`,NotLessSlantEqual:`⩽̸`,NotLessTilde:`≴`,NotNestedGreaterGreater:`⪢̸`,NotNestedLessLess:`⪡̸`,notni:`∌`,notniva:`∌`,notnivb:`⋾`,notnivc:`⋽`,NotPrecedes:`⊀`,NotPrecedesEqual:`⪯̸`,NotPrecedesSlantEqual:`⋠`,NotReverseElement:`∌`,NotRightTriangle:`⋫`,NotRightTriangleBar:`⧐̸`,NotRightTriangleEqual:`⋭`,NotSquareSubset:`⊏̸`,NotSquareSubsetEqual:`⋢`,NotSquareSuperset:`⊐̸`,NotSquareSupersetEqual:`⋣`,NotSubset:`⊂⃒`,NotSubsetEqual:`⊈`,NotSucceeds:`⊁`,NotSucceedsEqual:`⪰̸`,NotSucceedsSlantEqual:`⋡`,NotSucceedsTilde:`≿̸`,NotSuperset:`⊃⃒`,NotSupersetEqual:`⊉`,NotTilde:`≁`,NotTildeEqual:`≄`,NotTildeFullEqual:`≇`,NotTildeTilde:`≉`,NotVerticalBar:`∤`,npar:`∦`,nparallel:`∦`,nparsl:`⫽⃥`,npart:`∂̸`,npolint:`⨔`,npr:`⊀`,nprcue:`⋠`,npre:`⪯̸`,nprec:`⊀`,npreceq:`⪯̸`,nrArr:`⇏`,nrarr:`↛`,nrarrc:`⤳̸`,nrarrw:`↝̸`,nRightarrow:`⇏`,nrightarrow:`↛`,nrtri:`⋫`,nrtrie:`⋭`,nsc:`⊁`,nsccue:`⋡`,nsce:`⪰̸`,Nscr:`𝒩`,nscr:`𝓃`,nshortmid:`∤`,nshortparallel:`∦`,nsim:`≁`,nsime:`≄`,nsimeq:`≄`,nsmid:`∤`,nspar:`∦`,nsqsube:`⋢`,nsqsupe:`⋣`,nsub:`⊄`,nsubE:`⫅̸`,nsube:`⊈`,nsubset:`⊂⃒`,nsubseteq:`⊈`,nsubseteqq:`⫅̸`,nsucc:`⊁`,nsucceq:`⪰̸`,nsup:`⊅`,nsupE:`⫆̸`,nsupe:`⊉`,nsupset:`⊃⃒`,nsupseteq:`⊉`,nsupseteqq:`⫆̸`,ntgl:`≹`,Ntilde:`Ñ`,ntilde:`ñ`,ntlg:`≸`,ntriangleleft:`⋪`,ntrianglelefteq:`⋬`,ntriangleright:`⋫`,ntrianglerighteq:`⋭`,Nu:`Ν`,nu:`ν`,num:`#`,numero:`№`,numsp:` `,nvap:`≍⃒`,nVDash:`⊯`,nVdash:`⊮`,nvDash:`⊭`,nvdash:`⊬`,nvge:`≥⃒`,nvgt:`>⃒`,nvHarr:`⤄`,nvinfin:`⧞`,nvlArr:`⤂`,nvle:`≤⃒`,nvlt:`<⃒`,nvltrie:`⊴⃒`,nvrArr:`⤃`,nvrtrie:`⊵⃒`,nvsim:`∼⃒`,nwarhk:`⤣`,nwArr:`⇖`,nwarr:`↖`,nwarrow:`↖`,nwnear:`⤧`,Oacute:`Ó`,oacute:`ó`,oast:`⊛`,ocir:`⊚`,Ocirc:`Ô`,ocirc:`ô`,Ocy:`О`,ocy:`о`,odash:`⊝`,Odblac:`Ő`,odblac:`ő`,odiv:`⨸`,odot:`⊙`,odsold:`⦼`,OElig:`Œ`,oelig:`œ`,ofcir:`⦿`,Ofr:`𝔒`,ofr:`𝔬`,ogon:`˛`,Ograve:`Ò`,ograve:`ò`,ogt:`⧁`,ohbar:`⦵`,ohm:`Ω`,oint:`∮`,olarr:`↺`,olcir:`⦾`,olcross:`⦻`,oline:`‾`,olt:`⧀`,Omacr:`Ō`,omacr:`ō`,Omega:`Ω`,omega:`ω`,Omicron:`Ο`,omicron:`ο`,omid:`⦶`,ominus:`⊖`,Oopf:`𝕆`,oopf:`𝕠`,opar:`⦷`,OpenCurlyDoubleQuote:`“`,OpenCurlyQuote:`‘`,operp:`⦹`,oplus:`⊕`,Or:`⩔`,or:`∨`,orarr:`↻`,ord:`⩝`,order:`ℴ`,orderof:`ℴ`,ordf:`ª`,ordm:`º`,origof:`⊶`,oror:`⩖`,orslope:`⩗`,orv:`⩛`,oS:`Ⓢ`,Oscr:`𝒪`,oscr:`ℴ`,Oslash:`Ø`,oslash:`ø`,osol:`⊘`,Otilde:`Õ`,otilde:`õ`,Otimes:`⨷`,otimes:`⊗`,otimesas:`⨶`,Ouml:`Ö`,ouml:`ö`,ovbar:`⌽`,OverBar:`‾`,OverBrace:`⏞`,OverBracket:`⎴`,OverParenthesis:`⏜`,par:`∥`,para:`¶`,parallel:`∥`,parsim:`⫳`,parsl:`⫽`,part:`∂`,PartialD:`∂`,Pcy:`П`,pcy:`п`,percnt:`%`,period:`.`,permil:`‰`,perp:`⊥`,pertenk:`‱`,Pfr:`𝔓`,pfr:`𝔭`,Phi:`Φ`,phi:`φ`,phiv:`ϕ`,phmmat:`ℳ`,phone:`☎`,Pi:`Π`,pi:`π`,pitchfork:`⋔`,piv:`ϖ`,planck:`ℏ`,planckh:`ℎ`,plankv:`ℏ`,plus:`+`,plusacir:`⨣`,plusb:`⊞`,pluscir:`⨢`,plusdo:`∔`,plusdu:`⨥`,pluse:`⩲`,PlusMinus:`±`,plusmn:`±`,plussim:`⨦`,plustwo:`⨧`,pm:`±`,Poincareplane:`ℌ`,pointint:`⨕`,Popf:`ℙ`,popf:`𝕡`,pound:`£`,Pr:`⪻`,pr:`≺`,prap:`⪷`,prcue:`≼`,prE:`⪳`,pre:`⪯`,prec:`≺`,precapprox:`⪷`,preccurlyeq:`≼`,Precedes:`≺`,PrecedesEqual:`⪯`,PrecedesSlantEqual:`≼`,PrecedesTilde:`≾`,preceq:`⪯`,precnapprox:`⪹`,precneqq:`⪵`,precnsim:`⋨`,precsim:`≾`,Prime:`″`,prime:`′`,primes:`ℙ`,prnap:`⪹`,prnE:`⪵`,prnsim:`⋨`,prod:`∏`,Product:`∏`,profalar:`⌮`,profline:`⌒`,profsurf:`⌓`,prop:`∝`,Proportion:`∷`,Proportional:`∝`,propto:`∝`,prsim:`≾`,prurel:`⊰`,Pscr:`𝒫`,pscr:`𝓅`,Psi:`Ψ`,psi:`ψ`,puncsp:` `,Qfr:`𝔔`,qfr:`𝔮`,qint:`⨌`,Qopf:`ℚ`,qopf:`𝕢`,qprime:`⁗`,Qscr:`𝒬`,qscr:`𝓆`,quaternions:`ℍ`,quatint:`⨖`,quest:`?`,questeq:`≟`,QUOT:`"`,quot:`"`,rAarr:`⇛`,race:`∽̱`,Racute:`Ŕ`,racute:`ŕ`,radic:`√`,raemptyv:`⦳`,Rang:`⟫`,rang:`⟩`,rangd:`⦒`,range:`⦥`,rangle:`⟩`,raquo:`»`,Rarr:`↠`,rArr:`⇒`,rarr:`→`,rarrap:`⥵`,rarrb:`⇥`,rarrbfs:`⤠`,rarrc:`⤳`,rarrfs:`⤞`,rarrhk:`↪`,rarrlp:`↬`,rarrpl:`⥅`,rarrsim:`⥴`,Rarrtl:`⤖`,rarrtl:`↣`,rarrw:`↝`,rAtail:`⤜`,ratail:`⤚`,ratio:`∶`,rationals:`ℚ`,RBarr:`⤐`,rBarr:`⤏`,rbarr:`⤍`,rbbrk:`❳`,rbrace:`}`,rbrack:`]`,rbrke:`⦌`,rbrksld:`⦎`,rbrkslu:`⦐`,Rcaron:`Ř`,rcaron:`ř`,Rcedil:`Ŗ`,rcedil:`ŗ`,rceil:`⌉`,rcub:`}`,Rcy:`Р`,rcy:`р`,rdca:`⤷`,rdldhar:`⥩`,rdquo:`”`,rdquor:`”`,rdsh:`↳`,Re:`ℜ`,real:`ℜ`,realine:`ℛ`,realpart:`ℜ`,reals:`ℝ`,rect:`▭`,REG:`®`,reg:`®`,ReverseElement:`∋`,ReverseEquilibrium:`⇋`,ReverseUpEquilibrium:`⥯`,rfisht:`⥽`,rfloor:`⌋`,Rfr:`ℜ`,rfr:`𝔯`,rHar:`⥤`,rhard:`⇁`,rharu:`⇀`,rharul:`⥬`,Rho:`Ρ`,rho:`ρ`,rhov:`ϱ`,RightAngleBracket:`⟩`,RightArrow:`→`,Rightarrow:`⇒`,rightarrow:`→`,RightArrowBar:`⇥`,RightArrowLeftArrow:`⇄`,rightarrowtail:`↣`,RightCeiling:`⌉`,RightDoubleBracket:`⟧`,RightDownTeeVector:`⥝`,RightDownVector:`⇂`,RightDownVectorBar:`⥕`,RightFloor:`⌋`,rightharpoondown:`⇁`,rightharpoonup:`⇀`,rightleftarrows:`⇄`,rightleftharpoons:`⇌`,rightrightarrows:`⇉`,rightsquigarrow:`↝`,RightTee:`⊢`,RightTeeArrow:`↦`,RightTeeVector:`⥛`,rightthreetimes:`⋌`,RightTriangle:`⊳`,RightTriangleBar:`⧐`,RightTriangleEqual:`⊵`,RightUpDownVector:`⥏`,RightUpTeeVector:`⥜`,RightUpVector:`↾`,RightUpVectorBar:`⥔`,RightVector:`⇀`,RightVectorBar:`⥓`,ring:`˚`,risingdotseq:`≓`,rlarr:`⇄`,rlhar:`⇌`,rlm:`‏`,rmoust:`⎱`,rmoustache:`⎱`,rnmid:`⫮`,roang:`⟭`,roarr:`⇾`,robrk:`⟧`,ropar:`⦆`,Ropf:`ℝ`,ropf:`𝕣`,roplus:`⨮`,rotimes:`⨵`,RoundImplies:`⥰`,rpar:`)`,rpargt:`⦔`,rppolint:`⨒`,rrarr:`⇉`,Rrightarrow:`⇛`,rsaquo:`›`,Rscr:`ℛ`,rscr:`𝓇`,Rsh:`↱`,rsh:`↱`,rsqb:`]`,rsquo:`’`,rsquor:`’`,rthree:`⋌`,rtimes:`⋊`,rtri:`▹`,rtrie:`⊵`,rtrif:`▸`,rtriltri:`⧎`,RuleDelayed:`⧴`,ruluhar:`⥨`,rx:`℞`,Sacute:`Ś`,sacute:`ś`,sbquo:`‚`,Sc:`⪼`,sc:`≻`,scap:`⪸`,Scaron:`Š`,scaron:`š`,sccue:`≽`,scE:`⪴`,sce:`⪰`,Scedil:`Ş`,scedil:`ş`,Scirc:`Ŝ`,scirc:`ŝ`,scnap:`⪺`,scnE:`⪶`,scnsim:`⋩`,scpolint:`⨓`,scsim:`≿`,Scy:`С`,scy:`с`,sdot:`⋅`,sdotb:`⊡`,sdote:`⩦`,searhk:`⤥`,seArr:`⇘`,searr:`↘`,searrow:`↘`,sect:`§`,semi:`;`,seswar:`⤩`,setminus:`∖`,setmn:`∖`,sext:`✶`,Sfr:`𝔖`,sfr:`𝔰`,sfrown:`⌢`,sharp:`♯`,SHCHcy:`Щ`,shchcy:`щ`,SHcy:`Ш`,shcy:`ш`,ShortDownArrow:`↓`,ShortLeftArrow:`←`,shortmid:`∣`,shortparallel:`∥`,ShortRightArrow:`→`,ShortUpArrow:`↑`,shy:`­`,Sigma:`Σ`,sigma:`σ`,sigmaf:`ς`,sigmav:`ς`,sim:`∼`,simdot:`⩪`,sime:`≃`,simeq:`≃`,simg:`⪞`,simgE:`⪠`,siml:`⪝`,simlE:`⪟`,simne:`≆`,simplus:`⨤`,simrarr:`⥲`,slarr:`←`,SmallCircle:`∘`,smallsetminus:`∖`,smashp:`⨳`,smeparsl:`⧤`,smid:`∣`,smile:`⌣`,smt:`⪪`,smte:`⪬`,smtes:`⪬︀`,SOFTcy:`Ь`,softcy:`ь`,sol:`/`,solb:`⧄`,solbar:`⌿`,Sopf:`𝕊`,sopf:`𝕤`,spades:`♠`,spadesuit:`♠`,spar:`∥`,sqcap:`⊓`,sqcaps:`⊓︀`,sqcup:`⊔`,sqcups:`⊔︀`,Sqrt:`√`,sqsub:`⊏`,sqsube:`⊑`,sqsubset:`⊏`,sqsubseteq:`⊑`,sqsup:`⊐`,sqsupe:`⊒`,sqsupset:`⊐`,sqsupseteq:`⊒`,squ:`□`,Square:`□`,square:`□`,SquareIntersection:`⊓`,SquareSubset:`⊏`,SquareSubsetEqual:`⊑`,SquareSuperset:`⊐`,SquareSupersetEqual:`⊒`,SquareUnion:`⊔`,squarf:`▪`,squf:`▪`,srarr:`→`,Sscr:`𝒮`,sscr:`𝓈`,ssetmn:`∖`,ssmile:`⌣`,sstarf:`⋆`,Star:`⋆`,star:`☆`,starf:`★`,straightepsilon:`ϵ`,straightphi:`ϕ`,strns:`¯`,Sub:`⋐`,sub:`⊂`,subdot:`⪽`,subE:`⫅`,sube:`⊆`,subedot:`⫃`,submult:`⫁`,subnE:`⫋`,subne:`⊊`,subplus:`⪿`,subrarr:`⥹`,Subset:`⋐`,subset:`⊂`,subseteq:`⊆`,subseteqq:`⫅`,SubsetEqual:`⊆`,subsetneq:`⊊`,subsetneqq:`⫋`,subsim:`⫇`,subsub:`⫕`,subsup:`⫓`,succ:`≻`,succapprox:`⪸`,succcurlyeq:`≽`,Succeeds:`≻`,SucceedsEqual:`⪰`,SucceedsSlantEqual:`≽`,SucceedsTilde:`≿`,succeq:`⪰`,succnapprox:`⪺`,succneqq:`⪶`,succnsim:`⋩`,succsim:`≿`,SuchThat:`∋`,Sum:`∑`,sum:`∑`,sung:`♪`,Sup:`⋑`,sup:`⊃`,sup1:`¹`,sup2:`²`,sup3:`³`,supdot:`⪾`,supdsub:`⫘`,supE:`⫆`,supe:`⊇`,supedot:`⫄`,Superset:`⊃`,SupersetEqual:`⊇`,suphsol:`⟉`,suphsub:`⫗`,suplarr:`⥻`,supmult:`⫂`,supnE:`⫌`,supne:`⊋`,supplus:`⫀`,Supset:`⋑`,supset:`⊃`,supseteq:`⊇`,supseteqq:`⫆`,supsetneq:`⊋`,supsetneqq:`⫌`,supsim:`⫈`,supsub:`⫔`,supsup:`⫖`,swarhk:`⤦`,swArr:`⇙`,swarr:`↙`,swarrow:`↙`,swnwar:`⤪`,szlig:`ß`,Tab:` `,target:`⌖`,Tau:`Τ`,tau:`τ`,tbrk:`⎴`,Tcaron:`Ť`,tcaron:`ť`,Tcedil:`Ţ`,tcedil:`ţ`,Tcy:`Т`,tcy:`т`,tdot:`⃛`,telrec:`⌕`,Tfr:`𝔗`,tfr:`𝔱`,there4:`∴`,Therefore:`∴`,therefore:`∴`,Theta:`Θ`,theta:`θ`,thetasym:`ϑ`,thetav:`ϑ`,thickapprox:`≈`,thicksim:`∼`,ThickSpace:`  `,thinsp:` `,ThinSpace:` `,thkap:`≈`,thksim:`∼`,THORN:`Þ`,thorn:`þ`,Tilde:`∼`,tilde:`˜`,TildeEqual:`≃`,TildeFullEqual:`≅`,TildeTilde:`≈`,times:`×`,timesb:`⊠`,timesbar:`⨱`,timesd:`⨰`,tint:`∭`,toea:`⤨`,top:`⊤`,topbot:`⌶`,topcir:`⫱`,Topf:`𝕋`,topf:`𝕥`,topfork:`⫚`,tosa:`⤩`,tprime:`‴`,TRADE:`™`,trade:`™`,triangle:`▵`,triangledown:`▿`,triangleleft:`◃`,trianglelefteq:`⊴`,triangleq:`≜`,triangleright:`▹`,trianglerighteq:`⊵`,tridot:`◬`,trie:`≜`,triminus:`⨺`,TripleDot:`⃛`,triplus:`⨹`,trisb:`⧍`,tritime:`⨻`,trpezium:`⏢`,Tscr:`𝒯`,tscr:`𝓉`,TScy:`Ц`,tscy:`ц`,TSHcy:`Ћ`,tshcy:`ћ`,Tstrok:`Ŧ`,tstrok:`ŧ`,twixt:`≬`,twoheadleftarrow:`↞`,twoheadrightarrow:`↠`,Uacute:`Ú`,uacute:`ú`,Uarr:`↟`,uArr:`⇑`,uarr:`↑`,Uarrocir:`⥉`,Ubrcy:`Ў`,ubrcy:`ў`,Ubreve:`Ŭ`,ubreve:`ŭ`,Ucirc:`Û`,ucirc:`û`,Ucy:`У`,ucy:`у`,udarr:`⇅`,Udblac:`Ű`,udblac:`ű`,udhar:`⥮`,ufisht:`⥾`,Ufr:`𝔘`,ufr:`𝔲`,Ugrave:`Ù`,ugrave:`ù`,uHar:`⥣`,uharl:`↿`,uharr:`↾`,uhblk:`▀`,ulcorn:`⌜`,ulcorner:`⌜`,ulcrop:`⌏`,ultri:`◸`,Umacr:`Ū`,umacr:`ū`,uml:`¨`,UnderBar:`_`,UnderBrace:`⏟`,UnderBracket:`⎵`,UnderParenthesis:`⏝`,Union:`⋃`,UnionPlus:`⊎`,Uogon:`Ų`,uogon:`ų`,Uopf:`𝕌`,uopf:`𝕦`,UpArrow:`↑`,Uparrow:`⇑`,uparrow:`↑`,UpArrowBar:`⤒`,UpArrowDownArrow:`⇅`,UpDownArrow:`↕`,Updownarrow:`⇕`,updownarrow:`↕`,UpEquilibrium:`⥮`,upharpoonleft:`↿`,upharpoonright:`↾`,uplus:`⊎`,UpperLeftArrow:`↖`,UpperRightArrow:`↗`,Upsi:`ϒ`,upsi:`υ`,upsih:`ϒ`,Upsilon:`Υ`,upsilon:`υ`,UpTee:`⊥`,UpTeeArrow:`↥`,upuparrows:`⇈`,urcorn:`⌝`,urcorner:`⌝`,urcrop:`⌎`,Uring:`Ů`,uring:`ů`,urtri:`◹`,Uscr:`𝒰`,uscr:`𝓊`,utdot:`⋰`,Utilde:`Ũ`,utilde:`ũ`,utri:`▵`,utrif:`▴`,uuarr:`⇈`,Uuml:`Ü`,uuml:`ü`,uwangle:`⦧`,vangrt:`⦜`,varepsilon:`ϵ`,varkappa:`ϰ`,varnothing:`∅`,varphi:`ϕ`,varpi:`ϖ`,varpropto:`∝`,vArr:`⇕`,varr:`↕`,varrho:`ϱ`,varsigma:`ς`,varsubsetneq:`⊊︀`,varsubsetneqq:`⫋︀`,varsupsetneq:`⊋︀`,varsupsetneqq:`⫌︀`,vartheta:`ϑ`,vartriangleleft:`⊲`,vartriangleright:`⊳`,Vbar:`⫫`,vBar:`⫨`,vBarv:`⫩`,Vcy:`В`,vcy:`в`,VDash:`⊫`,Vdash:`⊩`,vDash:`⊨`,vdash:`⊢`,Vdashl:`⫦`,Vee:`⋁`,vee:`∨`,veebar:`⊻`,veeeq:`≚`,vellip:`⋮`,Verbar:`‖`,verbar:`|`,Vert:`‖`,vert:`|`,VerticalBar:`∣`,VerticalLine:`|`,VerticalSeparator:`❘`,VerticalTilde:`≀`,VeryThinSpace:` `,Vfr:`𝔙`,vfr:`𝔳`,vltri:`⊲`,vnsub:`⊂⃒`,vnsup:`⊃⃒`,Vopf:`𝕍`,vopf:`𝕧`,vprop:`∝`,vrtri:`⊳`,Vscr:`𝒱`,vscr:`𝓋`,vsubnE:`⫋︀`,vsubne:`⊊︀`,vsupnE:`⫌︀`,vsupne:`⊋︀`,Vvdash:`⊪`,vzigzag:`⦚`,Wcirc:`Ŵ`,wcirc:`ŵ`,wedbar:`⩟`,Wedge:`⋀`,wedge:`∧`,wedgeq:`≙`,weierp:`℘`,Wfr:`𝔚`,wfr:`𝔴`,Wopf:`𝕎`,wopf:`𝕨`,wp:`℘`,wr:`≀`,wreath:`≀`,Wscr:`𝒲`,wscr:`𝓌`,xcap:`⋂`,xcirc:`◯`,xcup:`⋃`,xdtri:`▽`,Xfr:`𝔛`,xfr:`𝔵`,xhArr:`⟺`,xharr:`⟷`,Xi:`Ξ`,xi:`ξ`,xlArr:`⟸`,xlarr:`⟵`,xmap:`⟼`,xnis:`⋻`,xodot:`⨀`,Xopf:`𝕏`,xopf:`𝕩`,xoplus:`⨁`,xotime:`⨂`,xrArr:`⟹`,xrarr:`⟶`,Xscr:`𝒳`,xscr:`𝓍`,xsqcup:`⨆`,xuplus:`⨄`,xutri:`△`,xvee:`⋁`,xwedge:`⋀`,Yacute:`Ý`,yacute:`ý`,YAcy:`Я`,yacy:`я`,Ycirc:`Ŷ`,ycirc:`ŷ`,Ycy:`Ы`,ycy:`ы`,yen:`¥`,Yfr:`𝔜`,yfr:`𝔶`,YIcy:`Ї`,yicy:`ї`,Yopf:`𝕐`,yopf:`𝕪`,Yscr:`𝒴`,yscr:`𝓎`,YUcy:`Ю`,yucy:`ю`,Yuml:`Ÿ`,yuml:`ÿ`,Zacute:`Ź`,zacute:`ź`,Zcaron:`Ž`,zcaron:`ž`,Zcy:`З`,zcy:`з`,Zdot:`Ż`,zdot:`ż`,zeetrf:`ℨ`,ZeroWidthSpace:`​`,Zeta:`Ζ`,zeta:`ζ`,Zfr:`ℨ`,zfr:`𝔷`,ZHcy:`Ж`,zhcy:`ж`,zigrarr:`⇝`,Zopf:`ℤ`,zopf:`𝕫`,Zscr:`𝒵`,zscr:`𝓏`,zwj:`‍`,zwnj:`‌`}),e.entityMap=e.HTML_ENTITIES})),Td=e((e=>{var t=Sd().NAMESPACE,n=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,r=RegExp(`[\\-\\.0-9`+n.source.slice(1,-1)+`\\u00B7\\u0300-\\u036F\\u203F-\\u2040]`),i=RegExp(`^`+n.source+r.source+`*(?::`+n.source+r.source+`*)?$`),a=0,o=1,s=2,c=3,l=4,u=5,d=6,f=7;function p(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,p)}p.prototype=Error(),p.prototype.name=p.name;function m(){}m.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),x(t,t={}),h(e,t,n,r,this.errorHandler),r.endDocument()}};function h(e,n,r,i,a){function o(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}else return String.fromCharCode(e)}function s(e){var t=e.slice(1,-1);return Object.hasOwnProperty.call(r,t)?r[t]:t.charAt(0)===`#`?o(parseInt(t.substr(1).replace(`x`,`0x`))):(a.error(`entity not found:`+e),e)}function c(t){if(t>T){var n=e.substring(T,t).replace(/&#?\w+;/g,s);m&&l(T),i.characters(n,0,t-T),T=t}}function l(t,n){for(;t>=d&&(n=f.exec(e));)u=n.index,d=u+n[0].length,m.lineNumber++;m.columnNumber=t-u+1}for(var u=0,d=0,f=/.*(?:\r\n?|\n)|.*$/g,m=i.locator,h=[{currentNSMap:n}],x={},T=0;;){try{var E=e.indexOf(`<`,T);if(E<0){if(!e.substr(T).match(/^\s*$/)){var ee=i.doc,D=ee.createTextNode(e.substr(T));ee.appendChild(D),i.currentElement=D}return}switch(E>T&&c(E),e.charAt(E+1)){case`/`:var O=e.indexOf(`>`,E+3),k=e.substring(E+2,O).replace(/[ \t\n\r]+$/g,``),A=h.pop();O<0?(k=e.substring(E+2).replace(/[\s<].*/,``),a.error(`end tag name: `+k+` is not complete:`+A.tagName),O=E+1+k.length):k.match(/\s</)&&(k=k.replace(/[\s<].*/,``),a.error(`end tag name: `+k+` maybe not complete`),O=E+1+k.length);var j=A.localNSMap,M=A.tagName==k;if(M||A.tagName&&A.tagName.toLowerCase()==k.toLowerCase()){if(i.endElement(A.uri,A.localName,k),j)for(var N in j)Object.prototype.hasOwnProperty.call(j,N)&&i.endPrefixMapping(N);M||a.fatalError(`end tag name: `+k+` is not match the current start tagName:`+A.tagName)}else h.push(A);O++;break;case`?`:m&&l(E),O=C(e,E,i);break;case`!`:m&&l(E),O=S(e,E,i,a);break;default:m&&l(E);var P=new w,F=h[h.length-1].currentNSMap,O=_(e,E,P,F,s,a),I=P.length;if(!P.closed&&b(e,O,P.tagName,x)&&(P.closed=!0,r.nbsp||a.warning(`unclosed xml attribute`)),m&&I){for(var L=g(m,{}),R=0;R<I;R++){var z=P[R];l(z.offset),z.locator=g(m,{})}i.locator=L,v(P,i,F)&&h.push(P),i.locator=m}else v(P,i,F)&&h.push(P);t.isHTML(P.uri)&&!P.closed?O=y(e,O,P.tagName,s,i):O++}}catch(e){if(e instanceof p)throw e;a.error(`element parse error: `+e),O=-1}O>T?T=O:c(Math.max(E,T)+1)}}function g(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function _(e,n,r,i,p,m){function h(e,t,n){r.attributeNames.hasOwnProperty(e)&&m.fatalError(`Attribute `+e+` redefined`),r.addValue(e,t.replace(/[\t\n\r]/g,` `).replace(/&#?\w+;/g,p),n)}for(var g,_,v=++n,y=a;;){var b=e.charAt(v);switch(b){case`=`:if(y===o)g=e.slice(n,v),y=c;else if(y===s)y=c;else throw Error(`attribute equal must after attrName`);break;case`'`:case`"`:if(y===c||y===o)if(y===o&&(m.warning(`attribute value must after "="`),g=e.slice(n,v)),n=v+1,v=e.indexOf(b,n),v>0)_=e.slice(n,v),h(g,_,n-1),y=u;else throw Error(`attribute value no end '`+b+`' match`);else if(y==l)_=e.slice(n,v),h(g,_,n),m.warning(`attribute "`+g+`" missed start quot(`+b+`)!!`),n=v+1,y=u;else throw Error(`attribute value must after "="`);break;case`/`:switch(y){case a:r.setTagName(e.slice(n,v));case u:case d:case f:y=f,r.closed=!0;case l:case o:break;case s:r.closed=!0;break;default:throw Error(`attribute invalid close char('/')`)}break;case``:return m.error(`unexpected end of input`),y==a&&r.setTagName(e.slice(n,v)),v;case`>`:switch(y){case a:r.setTagName(e.slice(n,v));case u:case d:case f:break;case l:case o:_=e.slice(n,v),_.slice(-1)===`/`&&(r.closed=!0,_=_.slice(0,-1));case s:y===s&&(_=g),y==l?(m.warning(`attribute "`+_+`" missed quot(")!`),h(g,_,n)):((!t.isHTML(i[``])||!_.match(/^(?:disabled|checked|selected)$/i))&&m.warning(`attribute "`+_+`" missed value!! "`+_+`" instead!!`),h(_,_,n));break;case c:throw Error(`attribute value missed!!`)}return v;case`€`:b=` `;default:if(b<=` `)switch(y){case a:r.setTagName(e.slice(n,v)),y=d;break;case o:g=e.slice(n,v),y=s;break;case l:var _=e.slice(n,v);m.warning(`attribute "`+_+`" missed quot(")!!`),h(g,_,n);case u:y=d;break}else switch(y){case s:r.tagName,(!t.isHTML(i[``])||!g.match(/^(?:disabled|checked|selected)$/i))&&m.warning(`attribute "`+g+`" missed value!! "`+g+`" instead2!!`),h(g,g,n),n=v,y=o;break;case u:m.warning(`attribute space is required"`+g+`"!!`);case d:y=o,n=v;break;case c:y=l,n=v;break;case f:throw Error(`elements closed character '/' and '>' must be connected to`)}}v++}}function v(e,n,r){for(var i=e.tagName,a=null,o=e.length;o--;){var s=e[o],c=s.qName,l=s.value,u=c.indexOf(`:`);if(u>0)var d=s.prefix=c.slice(0,u),f=c.slice(u+1),p=d===`xmlns`&&f;else f=c,d=null,p=c===`xmlns`&&``;s.localName=f,p!==!1&&(a??(a={},x(r,r={})),r[p]=a[p]=l,s.uri=t.XMLNS,n.startPrefixMapping(p,l))}for(var o=e.length;o--;){s=e[o];var d=s.prefix;d&&(d===`xml`&&(s.uri=t.XML),d!==`xmlns`&&(s.uri=r[d||``]))}var u=i.indexOf(`:`);u>0?(d=e.prefix=i.slice(0,u),f=e.localName=i.slice(u+1)):(d=null,f=e.localName=i);var m=e.uri=r[d||``];if(n.startElement(m,f,i,e),e.closed){if(n.endElement(m,f,i),a)for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&n.endPrefixMapping(d)}else return e.currentNSMap=r,e.localNSMap=a,!0}function y(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var a=e.indexOf(`</`+n+`>`,t),o=e.substring(t+1,a);if(/[&<]/.test(o))return/^script$/i.test(n)?(i.characters(o,0,o.length),a):(o=o.replace(/&#?\w+;/g,r),i.characters(o,0,o.length),a)}return t+1}function b(e,t,n,r){var i=r[n];return i??(i=e.lastIndexOf(`</`+n+`>`),i<t&&(i=e.lastIndexOf(`</`+n)),r[n]=i),i<t}function x(e,t){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}function S(e,t,n,r){switch(e.charAt(t+2)){case`-`:if(e.charAt(t+3)===`-`){var i=e.indexOf(`-->`,t+4);return i>t?(n.comment(e,t+4,i-t-4),i+3):(r.error(`Unclosed comment`),-1)}else return-1;default:if(e.substr(t+3,6)==`CDATA[`){var i=e.indexOf(`]]>`,t+9);return n.startCDATA(),n.characters(e,t+9,i-t-9),n.endCDATA(),i+3}var a=T(e,t),o=a.length;if(o>1&&/!doctype/i.test(a[0][0])){var s=a[1][0],c=!1,l=!1;o>3&&(/^public$/i.test(a[2][0])?(c=a[3][0],l=o>4&&a[4][0]):/^system$/i.test(a[2][0])&&(l=a[3][0]));var u=a[o-1];return n.startDTD(s,c,l),n.endDTD(),u.index+u[0].length}}return-1}function C(e,t,n){var r=e.indexOf(`?>`,t);if(r){var i=e.substring(t,r).match(/^<\?(\S*)\s*([\s\S]*?)$/);return i?(i[0].length,n.processingInstruction(i[1],i[2]),r+2):-1}return-1}function w(){this.attributeNames={}}w.prototype={setTagName:function(e){if(!i.test(e))throw Error(`invalid tagName:`+e);this.tagName=e},addValue:function(e,t,n){if(!i.test(e))throw Error(`invalid attribute:`+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}};function T(e,t){var n,r=[],i=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(i.lastIndex=t,i.exec(e);n=i.exec(e);)if(r.push(n),n[1])return r}e.XMLReader=m,e.ParseError=p})),Ed=e((e=>{var t=Sd(),n=Cd(),r=wd(),i=Td(),a=n.DOMImplementation,o=t.NAMESPACE,s=i.ParseError,c=i.XMLReader;function l(e){return e.replace(/\r[\n\u0085]/g,`
1383
+ `).replace(/[\r\u0085\u2028]/g,`
1384
+ `)}function u(e){this.options=e||{locator:{}}}u.prototype.parseFromString=function(e,t){var n=this.options,i=new c,a=n.domBuilder||new f,s=n.errorHandler,u=n.locator,p=n.xmlns||{},m=/\/x?html?$/.test(t),h=m?r.HTML_ENTITIES:r.XML_ENTITIES;u&&a.setDocumentLocator(u),i.errorHandler=d(s,a,u),i.domBuilder=n.domBuilder||a,m&&(p[``]=o.HTML),p.xml=p.xml||o.XML;var g=n.normalizeLineEndings||l;return e&&typeof e==`string`?i.parse(g(e),p,h):i.errorHandler.error(`invalid doc source`),a.doc};function d(e,t,n){if(!e){if(t instanceof f)return t;e=t}var r={},i=e instanceof Function;n||={};function a(t){var a=e[t];!a&&i&&(a=e.length==2?function(n){e(t,n)}:e),r[t]=a&&function(e){a(`[xmldom `+t+`] `+e+m(n))}||function(){}}return a(`warning`),a(`error`),a(`fatalError`),r}function f(){this.cdata=!1}function p(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}f.prototype={startDocument:function(){this.doc=new a().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.doc,a=i.createElementNS(e,n||t),o=r.length;g(this,a),this.currentElement=a,this.locator&&p(this.locator,a);for(var s=0;s<o;s++){var e=r.getURI(s),c=r.getValue(s),n=r.getQName(s),l=i.createAttributeNS(e,n);this.locator&&p(r.getLocator(s),l),l.value=l.nodeValue=c,a.setAttributeNode(l)}},endElement:function(e,t,n){var r=this.currentElement;r.tagName,this.currentElement=r.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var n=this.doc.createProcessingInstruction(e,t);this.locator&&p(this.locator,n),g(this,n)},ignorableWhitespace:function(e,t,n){},characters:function(e,t,n){if(e=h.apply(this,arguments),e){if(this.cdata)var r=this.doc.createCDATASection(e);else var r=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(r):/^\s*$/.test(e)&&this.doc.appendChild(r),this.locator&&p(this.locator,r)}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0)},comment:function(e,t,n){e=h.apply(this,arguments);var r=this.doc.createComment(e);this.locator&&p(this.locator,r),g(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,n){var r=this.doc.implementation;if(r&&r.createDocumentType){var i=r.createDocumentType(e,t,n);this.locator&&p(this.locator,i),g(this,i),this.doc.doctype=i}},warning:function(e){console.warn(`[xmldom warning] `+e,m(this.locator))},error:function(e){console.error(`[xmldom error] `+e,m(this.locator))},fatalError:function(e){throw new s(e,this.locator)}};function m(e){if(e)return`
1385
+ @`+(e.systemId||``)+`#[line:`+e.lineNumber+`,col:`+e.columnNumber+`]`}function h(e,t,n){return typeof e==`string`?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+``:e}`endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl`.replace(/\w+/g,function(e){f.prototype[e]=function(){return null}});function g(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}e.__DOMHandler=f,e.normalizeLineEndings=l,e.DOMParser=u})),Dd=e((e=>{var t=Cd();e.DOMImplementation=t.DOMImplementation,e.XMLSerializer=t.XMLSerializer,e.DOMParser=Ed().DOMParser}))(),Od={createCanvas:(e,t)=>new OffscreenCanvas(e??0,t??0),createImage:()=>new Image,getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(e,t)=>fetch(e,t),parseXML:e=>new Dd.DOMParser().parseFromString(e,`text/xml`)},kd=`
1386
+ in vec2 vTextureCoord;
1387
+
1388
+ out vec4 finalColor;
1389
+
1390
+ uniform float uAlpha;
1391
+ uniform sampler2D uTexture;
1392
+
1393
+ void main()
1394
+ {
1395
+ finalColor = texture(uTexture, vTextureCoord) * uAlpha;
1396
+ }
1397
+ `,Ad=`struct GlobalFilterUniforms {
1398
+ uInputSize:vec4<f32>,
1399
+ uInputPixel:vec4<f32>,
1400
+ uInputClamp:vec4<f32>,
1401
+ uOutputFrame:vec4<f32>,
1402
+ uGlobalFrame:vec4<f32>,
1403
+ uOutputTexture:vec4<f32>,
1404
+ };
1405
+
1406
+ struct AlphaUniforms {
1407
+ uAlpha:f32,
1408
+ };
1409
+
1410
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
1411
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
1412
+ @group(0) @binding(2) var uSampler : sampler;
1413
+
1414
+ @group(1) @binding(0) var<uniform> alphaUniforms : AlphaUniforms;
1415
+
1416
+ struct VSOutput {
1417
+ @builtin(position) position: vec4<f32>,
1418
+ @location(0) uv : vec2<f32>
1419
+ };
1420
+
1421
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
1422
+ {
1423
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
1424
+
1425
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
1426
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
1427
+
1428
+ return vec4(position, 0.0, 1.0);
1429
+ }
1430
+
1431
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1432
+ {
1433
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
1434
+ }
1435
+
1436
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1437
+ {
1438
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
1439
+ }
1440
+
1441
+ fn getSize() -> vec2<f32>
1442
+ {
1443
+ return gfu.uGlobalFrame.zw;
1444
+ }
1445
+
1446
+ @vertex
1447
+ fn mainVertex(
1448
+ @location(0) aPosition : vec2<f32>,
1449
+ ) -> VSOutput {
1450
+ return VSOutput(
1451
+ filterVertexPosition(aPosition),
1452
+ filterTextureCoord(aPosition)
1453
+ );
1454
+ }
1455
+
1456
+ @fragment
1457
+ fn mainFragment(
1458
+ @location(0) uv: vec2<f32>,
1459
+ @builtin(position) position: vec4<f32>
1460
+ ) -> @location(0) vec4<f32> {
1461
+
1462
+ var sample = textureSample(uTexture, uSampler, uv);
1463
+
1464
+ return sample * alphaUniforms.uAlpha;
1465
+ }`,jd=class e extends at{constructor(t){t={...e.defaultOptions,...t};let n=ue.from({vertex:{source:Ad,entryPoint:`mainVertex`},fragment:{source:Ad,entryPoint:`mainFragment`}}),r=be.from({vertex:Mt,fragment:kd,name:`alpha-filter`}),{alpha:i,...a}=t,o=new pe({uAlpha:{value:i,type:`f32`}});super({...a,gpuProgram:n,glProgram:r,resources:{alphaUniforms:o}})}get alpha(){return this.resources.alphaUniforms.uniforms.uAlpha}set alpha(e){this.resources.alphaUniforms.uniforms.uAlpha=e}};jd.defaultOptions={alpha:1};var Md=jd,Nd={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},Pd=[`in vec2 vBlurTexCoords[%size%];`,`uniform sampler2D uTexture;`,`out vec4 finalColor;`,`void main(void)`,`{`,` %blur%`,`}`].join(`
1466
+ `);function Fd(e){let t=Nd[e],n=t.length,r=``;for(let i=0;i<e;i++){let a=i===0?`finalColor = `:` + `,o=i<n?i:e-i-1,s=`texture(uTexture, vBlurTexCoords[%index%]) * %value%`.replace(`%index%`,i.toString()).replace(`%value%`,t[o].toString());r+=`${a}${s}
1467
+ `}return Pd.replace(`%blur%`,`${r};`).replace(`%size%`,e.toString())}var Id=`
1468
+ in vec2 aPosition;
1469
+
1470
+ uniform float uStrength;
1471
+
1472
+ out vec2 vBlurTexCoords[%size%];
1473
+
1474
+ uniform vec4 uInputSize;
1475
+ uniform vec4 uOutputFrame;
1476
+ uniform vec4 uOutputTexture;
1477
+
1478
+ vec4 filterVertexPosition( void )
1479
+ {
1480
+ vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
1481
+
1482
+ position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
1483
+ position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
1484
+
1485
+ return vec4(position, 0.0, 1.0);
1486
+ }
1487
+
1488
+ vec2 filterTextureCoord( void )
1489
+ {
1490
+ return aPosition * (uOutputFrame.zw * uInputSize.zw);
1491
+ }
1492
+
1493
+ void main(void)
1494
+ {
1495
+ gl_Position = filterVertexPosition();
1496
+
1497
+ float pixelStrength = uInputSize.%dimension% * uStrength;
1498
+
1499
+ vec2 textureCoord = filterTextureCoord();
1500
+ %blur%
1501
+ }`;function Ld(e,t){let n=Math.ceil(e/2),r=Id,i=``,a;a=t?`vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * pixelStrength, 0.0);`:`vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * pixelStrength);`;for(let t=0;t<e;t++){let e=a.replace(`%index%`,t.toString());e=e.replace(`%sampleIndex%`,`${t-(n-1)}.0`),i+=e,i+=`
1502
+ `}return r=r.replace(`%blur%`,i),r=r.replace(`%size%`,e.toString()),r=r.replace(`%dimension%`,t?`z`:`w`),r}function Rd(e,t){let n=Ld(t,e),r=Fd(t);return be.from({vertex:n,fragment:r,name:`blur-${e?`horizontal`:`vertical`}-pass-filter`})}var zd=`
1503
+
1504
+ struct GlobalFilterUniforms {
1505
+ uInputSize:vec4<f32>,
1506
+ uInputPixel:vec4<f32>,
1507
+ uInputClamp:vec4<f32>,
1508
+ uOutputFrame:vec4<f32>,
1509
+ uGlobalFrame:vec4<f32>,
1510
+ uOutputTexture:vec4<f32>,
1511
+ };
1512
+
1513
+ struct BlurUniforms {
1514
+ uStrength:f32,
1515
+ };
1516
+
1517
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
1518
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
1519
+ @group(0) @binding(2) var uSampler : sampler;
1520
+
1521
+ @group(1) @binding(0) var<uniform> blurUniforms : BlurUniforms;
1522
+
1523
+
1524
+ struct VSOutput {
1525
+ @builtin(position) position: vec4<f32>,
1526
+ %blur-struct%
1527
+ };
1528
+
1529
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
1530
+ {
1531
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
1532
+
1533
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
1534
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
1535
+
1536
+ return vec4(position, 0.0, 1.0);
1537
+ }
1538
+
1539
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1540
+ {
1541
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
1542
+ }
1543
+
1544
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1545
+ {
1546
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
1547
+ }
1548
+
1549
+ fn getSize() -> vec2<f32>
1550
+ {
1551
+ return gfu.uGlobalFrame.zw;
1552
+ }
1553
+
1554
+
1555
+ @vertex
1556
+ fn mainVertex(
1557
+ @location(0) aPosition : vec2<f32>,
1558
+ ) -> VSOutput {
1559
+
1560
+ let filteredCord = filterTextureCoord(aPosition);
1561
+
1562
+ let pixelStrength = gfu.uInputSize.%dimension% * blurUniforms.uStrength;
1563
+
1564
+ return VSOutput(
1565
+ filterVertexPosition(aPosition),
1566
+ %blur-vertex-out%
1567
+ );
1568
+ }
1569
+
1570
+ @fragment
1571
+ fn mainFragment(
1572
+ @builtin(position) position: vec4<f32>,
1573
+ %blur-fragment-in%
1574
+ ) -> @location(0) vec4<f32> {
1575
+
1576
+ var finalColor = vec4(0.0);
1577
+
1578
+ %blur-sampling%
1579
+
1580
+ return finalColor;
1581
+ }
1582
+ `;function Bd(e,t){let n=Nd[t],r=n.length,i=[],a=[],o=[];for(let s=0;s<t;s++){i[s]=`@location(${s}) offset${s}: vec2<f32>,`,e?a[s]=`filteredCord + vec2(${s-r+1} * pixelStrength, 0.0),`:a[s]=`filteredCord + vec2(0.0, ${s-r+1} * pixelStrength),`;let c=n[s<r?s:t-s-1].toString();o[s]=`finalColor += textureSample(uTexture, uSampler, offset${s}) * ${c};`}let s=i.join(`
1583
+ `),c=a.join(`
1584
+ `),l=o.join(`
1585
+ `),u=zd.replace(`%blur-struct%`,s).replace(`%blur-vertex-out%`,c).replace(`%blur-fragment-in%`,s).replace(`%blur-sampling%`,l).replace(`%dimension%`,e?`z`:`w`);return ue.from({vertex:{source:u,entryPoint:`mainVertex`},fragment:{source:u,entryPoint:`mainFragment`}})}var Vd=class e extends at{constructor(t){t={...e.defaultOptions,...t};let n=Rd(t.horizontal,t.kernelSize),r=Bd(t.horizontal,t.kernelSize);super({glProgram:n,gpuProgram:r,resources:{blurUniforms:{uStrength:{value:0,type:`f32`}}},...t}),this.horizontal=t.horizontal,this.legacy=t.legacy??!1,this._quality=0,this.quality=t.quality,this.blur=t.strength,this._blurUniforms=this.resources.blurUniforms,this._uniforms=this._blurUniforms.uniforms}apply(e,t,n,r){this.legacy?this._applyLegacy(e,t,n,r):this._applyOptimized(e,t,n,r)}_applyLegacy(e,t,n,r){if(this._uniforms.uStrength=this.strength/this.passes,this.passes===1)e.applyFilter(this,t,n,r);else{let i=Ve.getSameSizeTexture(t),a=t,o=i;this._state.blend=!1;let s=e.renderer.type===P.WEBGPU;for(let t=0;t<this.passes-1;t++){e.applyFilter(this,a,o,t===0?!0:s);let n=o;o=a,a=n}this._state.blend=!0,e.applyFilter(this,a,n,r),Ve.returnTexture(i)}}_applyOptimized(e,t,n,r){if(this._uniforms.uStrength=this._calculateInitialStrength(),this.passes===1)e.applyFilter(this,t,n,r);else{let i=Ve.getSameSizeTexture(t),a=t,o=i;this._state.blend=!1;let s=e.renderer,c=s.type===P.WEBGPU,l=c?s.renderPipes.uniformBatch:null;for(let t=0;t<this.passes-1;t++){l&&this.groups[1].setResource(l.getUboResource(this._blurUniforms),0),e.applyFilter(this,a,o,c);let t=o;o=a,a=t,this._uniforms.uStrength*=.5}l&&this.groups[1].setResource(l.getUboResource(this._blurUniforms),0),this._state.blend=!0,e.applyFilter(this,a,n,r),Ve.returnTexture(i)}}_calculateInitialStrength(){let e=1,t=.5;for(let n=1;n<this.passes;n++)e+=t*t,t*=.5;return this.strength/Math.sqrt(e)}get blur(){return this.strength}set blur(e){this.padding=1+Math.abs(e)*2,this.strength=e}get quality(){return this._quality}set quality(e){this._quality=e,this.passes=e}};Vd.defaultOptions={strength:8,quality:4,kernelSize:5,legacy:!1};var Hd=Vd,Ud=class extends at{constructor(...e){let t=e[0]??{};typeof t==`number`&&(y(n,`BlurFilter constructor params are now options object. See params: { strength, quality, resolution, kernelSize }`),t={strength:t},e[1]!==void 0&&(t.quality=e[1]),e[2]!==void 0&&(t.resolution=e[2]||`inherit`),e[3]!==void 0&&(t.kernelSize=e[3])),t={...Hd.defaultOptions,...t};let{strength:r,strengthX:i,strengthY:a,quality:o,...s}=t;super({...s,compatibleRenderers:P.BOTH,resources:{}}),this._repeatEdgePixels=!1,this.blurXFilter=new Hd({horizontal:!0,...t}),this.blurYFilter=new Hd({horizontal:!1,...t}),this.quality=o,this.strengthX=i??r,this.strengthY=a??r,this.repeatEdgePixels=!1}apply(e,t,n,r){let i=Math.abs(this.blurXFilter.strength),a=Math.abs(this.blurYFilter.strength);if(i&&a){let i=Ve.getSameSizeTexture(t);this.blurXFilter.blendMode=`normal`,this.blurXFilter.apply(e,t,i,!0),this.blurYFilter.blendMode=this.blendMode,this.blurYFilter.apply(e,i,n,r),Ve.returnTexture(i)}else a?(this.blurYFilter.blendMode=this.blendMode,this.blurYFilter.apply(e,t,n,r)):(this.blurXFilter.blendMode=this.blendMode,this.blurXFilter.apply(e,t,n,r))}updatePadding(){this._repeatEdgePixels?this.padding=0:this.padding=Math.max(Math.abs(this.blurXFilter.blur),Math.abs(this.blurYFilter.blur))*2}get strength(){if(this.strengthX!==this.strengthY)throw Error(`BlurFilter's strengthX and strengthY are different`);return this.strengthX}set strength(e){this.blurXFilter.blur=this.blurYFilter.blur=e,this.updatePadding()}get quality(){return this.blurXFilter.quality}set quality(e){this.blurXFilter.quality=this.blurYFilter.quality=e}get strengthX(){return this.blurXFilter.blur}set strengthX(e){this.blurXFilter.blur=e,this.updatePadding()}get strengthY(){return this.blurYFilter.blur}set strengthY(e){this.blurYFilter.blur=e,this.updatePadding()}get blur(){return y(`8.3.0`,`BlurFilter.blur is deprecated, please use BlurFilter.strength instead.`),this.strength}set blur(e){y(`8.3.0`,`BlurFilter.blur is deprecated, please use BlurFilter.strength instead.`),this.strength=e}get blurX(){return y(`8.3.0`,`BlurFilter.blurX is deprecated, please use BlurFilter.strengthX instead.`),this.strengthX}set blurX(e){y(`8.3.0`,`BlurFilter.blurX is deprecated, please use BlurFilter.strengthX instead.`),this.strengthX=e}get blurY(){return y(`8.3.0`,`BlurFilter.blurY is deprecated, please use BlurFilter.strengthY instead.`),this.strengthY}set blurY(e){y(`8.3.0`,`BlurFilter.blurY is deprecated, please use BlurFilter.strengthY instead.`),this.strengthY=e}get repeatEdgePixels(){return this._repeatEdgePixels}set repeatEdgePixels(e){this._repeatEdgePixels=e,this.updatePadding()}};Ud.defaultOptions={strength:8,quality:4,kernelSize:5,legacy:!1};var Wd=`
1586
+ in vec2 vTextureCoord;
1587
+ in vec4 vColor;
1588
+
1589
+ out vec4 finalColor;
1590
+
1591
+ uniform float uColorMatrix[20];
1592
+ uniform float uAlpha;
1593
+
1594
+ uniform sampler2D uTexture;
1595
+
1596
+ float rand(vec2 co)
1597
+ {
1598
+ return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
1599
+ }
1600
+
1601
+ void main()
1602
+ {
1603
+ vec4 color = texture(uTexture, vTextureCoord);
1604
+ float randomValue = rand(gl_FragCoord.xy * 0.2);
1605
+ float diff = (randomValue - 0.5) * 0.5;
1606
+
1607
+ if (uAlpha == 0.0) {
1608
+ finalColor = color;
1609
+ return;
1610
+ }
1611
+
1612
+ if (color.a > 0.0) {
1613
+ color.rgb /= color.a;
1614
+ }
1615
+
1616
+ vec4 result;
1617
+
1618
+ result.r = (uColorMatrix[0] * color.r);
1619
+ result.r += (uColorMatrix[1] * color.g);
1620
+ result.r += (uColorMatrix[2] * color.b);
1621
+ result.r += (uColorMatrix[3] * color.a);
1622
+ result.r += uColorMatrix[4];
1623
+
1624
+ result.g = (uColorMatrix[5] * color.r);
1625
+ result.g += (uColorMatrix[6] * color.g);
1626
+ result.g += (uColorMatrix[7] * color.b);
1627
+ result.g += (uColorMatrix[8] * color.a);
1628
+ result.g += uColorMatrix[9];
1629
+
1630
+ result.b = (uColorMatrix[10] * color.r);
1631
+ result.b += (uColorMatrix[11] * color.g);
1632
+ result.b += (uColorMatrix[12] * color.b);
1633
+ result.b += (uColorMatrix[13] * color.a);
1634
+ result.b += uColorMatrix[14];
1635
+
1636
+ result.a = (uColorMatrix[15] * color.r);
1637
+ result.a += (uColorMatrix[16] * color.g);
1638
+ result.a += (uColorMatrix[17] * color.b);
1639
+ result.a += (uColorMatrix[18] * color.a);
1640
+ result.a += uColorMatrix[19];
1641
+
1642
+ vec3 rgb = mix(color.rgb, result.rgb, uAlpha);
1643
+
1644
+ // Premultiply alpha again.
1645
+ rgb *= result.a;
1646
+
1647
+ finalColor = vec4(rgb, result.a);
1648
+ }
1649
+ `,Gd=`struct GlobalFilterUniforms {
1650
+ uInputSize:vec4<f32>,
1651
+ uInputPixel:vec4<f32>,
1652
+ uInputClamp:vec4<f32>,
1653
+ uOutputFrame:vec4<f32>,
1654
+ uGlobalFrame:vec4<f32>,
1655
+ uOutputTexture:vec4<f32>,
1656
+ };
1657
+
1658
+ struct ColorMatrixUniforms {
1659
+ uColorMatrix:array<vec4<f32>, 5>,
1660
+ uAlpha:f32,
1661
+ };
1662
+
1663
+
1664
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
1665
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
1666
+ @group(0) @binding(2) var uSampler : sampler;
1667
+ @group(1) @binding(0) var<uniform> colorMatrixUniforms : ColorMatrixUniforms;
1668
+
1669
+
1670
+ struct VSOutput {
1671
+ @builtin(position) position: vec4<f32>,
1672
+ @location(0) uv : vec2<f32>,
1673
+ };
1674
+
1675
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
1676
+ {
1677
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
1678
+
1679
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
1680
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
1681
+
1682
+ return vec4(position, 0.0, 1.0);
1683
+ }
1684
+
1685
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1686
+ {
1687
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
1688
+ }
1689
+
1690
+ @vertex
1691
+ fn mainVertex(
1692
+ @location(0) aPosition : vec2<f32>,
1693
+ ) -> VSOutput {
1694
+ return VSOutput(
1695
+ filterVertexPosition(aPosition),
1696
+ filterTextureCoord(aPosition),
1697
+ );
1698
+ }
1699
+
1700
+
1701
+ @fragment
1702
+ fn mainFragment(
1703
+ @location(0) uv: vec2<f32>,
1704
+ ) -> @location(0) vec4<f32> {
1705
+
1706
+
1707
+ var c = textureSample(uTexture, uSampler, uv);
1708
+
1709
+ if (colorMatrixUniforms.uAlpha == 0.0) {
1710
+ return c;
1711
+ }
1712
+
1713
+
1714
+ // Un-premultiply alpha before applying the color matrix. See issue #3539.
1715
+ if (c.a > 0.0) {
1716
+ c.r /= c.a;
1717
+ c.g /= c.a;
1718
+ c.b /= c.a;
1719
+ }
1720
+
1721
+ var cm = colorMatrixUniforms.uColorMatrix;
1722
+
1723
+
1724
+ var result = vec4<f32>(0.);
1725
+
1726
+ result.r = (cm[0][0] * c.r);
1727
+ result.r += (cm[0][1] * c.g);
1728
+ result.r += (cm[0][2] * c.b);
1729
+ result.r += (cm[0][3] * c.a);
1730
+ result.r += cm[1][0];
1731
+
1732
+ result.g = (cm[1][1] * c.r);
1733
+ result.g += (cm[1][2] * c.g);
1734
+ result.g += (cm[1][3] * c.b);
1735
+ result.g += (cm[2][0] * c.a);
1736
+ result.g += cm[2][1];
1737
+
1738
+ result.b = (cm[2][2] * c.r);
1739
+ result.b += (cm[2][3] * c.g);
1740
+ result.b += (cm[3][0] * c.b);
1741
+ result.b += (cm[3][1] * c.a);
1742
+ result.b += cm[3][2];
1743
+
1744
+ result.a = (cm[3][3] * c.r);
1745
+ result.a += (cm[4][0] * c.g);
1746
+ result.a += (cm[4][1] * c.b);
1747
+ result.a += (cm[4][2] * c.a);
1748
+ result.a += cm[4][3];
1749
+
1750
+ var rgb = mix(c.rgb, result.rgb, colorMatrixUniforms.uAlpha);
1751
+
1752
+ rgb.r *= result.a;
1753
+ rgb.g *= result.a;
1754
+ rgb.b *= result.a;
1755
+
1756
+ return vec4(rgb, result.a);
1757
+ }`,Kd=class extends at{constructor(e={}){let t=new pe({uColorMatrix:{value:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],type:`f32`,size:20},uAlpha:{value:1,type:`f32`}}),n=ue.from({vertex:{source:Gd,entryPoint:`mainVertex`},fragment:{source:Gd,entryPoint:`mainFragment`}}),r=be.from({vertex:Mt,fragment:Wd,name:`color-matrix-filter`});super({...e,gpuProgram:n,glProgram:r,resources:{colorMatrixUniforms:t}}),this.alpha=1}_loadMatrix(e,t=!1){if(t){let t=[...e];this._multiply(t,this.matrix,e),this.resources.colorMatrixUniforms.uniforms.uColorMatrix=t}else this.resources.colorMatrixUniforms.uniforms.uColorMatrix=e;this.resources.colorMatrixUniforms.update()}_multiply(e,t,n){return e[0]=t[0]*n[0]+t[1]*n[5]+t[2]*n[10]+t[3]*n[15],e[1]=t[0]*n[1]+t[1]*n[6]+t[2]*n[11]+t[3]*n[16],e[2]=t[0]*n[2]+t[1]*n[7]+t[2]*n[12]+t[3]*n[17],e[3]=t[0]*n[3]+t[1]*n[8]+t[2]*n[13]+t[3]*n[18],e[4]=t[0]*n[4]+t[1]*n[9]+t[2]*n[14]+t[3]*n[19]+t[4],e[5]=t[5]*n[0]+t[6]*n[5]+t[7]*n[10]+t[8]*n[15],e[6]=t[5]*n[1]+t[6]*n[6]+t[7]*n[11]+t[8]*n[16],e[7]=t[5]*n[2]+t[6]*n[7]+t[7]*n[12]+t[8]*n[17],e[8]=t[5]*n[3]+t[6]*n[8]+t[7]*n[13]+t[8]*n[18],e[9]=t[5]*n[4]+t[6]*n[9]+t[7]*n[14]+t[8]*n[19]+t[9],e[10]=t[10]*n[0]+t[11]*n[5]+t[12]*n[10]+t[13]*n[15],e[11]=t[10]*n[1]+t[11]*n[6]+t[12]*n[11]+t[13]*n[16],e[12]=t[10]*n[2]+t[11]*n[7]+t[12]*n[12]+t[13]*n[17],e[13]=t[10]*n[3]+t[11]*n[8]+t[12]*n[13]+t[13]*n[18],e[14]=t[10]*n[4]+t[11]*n[9]+t[12]*n[14]+t[13]*n[19]+t[14],e[15]=t[15]*n[0]+t[16]*n[5]+t[17]*n[10]+t[18]*n[15],e[16]=t[15]*n[1]+t[16]*n[6]+t[17]*n[11]+t[18]*n[16],e[17]=t[15]*n[2]+t[16]*n[7]+t[17]*n[12]+t[18]*n[17],e[18]=t[15]*n[3]+t[16]*n[8]+t[17]*n[13]+t[18]*n[18],e[19]=t[15]*n[4]+t[16]*n[9]+t[17]*n[14]+t[18]*n[19]+t[19],e}brightness(e,t){let n=[e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0];this._loadMatrix(n,t)}tint(e,t){let[n,r,i]=N.shared.setValue(e).toArray(),a=[n,0,0,0,0,0,r,0,0,0,0,0,i,0,0,0,0,0,1,0];this._loadMatrix(a,t)}greyscale(e,t){let n=[e,e,e,0,0,e,e,e,0,0,e,e,e,0,0,0,0,0,1,0];this._loadMatrix(n,t)}grayscale(e,t){this.greyscale(e,t)}blackAndWhite(e){this._loadMatrix([.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0],e)}hue(e,t){e=(e||0)/180*Math.PI;let n=Math.cos(e),r=Math.sin(e),i=Math.sqrt,a=1/3,o=i(a),s=[n+(1-n)*a,a*(1-n)-o*r,a*(1-n)+o*r,0,0,a*(1-n)+o*r,n+a*(1-n),a*(1-n)-o*r,0,0,a*(1-n)-o*r,a*(1-n)+o*r,n+a*(1-n),0,0,0,0,0,1,0];this._loadMatrix(s,t)}contrast(e,t){let n=(e||0)+1,r=-.5*(n-1),i=[n,0,0,0,r,0,n,0,0,r,0,0,n,0,r,0,0,0,1,0];this._loadMatrix(i,t)}saturate(e=0,t){let n=e*2/3+1,r=(n-1)*-.5,i=[n,r,r,0,0,r,n,r,0,0,r,r,n,0,0,0,0,0,1,0];this._loadMatrix(i,t)}desaturate(){this.saturate(-1)}negative(e){this._loadMatrix([-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0],e)}sepia(e){this._loadMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0],e)}technicolor(e){this._loadMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,.046249425232852304,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-.2758903984886823,-.231103377548616,-.7501899197440212,1.847597816108189,0,.12137623870388682,0,0,0,1,0],e)}polaroid(e){this._loadMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],e)}toBGR(e){this._loadMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0],e)}kodachrome(e){this._loadMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,.24991995145868634,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,.09698983488904393,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,.13972481597886063,0,0,0,1,0],e)}browni(e){this._loadMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,.1860075629647401,-.037703249837783157,.8609577587992641,.15059552388459913,0,-.14497417640467167,.24113635128153335,-.07441037908422492,.44972182064877153,0,-.029655197167024642,0,0,0,1,0],e)}vintage(e){this._loadMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,.037848179746251466,.02578397704808868,.6441188644374771,.03259127616149294,0,.029265996770472907,.0466055556782719,-.0851232987247891,.5241648018700465,0,.020232119953863904,0,0,0,1,0],e)}colorTone(e,t,n,r,i){e||=.2,t||=.15,n||=16770432,r||=3375104;let a=N.shared,[o,s,c]=a.setValue(n).toArray(),[l,u,d]=a.setValue(r).toArray(),f=[.3,.59,.11,0,0,o,s,c,e,0,l,u,d,t,0,o-l,s-u,c-d,0,0];this._loadMatrix(f,i)}night(e,t){e||=.1;let n=[e*-2,-e,0,0,0,-e,0,e,0,0,0,e,e*2,0,0,0,0,0,1,0];this._loadMatrix(n,t)}predator(e,t){let n=[11.224130630493164*e,-4.794486999511719*e,-2.8746118545532227*e,0*e,.40342438220977783*e,-3.6330697536468506*e,9.193157196044922*e,-2.951810836791992*e,0*e,-1.316135048866272*e,-3.2184197902679443*e,-4.2375030517578125*e,7.476448059082031*e,0*e,.8044459223747253*e,0,0,0,1,0];this._loadMatrix(n,t)}lsd(e){this._loadMatrix([2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0],e)}reset(){this._loadMatrix([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],!1)}get matrix(){return this.resources.colorMatrixUniforms.uniforms.uColorMatrix}set matrix(e){this.resources.colorMatrixUniforms.uniforms.uColorMatrix=e}get alpha(){return this.resources.colorMatrixUniforms.uniforms.uAlpha}set alpha(e){this.resources.colorMatrixUniforms.uniforms.uAlpha=e}},qd=`
1758
+ in vec2 vTextureCoord;
1759
+ in vec2 vFilterUv;
1760
+
1761
+ out vec4 finalColor;
1762
+
1763
+ uniform sampler2D uTexture;
1764
+ uniform sampler2D uMapTexture;
1765
+
1766
+ uniform vec4 uInputClamp;
1767
+ uniform highp vec4 uInputSize;
1768
+ uniform mat2 uRotation;
1769
+ uniform vec2 uScale;
1770
+
1771
+ void main()
1772
+ {
1773
+ vec4 map = texture(uMapTexture, vFilterUv);
1774
+
1775
+ vec2 offset = uInputSize.zw * (uRotation * (map.xy - 0.5)) * uScale;
1776
+
1777
+ finalColor = texture(uTexture, clamp(vTextureCoord + offset, uInputClamp.xy, uInputClamp.zw));
1778
+ }
1779
+ `,Jd=`in vec2 aPosition;
1780
+ out vec2 vTextureCoord;
1781
+ out vec2 vFilterUv;
1782
+
1783
+
1784
+ uniform vec4 uInputSize;
1785
+ uniform vec4 uOutputFrame;
1786
+ uniform vec4 uOutputTexture;
1787
+
1788
+ uniform mat3 uFilterMatrix;
1789
+
1790
+ vec4 filterVertexPosition( void )
1791
+ {
1792
+ vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
1793
+
1794
+ position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
1795
+ position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
1796
+
1797
+ return vec4(position, 0.0, 1.0);
1798
+ }
1799
+
1800
+ vec2 filterTextureCoord( void )
1801
+ {
1802
+ return aPosition * (uOutputFrame.zw * uInputSize.zw);
1803
+ }
1804
+
1805
+ vec2 getFilterCoord( void )
1806
+ {
1807
+ return ( uFilterMatrix * vec3( filterTextureCoord(), 1.0) ).xy;
1808
+ }
1809
+
1810
+
1811
+ void main(void)
1812
+ {
1813
+ gl_Position = filterVertexPosition();
1814
+ vTextureCoord = filterTextureCoord();
1815
+ vFilterUv = getFilterCoord();
1816
+ }
1817
+ `,Yd=`
1818
+ struct GlobalFilterUniforms {
1819
+ uInputSize:vec4<f32>,
1820
+ uInputPixel:vec4<f32>,
1821
+ uInputClamp:vec4<f32>,
1822
+ uOutputFrame:vec4<f32>,
1823
+ uGlobalFrame:vec4<f32>,
1824
+ uOutputTexture:vec4<f32>,
1825
+ };
1826
+
1827
+ struct DisplacementUniforms {
1828
+ uFilterMatrix:mat3x3<f32>,
1829
+ uScale:vec2<f32>,
1830
+ uRotation:mat2x2<f32>
1831
+ };
1832
+
1833
+
1834
+
1835
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
1836
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
1837
+ @group(0) @binding(2) var uSampler : sampler;
1838
+
1839
+ @group(1) @binding(0) var<uniform> filterUniforms : DisplacementUniforms;
1840
+ @group(1) @binding(1) var uMapTexture: texture_2d<f32>;
1841
+ @group(1) @binding(2) var uMapSampler : sampler;
1842
+
1843
+ struct VSOutput {
1844
+ @builtin(position) position: vec4<f32>,
1845
+ @location(0) uv : vec2<f32>,
1846
+ @location(1) filterUv : vec2<f32>,
1847
+ };
1848
+
1849
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
1850
+ {
1851
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
1852
+
1853
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
1854
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
1855
+
1856
+ return vec4(position, 0.0, 1.0);
1857
+ }
1858
+
1859
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1860
+ {
1861
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
1862
+ }
1863
+
1864
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1865
+ {
1866
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
1867
+ }
1868
+
1869
+ fn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>
1870
+ {
1871
+ return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
1872
+ }
1873
+
1874
+ fn getSize() -> vec2<f32>
1875
+ {
1876
+
1877
+
1878
+ return gfu.uGlobalFrame.zw;
1879
+ }
1880
+
1881
+ @vertex
1882
+ fn mainVertex(
1883
+ @location(0) aPosition : vec2<f32>,
1884
+ ) -> VSOutput {
1885
+ return VSOutput(
1886
+ filterVertexPosition(aPosition),
1887
+ filterTextureCoord(aPosition),
1888
+ getFilterCoord(aPosition)
1889
+ );
1890
+ }
1891
+
1892
+ @fragment
1893
+ fn mainFragment(
1894
+ @location(0) uv: vec2<f32>,
1895
+ @location(1) filterUv: vec2<f32>,
1896
+ @builtin(position) position: vec4<f32>
1897
+ ) -> @location(0) vec4<f32> {
1898
+
1899
+ var map = textureSample(uMapTexture, uMapSampler, filterUv);
1900
+
1901
+ var offset = gfu.uInputSize.zw * (filterUniforms.uRotation * (map.xy - 0.5)) * filterUniforms.uScale;
1902
+
1903
+ return textureSample(uTexture, uSampler, clamp(uv + offset, gfu.uInputClamp.xy, gfu.uInputClamp.zw));
1904
+ }`,Xd=class extends at{constructor(...e){let t=e[0];t instanceof Ye&&(e[1]&&y(n,`DisplacementFilter now uses options object instead of params. {sprite, scale}`),t={sprite:t,scale:e[1]});let{sprite:r,scale:i,...a}=t,o=i??20;typeof o==`number`&&(o=new V(o,o));let s=new pe({uFilterMatrix:{value:new U,type:`mat3x3<f32>`},uScale:{value:o,type:`vec2<f32>`},uRotation:{value:new Float32Array([0,0,0,0]),type:`mat2x2<f32>`}}),c=be.from({vertex:Jd,fragment:qd,name:`displacement-filter`}),l=ue.from({vertex:{source:Yd,entryPoint:`mainVertex`},fragment:{source:Yd,entryPoint:`mainFragment`}}),u=r.texture.source;super({...a,gpuProgram:l,glProgram:c,resources:{filterUniforms:s,uMapTexture:u,uMapSampler:u.style}}),this._sprite=t.sprite,this._sprite.renderable=!1}apply(e,t,n,r){let i=this.resources.filterUniforms.uniforms;e.calculateSpriteMatrix(i.uFilterMatrix,this._sprite);let a=this._sprite.worldTransform,o=Math.sqrt(a.a*a.a+a.b*a.b),s=Math.sqrt(a.c*a.c+a.d*a.d);o!==0&&s!==0&&(i.uRotation[0]=a.a/o,i.uRotation[1]=a.b/o,i.uRotation[2]=a.c/s,i.uRotation[3]=a.d/s),this.resources.uMapTexture=this._sprite.texture.source,e.applyFilter(this,t,n,r)}get scale(){return this.resources.filterUniforms.uniforms.uScale}},Zd=`
1905
+ in vec2 vTextureCoord;
1906
+ in vec4 vColor;
1907
+
1908
+ out vec4 finalColor;
1909
+
1910
+ uniform float uNoise;
1911
+ uniform float uSeed;
1912
+ uniform sampler2D uTexture;
1913
+
1914
+ float rand(vec2 co)
1915
+ {
1916
+ return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
1917
+ }
1918
+
1919
+ void main()
1920
+ {
1921
+ vec4 color = texture(uTexture, vTextureCoord);
1922
+ float randomValue = rand(gl_FragCoord.xy * uSeed);
1923
+ float diff = (randomValue - 0.5) * uNoise;
1924
+
1925
+ // Un-premultiply alpha before applying the color matrix. See issue #3539.
1926
+ if (color.a > 0.0) {
1927
+ color.rgb /= color.a;
1928
+ }
1929
+
1930
+ color.r += diff;
1931
+ color.g += diff;
1932
+ color.b += diff;
1933
+
1934
+ // Premultiply alpha again.
1935
+ color.rgb *= color.a;
1936
+
1937
+ finalColor = color;
1938
+ }
1939
+ `,Qd=`
1940
+
1941
+ struct GlobalFilterUniforms {
1942
+ uInputSize:vec4<f32>,
1943
+ uInputPixel:vec4<f32>,
1944
+ uInputClamp:vec4<f32>,
1945
+ uOutputFrame:vec4<f32>,
1946
+ uGlobalFrame:vec4<f32>,
1947
+ uOutputTexture:vec4<f32>,
1948
+ };
1949
+
1950
+ struct NoiseUniforms {
1951
+ uNoise:f32,
1952
+ uSeed:f32,
1953
+ };
1954
+
1955
+ @group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
1956
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
1957
+ @group(0) @binding(2) var uSampler : sampler;
1958
+
1959
+ @group(1) @binding(0) var<uniform> noiseUniforms : NoiseUniforms;
1960
+
1961
+ struct VSOutput {
1962
+ @builtin(position) position: vec4<f32>,
1963
+ @location(0) uv : vec2<f32>
1964
+ };
1965
+
1966
+ fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
1967
+ {
1968
+ var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
1969
+
1970
+ position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
1971
+ position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
1972
+
1973
+ return vec4(position, 0.0, 1.0);
1974
+ }
1975
+
1976
+ fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1977
+ {
1978
+ return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
1979
+ }
1980
+
1981
+ fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
1982
+ {
1983
+ return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
1984
+ }
1985
+
1986
+ fn getSize() -> vec2<f32>
1987
+ {
1988
+ return gfu.uGlobalFrame.zw;
1989
+ }
1990
+
1991
+ @vertex
1992
+ fn mainVertex(
1993
+ @location(0) aPosition : vec2<f32>,
1994
+ ) -> VSOutput {
1995
+ return VSOutput(
1996
+ filterVertexPosition(aPosition),
1997
+ filterTextureCoord(aPosition)
1998
+ );
1999
+ }
2000
+
2001
+ fn rand(co:vec2<f32>) -> f32
2002
+ {
2003
+ return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
2004
+ }
2005
+
2006
+
2007
+
2008
+ @fragment
2009
+ fn mainFragment(
2010
+ @location(0) uv: vec2<f32>,
2011
+ @builtin(position) position: vec4<f32>
2012
+ ) -> @location(0) vec4<f32> {
2013
+
2014
+ var pixelPosition = globalTextureCoord(position.xy);// / (getSize());//- gfu.uOutputFrame.xy);
2015
+
2016
+
2017
+ var sample = textureSample(uTexture, uSampler, uv);
2018
+ var randomValue = rand(pixelPosition.xy * noiseUniforms.uSeed);
2019
+ var diff = (randomValue - 0.5) * noiseUniforms.uNoise;
2020
+
2021
+ // Un-premultiply alpha before applying the color matrix. See issue #3539.
2022
+ if (sample.a > 0.0) {
2023
+ sample.r /= sample.a;
2024
+ sample.g /= sample.a;
2025
+ sample.b /= sample.a;
2026
+ }
2027
+
2028
+ sample.r += diff;
2029
+ sample.g += diff;
2030
+ sample.b += diff;
2031
+
2032
+ // Premultiply alpha again.
2033
+ sample.r *= sample.a;
2034
+ sample.g *= sample.a;
2035
+ sample.b *= sample.a;
2036
+
2037
+ return sample;
2038
+ }`,$d=class e extends at{constructor(t={}){t={...e.defaultOptions,...t};let n=ue.from({vertex:{source:Qd,entryPoint:`mainVertex`},fragment:{source:Qd,entryPoint:`mainFragment`}}),r=be.from({vertex:Mt,fragment:Zd,name:`noise-filter`}),{noise:i,seed:a,...o}=t;super({...o,gpuProgram:n,glProgram:r,resources:{noiseUniforms:new pe({uNoise:{value:1,type:`f32`},uSeed:{value:1,type:`f32`}})}}),this.noise=i,this.seed=a??Math.random()}get noise(){return this.resources.noiseUniforms.uniforms.uNoise}set noise(e){this.resources.noiseUniforms.uniforms.uNoise=e}get seed(){return this.resources.noiseUniforms.uniforms.uSeed}set seed(e){this.resources.noiseUniforms.uniforms.uSeed=e}};$d.defaultOptions={noise:.5};var ef=$d,tf=`fn getLuminosity(c: vec3<f32>) -> f32 {
2039
+ return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;
2040
+ }
2041
+
2042
+ fn setLuminosity(c: vec3<f32>, lum: f32) -> vec3<f32> {
2043
+ let d: f32 = lum - getLuminosity(c);
2044
+ let newColor: vec3<f32> = c.rgb + vec3<f32>(d, d, d);
2045
+
2046
+ // clip back into legal range
2047
+ let newLum: f32 = getLuminosity(newColor);
2048
+ let cMin: f32 = min(newColor.r, min(newColor.g, newColor.b));
2049
+ let cMax: f32 = max(newColor.r, max(newColor.g, newColor.b));
2050
+
2051
+ let t1: f32 = newLum / (newLum - cMin);
2052
+ let t2: f32 = (1.0 - newLum) / (cMax - newLum);
2053
+
2054
+ let finalColor = mix(vec3<f32>(newLum, newLum, newLum), newColor, select(select(1.0, t2, cMax > 1.0), t1, cMin < 0.0));
2055
+
2056
+ return finalColor;
2057
+ }
2058
+
2059
+ fn getSaturation(c: vec3<f32>) -> f32 {
2060
+ return max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));
2061
+ }
2062
+
2063
+ // Set saturation if color components are sorted in ascending order.
2064
+ fn setSaturationMinMidMax(cSorted: vec3<f32>, s: f32) -> vec3<f32> {
2065
+ var result: vec3<f32>;
2066
+ if (cSorted.z > cSorted.x) {
2067
+ let newY = (((cSorted.y - cSorted.x) * s) / (cSorted.z - cSorted.x));
2068
+ result = vec3<f32>(0.0, newY, s);
2069
+ } else {
2070
+ result = vec3<f32>(0.0, 0.0, 0.0);
2071
+ }
2072
+ return vec3<f32>(result.x, result.y, result.z);
2073
+ }
2074
+
2075
+ fn setSaturation(c: vec3<f32>, s: f32) -> vec3<f32> {
2076
+ var result: vec3<f32> = c;
2077
+
2078
+ if (c.r <= c.g && c.r <= c.b) {
2079
+ if (c.g <= c.b) {
2080
+ result = setSaturationMinMidMax(result, s);
2081
+ } else {
2082
+ var temp: vec3<f32> = vec3<f32>(result.r, result.b, result.g);
2083
+ temp = setSaturationMinMidMax(temp, s);
2084
+ result = vec3<f32>(temp.r, temp.b, temp.g);
2085
+ }
2086
+ } else if (c.g <= c.r && c.g <= c.b) {
2087
+ if (c.r <= c.b) {
2088
+ var temp: vec3<f32> = vec3<f32>(result.g, result.r, result.b);
2089
+ temp = setSaturationMinMidMax(temp, s);
2090
+ result = vec3<f32>(temp.g, temp.r, temp.b);
2091
+ } else {
2092
+ var temp: vec3<f32> = vec3<f32>(result.g, result.b, result.r);
2093
+ temp = setSaturationMinMidMax(temp, s);
2094
+ result = vec3<f32>(temp.g, temp.b, temp.r);
2095
+ }
2096
+ } else {
2097
+ if (c.r <= c.g) {
2098
+ var temp: vec3<f32> = vec3<f32>(result.b, result.r, result.g);
2099
+ temp = setSaturationMinMidMax(temp, s);
2100
+ result = vec3<f32>(temp.b, temp.r, temp.g);
2101
+ } else {
2102
+ var temp: vec3<f32> = vec3<f32>(result.b, result.g, result.r);
2103
+ temp = setSaturationMinMidMax(temp, s);
2104
+ result = vec3<f32>(temp.b, temp.g, temp.r);
2105
+ }
2106
+ }
2107
+
2108
+ return result;
2109
+ }`,nf=class e{constructor(t){this._tick=()=>{this._destroyed||(this.timeout=setTimeout(this._processQueue,0))},this._processQueue=()=>{if(this._destroyed)return;let{queue:t}=this,n=0;for(;t.length&&n<e.uploadsPerFrame;){let e=t.shift();this.uploadQueueItem(e),n++}t.length?it.system.addOnce(this._tick,this,Qe.UTILITY):this._resolve()},this.renderer=t,this.queue=[],this.resolves=[]}getQueue(){return[...this.queue]}add(e){let t=Array.isArray(e)?e:[e];for(let e of t)e instanceof G?this._addContainer(e):this.resolveQueueItem(e,this.queue);return this}_addContainer(e){this.resolveQueueItem(e,this.queue);for(let t of e.children)this._addContainer(t)}upload(e){return e&&this.add(e),new Promise(e=>{this.queue.length?(this.resolves.push(e),this.dedupeQueue(),it.system.addOnce(this._tick,this,Qe.UTILITY)):e()})}dedupeQueue(){let e=Object.create(null),t=0;for(let n=0;n<this.queue.length;n++){let r=this.queue[n];e[r.uid]||(e[r.uid]=!0,this.queue[t++]=r)}this.queue.length=t}destroy(){this._destroyed=!0,clearTimeout(this.timeout)}_resolve(){let{resolves:e}=this,t=e.slice(0);e.length=0;for(let e of t)e()}};nf.uploadsPerFrame=4;var rf=nf,af=class e extends he{constructor(...t){let r=t[0]??{};r instanceof Float32Array&&(y(n,`use new MeshGeometry({ positions, uvs, indices }) instead`),r={positions:r,uvs:t[1],indices:t[2]}),r={...e.defaultOptions,...r};let i=r.positions||new Float32Array([0,0,1,0,1,1,0,1]),a=r.uvs;a||=r.positions?new Float32Array(i.length):new Float32Array([0,0,1,0,1,1,0,1]);let o=r.indices||new Uint32Array([0,1,2,0,2,3]),s=r.shrinkBuffersToFit,c=new B({data:i,label:`attribute-mesh-positions`,shrinkToFit:s,usage:k.VERTEX|k.COPY_DST}),l=new B({data:a,label:`attribute-mesh-uvs`,shrinkToFit:s,usage:k.VERTEX|k.COPY_DST}),u=new B({data:o,label:`index-mesh-buffer`,shrinkToFit:s,usage:k.INDEX|k.COPY_DST});super({attributes:{aPosition:{buffer:c,format:`float32x2`,stride:8,offset:0},aUV:{buffer:l,format:`float32x2`,stride:8,offset:0}},indexBuffer:u,topology:r.topology}),this.batchMode=`auto`}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};af.defaultOptions={topology:`triangle-list`,shrinkBuffersToFit:!1};var of=af,sf=class{constructor(){this.batcherName=`default`,this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let e=this.geometry.getBuffer(`aUV`),t=e.data,n=t,r=this.texture.textureMatrix;return r.isSimple||(n=this._transformedUvs,(this._textureMatrixUpdateId!==r._updateID||this._uvUpdateId!==e._updateID)&&((!n||n.length<t.length)&&(n=this._transformedUvs=new Float32Array(t.length)),this._textureMatrixUpdateId=r._updateID,this._uvUpdateId=e._updateID,r.multiplyUvs(t,n))),n}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}},cf=class{destroy(){}},lf=class{constructor(e,t){this.localUniforms=new pe({uTransformMatrix:{value:new U,type:`mat3x3<f32>`},uColor:{value:new Float32Array([1,1,1,1]),type:`vec4<f32>`},uRound:{value:0,type:`f32`}}),this.localUniformsBindGroup=new L({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),n=t.batched,r=e.batched;if(t.batched=r,n!==r)return!0;if(r){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let r=this._getBatchableMesh(e);return r.texture.uid!==e._texture.uid&&(r._textureMatrixUpdateId=-1),!r._batcher.checkAndUpdateTexture(r,e._texture)}return!1}addRenderable(e,t){let n=this.renderer.renderPipes.batch,r=this._getMeshData(e);if(e.didViewUpdate&&(r.indexSize=e._geometry.indices?.length,r.vertexSize=e._geometry.positions?.length),r.batched){let r=this._getBatchableMesh(e);r.setTexture(e._texture),r.geometry=e._geometry,n.addToBatch(r,t)}else n.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=hi(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),oi(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,n;return(t=e._gpuData)[n=this.renderer.uid]||(t[n]=new cf),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:0,vertexSize:0},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,n;return(t=e._gpuData)[n=this.renderer.uid]||(t[n]=new cf),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new sf;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};lf.extension={type:[W.WebGLPipes,W.WebGPUPipes],name:`mesh`},F.add(lf);var uf=class extends tt{constructor(...e){let t=e[0];t instanceof he&&(y(n,`Mesh: use new Mesh({ geometry, shader }) instead`),t={geometry:t,shader:e[1]},e[3]&&(y(n,`Mesh: drawMode argument has been removed, use geometry.topology instead`),t.geometry.topology=e[3]));let{geometry:r,shader:i,texture:a,roundPixels:o,state:s,...c}=t;super({label:`Mesh`,...c}),this.renderPipeId=`mesh`,this._shader=null,this.allowChildren=!1,this.shader=i??null,this.texture=a??i?.texture??h.WHITE,this.state=s??et.for2d(),this._geometry=r,this._geometry.on(`update`,this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return y(n,`mesh.material property has been removed, use mesh.shader instead`),this._shader}set shader(e){this._shader!==e&&(this._shader=e,this.onViewUpdate())}get shader(){return this._shader}set geometry(e){this._geometry!==e&&(this._geometry?.off(`update`,this.onViewUpdate,this),e.on(`update`,this.onViewUpdate,this),this._geometry=e,this.onViewUpdate())}get geometry(){return this._geometry}set texture(e){e||=h.EMPTY;let t=this._texture;t!==e&&(t&&t.dynamic&&t.off(`update`,this.onViewUpdate,this),e.dynamic&&e.on(`update`,this.onViewUpdate,this),this.shader&&(this.shader.texture=e),this._texture=e,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||this.state.data&12?!1:this._geometry instanceof of?this._geometry.batchMode===`auto`?this._geometry.positions.length/2<=100:this._geometry.batchMode===`batch`:!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(e){let{x:t,y:n}=e;if(!this.bounds.containsPoint(t,n))return!1;let r=this.geometry.getBuffer(`aPosition`).data,i=this.geometry.topology===`triangle-strip`?3:1;if(this.geometry.getIndex()){let e=this.geometry.getIndex().data,a=e.length;for(let o=0;o+2<a;o+=i){let i=e[o]*2,a=e[o+1]*2,s=e[o+2]*2;if(Xs(t,n,r[i],r[i+1],r[a],r[a+1],r[s],r[s+1]))return!0}}else{let e=r.length/2;for(let a=0;a+2<e;a+=i){let e=a*2,i=(a+1)*2,o=(a+2)*2;if(Xs(t,n,r[e],r[e+1],r[i],r[i+1],r[o],r[o+1]))return!0}}return!1}destroy(e){if(super.destroy(e),typeof e==`boolean`?e:e?.texture){let t=typeof e==`boolean`?e:e?.textureSource;this._texture.destroy(t)}this._geometry?.off(`update`,this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}},df=class e extends Ye{constructor(...e){let t=e[0];Array.isArray(e[0])&&(t={textures:e[0],autoUpdate:e[1]});let{animationSpeed:n=1,autoPlay:r=!1,autoUpdate:i=!0,loop:a=!0,onComplete:o=null,onFrameChange:s=null,onLoop:c=null,textures:l,updateAnchor:u=!1,...d}=t,[f]=l;super({...d,texture:f instanceof h?f:f.texture}),this._textures=null,this._durations=null,this._autoUpdate=i,this._isConnectedToTicker=!1,this.animationSpeed=n,this.loop=a,this.updateAnchor=u,this.onComplete=o,this.onFrameChange=s,this.onLoop=c,this._currentTime=0,this._playing=!1,this._previousFrame=null,this.textures=l,r&&this.play()}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(it.shared.remove(this.update,this),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(it.shared.add(this.update,this,Qe.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(e){this.stop(),this.currentFrame=e}gotoAndPlay(e){this.currentFrame=e,this.play()}update(e){if(!this._playing)return;let t=e.deltaTime,n=this.animationSpeed*t,r=this.currentFrame;if(this._durations!==null){let e=this._currentTime%1*this._durations[this.currentFrame];for(e+=n/60*1e3;e<0;)this._currentTime--,e+=this._durations[this.currentFrame];let r=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);e>=this._durations[this.currentFrame];)e-=this._durations[this.currentFrame]*r,this._currentTime+=r;this._currentTime+=e/this._durations[this.currentFrame]}else this._currentTime+=n;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):r!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFrame<r||this.animationSpeed<0&&this.currentFrame>r)&&this.onLoop(),this._updateTexture())}_updateTexture(){let e=this.currentFrame;this._previousFrame!==e&&(this._previousFrame=e,this.texture=this._textures[e],this.updateAnchor&&this.texture.defaultAnchor&&this.anchor.copyFrom(this.texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame))}destroy(e=!1){if(typeof e==`boolean`?e:e?.texture){let t=typeof e==`boolean`?e:e?.textureSource;this._textures.forEach(e=>{this.texture!==e&&e.destroy(t)})}this._textures=[],this._durations=null,this.stop(),super.destroy(e),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}static fromFrames(t){let n=[];for(let e=0;e<t.length;++e)n.push(h.from(t[e]));return new e(n)}static fromImages(t){let n=[];for(let e=0;e<t.length;++e)n.push(h.from(t[e]));return new e(n)}get totalFrames(){return this._textures.length}get textures(){return this._textures}set textures(e){if(e[0]instanceof h)this._textures=e,this._durations=null;else{this._textures=[],this._durations=[];for(let t=0;t<e.length;t++)this._textures.push(e[t].texture),this._durations.push(e[t].time)}this._previousFrame=null,this.gotoAndStop(0),this._updateTexture()}get currentFrame(){let e=Math.floor(this._currentTime)%this._textures.length;return e<0&&(e+=this._textures.length),e}set currentFrame(e){if(e<0||e>this.totalFrames-1)throw Error(`[AnimatedSprite]: Invalid frame index value ${e}, expected to be between 0 and totalFrames ${this.totalFrames}.`);let t=this.currentFrame;this._currentTime=e,t!==this.currentFrame&&this._updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,!this._autoUpdate&&this._isConnectedToTicker?(it.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(it.shared.add(this.update,this),this._isConnectedToTicker=!0))}},ff=class{constructor({matrix:e,observer:t}={}){this.dirty=!0,this._matrix=e??new U,this.observer=t,this.position=new ke(this,0,0),this.scale=new ke(this,1,1),this.pivot=new ke(this,0,0),this.skew=new ke(this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1}get matrix(){let e=this._matrix;return this.dirty?(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this.dirty=!1,e):e}_onUpdate(e){this.dirty=!0,e===this.skew&&this.updateSkew(),this.observer?._onUpdate(this)}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this.dirty=!0}toString(){return`[pixi.js/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}setFromMatrix(e){e.decompose(this),this.dirty=!0}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this.skew))}},pf=new U,mf=new U,hf=[new V,new V,new V,new V],gf=class{constructor(e){this._renderer=e}validateRenderable(e){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}updateRenderable(e){}execute(e){let t=this._renderer,n=t.canvasContext,r=n.activeContext;r.save(),n.setBlendMode(e.groupBlendMode);let i=t.globalUniforms.globalUniformData?.worldColor??4294967295,a=e.groupColorAlpha,o=(i>>>24&255)/255,s=(a>>>24&255)/255,c=t.filter?.alphaMultiplier??1,l=o*s*c;if(l<=0){r.restore();return}r.globalAlpha=l;let u=i&16777215,d=Re(T(a&16777215,u)),f=e.texture,p=rn.getTintedPattern(f,d),m=e.width,h=e.height,g=e.groupTransform,_=f.source._resolution??f.source.resolution??1;mf.copyFrom(e._tileTransform.matrix),e.applyAnchorToTexture||mf.translate(-e.anchor.x*m,-e.anchor.y*h);let v=mf.tx,y=mf.ty;mf.scale(1/_,1/_),mf.tx=v,mf.ty=y,pf.identity(),pf.prepend(mf),pf.prepend(g);let b=t._roundPixels|e._roundPixels;n.setContextTransform(pf,b===1),r.fillStyle=p;let x=e.anchor.x*-m,S=e.anchor.y*-h;hf[0].set(x,S),hf[1].set(x+m,S),hf[2].set(x+m,S+h),hf[3].set(x,S+h);for(let e=0;e<4;e++)mf.applyInverse(hf[e],hf[e]);r.beginPath(),r.moveTo(hf[0].x,hf[0].y);for(let e=1;e<4;e++)r.lineTo(hf[e].x,hf[e].y);r.closePath(),r.fill(),r.restore()}destroy(){this._renderer=null}};gf.extension={type:[W.CanvasPipes],name:`tilingSprite`};var _f={name:`tiling-bit`,vertex:{header:`
2110
+ struct TilingUniforms {
2111
+ uMapCoord:mat3x3<f32>,
2112
+ uClampFrame:vec4<f32>,
2113
+ uClampOffset:vec2<f32>,
2114
+ uTextureTransform:mat3x3<f32>,
2115
+ uSizeAnchor:vec4<f32>
2116
+ };
2117
+
2118
+ @group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
2119
+ @group(2) @binding(1) var uTexture: texture_2d<f32>;
2120
+ @group(2) @binding(2) var uSampler: sampler;
2121
+ `,main:`
2122
+ uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;
2123
+
2124
+ position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;
2125
+ `},fragment:{header:`
2126
+ struct TilingUniforms {
2127
+ uMapCoord:mat3x3<f32>,
2128
+ uClampFrame:vec4<f32>,
2129
+ uClampOffset:vec2<f32>,
2130
+ uTextureTransform:mat3x3<f32>,
2131
+ uSizeAnchor:vec4<f32>
2132
+ };
2133
+
2134
+ @group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
2135
+ @group(2) @binding(1) var uTexture: texture_2d<f32>;
2136
+ @group(2) @binding(2) var uSampler: sampler;
2137
+ `,main:`
2138
+
2139
+ var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);
2140
+ coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;
2141
+ var unclamped = coord;
2142
+ coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);
2143
+
2144
+ var bias = 0.;
2145
+
2146
+ if(unclamped.x == coord.x && unclamped.y == coord.y)
2147
+ {
2148
+ bias = -32.;
2149
+ }
2150
+
2151
+ outColor = textureSampleBias(uTexture, uSampler, coord, bias);
2152
+ `}},vf={name:`tiling-bit`,vertex:{header:`
2153
+ uniform mat3 uTextureTransform;
2154
+ uniform vec4 uSizeAnchor;
2155
+
2156
+ `,main:`
2157
+ uv = (uTextureTransform * vec3(aUV, 1.0)).xy;
2158
+
2159
+ position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;
2160
+ `},fragment:{header:`
2161
+ uniform sampler2D uTexture;
2162
+ uniform mat3 uMapCoord;
2163
+ uniform vec4 uClampFrame;
2164
+ uniform vec2 uClampOffset;
2165
+ `,main:`
2166
+
2167
+ vec2 coord = vUV + ceil(uClampOffset - vUV);
2168
+ coord = (uMapCoord * vec3(coord, 1.0)).xy;
2169
+ vec2 unclamped = coord;
2170
+ coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
2171
+
2172
+ outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
2173
+
2174
+ `}},yf,bf,xf=class extends ce{constructor(){yf??=Ei({name:`tiling-sprite-shader`,bits:[Ji,_f,Si]}),bf??=Ti({name:`tiling-sprite-shader`,bits:[Yi,vf,Fi]});let e=new pe({uMapCoord:{value:new U,type:`mat3x3<f32>`},uClampFrame:{value:new Float32Array([0,0,1,1]),type:`vec4<f32>`},uClampOffset:{value:new Float32Array([0,0]),type:`vec2<f32>`},uTextureTransform:{value:new U,type:`mat3x3<f32>`},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:`vec4<f32>`}});super({glProgram:bf,gpuProgram:yf,resources:{localUniforms:new pe({uTransformMatrix:{value:new U,type:`mat3x3<f32>`},uColor:{value:new Float32Array([1,1,1,1]),type:`vec4<f32>`},uRound:{value:0,type:`f32`}}),tilingUniforms:e,uTexture:h.EMPTY.source,uSampler:h.EMPTY.source.style}})}updateUniforms(e,t,n,r,i,a){let o=this.resources.tilingUniforms,s=a.width,c=a.height,l=a.textureMatrix,u=o.uniforms.uTextureTransform;u.set(n.a*s/e,n.b*s/t,n.c*c/e,n.d*c/t,n.tx/e,n.ty/t),u.invert(),o.uniforms.uMapCoord=l.mapCoord,o.uniforms.uClampFrame=l.uClampFrame,o.uniforms.uClampOffset=l.uClampOffset,o.uniforms.uTextureTransform=u,o.uniforms.uSizeAnchor[0]=e,o.uniforms.uSizeAnchor[1]=t,o.uniforms.uSizeAnchor[2]=r,o.uniforms.uSizeAnchor[3]=i,a&&(this.resources.uTexture=a.source,this.resources.uSampler=a.source.style)}},Sf=class extends of{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}};function Cf(e,t){let n=e.anchor.x,r=e.anchor.y;t[0]=-n*e.width,t[1]=-r*e.height,t[2]=(1-n)*e.width,t[3]=-r*e.height,t[4]=(1-n)*e.width,t[5]=(1-r)*e.height,t[6]=-n*e.width,t[7]=(1-r)*e.height}function wf(e,t,n,r){let i=0,a=e.length/(t||2),o=r.a,s=r.b,c=r.c,l=r.d,u=r.tx,d=r.ty;for(n*=t;i<a;){let r=e[n],a=e[n+1];e[n]=o*r+c*a+u,e[n+1]=s*r+l*a+d,n+=t,i++}}function Tf(e,t){let n=e.texture,r=n.frame.width,i=n.frame.height,a=0,o=0;e.applyAnchorToTexture&&(a=e.anchor.x,o=e.anchor.y),t[0]=t[6]=-a,t[2]=t[4]=1-a,t[1]=t[3]=-o,t[5]=t[7]=1-o;let s=U.shared;s.copyFrom(e._tileTransform.matrix),s.tx/=e.width,s.ty/=e.height,s.invert(),s.scale(e.width/r,e.height/i),wf(t,2,0,s)}var Ef=new Sf,Df=class{constructor(){this.canBatch=!0,this.geometry=new of({indices:Ef.indices.slice(),positions:Ef.positions.slice(),uvs:Ef.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},Of=class{constructor(e){this._state=et.default2d,this._renderer=e,this._managedTilingSprites=new zi({renderer:e,type:`renderable`,name:`tilingSprite`})}validateRenderable(e){let t=this._getTilingSpriteData(e),n=t.canBatch;this._updateCanBatch(e);let r=t.canBatch;if(r&&r===n){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return n!==r}addRenderable(e,t){let n=this._renderer.renderPipes.batch;this._updateCanBatch(e);let r=this._getTilingSpriteData(e),{geometry:i,canBatch:a}=r;if(a){r.batchableMesh||=new sf;let a=r.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=i,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,n.addToBatch(a,t)}else n.break(t),r.shader||=new xf,this.updateRenderable(e),t.add(e)}execute(e){let t=this._renderer,{shader:n}=this._getTilingSpriteData(e);n.groups[0]=t.globalUniforms.bindGroup;let r=n.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=t._roundPixels|e._roundPixels,oi(e.groupColorAlpha,r.uColor,0),this._state.blendMode=hi(e.groupBlendMode,e.texture._source),t.encoder.draw({geometry:Ef,shader:n,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:n}=t;if(n){let{batchableMesh:n}=t;e.didViewUpdate&&this._updateBatchableMesh(e),n._batcher.updateElement(n)}else if(e.didViewUpdate){let{shader:n}=t;n.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Df;return t.renderable=e,e._gpuData[this._renderer.uid]=t,this._managedTilingSprites.add(e),t}_updateBatchableMesh(e){let{geometry:t}=this._getTilingSpriteData(e),n=e.texture.source.style;n.addressMode!==`repeat`&&(n.addressMode=`repeat`,n.update()),Tf(e,t.uvs),Cf(e,t.positions)}destroy(){this._managedTilingSprites.destroy(),this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),n=e.texture,r=!0;return this._renderer.type===P.WEBGL&&(r=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=n.textureMatrix.isSimple&&(r||n.source.isPowerOfTwo),t.canBatch}};Of.extension={type:[W.WebGLPipes,W.WebGPUPipes],name:`tilingSprite`},F.add(gf),F.add(Of);var kf=class e extends tt{constructor(...t){let r=t[0]||{};r instanceof h&&(r={texture:r}),t.length>1&&(y(n,`use new TilingSprite({ texture, width:100, height:100 }) instead`),r.width=t[1],r.height=t[2]),r={...e.defaultOptions,...r};let{texture:i,anchor:a,tilePosition:o,tileScale:s,tileRotation:c,width:l,height:u,applyAnchorToTexture:d,roundPixels:f,...p}=r??{};super({label:`TilingSprite`,...p}),this.renderPipeId=`tilingSprite`,this.batched=!0,this.allowChildren=!1,this._anchor=new ke({_onUpdate:()=>{this.onViewUpdate()}}),this.applyAnchorToTexture=d,this.texture=i,this._width=l??i.width,this._height=u??i.height,this._tileTransform=new ff({observer:{_onUpdate:()=>this.onViewUpdate()}}),a&&(this.anchor=a),this.tilePosition=o,this.tileScale=s,this.tileRotation=c,this.roundPixels=f??!1}static from(t,n={}){return typeof t==`string`?new e({texture:K.get(t),...n}):new e({texture:t,...n})}get uvRespectAnchor(){return y(n,`uvRespectAnchor is deprecated, please use applyAnchorToTexture instead`),this.applyAnchorToTexture}set uvRespectAnchor(e){y(n,`uvRespectAnchor is deprecated, please use applyAnchorToTexture instead`),this.applyAnchorToTexture=e}get clampMargin(){return this._texture.textureMatrix.clampMargin}set clampMargin(e){this._texture.textureMatrix.clampMargin=e}get anchor(){return this._anchor}set anchor(e){typeof e==`number`?this._anchor.set(e):this._anchor.copyFrom(e)}get tilePosition(){return this._tileTransform.position}set tilePosition(e){this._tileTransform.position.copyFrom(e)}get tileScale(){return this._tileTransform.scale}set tileScale(e){typeof e==`number`?this._tileTransform.scale.set(e):this._tileTransform.scale.copyFrom(e)}set tileRotation(e){this._tileTransform.rotation=e}get tileRotation(){return this._tileTransform.rotation}get tileTransform(){return this._tileTransform}set texture(e){e||=h.EMPTY;let t=this._texture;t!==e&&(t&&t.dynamic&&t.off(`update`,this.onViewUpdate,this),e.dynamic&&e.on(`update`,this.onViewUpdate,this),this._texture=e,this.onViewUpdate())}get texture(){return this._texture}set width(e){this._width=e,this.onViewUpdate()}get width(){return this._width}set height(e){this._height=e,this.onViewUpdate()}get height(){return this._height}setSize(e,t){typeof e==`object`&&(t=e.height??e.width,e=e.width),this._width=e,this._height=t??e,this.onViewUpdate()}getSize(e){return e||={},e.width=this._width,e.height=this._height,e}updateBounds(){let e=this._bounds,t=this._anchor,n=this._width,r=this._height;e.minX=-t._x*n,e.maxX=e.minX+n,e.minY=-t._y*r,e.maxY=e.minY+r}containsPoint(e){let t=this._width,n=this._height,r=-t*this._anchor._x,i=0;return e.x>=r&&e.x<=r+t&&(i=-n*this._anchor._y,e.y>=i&&e.y<=i+n)}destroy(e=!1){if(super.destroy(e),this._anchor=null,this._tileTransform=null,this._bounds=null,typeof e==`boolean`?e:e?.texture){let t=typeof e==`boolean`?e:e?.textureSource;this._texture.destroy(t)}this._texture=null}};kf.defaultOptions={texture:h.EMPTY,anchor:{x:0,y:0},tilePosition:{x:0,y:0},tileScale:{x:1,y:1},tileRotation:0,applyAnchorToTexture:!1};var Af=kf,jf=class extends tt{constructor(e,t){let{text:n,resolution:r,style:i,anchor:a,width:o,height:s,roundPixels:c,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=n??``,this.style=i,this.resolution=r??null,this.allowChildren=!1,this._anchor=new ke({_onUpdate:()=>{this.onViewUpdate()}}),a&&(this.anchor=a),this.roundPixels=c??!1,o!==void 0&&(this.width=o),s!==void 0&&(this.height=s)}get anchor(){return this._anchor}set anchor(e){typeof e==`number`?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||={},this._style?.off(`update`,this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on(`update`,this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||={},e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e==`object`?(t=e.height??e.width,e=e.width):t??=e,e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,n=this.bounds.height,r=-t*this.anchor.x,i=0;return e.x>=r&&e.x<=r+t&&(i=-n*this.anchor.y,e.y>=i&&e.y<=i+n)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e==`boolean`?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function Mf(e,t){let r=e[0]??{};return(typeof r==`string`||e[1])&&(y(n,`use new ${t}({ text: "hi!", style }) instead`),r={text:r,style:e[1]}),r}var Nf=null,Pf=null;function Ff(e,t){Nf||(Nf=r.get().createCanvas(256,128),Pf=Nf.getContext(`2d`,{willReadFrequently:!0}),Pf.globalCompositeOperation=`copy`,Pf.globalAlpha=1),(Nf.width<e||Nf.height<t)&&(Nf.width=u(e),Nf.height=u(t))}function If(e,t,n){for(let r=0,i=4*n*t;r<t;++r,i+=4)if(e[i+3]!==0)return!1;return!0}function Lf(e,t,n,r,i){let a=4*t;for(let t=r,o=r*a+4*n;t<=i;++t,o+=a)if(e[o+3]!==0)return!1;return!0}function Rf(...e){let t=e[0];t.canvas||(t={canvas:e[0],resolution:e[1]});let{canvas:n}=t,r=Math.min(t.resolution??1,1),i=t.width??n.width,a=t.height??n.height,o=t.output;if(Ff(i,a),!Pf)throw TypeError(`Failed to get canvas 2D context`);Pf.drawImage(n,0,0,i,a,0,0,i*r,a*r);let s=Pf.getImageData(0,0,i,a).data,c=0,l=0,u=i-1,d=a-1;for(;l<a&&If(s,i,l);)++l;if(l===a)return p.EMPTY;for(;If(s,i,d);)--d;for(;Lf(s,i,c,l,d);)++c;for(;Lf(s,i,u,l,d);)--u;return++u,++d,Pf.globalCompositeOperation=`source-over`,Pf.strokeRect(c,l,u-c,d-l),Pf.globalCompositeOperation=`copy`,o??=new p,o.set(c/r,l/r,(u-c)/r,(d-l)/r),o}var zf=new p;function Bf(e){let t=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===32&&t++;return t}var Vf=new class{getCanvasAndContext(e){let{text:t,style:n,resolution:r=1}=e,i=n._getFinalPadding(),a=q.measureText(t||` `,n),o=Math.ceil(Math.ceil(Math.max(1,a.width)+i*2)*r),s=Math.ceil(Math.ceil(Math.max(1,a.height)+i*2)*r),c=on.getOptimalCanvasAndContext(o,s);return this._renderTextToCanvas(n,i,r,c,a),{canvasAndContext:c,frame:n.trim?Rf({canvas:c.canvas,width:o,height:s,resolution:1,output:zf}):zf.set(0,0,o,s)}}returnCanvasAndContext(e){on.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,n,r,i){if(i.runsByLine&&i.runsByLine.length>0){this._renderTaggedTextToCanvas(i,e,t,n,r);return}let{canvas:a,context:o}=r,s=As(e),c=i.lines,l=i.lineHeight,u=i.lineWidths,d=i.maxLineWidth,f=i.fontProperties,p=a.height;if(o.resetTransform(),o.scale(n,n),o.textBaseline=e.textBaseline,e._stroke?.width){let t=e._stroke;o.lineWidth=t.width,o.miterLimit=t.miterLimit,o.lineJoin=t.join,o.lineCap=t.cap}o.font=s;let m,h,g=e.dropShadow?2:1,_=(e._stroke?.width??0)/2,v=(l-f.fontSize)/2;l-f.fontSize<0&&(v=0);for(let a=0;a<g;++a){let s=e.dropShadow&&a===0,g=s?Math.ceil(Math.max(1,p)+t*2):0,y=g*n;if(s)this._setupDropShadow(o,e,n,y);else{let n=e._gradientBounds,r=e._gradientOffset;if(n){let a={width:n.width,height:n.height,lineHeight:n.height,lines:i.lines};this._setFillAndStrokeStyles(o,e,a,t,_,r?.x??0,r?.y??0)}else r?this._setFillAndStrokeStyles(o,e,i,t,_,r.x,r.y):this._setFillAndStrokeStyles(o,e,i,t,_);o.shadowColor=`rgba(0,0,0,0)`}for(let n=0;n<c.length;n++){m=_,h=_+n*l+f.ascent+v,m+=this._getAlignmentOffset(u[n],d,e.align);let i=0;if(e.align===`justify`&&e.wordWrap&&n<c.length-1){let e=Bf(c[n]);e>0&&(i=(d-u[n])/e)}e._stroke?.width&&this._drawLetterSpacing(c[n],e,r,m+t,h+t-g,!0,i),e._fill!==void 0&&this._drawLetterSpacing(c[n],e,r,m+t,h+t-g,!1,i)}}}_renderTaggedTextToCanvas(e,t,n,r,i){let{canvas:a,context:o}=i,{runsByLine:s,lineWidths:c,maxLineWidth:l,lineAscents:u,lineHeights:d,hasDropShadow:f}=e,p=a.height;o.resetTransform(),o.scale(r,r),o.textBaseline=t.textBaseline;let m=f?2:1,h=t._stroke?.width??0;for(let e of s)for(let t of e){let e=t.style._stroke?.width??0;e>h&&(h=e)}let g=h/2,_=[];for(let e=0;e<s.length;e++){let t=s[e],n=[];for(let e of t){let t=As(e.style);o.font=t,n.push({width:q._measureText(e.text,e.style.letterSpacing,o),font:t})}_.push(n)}for(let e=0;e<m;++e){let a=f&&e===0,m=a?Math.ceil(Math.max(1,p)+n*2):0,h=m*r;a||(o.shadowColor=`rgba(0,0,0,0)`);let v=g;for(let e=0;e<s.length;e++){let f=s[e],p=c[e],y=u[e],b=d[e],x=_[e],S=g;S+=this._getAlignmentOffset(p,l,t.align);let C=0;if(t.align===`justify`&&t.wordWrap&&e<s.length-1){let e=0;for(let t of f)e+=Bf(t.text);e>0&&(C=(l-p)/e)}let w=v+y,T=S+n;for(let e=0;e<f.length;e++){let t=f[e],{width:s,font:c}=x[e];if(o.font=c,o.textBaseline=t.style.textBaseline,t.style._stroke?.width){let e=t.style._stroke;if(o.lineWidth=e.width,o.miterLimit=e.miterLimit,o.lineJoin=e.join,o.lineCap=e.cap,a)if(t.style.dropShadow)this._setupDropShadow(o,t.style,r,h);else{let e=Bf(t.text);T+=s+e*C;continue}else{let r=q.measureFont(c),i=t.style.lineHeight||r.fontSize;o.strokeStyle=Us(e,o,{width:s,height:i,lineHeight:i,lines:[t.text]},n*2,T-n,v)}this._drawLetterSpacing(t.text,t.style,i,T,w+n-m,!0,C)}let l=Bf(t.text);T+=s+l*C}T=S+n;for(let e=0;e<f.length;e++){let t=f[e],{width:s,font:c}=x[e];if(o.font=c,o.textBaseline=t.style.textBaseline,t.style._fill!==void 0){if(a)if(t.style.dropShadow)this._setupDropShadow(o,t.style,r,h);else{let e=Bf(t.text);T+=s+e*C;continue}else{let e=q.measureFont(c),r=t.style.lineHeight||e.fontSize,i={width:s,height:r,lineHeight:r,lines:[t.text]};o.fillStyle=Us(t.style._fill,o,i,n*2,T-n,v)}this._drawLetterSpacing(t.text,t.style,i,T,w+n-m,!1,C)}let l=Bf(t.text);T+=s+l*C}v+=b}}}_setFillAndStrokeStyles(e,t,n,r,i,a=0,o=0){if(e.fillStyle=t._fill?Us(t._fill,e,n,r*2,a,o):null,t._stroke?.width){let s=i+r*2;e.strokeStyle=Us(t._stroke,e,n,s,a,o)}}_setupDropShadow(e,t,n,r){e.fillStyle=`black`,e.strokeStyle=`black`;let i=t.dropShadow,a=i.color,o=i.alpha;e.shadowColor=N.shared.setValue(a).setAlpha(o).toRgbaString();let s=i.blur*n,c=i.distance*n;e.shadowBlur=s,e.shadowOffsetX=Math.cos(i.angle)*c,e.shadowOffsetY=Math.sin(i.angle)*c+r}_getAlignmentOffset(e,t,n){return n===`right`?t-e:n===`center`?(t-e)/2:0}_drawLetterSpacing(e,t,n,r,i,a=!1,o=0){let{context:s}=n,c=t.letterSpacing,l=!1;if(q.experimentalLetterSpacingSupported&&(q.experimentalLetterSpacing?(s.letterSpacing=`${c}px`,s.textLetterSpacing=`${c}px`,l=!0):(s.letterSpacing=`0px`,s.textLetterSpacing=`0px`)),(c===0||l)&&o===0){a?s.strokeText(e,r,i):s.fillText(e,r,i);return}if(o!==0&&(c===0||l)){let t=e.split(` `),n=r,c=s.measureText(` `).width;for(let e=0;e<t.length;e++)a?s.strokeText(t[e],n,i):s.fillText(t[e],n,i),n+=s.measureText(t[e]).width+c+o;return}let u=r,d=q.graphemeSegmenter(e),f=s.measureText(e).width,p=0;for(let e=0;e<d.length;++e){let t=d[e];a?s.strokeText(t,u,i):s.fillText(t,u,i);let n=``;for(let t=e+1;t<d.length;++t)n+=d[t];p=s.measureText(n).width,u+=f-p+c,t===` `&&(u+=o),f=p}}};function Hf(e,t){let{texture:n,bounds:r}=e,i=t._style._getFinalPadding();He(r,t._anchor,n);let a=t._anchor._x*i*2,o=t._anchor._y*i*2;r.minX-=i-a,r.minY-=i-o,r.maxX-=i-a,r.maxY-=i-o}var Uf=class extends Tr{},Wf=class{constructor(e){this._renderer=e,e.runners.resolutionChange.add(this),this._managedTexts=new zi({renderer:e,type:`renderable`,onUnload:this.onTextUnload.bind(this),name:`canvasText`})}resolutionChange(){for(let e in this._managedTexts.items){let t=this._managedTexts.items[e];t?._autoResolution&&t.onViewUpdate()}}validateRenderable(e){let t=this._getGpuText(e),n=e.styleKey;return t.currentKey===n?e._didTextUpdate:!0}addRenderable(e,t){let n=this._getGpuText(e);if(e._didTextUpdate){let t=e._autoResolution?this._renderer.resolution:e.resolution;(n.currentKey!==e.styleKey||e._resolution!==t)&&this._updateGpuText(e),e._didTextUpdate=!1,Hf(n,e)}this._renderer.renderPipes.batch.addToBatch(n,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=this._renderer.canvasText.getManagedTexture(e),t.currentKey=e.styleKey}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Uf;return t.currentKey=`--`,t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,this._managedTexts.add(e),t}onTextUnload(e){let t=e._gpuData[this._renderer.uid];if(!t)return;let{canvasText:n}=this._renderer;n.getReferenceCount(t.currentKey)>0?n.decreaseReferenceCount(t.currentKey):t.texture&&n.returnTexture(t.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};Wf.extension={type:[W.WebGLPipes,W.WebGPUPipes,W.CanvasPipes],name:`text`};var Gf=class{constructor(e,t){this._activeTextures={},this._renderer=e,this._retainCanvasContext=t}getTexture(e,t,n,r){typeof e==`string`&&(y(`8.0.0`,`CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments`),e={text:e,style:n,resolution:t}),e.style instanceof Bs||(e.style=new Bs(e.style)),e.textureStyle instanceof b||(e.textureStyle=new b(e.textureStyle)),typeof e.text!=`string`&&(e.text=e.text.toString());let{text:i,style:a,textureStyle:o,autoGenerateMipmaps:s}=e,c=e.resolution??this._renderer.resolution,{frame:l,canvasAndContext:u}=Vf.getCanvasAndContext({text:i,style:a,resolution:c}),d=Vt(u.canvas,l.width,l.height,c,s);if(o&&(d.source.style=o),a.trim&&(l.pad(a.padding),d.frame.copyFrom(l),d.frame.scale(1/c),d.updateUvs()),a.filters){let e=this._applyFilters(d,a.filters);return this.returnTexture(d),Vf.returnCanvasAndContext(u),e}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||Vf.returnCanvasAndContext(u),d}returnTexture(e){let t=e.source,n=t.resource;if(this._retainCanvasContext&&n?.getContext){let e=n.getContext(`2d`);e&&Vf.returnCanvasAndContext({canvas:n,context:e})}t.resource=null,t.uploadMethodId=`unknown`,t.alphaMode=`no-premultiply-alpha`,Ve.returnTexture(e,!0)}renderTextToCanvas(){y(`8.10.0`,`CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead`)}getManagedTexture(e){e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let t=e.styleKey;if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].texture;let n=this.getTexture({text:e.text,style:e.style,resolution:e._resolution,textureStyle:e.textureStyle,autoGenerateMipmaps:e.autoGenerateMipmaps});return this._activeTextures[t]={texture:n,usageCount:1},n}decreaseReferenceCount(e){let t=this._activeTextures[e];t&&(t.usageCount--,t.usageCount===0&&(this.returnTexture(t.texture),this._activeTextures[e]=null))}getReferenceCount(e){return this._activeTextures[e]?.usageCount??0}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}_applyFilters(e,t){let n=this._renderer.renderTarget.renderTarget,r=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(n,!1),r}destroy(){this._renderer=null;for(let e in this._activeTextures)this._activeTextures[e]&&this.returnTexture(this._activeTextures[e].texture);this._activeTextures=null}},Kf=class extends Gf{constructor(e){super(e,!0)}};Kf.extension={type:[W.CanvasSystem],name:`canvasText`};var qf=class extends Gf{constructor(e){super(e,!1)}};qf.extension={type:[W.WebGLSystem,W.WebGPUSystem],name:`canvasText`},F.add(Kf),F.add(qf),F.add(Wf);var Jf=class extends jf{constructor(...e){let t=Mf(e,`Text`);super(t,Bs),this.renderPipeId=`text`,t.textureStyle&&(this.textureStyle=t.textureStyle instanceof b?t.textureStyle:new b(t.textureStyle)),this.autoGenerateMipmaps=t.autoGenerateMipmaps??m.defaultOptions.autoGenerateMipmaps}updateBounds(){let e=this._bounds,t=this._anchor,n=0,r=0;if(this._style.trim){let{frame:e,canvasAndContext:t}=Vf.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Vf.returnCanvasAndContext(t),n=e.width,r=e.height}else{let e=q.measureText(this._text,this._style);n=e.width,r=e.height}e.minX=-t._x*n,e.maxX=e.minX+n,e.minY=-t._y*r,e.maxY=e.minY+r}},Yf=class extends rf{resolveQueueItem(e,t){return e instanceof G?this.resolveContainerQueueItem(e,t):e instanceof m||e instanceof h?t.push(e.source):e instanceof er&&t.push(e),null}resolveContainerQueueItem(e,t){e instanceof Ye||e instanceof Af||e instanceof uf?t.push(e.texture.source):e instanceof Jf?t.push(e):e instanceof ca?t.push(e.context):e instanceof df&&e.textures.forEach(e=>{e.source?t.push(e.source):t.push(e.texture.source)})}resolveGraphicsContextQueueItem(e){this.renderer.graphicsContext.getGpuContext(e);let{instructions:t}=e;for(let e of t)if(e.action===`texture`){let{image:t}=e.data;return t.source}else if(e.action===`fill`){let{texture:t}=e.data.style;return t.source}return null}},Xf=class extends ca{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Zf=class{constructor(e){this._renderer=e,this._managedBitmapTexts=new zi({renderer:e,type:`renderable`,priority:-2,name:`bitmapText`})}validateRenderable(e){let t=this._getGpuBitmapText(e);return this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let n=this._getGpuBitmapText(e);Qf(e,n),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,n)),this._renderer.renderPipes.graphics.addRenderable(n,t),n.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);Qf(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:n}=t,r=Ws.getFont(e.text,e._style);if(n.clear(),r.distanceField.type!==`none`){let e=this.getSdfShader();e&&(n.customShader||=e)}let i=q.graphemeSegmenter(e.text),a=e._style,o=r.baseLineOffset,s=Hs(i,a,r,!0),c=a.padding,l=s.scale,u=s.width,d=s.height+s.offsetY;a._stroke&&(u+=a._stroke.width/l,d+=a._stroke.width/l),n.translate(-e._anchor._x*u-c,-e._anchor._y*d-c).scale(l,l);let f=r.applyFillAsTint?a._fill.color:16777215,p=r.fontMetrics.fontSize,m=r.lineHeight;a.lineHeight&&(p=a.fontSize/l,m=a.lineHeight/l);let h=(m-p)/2;h-r.baseLineOffset<0&&(h=0);for(let e=0;e<s.lines.length;e++){let t=s.lines[e];for(let e=0;e<t.charPositions.length;e++){let i=t.chars[e],a=r.chars[i];if(a?.texture){let r=a.texture;n.texture(r,f,Math.round(t.charPositions[e]+a.xOffset),Math.round(o+a.yOffset+h),r.orig.width,r.orig.height)}}o+=m}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Xf;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),this._managedBitmapTexts.add(e),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,n=e._style.fontFamily,r=K.get(`${n}-bitmap`),{a:i,b:a,c:o,d:s}=e.groupTransform,c=Math.sqrt(i*i+a*a),l=Math.sqrt(o*o+s*s),u=(Math.abs(c)+Math.abs(l))/2,d=r.baseRenderedFontSize/e._style.fontSize,f=u*r.distanceField.range*(1/d);t.customShader.resources.localUniforms.uniforms.uDistance=f}destroy(){this._managedBitmapTexts.destroy(),this._renderer=null,this._managedBitmapTexts=null}};function Qf(e,t){t.groupTransform=e.groupTransform,t.groupColorAlpha=e.groupColorAlpha,t.groupColor=e.groupColor,t.groupBlendMode=e.groupBlendMode,t.globalDisplayStatus=e.globalDisplayStatus,t.groupTransform=e.groupTransform,t.localDisplayStatus=e.localDisplayStatus,t.groupAlpha=e.groupAlpha,t._roundPixels=e._roundPixels}var $f=class extends Zf{getSdfShader(){return null}};$f.extension={type:[W.CanvasPipes],name:`bitmapText`};var ep={name:`local-uniform-msdf-bit`,vertex:{header:`
2175
+ struct LocalUniforms {
2176
+ uColor:vec4<f32>,
2177
+ uTransformMatrix:mat3x3<f32>,
2178
+ uDistance: f32,
2179
+ uRound:f32,
2180
+ }
2181
+
2182
+ @group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
2183
+ `,main:`
2184
+ vColor *= localUniforms.uColor;
2185
+ modelMatrix *= localUniforms.uTransformMatrix;
2186
+ `,end:`
2187
+ if(localUniforms.uRound == 1)
2188
+ {
2189
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
2190
+ }
2191
+ `},fragment:{header:`
2192
+ struct LocalUniforms {
2193
+ uColor:vec4<f32>,
2194
+ uTransformMatrix:mat3x3<f32>,
2195
+ uDistance: f32
2196
+ }
2197
+
2198
+ @group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
2199
+ `,main:`
2200
+ outColor = vec4<f32>(calculateMSDFAlpha(outColor, vColor, localUniforms.uDistance));
2201
+ `}},tp={name:`local-uniform-msdf-bit`,vertex:{header:`
2202
+ uniform mat3 uTransformMatrix;
2203
+ uniform vec4 uColor;
2204
+ uniform float uRound;
2205
+ `,main:`
2206
+ vColor *= uColor;
2207
+ modelMatrix *= uTransformMatrix;
2208
+ `,end:`
2209
+ if(uRound == 1.)
2210
+ {
2211
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
2212
+ }
2213
+ `},fragment:{header:`
2214
+ uniform float uDistance;
2215
+ `,main:`
2216
+ outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
2217
+ `}},np={name:`msdf-bit`,fragment:{header:`
2218
+ fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
2219
+
2220
+ // MSDF
2221
+ var median = msdfColor.r + msdfColor.g + msdfColor.b -
2222
+ min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
2223
+ max(msdfColor.r, max(msdfColor.g, msdfColor.b));
2224
+
2225
+ // SDF
2226
+ median = min(median, msdfColor.a);
2227
+
2228
+ var screenPxDistance = distance * (median - 0.5);
2229
+ var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
2230
+ if (median < 0.01) {
2231
+ alpha = 0.0;
2232
+ } else if (median > 0.99) {
2233
+ alpha = 1.0;
2234
+ }
2235
+
2236
+ // Gamma correction for coverage-like alpha
2237
+ var luma: f32 = dot(shapeColor.rgb, vec3<f32>(0.299, 0.587, 0.114));
2238
+ var gamma: f32 = mix(1.0, 1.0 / 2.2, luma);
2239
+ var coverage: f32 = pow(shapeColor.a * alpha, gamma);
2240
+
2241
+ return coverage;
2242
+
2243
+ }
2244
+ `}},rp={name:`msdf-bit`,fragment:{header:`
2245
+ float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
2246
+
2247
+ // MSDF
2248
+ float median = msdfColor.r + msdfColor.g + msdfColor.b -
2249
+ min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
2250
+ max(msdfColor.r, max(msdfColor.g, msdfColor.b));
2251
+
2252
+ // SDF
2253
+ median = min(median, msdfColor.a);
2254
+
2255
+ float screenPxDistance = distance * (median - 0.5);
2256
+ float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
2257
+
2258
+ if (median < 0.01) {
2259
+ alpha = 0.0;
2260
+ } else if (median > 0.99) {
2261
+ alpha = 1.0;
2262
+ }
2263
+
2264
+ // Gamma correction for coverage-like alpha
2265
+ float luma = dot(shapeColor.rgb, vec3(0.299, 0.587, 0.114));
2266
+ float gamma = mix(1.0, 1.0 / 2.2, luma);
2267
+ float coverage = pow(shapeColor.a * alpha, gamma);
2268
+
2269
+ return coverage;
2270
+ }
2271
+ `}},ip,ap,op=class extends ce{constructor(e){let t=new pe({uColor:{value:new Float32Array([1,1,1,1]),type:`vec4<f32>`},uTransformMatrix:{value:new U,type:`mat3x3<f32>`},uDistance:{value:4,type:`f32`},uRound:{value:0,type:`f32`}});ip??=Ei({name:`sdf-shader`,bits:[Mi,Ri(e),ep,np,Si]}),ap??=Ti({name:`sdf-shader`,bits:[Bi,wi(e),tp,rp,Fi]}),super({glProgram:ap,gpuProgram:ip,resources:{localUniforms:t,batchSamplers:ki(e)}})}},sp=class extends Zf{getSdfShader(){return new op(this._renderer.limits.maxBatchableTextures)}};sp.extension={type:[W.WebGLPipes,W.WebGPUPipes],name:`bitmapText`},F.add($f),F.add(sp);var cp=class extends jf{constructor(...e){var t;let n=Mf(e,`BitmapText`);n.style??=n.style||{},(t=n.style).fill??(t.fill=16777215),super(n,Bs),this.renderPipeId=`bitmapText`}_onTouch(e){this._gcLastUsed=e;for(let t in this._gpuData)this._gpuData[t]?._onTouch(e)}updateBounds(){let e=this._bounds,t=this._anchor,n=Ws.measureText(this.text,this._style),r=n.scale,i=n.offsetY*r,a=n.width*r,o=n.height*r,s=this._style._stroke;s&&(a+=s.width,o+=s.width),e.minX=-t._x*a,e.maxX=e.minX+a,e.minY=-t._y*(o+i),e.maxY=e.minY+o}set resolution(e){e!==null&&D(`[BitmapText] dynamically updating the resolution is not supported. Resolution should be managed by the BitmapFont.`)}get resolution(){return this._resolution}};function lp(e){let t=e._stroke,n=e._fill,r=[`div { ${[`color: ${N.shared.setValue(n.color).setAlpha(n.alpha??1).toHexa()}`,`font-size: ${e.fontSize}px`,`font-family: ${e.fontFamily}`,`font-weight: ${e.fontWeight}`,`font-style: ${e.fontStyle}`,`font-variant: ${e.fontVariant}`,`letter-spacing: ${e.letterSpacing}px`,`text-align: ${e.align}`,`padding: ${e.padding}px`,`white-space: ${e.whiteSpace===`pre`&&e.wordWrap?`pre-wrap`:e.whiteSpace}`,...e.lineHeight?[`line-height: ${e.lineHeight}px`]:[],...e.wordWrap?[`word-break: ${e.breakWords?`break-word`:`normal`}`,`max-width: ${e.wordWrapWidth}px`]:[],...t?[dp(t)]:[],...e.dropShadow?[up(e.dropShadow)]:[],...e.cssOverrides].join(`;`)} }`];return mp(e.tagStyles,r),r.join(` `)}function up(e){let t={...e},n=N.shared.setValue(t.color).setAlpha(t.alpha??1).toHexa(),r=`${Math.round(Math.cos(t.angle)*t.distance)}px ${Math.round(Math.sin(t.angle)*t.distance)}px`;return t.blur>0?`text-shadow: ${r} ${t.blur}px ${n}`:`text-shadow: ${r} ${n}`}function dp(e){let t=N.shared.setValue(e.color).setAlpha(e.alpha??1).toHexa();return[`-webkit-text-stroke-width: ${e.width}px`,`-webkit-text-stroke-color: ${t}`,`text-stroke-width: ${e.width}px`,`text-stroke-color: ${t}`,`paint-order: stroke`].join(`;`)}var fp={fontSize:`font-size: {{VALUE}}px`,fontFamily:`font-family: {{VALUE}}`,fontWeight:`font-weight: {{VALUE}}`,fontStyle:`font-style: {{VALUE}}`,fontVariant:`font-variant: {{VALUE}}`,letterSpacing:`letter-spacing: {{VALUE}}px`,align:`text-align: {{VALUE}}`,padding:`padding: {{VALUE}}px`,whiteSpace:`white-space: {{VALUE}}`,lineHeight:`line-height: {{VALUE}}px`,wordWrapWidth:`max-width: {{VALUE}}px`},pp={fill:e=>`color: ${N.shared.setValue(e).toHexa()}`,breakWords:e=>`word-break: ${e?`break-all`:`normal`}`,stroke:dp,dropShadow:e=>e===!0?up(Bs.defaultDropShadow):e&&typeof e==`object`?up({...Bs.defaultDropShadow,...e}):``};function mp(e,t){for(let n in e){let r=e[n],i=[];for(let e in r)pp[e]?i.push(pp[e](r[e])):fp[e]&&i.push(fp[e].replace(`{{VALUE}}`,r[e]));t.push(`${n} { ${i.join(`;`)} }`)}}var hp=class e extends Bs{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}get tagStyles(){return this._tagStyles}set tagStyles(e){this._tagStyles!==e&&(this._tagStyles=e??{},this.update())}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new e({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||=lp(this),this._cssStyle}addOverride(...e){let t=e.filter(e=>!this.cssOverrides.includes(e));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(e=>this.cssOverrides.includes(e));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(e=>!t.includes(e)),this.update())}set fill(e){typeof e!=`string`&&typeof e!=`number`&&D(`[HTMLTextStyle] only color fill is not supported by HTMLText`),super.fill=e}set stroke(e){e&&typeof e!=`string`&&typeof e!=`number`&&D(`[HTMLTextStyle] only color stroke is not supported by HTMLText`),super.stroke=e}},gp=`http://www.w3.org/2000/svg`,_p=`http://www.w3.org/1999/xhtml`,vp=class{constructor(){this.svgRoot=document.createElementNS(gp,`svg`),this.foreignObject=document.createElementNS(gp,`foreignObject`),this.domElement=document.createElementNS(_p,`div`),this.styleElement=document.createElementNS(_p,`style`);let{foreignObject:e,svgRoot:t,styleElement:n,domElement:i}=this;e.setAttribute(`width`,`10000`),e.setAttribute(`height`,`10000`),e.style.overflow=`hidden`,t.appendChild(e),e.appendChild(n),e.appendChild(i),this.image=r.get().createImage()}destroy(){this.svgRoot.remove(),this.foreignObject.remove(),this.styleElement.remove(),this.domElement.remove(),this.image.src=``,this.image.remove(),this.svgRoot=null,this.foreignObject=null,this.styleElement=null,this.domElement=null,this.image=null,this.canvasAndContext=null}},yp;function bp(e,t,n,r){r||=yp||=new vp;let{domElement:i,styleElement:a,svgRoot:o}=r;i.innerHTML=`<style>${t.cssStyle};</style><div style='padding:0'>${e}</div>`,i.setAttribute(`style`,`transform-origin: top left; display: inline-block`),n&&(a.textContent=n),document.body.appendChild(o);let s=i.scrollWidth,c=i.scrollHeight;if(o.remove(),t.dropShadow){let{distance:e,angle:n,blur:r}=t.dropShadow,i=Math.abs(Math.round(Math.cos(n)*e)),a=Math.abs(Math.round(Math.sin(n)*e));s+=i+r,c+=a+r}let l=t.padding*2;return{width:s-l,height:c-l}}var xp=class extends Tr{constructor(){super(...arguments),this.generatingTexture=!1,this.currentKey=`--`}destroy(){this.texturePromise=null,this.generatingTexture=!1,this.currentKey=`--`,super.destroy()}},Sp=class{constructor(e){this._renderer=e,e.runners.resolutionChange.add(this),this._managedTexts=new zi({renderer:e,type:`renderable`,onUnload:this.onTextUnload.bind(this),name:`htmlText`})}resolutionChange(){for(let e in this._managedTexts.items){let t=this._managedTexts.items[e];t?._autoResolution&&t.onViewUpdate()}}validateRenderable(e){let t=this._getGpuText(e),n=e.styleKey;return t.currentKey!==n}addRenderable(e,t){let n=this._getGpuText(e);if(e._didTextUpdate){let t=e._autoResolution?this._renderer.resolution:e.resolution;(n.currentKey!==e.styleKey||e.resolution!==t)&&this._updateGpuText(e).catch(e=>{console.error(e)}),e._didTextUpdate=!1,Hf(n,e)}this._renderer.renderPipes.batch.addToBatch(n,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;let n=t.texturePromise;t.texturePromise=null,t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let r=this._renderer.htmlText.getTexturePromise(e);n&&(r=r.finally(()=>{this._renderer.htmlText.decreaseReferenceCount(t.currentKey),this._renderer.htmlText.returnTexturePromise(n)})),t.texturePromise=r,t.currentKey=e.styleKey,t.texture=await r;let i=e.renderGroup||e.parentRenderGroup;i&&(i.structureDidChange=!0),t.generatingTexture=!1,Hf(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new xp;return t.renderable=e,t.transform=e.groupTransform,t.texture=h.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,this._managedTexts.add(e),t}onTextUnload(e){let t=e._gpuData[this._renderer.uid];if(!t)return;let{htmlText:n}=this._renderer;n.getReferenceCount(t.currentKey)===null?n.returnTexturePromise(t.texturePromise):n.decreaseReferenceCount(t.currentKey)}destroy(){this._managedTexts.destroy(),this._renderer=null}};Sp.extension={type:[W.WebGLPipes,W.WebGPUPipes,W.CanvasPipes],name:`htmlText`};function Cp(e,t){let n=t.fontFamily,r=[],i={},a=e.match(/font-family:([^;"\s]+)/g);function o(e){i[e]||(r.push(e),i[e]=!0)}if(Array.isArray(n))for(let e=0;e<n.length;e++)o(n[e]);else o(n);a&&a.forEach(e=>{o(e.split(`:`)[1].trim())});for(let e in t.tagStyles){let n=t.tagStyles[e].fontFamily;o(n)}return r}async function wp(e){let t=await(await r.get().fetch(e)).blob(),n=new FileReader;return await new Promise((e,r)=>{n.onloadend=()=>e(n.result),n.onerror=r,n.readAsDataURL(t)})}async function Tp(e,t){let n=await wp(t);return`@font-face {
2272
+ font-family: "${e.fontFamily}";
2273
+ font-weight: ${e.fontWeight};
2274
+ font-style: ${e.fontStyle};
2275
+ src: url('${n}');
2276
+ }`}var Ep=new Map;async function Dp(e){let t=e.filter(e=>K.has(`${e}-and-url`)).map(e=>{if(!Ep.has(e)){let{entries:t}=K.get(`${e}-and-url`),n=[];t.forEach(t=>{let r=t.url,i=t.faces.map(e=>({weight:e.weight,style:e.style}));n.push(...i.map(t=>Tp({fontWeight:t.weight,fontStyle:t.style,fontFamily:e},r)))}),Ep.set(e,Promise.all(n).then(e=>e.join(`
2277
+ `)))}return Ep.get(e)});return(await Promise.all(t)).join(`
2278
+ `)}function Op(e,t,n,r,i){let{domElement:a,styleElement:o,svgRoot:s}=i;a.innerHTML=`<style>${t.cssStyle}</style><div style='padding:0;'>${e}</div>`,a.setAttribute(`style`,`transform: scale(${n});transform-origin: top left; display: inline-block`),o.textContent=r;let{width:c,height:l}=i.image;return s.setAttribute(`width`,c.toString()),s.setAttribute(`height`,l.toString()),new XMLSerializer().serializeToString(s)}function kp(e,t){let n=on.getOptimalCanvasAndContext(e.width,e.height,t),{context:r}=n;return r.clearRect(0,0,e.width,e.height),r.drawImage(e,0,0),n}function Ap(e,t,n){return new Promise(async r=>{n&&await new Promise(e=>setTimeout(e,100)),e.onload=()=>{r()},e.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(t)}`,e.crossOrigin=`anonymous`})}var jp=class{constructor(e){this._activeTextures={},this._renderer=e,this._createCanvas=e.type===P.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getManagedTexture(e){let t=e.styleKey;if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].promise;let n=this._buildTexturePromise(e).then(e=>(this._activeTextures[t].texture=e,e));return this._activeTextures[t]={texture:null,promise:n,usageCount:1},n}getReferenceCount(e){return this._activeTextures[e]?.usageCount??null}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){let t=this._activeTextures[e];t&&(t.usageCount--,t.usageCount===0&&(t.texture?this._cleanUp(t.texture):t.promise.then(e=>{t.texture=e,this._cleanUp(t.texture)}).catch(()=>{D(`HTMLTextSystem: Failed to clean texture`)}),this._activeTextures[e]=null))}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:n,resolution:r,textureStyle:i,autoGenerateMipmaps:a}=e,o=de.get(vp),s=Cp(t,n),c=await Dp(s),l=bp(t,n,c,o),u=Math.ceil(Math.ceil(Math.max(1,l.width)+n.padding*2)*r),d=Math.ceil(Math.ceil(Math.max(1,l.height)+n.padding*2)*r),f=o.image;f.width=(u|0)+2,f.height=(d|0)+2,await Ap(f,Op(t,n,r,c,o),Do()&&s.length>0);let p=f,m;this._createCanvas&&(m=kp(f,r));let h=Vt(m?m.canvas:p,f.width-2,f.height-2,r,a);return i&&(h.source.style=i),this._createCanvas&&(this._renderer.texture.initSource(h.source),on.returnCanvasAndContext(m)),de.return(o),h}returnTexturePromise(e){e.then(e=>{this._cleanUp(e)}).catch(()=>{D(`HTMLTextSystem: Failed to clean texture`)})}_cleanUp(e){Ve.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId=`unknown`}destroy(){this._renderer=null;for(let e in this._activeTextures)this._activeTextures[e]&&this.returnTexturePromise(this._activeTextures[e].promise);this._activeTextures=null}};jp.extension={type:[W.WebGLSystem,W.WebGPUSystem,W.CanvasSystem],name:`htmlText`},F.add(jp),F.add(Sp);var Mp=class extends jf{constructor(...e){let t=Mf(e,`HtmlText`);super(t,hp),this.renderPipeId=`htmlText`,t.textureStyle&&(this.textureStyle=t.textureStyle instanceof b?t.textureStyle:new b(t.textureStyle)),this.autoGenerateMipmaps=t.autoGenerateMipmaps??m.defaultOptions.autoGenerateMipmaps}updateBounds(){let e=this._bounds,t=this._anchor,{width:n,height:r}=bp(this.text,this._style);e.minX=-t._x*n,e.maxX=e.minX+n,e.minY=-t._y*r,e.maxY=e.minY+r}get text(){return this._text}set text(e){let t=this._sanitiseText(e.toString());super.text=t}_sanitiseText(e){return this._removeInvalidHtmlTags(e.replace(/<br>/gi,`<br/>`).replace(/<hr>/gi,`<hr/>`).replace(/&nbsp;/gi,`&#160;`))}_removeInvalidHtmlTags(e){return e.replace(/<[^>]*?(?=<|$)/g,``)}},Np=class extends Yf{uploadQueueItem(e){e instanceof m?this.uploadTextureSource(e):e instanceof Jf?this.uploadText(e):e instanceof Mp?this.uploadHTMLText(e):e instanceof cp?this.uploadBitmapText(e):e instanceof er&&this.uploadGraphicsContext(e)}uploadTextureSource(e){this.renderer.texture.initSource(e)}uploadText(e){this.renderer.renderPipes.text.initGpuText(e)}uploadBitmapText(e){this.renderer.renderPipes.bitmapText.initGpuText(e)}uploadHTMLText(e){this.renderer.renderPipes.htmlText.initGpuText(e)}uploadGraphicsContext(e){this.renderer.graphicsContext.getGpuContext(e);let{instructions:t}=e;for(let e of t)if(e.action===`texture`){let{image:t}=e.data;this.uploadTextureSource(t.source)}else if(e.action===`fill`){let{texture:t}=e.data.style;this.uploadTextureSource(t.source)}return null}},Pp=class extends Np{destroy(){super.destroy(),clearTimeout(this.timeout),this.renderer=null,this.queue=null,this.resolves=null}};Pp.extension={type:[W.WebGLSystem,W.WebGPUSystem],name:`prepare`};function Fp(e){let t=[],n=0;for(let r=0;r<e;r++)t[n]={texture:{sampleType:`float`,viewDimension:`2d`,multisampled:!1},binding:n,visibility:GPUShaderStage.FRAGMENT},n++,t[n]={sampler:{type:`filtering`},binding:n,visibility:GPUShaderStage.FRAGMENT},n++;return t}function Ip(e){let t={},n=0;for(let r=0;r<e;r++)t[`textureSource${r+1}`]=n++,t[`textureSampler${r+1}`]=n++;return t}function Lp(e){let t=e.split(/([\n{}])/g).map(e=>e.trim()).filter(e=>e.length),n=``;return t.map(e=>{let t=n+e;return e===`{`?n+=` `:e===`}`&&(n=n.substr(0,n.length-4),t=n+e),t}).join(`
2279
+ `)}var Rp=class{constructor(e){this.priority=0,this.pipe=`scissorMask`,this.mask=e,this.mask.renderable=!1,this.mask.measurable=!1}addBounds(e,t){Nt(this.mask,e,t)}addLocalBounds(e,t){$t(this.mask,e,t)}containsPoint(e,t){let n=this.mask;return t(n,e)}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}destroy(){this.reset()}};function zp(e){return e=e.replaceAll(`texture2D`,`texture`).replaceAll(`gl_FragColor`,`finalColor`).replaceAll(`varying`,`in`),e=`
2280
+ out vec4 finalColor;
2281
+ ${e}
2282
+ `,e}var Bp={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function Vp(e){return Bp[e]}var Hp={POINTS:`point-list`,LINES:`line-list`,LINE_STRIP:`line-strip`,TRIANGLES:`triangle-list`,TRIANGLE_STRIP:`triangle-strip`},Up=new Proxy(Hp,{get(e,t){return y(n,`DRAW_MODES.${t} is deprecated, use '${Hp[t]}' instead`),e[t]}}),Wp=(e=>(e.CLAMP=`clamp-to-edge`,e.REPEAT=`repeat`,e.MIRRORED_REPEAT=`mirror-repeat`,e))(Wp||{}),Gp=new Proxy(Wp,{get(e,t){return y(n,`DRAW_MODES.${t} is deprecated, use '${Wp[t]}' instead`),e[t]}}),Kp=(e=>(e.NEAREST=`nearest`,e.LINEAR=`linear`,e))(Kp||{}),qp=new Proxy(Kp,{get(e,t){return y(n,`DRAW_MODES.${t} is deprecated, use '${Kp[t]}' instead`),e[t]}}),Jp=class e extends m{constructor(t){let{faces:n,...r}=t;e._validateFaces(n);let i=n.right,a=i.resolution,o=i.format,s=i.alphaMode,c=[`resolution`,`format`,`alphaMode`,`dimensions`,`viewDimension`].filter(e=>r[e]!==void 0);c.length&&D(`[CubeTextureSource] Ignoring option(s) [${c.join(`, `)}]; these are derived from face sources.`),super({...r,resource:n,width:i.width,height:i.height,dimensions:`2d`,viewDimension:`cube`,arrayLayerCount:6,resolution:a,format:o,alphaMode:s}),this.uploadMethodId=`cube`,this.faces=n;for(let e of Object.keys(n)){let t=n[e];t.on(`update`,this._onFaceUpdate,this),t.on(`resize`,this._onFaceResize,this),t.on(`unload`,this._onFaceUpdate,this)}}destroy(){let e=this.faces;if(e)for(let t of Object.keys(e)){let n=e[t];n.off(`update`,this._onFaceUpdate,this),n.off(`resize`,this._onFaceResize,this),n.off(`unload`,this._onFaceUpdate,this)}super.destroy()}_onFaceUpdate(){this.emit(`update`,this)}_onFaceResize(t){e._validateFaces(this.faces),this.resize(t.width,t.height,t.resolution)}static _validateFaces(e){if(!e.right||!e.left||!e.top||!e.bottom||!e.front||!e.back)throw Error(`[CubeTextureSource] Requires { left, right, top, bottom, front, back } faces.`);let t=e.right,n=t.pixelWidth,r=t.pixelHeight,i=t.format,a=t.alphaMode,o=t.resolution;for(let t of Object.keys(e)){let s=e[t];if(s.pixelWidth!==n||s.pixelHeight!==r)throw Error(`[CubeTextureSource] Face '${String(t)}' has a different size. All faces must match.`);if(s.format!==i)throw Error(`[CubeTextureSource] Face '${String(t)}' has a different format. All faces must match.`);if(s.alphaMode!==a)throw Error(`[CubeTextureSource] Face '${String(t)}' has a different alphaMode. All faces must match.`);if(s.resolution!==o)throw Error(`[CubeTextureSource] Face '${String(t)}' has a different resolution. All faces must match.`)}}},Yp=[`left`,`right`,`top`,`bottom`,`front`,`back`];function Xp(e,t){let n=t?{...t}:{};delete n.label;let r=Object.keys(n).sort(),i=r.length?`|${r.map(e=>`${e}=${String(n[e])}`).join(`&`)}`:``;return`cube:${Yp.map(t=>e[t]).join(`,`)}${i}`}var Zp=class e extends ie{constructor(e){super(),this.uid=se(`cubeTexture`),this.destroyed=!1;let{label:t,source:n}=e;this.label=t,this.source=n,this.source.label=this.label??this.source.label}static from(t,n=!1){if(t instanceof Jp)return new e({source:t});let{faces:r,...i}=t,a=null,o=Yp.every(e=>typeof r[e]==`string`);if(!n&&o&&(a=Xp(r,i),K.has(a)))return K.get(a);let s=e=>e.isTexture?e:h.from(e),c={};for(let e of Yp)c[e]=s(r[e]).source;let l=new e({source:new Jp({...i,faces:c}),label:i.label});return a&&(K.set(a,l),l.once(`destroy`,()=>{K.has(a)&&K.remove(a)})),l}destroy(e=!1){this.destroyed||(this.destroyed=!0,e&&this.source.destroy(),this.emit(`destroy`,this),this.removeAllListeners())}},Qp=Object.create(null),$p=Object.create(null);function em(e){var t;if(e.type===P.WEBGPU)return $p[t=e.uid]||($p[t]=e.gpu.device.createTexture({label:`ExternalSource placeholder`,size:{width:1,height:1},format:`rgba8unorm`,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST})),$p[e.uid];if(!Qp[e.uid]){let t=e.gl,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),Qp[e.uid]=n}return Qp[e.uid]}var tm=class extends m{constructor({resource:e,renderer:t,label:n,width:r,height:i}){e||=em(t),r||=r??e?.width??1,i||=i??e?.height??1,super({resource:e,width:r,height:i,label:n,autoGarbageCollect:!1}),this._renderer=t,this._initGpuData(e)}static test(e){return globalThis.GPUTexture&&e instanceof GPUTexture||globalThis.WebGLTexture&&e instanceof WebGLTexture}_validateTexture(e){let t=this._renderer,n=!!t.gpu,r=globalThis.GPUTexture&&e instanceof GPUTexture,i=globalThis.WebGLTexture&&e instanceof WebGLTexture;if(n&&i)throw Error(`Cannot use WebGLTexture with a WebGPU renderer`);if(!n&&r)throw Error(`Cannot use GPUTexture with a WebGL renderer`);if(!n){let n=t.gl;if(n&&!n.isTexture(e))throw Error(`WebGLTexture does not belong to this renderer's WebGL context`)}}_initGpuData(e){let t=this._renderer;this._validateTexture(e),t.gpu?this._gpuData[t.uid]=new os(e):this._gpuData[t.uid]=new jo(e)}updateGPUTexture(e,t,n){let r=this._renderer,i=this._gpuData[r.uid];if(this.resource=e,r.gpu){this._validateTexture(e);let a=i;if(a.gpuTexture!==e){a.gpuTexture=e,a.textureView=null;let t=r.texture;t?._bindGroupHash&&(t._bindGroupHash[this.uid]=null)}let o=t??e.width,s=n??e.height;this.resize(o,s)}else{this._validateTexture(e);let r=i;r.texture=e,t!==void 0&&n!==void 0&&this.resize(t,n)}this.emit(`update`,this)}destroy(){let e=this._renderer;delete this._gpuData[e.uid],super.destroy()}},nm=class{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,n){let r=t.width,i=t.height;if(n){let t=e.width/2/r,a=e.height/2/i,o=e.x/r+t,s=e.y/i+a;n=d.add(n,d.NW),this.x0=o+t*d.uX(n),this.y0=s+a*d.uY(n),n=d.add(n,2),this.x1=o+t*d.uX(n),this.y1=s+a*d.uY(n),n=d.add(n,2),this.x2=o+t*d.uX(n),this.y2=s+a*d.uY(n),n=d.add(n,2),this.x3=o+t*d.uX(n),this.y3=s+a*d.uY(n)}else this.x0=e.x/r,this.y0=e.y/i,this.x1=(e.x+e.width)/r,this.y1=e.y/i,this.x2=(e.x+e.width)/r,this.y2=(e.y+e.height)/i,this.x3=e.x/r,this.y3=(e.y+e.height)/i;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}toString(){return`[pixi.js/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`}};function rm(e){let t=e.toString(),n=t.indexOf(`{`),r=t.lastIndexOf(`}`);if(n===-1||r===-1)throw Error(`getFunctionBody: No body found in function definition`);return t.slice(n+1,r).trim()}function im(e,t){return y(`8.7.0`,`Use container.getFastGlobalBounds() instead`),e.getFastGlobalBounds(!0,t)}var am=class extends tt{constructor(e){typeof e==`function`&&(e={render:e});let{render:t,...n}=e;super({label:`RenderContainer`,...n}),this.renderPipeId=`customRender`,this.batched=!1,t&&(this.render=t),this.containsPoint=e.containsPoint??(()=>!1),this.addBounds=e.addBounds??(()=>!1)}updateBounds(){this._bounds.clear(),this.addBounds(this._bounds)}render(e){}};function om(e,t,n){y(`8.7.0`,`Please use container.collectRenderables instead.`);let r=n.renderPipes?n:n.batch.renderer;return e.collectRenderables(t,r,null)}function sm(e,t){let n=t._scale,r=t._pivot,i=t._position,a=n._x,o=n._y,s=r._x,c=r._y;e.a=t._cx*a,e.b=t._sx*a,e.c=t._cy*o,e.d=t._sy*o,e.tx=i._x-(s*e.a+c*e.c),e.ty=i._y-(s*e.b+c*e.d)}function cm(e,t,n){let r=e.a,i=e.b,a=e.c,o=e.d,s=e.tx,c=e.ty,l=t.a,u=t.b,d=t.c,f=t.d;n.a=r*l+i*d,n.b=r*u+i*f,n.c=a*l+o*d,n.d=a*u+o*f,n.tx=s*l+c*d+t.tx,n.ty=s*u+c*f+t.ty}var lm=class{constructor(){this._gradients=[],this._nextId=0}addStyle(e){if(!(e.fill instanceof bn))return null;let t=`pixi-grad-${this._nextId++}`;return this._gradients.push({id:t,gradient:e.fill,textureSpace:e.textureSpace??`local`}),`url(#${t})`}build(){if(this._gradients.length===0)return``;let e=[`<defs>`];for(let{id:t,gradient:n,textureSpace:r}of this._gradients){let i=r===`global`?`userSpaceOnUse`:`objectBoundingBox`,a=um(n.colorStops);if(n.type===`radial`){let r=n.outerCenter?.x??.5,o=n.outerCenter?.y??.5,s=n.outerRadius??.5,c=n.center?.x??r,l=n.center?.y??o;e.push(`<radialGradient id="${t}" gradientUnits="${i}" cx="${r}" cy="${o}" r="${s}" fx="${c}" fy="${l}">`,a,`</radialGradient>`)}else{let r=n.start?.x??0,o=n.start?.y??0,s=n.end?.x??1,c=n.end?.y??0;e.push(`<linearGradient id="${t}" gradientUnits="${i}" x1="${r}" y1="${o}" x2="${s}" y2="${c}">`,a,`</linearGradient>`)}}return e.push(`</defs>`),e.join(``)}};function um(e){return e.map(e=>{let t=N.shared.setValue(e.color).toHex();return`<stop offset="${e.offset}" stop-color="${t}"/>`}).join(``)}var dm=Math.PI*2,fm=new Set([`regularPoly`,`roundPoly`,`roundShape`,`filletRect`,`chamferRect`,`arcTo`]);function pm(e,t=2,n=!1){if(e.instructions.some(e=>fm.has(e.action)))return xm(e,t,n);let r=[],i=!1;for(let a=0;a<e.instructions.length;a++){let o=e.instructions[a],s=o.data;switch(o.action){case`moveTo`:r.push(`M${$(s[0],s[1],null,t)}`),i=!0;break;case`lineTo`:r.push(`L${$(s[0],s[1],null,t)}`),i=!0;break;case`quadraticCurveTo`:r.push(`Q${$(s[0],s[1],null,t)} ${$(s[2],s[3],null,t)}`),i=!0;break;case`bezierCurveTo`:r.push(`C${$(s[0],s[1],null,t)} ${$(s[2],s[3],null,t)} ${$(s[4],s[5],null,t)}`),i=!0;break;case`arcToSvg`:r.push(`A${Q(s[0],t)} ${Q(s[1],t)} ${Q(s[2],t)} ${s[3]} ${s[4]} ${$(s[5],s[6],null,t)}`),i=!0;break;case`closePath`:r.push(`Z`),i=!1;break;case`arc`:r.push(hm(s[0],s[1],s[2],s[3],s[4],!!s[5],i,t,n)),i=!mm(s[3],s[4],!!s[5]);break;case`rect`:r.push(_m(s[0],s[1],s[2],s[3],s[4],t)),i=!1;break;case`circle`:r.push(gm(s[0],s[1],s[2],s[2],s[3],t,n)),i=!1;break;case`ellipse`:r.push(gm(s[0],s[1],s[2],s[3],s[4],t,n)),i=!1;break;case`roundRect`:r.push(vm(s[0],s[1],s[2],s[3],s[4]??0,s[5],t,n)),i=!1;break;case`poly`:r.push(ym(s[0],s[1]??!0,s[2],t)),i=!(s[1]??!0);break;case`addPath`:r.push(bm(s[0],s[1],t,n)),i=!0;break}}return r.join(``)}function mm(e,t,n){let r=t-e;return n?r>0&&(r-=dm):r<0&&(r+=dm),Math.abs(r)>=dm-1e-6}function Q(e,t){return parseFloat(e.toFixed(t)).toString()}function $(e,t,n,r){if(n&&!n.isIdentity()){let i=n.a*e+n.c*t+n.tx,a=n.b*e+n.d*t+n.ty;return`${Q(i,r)} ${Q(a,r)}`}return`${Q(e,r)} ${Q(t,r)}`}function hm(e,t,n,r,i,a,o,s,c=!1){let l=i-r;if(a?l>0&&(l-=dm):l<0&&(l+=dm),Math.abs(l)>=dm-1e-6)return gm(e,t,n,n,null,s,c);if(c){let i=[];for(let a=0;a<=32;a++){let c=r+a/32*l,u=e+n*Math.cos(c),d=t+n*Math.sin(c),f=a===0?o?`L`:`M`:`L`;i.push(`${f}${Q(u,s)} ${Q(d,s)}`)}return i.join(``)}let u=e+n*Math.cos(r),d=t+n*Math.sin(r),f=e+n*Math.cos(i),p=t+n*Math.sin(i),m=+(Math.abs(l)>Math.PI),h=+!a;return`${o?`L`:`M`}${Q(u,s)} ${Q(d,s)}A${Q(n,s)} ${Q(n,s)} 0 ${m} ${h} ${Q(f,s)} ${Q(p,s)}`}function gm(e,t,n,r,i,a,o=!1){let s=i&&!i.isIdentity()?i:null;if(!s&&!o)return`M${Q(e-n,a)} ${Q(t,a)}A${Q(n,a)} ${Q(r,a)} 0 1 1 ${Q(e+n,a)} ${Q(t,a)}A${Q(n,a)} ${Q(r,a)} 0 1 1 ${Q(e-n,a)} ${Q(t,a)}Z`;let c=[];for(let i=0;i<64;i++){let o=i/64*dm,l=e+n*Math.cos(o),u=t+r*Math.sin(o);c.push(`${i===0?`M`:`L`}${$(l,u,s,a)}`)}return c.push(`Z`),c.join(``)}function _m(e,t,n,r,i,a){return`M${$(e,t,i,a)}L${$(e+n,t,i,a)}L${$(e+n,t+r,i,a)}L${$(e,t+r,i,a)}Z`}function vm(e,t,n,r,i,a,o,s=!1){let c=a&&!a.isIdentity()?a:null;if(i<=0)return _m(e,t,n,r,c,o);if(i=Math.min(i,Math.min(n,r)/2),c||s){let a=[],s=[[e+n-i,t+i,-Math.PI/2],[e+n-i,t+r-i,0],[e+i,t+r-i,Math.PI/2],[e+i,t+i,Math.PI]],l=!0;for(let e=0;e<s.length;e++){let[t,n,r]=s[e];for(let e=0;e<=8;e++){let s=r+e/8*(Math.PI/2),u=t+i*Math.cos(s),d=n+i*Math.sin(s);a.push(`${l?`M`:`L`}${$(u,d,c,o)}`),l=!1}}return a.push(`Z`),a.join(``)}return`M${Q(e+i,o)} ${Q(t,o)}L${Q(e+n-i,o)} ${Q(t,o)}A${Q(i,o)} ${Q(i,o)} 0 0 1 ${Q(e+n,o)} ${Q(t+i,o)}L${Q(e+n,o)} ${Q(t+r-i,o)}A${Q(i,o)} ${Q(i,o)} 0 0 1 ${Q(e+n-i,o)} ${Q(t+r,o)}L${Q(e+i,o)} ${Q(t+r,o)}A${Q(i,o)} ${Q(i,o)} 0 0 1 ${Q(e,o)} ${Q(t+r-i,o)}L${Q(e,o)} ${Q(t+i,o)}A${Q(i,o)} ${Q(i,o)} 0 0 1 ${Q(e+i,o)} ${Q(t,o)}Z`}function ym(e,t,n,r){if(e.length===0)return``;let i=[];if(typeof e[0]==`number`){let t=e;i.push(`M${$(t[0],t[1],n,r)}`);for(let e=2;e<t.length;e+=2)i.push(`L${$(t[e],t[e+1],n,r)}`)}else{let t=e;i.push(`M${$(t[0].x,t[0].y,n,r)}`);for(let e=1;e<t.length;e++)i.push(`L${$(t[e].x,t[e].y,n,r)}`)}return t&&i.push(`Z`),i.join(``)}function bm(e,t,n,r){return!t||t.isIdentity()?pm(e,n,r):pm(e.clone(!0).transform(t),n,r)}function xm(e,t,n){let r=e.shapePath.shapePrimitives,i=[];for(let e of r){let r=e.shape,a=e.transform;switch(r.type){case`polygon`:{let e=r;i.push(ym(e.points,e.closePath,a,t));break}case`circle`:{let e=r;i.push(gm(e.x,e.y,e.radius,e.radius,a,t,n));break}case`ellipse`:{let e=r;i.push(gm(e.x,e.y,e.halfWidth,e.halfHeight,a,t,n));break}case`rectangle`:{let e=r;i.push(_m(e.x,e.y,e.width,e.height,a,t));break}case`roundedRectangle`:{let e=r;i.push(vm(e.x,e.y,e.width,e.height,e.radius,a,t,n));break}}}return i.join(``)}function Sm(e,t){let n=t.addStyle(e),r=[];return n?r.push(`fill="${n}"`):r.push(`fill="${N.shared.setValue(e.color).toHex()}"`),e.alpha<1&&r.push(`fill-opacity="${e.alpha}"`),r.join(` `)}function Cm(e,t){let n=t.addStyle(e),r=[];return r.push(`fill="none"`),n?r.push(`stroke="${n}"`):r.push(`stroke="${N.shared.setValue(e.color).toHex()}"`),r.push(`stroke-width="${e.width}"`),e.cap!==`butt`&&r.push(`stroke-linecap="${e.cap}"`),e.join===`miter`?e.miterLimit!==10&&r.push(`stroke-miterlimit="${e.miterLimit}"`):r.push(`stroke-linejoin="${e.join}"`),e.alpha<1&&r.push(`stroke-opacity="${e.alpha}"`),r.join(` `)}function wm(e,t=2){let n=e instanceof er?e:e.context,r=new lm,i=[],a=n.instructions,o=0;for(;o<a.length;){let e=a[o];switch(e.action){case`fill`:{let n=e,a=!!n.data.hole,o=a?pm(n.data.path,t)+pm(n.data.hole,t,!0):pm(n.data.path,t),s=Sm(n.data.style,r),c=a?` fill-rule="evenodd"`:``;i.push(`<path d="${o}" ${s}${c}/>`);break}case`stroke`:{let n=e,a=pm(n.data.path,t);n.data.hole&&(a+=pm(n.data.hole,t,!0));let o=Cm(n.data.style,r);i.push(`<path d="${a}" ${o}/>`);break}case`texture`:break}o++}let s=n.bounds,c=parseFloat(s.minX.toFixed(t)),l=parseFloat(s.minY.toFixed(t)),u=parseFloat((s.maxX-s.minX).toFixed(t)),d=parseFloat((s.maxY-s.minY).toFixed(t));return`<svg xmlns="http://www.w3.org/2000/svg" width="${u}" height="${d}" viewBox="${c} ${l} ${u} ${d}">${r.build()}${i.join(``)}</svg>`}function Tm(e){e instanceof Pn&&(e={path:e,textureMatrix:null,out:null});let t=[],n=[],r=[],i=e.path.shapePath,a=e.textureMatrix;i.shapePrimitives.forEach(({shape:e,transform:i})=>{let o=r.length,s=t.length/2,c=[],l=cn[e.type];l.build(e,c),i&&vn(c,i),l.triangulate(c,t,2,s,r,o);let u=n.length/2;a?(i&&a.append(i.clone().invert()),_n(t,2,s,n,u,2,t.length/2-s,a)):Zn(n,u,2,t.length/2-s)});let o=e.out;return o?(o.positions=new Float32Array(t),o.uvs=new Float32Array(n),o.indices=new Uint32Array(r),o):new of({positions:new Float32Array(t),uvs:new Float32Array(n),indices:new Uint32Array(r)})}var Em=class e extends G{constructor(t={}){t={...e.defaultOptions,...t},super(),this.renderLayerChildren=[],this.sortableChildren=t.sortableChildren,this.sortFunction=t.sortFunction}attach(...e){for(let t=0;t<e.length;t++){let n=e[t];if(n.parentRenderLayer){if(n.parentRenderLayer===this)continue;n.parentRenderLayer.detach(n)}this.renderLayerChildren.push(n),n.parentRenderLayer=this;let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)}return e[0]}detach(...e){for(let t=0;t<e.length;t++){let n=e[t],r=this.renderLayerChildren.indexOf(n);r!==-1&&this.renderLayerChildren.splice(r,1),n.parentRenderLayer=null;let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)}return e[0]}detachAll(){let e=this.renderLayerChildren;for(let t=0;t<e.length;t++)e[t].parentRenderLayer=null;this.renderLayerChildren.length=0}collectRenderables(e,t,n){let r=this.renderLayerChildren,i=r.length;this.sortableChildren&&this.sortRenderLayerChildren();for(let n=0;n<i;n++)r[n].parent||D(`Container must be added to both layer and scene graph. Layers only handle render order - the scene graph is required for transforms (addChild)`,r[n]),r[n].collectRenderables(e,t,this)}sortRenderLayerChildren(){this.renderLayerChildren.sort(this.sortFunction)}_getGlobalBoundsRecursive(e,t,n){if(!e)return;let r=this.renderLayerChildren;for(let e=0;e<r.length;e++)r[e]._getGlobalBoundsRecursive(!0,t,this)}getFastGlobalBounds(e,t){return super.getFastGlobalBounds(e,t)}addChild(...e){throw Error(`RenderLayer.addChild() is not available. Please use RenderLayer.attach()`)}removeChild(...e){throw Error(`RenderLayer.removeChild() is not available. Please use RenderLayer.detach()`)}removeChildren(e,t){throw Error(`RenderLayer.removeChildren() is not available. Please use RenderLayer.detach()`)}removeChildAt(e){throw Error(`RenderLayer.removeChildAt() is not available`)}getChildAt(e){throw Error(`RenderLayer.getChildAt() is not available`)}setChildIndex(e,t){throw Error(`RenderLayer.setChildIndex() is not available`)}getChildIndex(e){throw Error(`RenderLayer.getChildIndex() is not available`)}addChildAt(e,t){throw Error(`RenderLayer.addChildAt() is not available`)}swapChildren(e,t){throw Error(`RenderLayer.swapChildren() is not available`)}reparentChild(...e){throw Error(`RenderLayer.reparentChild() is not available with the render layer`)}reparentChildAt(e,t){throw Error(`RenderLayer.reparentChildAt() is not available with the render layer`)}};Em.defaultOptions={sortableChildren:!1,sortFunction:(e,t)=>e.zIndex-t.zIndex};var Dm=Em,Om=class e extends of{constructor(...e){super({});let t=e[0]??{};typeof t==`number`&&(y(n,`PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead`),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(t){t={...e.defaultOptions,...t},this.verticesX=this.verticesX??t.verticesX,this.verticesY=this.verticesY??t.verticesY,this.width=this.width??t.width,this.height=this.height??t.height;let n=this.verticesX*this.verticesY,r=[],i=[],a=[],o=this.verticesX-1,s=this.verticesY-1,c=this.width/o,l=this.height/s;for(let e=0;e<n;e++){let t=e%this.verticesX,n=e/this.verticesX|0;r.push(t*c,n*l),i.push(t/o,n/s)}let u=o*s;for(let e=0;e<u;e++){let t=e%o,n=e/o|0,r=n*this.verticesX+t,i=n*this.verticesX+t+1,s=(n+1)*this.verticesX+t,c=(n+1)*this.verticesX+t+1;a.push(r,i,s,i,c,s)}this.buffers[0].data=new Float32Array(r),this.buffers[1].data=new Float32Array(i),this.indexBuffer.data=new Uint32Array(a),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};Om.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};var km=Om;function Am(e,t,n,r){let i=n.buffers[0],a=i.data,{verticesX:o,verticesY:s}=n,c=e/(o-1),l=t/(s-1),u=0,d=r[0],f=r[1],p=r[2],m=r[3],h=r[4],g=r[5],_=r[6],v=r[7],y=r[8];for(let e=0;e<a.length;e+=2){let t=u%o*c,n=(u/o|0)*l,r=d*t+f*n+p,i=m*t+h*n+g,s=_*t+v*n+y;a[e]=r/s,a[e+1]=i/s,u++}i.update()}function jm(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8];return e[0]=o*u-s*l,e[1]=i*l-r*u,e[2]=r*s-i*o,e[3]=s*c-a*u,e[4]=n*u-i*c,e[5]=i*a-n*s,e[6]=a*l-o*c,e[7]=r*c-n*l,e[8]=n*o-r*a,e}function Mm(e,t,n){let r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=n[0],p=n[1],m=n[2],h=n[3],g=n[4],_=n[5],v=n[6],y=n[7],b=n[8];return e[0]=f*r+p*o+m*l,e[1]=f*i+p*s+m*u,e[2]=f*a+p*c+m*d,e[3]=h*r+g*o+_*l,e[4]=h*i+g*s+_*u,e[5]=h*a+g*c+_*d,e[6]=v*r+y*o+b*l,e[7]=v*i+y*s+b*u,e[8]=v*a+y*c+b*d,e}function Nm(e,t,n){let r=n[0],i=n[1],a=n[2];return e[0]=t[0]*r+t[1]*i+t[2]*a,e[1]=t[3]*r+t[4]*i+t[5]*a,e[2]=t[6]*r+t[7]*i+t[8]*a,e}var Pm=[0,0,0,0,0,0,0,0,0],Fm=[0,0,0],Im=[0,0,0];function Lm(e,t,n,r,i,a,o,s,c){let l=Pm;l[0]=t,l[1]=r,l[2]=a,l[3]=n,l[4]=i,l[5]=o,l[6]=1,l[7]=1,l[8]=1;let u=jm(e,l);Im[0]=s,Im[1]=c,Im[2]=1;let d=Nm(Fm,u,Im),f=e;return e[0]=d[0],e[1]=0,e[2]=0,e[3]=0,e[4]=d[1],e[5]=0,e[6]=0,e[7]=0,e[8]=d[2],Mm(e,f,l)}var Rm=[0,0,0,0,0,0,0,0,0],zm=[0,0,0,0,0,0,0,0,0];function Bm(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){let _=Lm(Rm,t,n,a,o,l,u,p,m),v=Lm(zm,r,i,s,c,d,f,h,g);return Mm(e,jm(_,_),v)}var Vm=class extends km{constructor(e){super(e),this._projectionMatrix=[0,0,0,0,0,0,0,0,0];let{width:t,height:n}=e;this.corners=[0,0,t,0,t,n,0,n]}setCorners(e,t,n,r,i,a,o,s){let c=this.corners;c[0]=e,c[1]=t,c[2]=n,c[3]=r,c[4]=i,c[5]=a,c[6]=o,c[7]=s,this.updateProjection()}updateProjection(){let{width:e,height:t}=this,n=this.corners,r=Bm(this._projectionMatrix,0,0,n[0],n[1],e,0,n[2],n[3],e,t,n[4],n[5],0,t,n[6],n[7]);Am(e,t,this,r)}},Hm=class e extends uf{constructor(t){t={...e.defaultOptions,...t};let{texture:n,verticesX:r,verticesY:i,...a}=t,o=new Vm(Se({width:n.width,height:n.height,verticesX:r,verticesY:i}));super(Se({...a,geometry:o})),this._texture=n,this.geometry.setCorners(t.x0,t.y0,t.x1,t.y1,t.x2,t.y2,t.x3,t.y3)}textureUpdated(){let e=this.geometry;if(!e)return;let{width:t,height:n}=this.texture;(e.width!==t||e.height!==n)&&(e.width=t,e.height=n,e.updateProjection())}set texture(e){this._texture!==e&&(super.texture=e,this.textureUpdated())}get texture(){return this._texture}setCorners(e,t,n,r,i,a,o,s){this.geometry.setCorners(e,t,n,r,i,a,o,s)}};Hm.defaultOptions={texture:h.WHITE,verticesX:10,verticesY:10,x0:0,y0:0,x1:100,y1:0,x2:100,y2:100,x3:0,y3:100};var Um=Hm,Wm=class extends uf{constructor(e){let{texture:t,verticesX:n,verticesY:r,...i}=e,a=new km(Se({width:t.width,height:t.height,verticesX:n,verticesY:r}));super(Se({...i,geometry:a,texture:t})),this.texture=t,this.autoResize=!0}textureUpdated(){let e=this.geometry,{width:t,height:n}=this.texture;this.autoResize&&(e.width!==t||e.height!==n)&&(e.width=t,e.height=n,e.build({}))}set texture(e){this._texture?.off(`update`,this.textureUpdated,this),super.texture=e,e.on(`update`,this.textureUpdated,this),this.textureUpdated()}get texture(){return this._texture}destroy(e){this.texture.off(`update`,this.textureUpdated,this),super.destroy(e)}},Gm=class e extends of{constructor(t){let{width:n,points:r,textureScale:i}={...e.defaultOptions,...t};super({positions:new Float32Array(r.length*4),uvs:new Float32Array(r.length*4),indices:new Uint32Array((r.length-1)*6)}),this.points=r,this._width=n,this.textureScale=i,this._build()}get width(){return this._width}_build(){let e=this.points;if(!e)return;let t=this.getBuffer(`aPosition`),n=this.getBuffer(`aUV`),r=this.getIndex();if(e.length<1)return;t.data.length/4!==e.length&&(t.data=new Float32Array(e.length*4),n.data=new Float32Array(e.length*4),r.data=new Uint16Array((e.length-1)*6));let i=n.data,a=r.data;i[0]=0,i[1]=0,i[2]=0,i[3]=1;let o=0,s=e[0],c=this._width*this.textureScale,l=e.length;for(let t=0;t<l;t++){let n=t*4;if(this.textureScale>0){let n=s.x-e[t].x,r=s.y-e[t].y,i=Math.sqrt(n*n+r*r);s=e[t],o+=i/c}else o=t/(l-1);i[n]=o,i[n+1]=0,i[n+2]=o,i[n+3]=1}let u=0;for(let e=0;e<l-1;e++){let t=e*2;a[u++]=t,a[u++]=t+1,a[u++]=t+2,a[u++]=t+2,a[u++]=t+1,a[u++]=t+3}n.update(),r.update(),this.updateVertices()}updateVertices(){let e=this.points;if(e.length<1)return;let t=e[0],n,r=0,i=0,a=this.buffers[0].data,o=e.length,s=this.textureScale>0?this.textureScale*this._width/2:this._width/2;for(let c=0;c<o;c++){let l=e[c],u=c*4;n=c<e.length-1?e[c+1]:l,i=-(n.x-t.x),r=n.y-t.y;let d=(1-c/(o-1))*10;d>1&&(d=1);let f=Math.sqrt(r*r+i*i);f<1e-6?(r=0,i=0):(r/=f,i/=f,r*=s,i*=s),a[u]=l.x+r,a[u+1]=l.y+i,a[u+2]=l.x-r,a[u+3]=l.y-i,t=l}this.buffers[0].update()}update(){this.textureScale>0?this._build():this.updateVertices()}};Gm.defaultOptions={width:200,points:[],textureScale:0};var Km=Gm,qm=class e extends uf{constructor(t){let{width:n,texture:r,points:i,textureScale:a,...o}={...e.defaultOptions,...t},s=new Km(Se({width:n??r.height,points:i,textureScale:a}));a>0&&(r.source.style.addressMode=`repeat`),super(Se({...o,texture:r,geometry:s})),this.autoUpdate=!0,this.onRender=this._render}_render(){let e=this.geometry;(this.autoUpdate||e._width!==this.texture.height)&&(e._width=this.texture.height,e.update())}};qm.defaultOptions={textureScale:0};var Jm=qm,Ym=class extends uf{constructor(e){let{texture:t,vertices:n,uvs:r,indices:i,topology:a,...o}=e,s=new of(Se({positions:n,uvs:r,indices:i,topology:a}));super(Se({...o,texture:t,geometry:s})),this.autoUpdate=!0,this.onRender=this._render}get vertices(){return this.geometry.getBuffer(`aPosition`).data}set vertices(e){this.geometry.getBuffer(`aPosition`).data=e}_render(){this.autoUpdate&&this.geometry.getBuffer(`aPosition`).update()}};function Xm(e,t){let{width:n,height:r}=e.frame;return t.scale(1/n,1/r),t}var Zm=class{execute(e,t){let n=e.renderer,r=n.canvasContext.activeContext,i=t.particleChildren,a=t.texture;r.save(),n.canvasContext.setContextTransform(t.worldTransform,t.roundPixels),n.canvasContext.setBlendMode(t.groupBlendMode);let o=t.groupColorAlpha,s=n.filter?.alphaMultiplier??1,c=(o>>>24&255)/255*s;for(let e=0;e<i.length;e++){let t=i[e],n=t.texture||a;if(!n?.source?.resource)continue;let o=t.color,s=(o>>>24&255)/255*c;if(s<=0)continue;let l=o&16777215,u=((l&255)<<16)+(l&65280)+(l>>16&255),d=n.source.resource;u!==16777215&&(d=rn.getTintedCanvas({texture:n},u));let f=n.frame,p=n.source.resolution,m=f.x*p,h=f.y*p,g=f.width*p,_=f.height*p;r.globalAlpha=s;let v=-t.anchorX*f.width,y=-t.anchorY*f.height;t.rotation!==0||t.scaleX!==1||t.scaleY!==1?(r.save(),r.translate(t.x,t.y),r.rotate(t.rotation),r.scale(t.scaleX,t.scaleY),r.drawImage(d,m,h,g,_,v,y,f.width,f.height),r.restore()):r.drawImage(d,m,h,g,_,t.x+v,t.y+y,f.width,f.height)}r.restore()}};function Qm(e,t=null){let n=e*6;if(n>65535?t||=new Uint32Array(n):t||=new Uint16Array(n),t.length!==n)throw Error(`Out buffer length is incorrect, got ${t.length} and expected ${n}`);for(let e=0,r=0;e<n;e+=6,r+=4)t[e+0]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3;return t}function $m(e){return{dynamicUpdate:eh(e,!0),staticUpdate:eh(e,!1)}}function eh(e,t){let n=[];n.push(`
2283
+
2284
+ var index = 0;
2285
+
2286
+ for (let i = 0; i < ps.length; ++i)
2287
+ {
2288
+ const p = ps[i];
2289
+
2290
+ `);let r=0;for(let i in e){let a=e[i];if(t!==a.dynamic)continue;n.push(`offset = index + ${r}`),n.push(a.code);let o=j(a.format);r+=o.stride/4}n.push(`
2291
+ index += stride * 4;
2292
+ }
2293
+ `),n.unshift(`
2294
+ var stride = ${r};
2295
+ `);let i=n.join(`
2296
+ `);return Function(`ps`,`f32v`,`u32v`,i)}var th=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,n=e.properties,r=0,i=0;for(let e in n){let t=n[e],a=j(t.format);t.dynamic?i+=a.stride:r+=a.stride}this._dynamicStride=i/4,this._staticStride=r/4,this.staticAttributeBuffer=new pi(t*4*r),this.dynamicAttributeBuffer=new pi(t*4*i),this.indexBuffer=Qm(t);let a=new he,o=0,s=0;this._staticBuffer=new B({data:new Float32Array(1),label:`static-particle-buffer`,shrinkToFit:!1,usage:k.VERTEX|k.COPY_DST}),this._dynamicBuffer=new B({data:new Float32Array(1),label:`dynamic-particle-buffer`,shrinkToFit:!1,usage:k.VERTEX|k.COPY_DST});for(let e in n){let t=n[e],r=j(t.format);t.dynamic?(a.addAttribute(t.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:o*4,format:t.format}),o+=r.size):(a.addAttribute(t.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:s*4,format:t.format}),s+=r.size)}a.addIndex(this.indexBuffer);let c=this.getParticleUpdate(n);this._dynamicUpload=c.dynamicUpdate,this._staticUpload=c.staticUpdate,this.geometry=a}getParticleUpdate(e){let t=nh(e);return this._generateParticleUpdateCache[t]||(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e)),this._generateParticleUpdateCache[t]}generateParticleUpdate(e){return $m(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new pi(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new pi(this._size*this._dynamicStride*4*4),this.indexBuffer=Qm(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let n=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,n.float32View,n.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let t=this.staticAttributeBuffer;this._staticUpload(e,t.float32View,t.uint32View),this._staticBuffer.setDataWithSize(t.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function nh(e){let t=[];for(let n in e){let r=e[n];t.push(n,r.code,r.dynamic?`d`:`s`)}return t.join(`_`)}var rh=`varying vec2 vUV;
2297
+ varying vec4 vColor;
2298
+
2299
+ uniform sampler2D uTexture;
2300
+
2301
+ void main(void){
2302
+ vec4 color = texture2D(uTexture, vUV) * vColor;
2303
+ gl_FragColor = color;
2304
+ }`,ih=`attribute vec2 aVertex;
2305
+ attribute vec2 aUV;
2306
+ attribute vec4 aColor;
2307
+
2308
+ attribute vec2 aPosition;
2309
+ attribute float aRotation;
2310
+
2311
+ uniform mat3 uTranslationMatrix;
2312
+ uniform float uRound;
2313
+ uniform vec2 uResolution;
2314
+ uniform vec4 uColor;
2315
+
2316
+ varying vec2 vUV;
2317
+ varying vec4 vColor;
2318
+
2319
+ vec2 roundPixels(vec2 position, vec2 targetSize)
2320
+ {
2321
+ return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
2322
+ }
2323
+
2324
+ void main(void){
2325
+ float cosRotation = cos(aRotation);
2326
+ float sinRotation = sin(aRotation);
2327
+ float x = aVertex.x * cosRotation - aVertex.y * sinRotation;
2328
+ float y = aVertex.x * sinRotation + aVertex.y * cosRotation;
2329
+
2330
+ vec2 v = vec2(x, y);
2331
+ v = v + aPosition;
2332
+
2333
+ gl_Position = vec4((uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
2334
+
2335
+ if(uRound == 1.0)
2336
+ {
2337
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
2338
+ }
2339
+
2340
+ vUV = aUV;
2341
+ vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
2342
+ }
2343
+ `,ah=`
2344
+ struct ParticleUniforms {
2345
+ uTranslationMatrix:mat3x3<f32>,
2346
+ uColor:vec4<f32>,
2347
+ uRound:f32,
2348
+ uResolution:vec2<f32>,
2349
+ };
2350
+
2351
+ fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
2352
+ {
2353
+ return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
2354
+ }
2355
+
2356
+ @group(0) @binding(0) var<uniform> uniforms: ParticleUniforms;
2357
+
2358
+ @group(1) @binding(0) var uTexture: texture_2d<f32>;
2359
+ @group(1) @binding(1) var uSampler : sampler;
2360
+
2361
+ struct VSOutput {
2362
+ @builtin(position) position: vec4<f32>,
2363
+ @location(0) uv : vec2<f32>,
2364
+ @location(1) color : vec4<f32>,
2365
+ };
2366
+ @vertex
2367
+ fn mainVertex(
2368
+ @location(0) aVertex: vec2<f32>,
2369
+ @location(1) aPosition: vec2<f32>,
2370
+ @location(2) aUV: vec2<f32>,
2371
+ @location(3) aColor: vec4<f32>,
2372
+ @location(4) aRotation: f32,
2373
+ ) -> VSOutput {
2374
+
2375
+ let v = vec2(
2376
+ aVertex.x * cos(aRotation) - aVertex.y * sin(aRotation),
2377
+ aVertex.x * sin(aRotation) + aVertex.y * cos(aRotation)
2378
+ ) + aPosition;
2379
+
2380
+ var position = vec4((uniforms.uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
2381
+
2382
+ if(uniforms.uRound == 1.0) {
2383
+ position = vec4(roundPixels(position.xy, uniforms.uResolution), position.zw);
2384
+ }
2385
+
2386
+ let vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uniforms.uColor;
2387
+
2388
+ return VSOutput(
2389
+ position,
2390
+ aUV,
2391
+ vColor,
2392
+ );
2393
+ }
2394
+
2395
+ @fragment
2396
+ fn mainFragment(
2397
+ @location(0) uv: vec2<f32>,
2398
+ @location(1) color: vec4<f32>,
2399
+ @builtin(position) position: vec4<f32>,
2400
+ ) -> @location(0) vec4<f32> {
2401
+
2402
+ var sample = textureSample(uTexture, uSampler, uv) * color;
2403
+
2404
+ return sample;
2405
+ }`,oh=class extends ce{constructor(){let e=be.from({vertex:ih,fragment:rh}),t=ue.from({fragment:{source:ah,entryPoint:`mainFragment`},vertex:{source:ah,entryPoint:`mainVertex`}});super({glProgram:e,gpuProgram:t,resources:{uTexture:h.WHITE.source,uSampler:new b({}),uniforms:{uTranslationMatrix:{value:new U,type:`mat3x3<f32>`},uColor:{value:new N(16777215),type:`vec4<f32>`},uRound:{value:1,type:`f32`},uResolution:{value:[0,0],type:`vec2<f32>`}}}})}},sh=class{constructor(e,t){this.state=et.for2d(),this.localUniforms=new pe({uTranslationMatrix:{value:new U,type:`mat3x3<f32>`},uColor:{value:new Float32Array(4),type:`vec4<f32>`},uRound:{value:1,type:`f32`},uResolution:{value:[0,0],type:`vec2<f32>`}}),this.renderer=e,this.adaptor=t,this.defaultShader=new oh,this.state=et.for2d(),this._managedContainers=new zi({renderer:e,type:`renderable`,name:`particleContainer`})}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new th({size:e.particleChildren.length,properties:e._properties}),this._managedContainers.add(e),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let n=this.renderer,r=this.getBuffers(e);e.texture||=t[0].texture;let i=this.state;r.update(t,e._childrenDirty),e._childrenDirty=!1,i.blendMode=hi(e.blendMode,e.texture._source);let a=this.localUniforms.uniforms,o=a.uTranslationMatrix;e.worldTransform.copyTo(o);let s=n.globalUniforms.globalUniformData;o.tx-=s.offset.x,o.ty-=s.offset.y,o.prepend(s.projectionMatrix),a.uResolution=s.resolution,a.uRound=n._roundPixels|e._roundPixels,oi(e.groupColorAlpha,a.uColor,0),this.adaptor.execute(this,e)}destroy(){this._managedContainers.destroy(),this.renderer=null,this.defaultShader&&=(this.defaultShader.destroy(),null)}};sh.extension={type:[W.CanvasPipes],name:`particle`};var ch=class extends sh{constructor(e){super(e,new Zm)}};ch.extension={type:[W.CanvasPipes],name:`particle`};var lh=class{execute(e,t){let n=e.state,r=e.renderer,i=t.shader||e.defaultShader;i.resources.uTexture=t.texture._source,i.resources.uniforms=e.localUniforms;let a=r.gl,o=e.getBuffers(t);r.shader.bind(i),r.state.set(n),r.geometry.bind(o.geometry,i.glProgram);let s=o.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?a.UNSIGNED_SHORT:a.UNSIGNED_INT;a.drawElements(a.TRIANGLES,t.particleChildren.length*6,s,0)}},uh=class extends sh{constructor(e){super(e,new lh)}};uh.extension={type:[W.WebGLPipes],name:`particle`};var dh=class{execute(e,t){let n=e.renderer,r=t.shader||e.defaultShader;r.groups[0]=n.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),r.groups[1]=n.texture.getTextureBindGroup(t.texture);let i=e.state,a=e.getBuffers(t);n.encoder.draw({geometry:a.geometry,shader:t.shader||e.defaultShader,state:i,size:t.particleChildren.length*6})}},fh=class extends sh{constructor(e){super(e,new dh)}};fh.extension={type:[W.WebGPUPipes],name:`particle`};var ph=class e{constructor(t){if(t instanceof h)this.texture=t,Je(this,e.defaultOptions,{});else{let n={...e.defaultOptions,...t};Je(this,n,{})}}get alpha(){return this._alpha}set alpha(e){this._alpha=Math.min(Math.max(e,0),1),this._updateColor()}get tint(){return Re(this._tint)}set tint(e){this._tint=N.shared.setValue(e??16777215).toBgrNumber(),this._updateColor()}_updateColor(){this.color=this._tint+((this._alpha*255|0)<<24)}};ph.defaultOptions={anchorX:0,anchorY:0,x:0,y:0,scaleX:1,scaleY:1,rotation:0,tint:16777215,alpha:1};var mh=ph,hh={vertex:{attributeName:`aVertex`,format:`float32x2`,code:`
2406
+ const texture = p.texture;
2407
+ const sx = p.scaleX;
2408
+ const sy = p.scaleY;
2409
+ const ax = p.anchorX;
2410
+ const ay = p.anchorY;
2411
+ const trim = texture.trim;
2412
+ const orig = texture.orig;
2413
+
2414
+ if (trim)
2415
+ {
2416
+ w1 = trim.x - (ax * orig.width);
2417
+ w0 = w1 + trim.width;
2418
+
2419
+ h1 = trim.y - (ay * orig.height);
2420
+ h0 = h1 + trim.height;
2421
+ }
2422
+ else
2423
+ {
2424
+ w1 = -ax * (orig.width);
2425
+ w0 = w1 + orig.width;
2426
+
2427
+ h1 = -ay * (orig.height);
2428
+ h0 = h1 + orig.height;
2429
+ }
2430
+
2431
+ f32v[offset] = w1 * sx;
2432
+ f32v[offset + 1] = h1 * sy;
2433
+
2434
+ f32v[offset + stride] = w0 * sx;
2435
+ f32v[offset + stride + 1] = h1 * sy;
2436
+
2437
+ f32v[offset + (stride * 2)] = w0 * sx;
2438
+ f32v[offset + (stride * 2) + 1] = h0 * sy;
2439
+
2440
+ f32v[offset + (stride * 3)] = w1 * sx;
2441
+ f32v[offset + (stride * 3) + 1] = h0 * sy;
2442
+ `,dynamic:!1},position:{attributeName:`aPosition`,format:`float32x2`,code:`
2443
+ var x = p.x;
2444
+ var y = p.y;
2445
+
2446
+ f32v[offset] = x;
2447
+ f32v[offset + 1] = y;
2448
+
2449
+ f32v[offset + stride] = x;
2450
+ f32v[offset + stride + 1] = y;
2451
+
2452
+ f32v[offset + (stride * 2)] = x;
2453
+ f32v[offset + (stride * 2) + 1] = y;
2454
+
2455
+ f32v[offset + (stride * 3)] = x;
2456
+ f32v[offset + (stride * 3) + 1] = y;
2457
+ `,dynamic:!0},rotation:{attributeName:`aRotation`,format:`float32`,code:`
2458
+ var rotation = p.rotation;
2459
+
2460
+ f32v[offset] = rotation;
2461
+ f32v[offset + stride] = rotation;
2462
+ f32v[offset + (stride * 2)] = rotation;
2463
+ f32v[offset + (stride * 3)] = rotation;
2464
+ `,dynamic:!1},uvs:{attributeName:`aUV`,format:`float32x2`,code:`
2465
+ var uvs = p.texture.uvs;
2466
+
2467
+ f32v[offset] = uvs.x0;
2468
+ f32v[offset + 1] = uvs.y0;
2469
+
2470
+ f32v[offset + stride] = uvs.x1;
2471
+ f32v[offset + stride + 1] = uvs.y1;
2472
+
2473
+ f32v[offset + (stride * 2)] = uvs.x2;
2474
+ f32v[offset + (stride * 2) + 1] = uvs.y2;
2475
+
2476
+ f32v[offset + (stride * 3)] = uvs.x3;
2477
+ f32v[offset + (stride * 3) + 1] = uvs.y3;
2478
+ `,dynamic:!1},color:{attributeName:`aColor`,format:`unorm8x4`,code:`
2479
+ const c = p.color;
2480
+
2481
+ u32v[offset] = c;
2482
+ u32v[offset + stride] = c;
2483
+ u32v[offset + (stride * 2)] = c;
2484
+ u32v[offset + (stride * 3)] = c;
2485
+ `,dynamic:!1}};F.add(uh),F.add(fh),F.add(ch);var gh=new l(0,0,0,0),_h=class e extends tt{constructor(t={}){t={...e.defaultOptions,...t,dynamicProperties:{...e.defaultOptions.dynamicProperties,...t?.dynamicProperties}};let{dynamicProperties:n,shader:r,roundPixels:i,texture:a,particles:o,...s}=t;super({label:`ParticleContainer`,...s}),this.renderPipeId=`particle`,this.batched=!1,this._childrenDirty=!1,this.texture=a||null,this.shader=r,this._properties={};for(let e in hh){let t=hh[e],r=n[e];this._properties[e]={...t,dynamic:r}}this.allowChildren=!0,this.roundPixels=i??!1,this.particleChildren=o??[]}addParticle(...e){for(let t=0;t<e.length;t++)this.particleChildren.push(e[t]);return this.onViewUpdate(),e[0]}removeParticle(...e){let t=!1;for(let n=0;n<e.length;n++){let r=this.particleChildren.indexOf(e[n]);r>-1&&(this.particleChildren.splice(r,1),t=!0)}return t&&this.onViewUpdate(),e[0]}update(){this._childrenDirty=!0}onViewUpdate(){this._childrenDirty=!0,super.onViewUpdate()}get bounds(){return gh}updateBounds(){}destroy(e=!1){if(super.destroy(e),typeof e==`boolean`?e:e?.texture){let t=typeof e==`boolean`?e:e?.textureSource,n=this.texture??this.particleChildren[0]?.texture;n&&n.destroy(t)}this.texture=null,this.shader?.destroy()}removeParticles(e,t){e??=0,t??=this.particleChildren.length;let n=this.particleChildren.splice(e,t-e);return this.onViewUpdate(),n}removeParticleAt(e){let t=this.particleChildren.splice(e,1);return this.onViewUpdate(),t[0]}addParticleAt(e,t){return this.particleChildren.splice(t,0,e),this.onViewUpdate(),e}addChild(...e){throw Error(`ParticleContainer.addChild() is not available. Please use ParticleContainer.addParticle()`)}removeChild(...e){throw Error(`ParticleContainer.removeChild() is not available. Please use ParticleContainer.removeParticle()`)}removeChildren(e,t){throw Error(`ParticleContainer.removeChildren() is not available. Please use ParticleContainer.removeParticles()`)}removeChildAt(e){throw Error(`ParticleContainer.removeChildAt() is not available. Please use ParticleContainer.removeParticleAt()`)}getChildAt(e){throw Error(`ParticleContainer.getChildAt() is not available. Please use ParticleContainer.getParticleAt()`)}setChildIndex(e,t){throw Error(`ParticleContainer.setChildIndex() is not available. Please use ParticleContainer.setParticleIndex()`)}getChildIndex(e){throw Error(`ParticleContainer.getChildIndex() is not available. Please use ParticleContainer.getParticleIndex()`)}addChildAt(e,t){throw Error(`ParticleContainer.addChildAt() is not available. Please use ParticleContainer.addParticleAt()`)}swapChildren(e,t){throw Error(`ParticleContainer.swapChildren() is not available. Please use ParticleContainer.swapParticles()`)}reparentChild(...e){throw Error(`ParticleContainer.reparentChild() is not available with the particle container`)}reparentChildAt(e,t){throw Error(`ParticleContainer.reparentChildAt() is not available with the particle container`)}};_h.defaultOptions={dynamicProperties:{vertex:!1,position:!0,rotation:!1,uvs:!1,color:!1},roundPixels:!1};var vh=_h,yh=class{constructor(e){this._renderer=e}validateRenderable(e){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}updateRenderable(e){}execute(e){let t=this._renderer,n=t.canvasContext,r=n.activeContext;r.save();let i=e.groupTransform,a=t._roundPixels|e._roundPixels;n.setContextTransform(i,a===1),n.setBlendMode(e.groupBlendMode);let o=t.globalUniforms.globalUniformData?.worldColor??4294967295,s=e.groupColorAlpha,c=(o>>>24&255)/255,l=(s>>>24&255)/255,u=t.filter?.alphaMultiplier??1,d=c*l*u;if(d<=0){r.restore();return}r.globalAlpha=d;let f=o&16777215,p=Re(T(s&16777215,f)),m=e.texture,h=rn.getCanvasSource(m);if(!h){r.restore();return}let g=n.smoothProperty,_=m.source.style.scaleMode!==`nearest`;r[g]!==_&&(r[g]=_);let v=p!==16777215||m.rotate!==0,y=v?rn.getTintedCanvas({texture:m},p):h,{leftWidth:b,topHeight:x,rightWidth:S,bottomHeight:C,width:w,height:E}=e,ee=b+S,D=x+C,O=Math.min(ee>w?w/ee:1,D>E?E/D:1,1),k=b*O,A=S*O,j=x*O,M=C*O,N=Math.max(0,w-k-A),P=Math.max(0,E-j-M),F=e.anchor,I=m.source._resolution??m.source.resolution??1,L=m.frame.x*I,R=m.frame.y*I,z=-F.x*w,te=-F.y*E,B=b*I,V=x*I,H=S*I,ne=C*I,re=m.frame.width*I,ie=m.frame.height*I;v&&(L=0,R=0,re=y.width,ie=y.height),r.drawImage(y,L,R,B,V,z,te,k,j),r.drawImage(y,L+B,R,re-B-H,V,z+k,te,N,j),r.drawImage(y,L+re-H,R,H,V,z+w-A,te,A,j),r.drawImage(y,L,R+V,B,ie-V-ne,z,te+j,k,P),r.drawImage(y,L+B,R+V,re-B-H,ie-V-ne,z+k,te+j,N,P),r.drawImage(y,L+re-H,R+V,H,ie-V-ne,z+w-A,te+j,A,P),r.drawImage(y,L,R+ie-ne,B,ne,z,te+E-M,k,M),r.drawImage(y,L+B,R+ie-ne,re-B-H,ne,z+k,te+E-M,N,M),r.drawImage(y,L+re-H,R+ie-ne,H,ne,z+w-A,te+E-M,A,M),r.restore()}destroy(){this._renderer=null}};yh.extension={type:[W.CanvasPipes],name:`nineSliceSprite`};var bh=class e extends km{constructor(t={}){t={...e.defaultOptions,...t},super({width:t.width,height:t.height,verticesX:4,verticesY:4}),this._trimX=0,this._trimY=0,this._trimWidth=t.originalWidth??e.defaultOptions.originalWidth,this._trimHeight=t.originalHeight??e.defaultOptions.originalHeight,this.update(t)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,e.trim===void 0?(this._trimWidth=this._originalWidth,this._trimHeight=this._originalHeight):(this._trimX=e.trim?.x??0,this._trimY=e.trim?.y??0,this._trimWidth=e.trim?.width??this._originalWidth,this._trimHeight=e.trim?.height??this._originalHeight),this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:n,_leftWidth:r,_rightWidth:i,_topHeight:a,_bottomHeight:o,_anchorX:s,_anchorY:c}=this,l=r+i,u=t>l?1:t/l,d=a+o,f=n>d?1:n/d,p=Math.min(u,f),m=s*t,h=c*n;e[0]=e[8]=e[16]=e[24]=-m,e[2]=e[10]=e[18]=e[26]=r*p-m,e[4]=e[12]=e[20]=e[28]=t-i*p-m,e[6]=e[14]=e[22]=e[30]=t-m,e[1]=e[3]=e[5]=e[7]=-h,e[9]=e[11]=e[13]=e[15]=a*p-h,e[17]=e[19]=e[21]=e[23]=n-o*p-h,e[25]=e[27]=e[29]=e[31]=n-h,this.getBuffer(`aPosition`).update()}updateUvs(){let e=this.uvs,t=this._originalWidth,n=this._originalHeight,r=this._trimX/t,i=this._trimY/n,a=(this._trimX+this._trimWidth)/t,o=(this._trimY+this._trimHeight)/n;e[0]=e[8]=e[16]=e[24]=r,e[1]=e[3]=e[5]=e[7]=i,e[6]=e[14]=e[22]=e[30]=a,e[25]=e[27]=e[29]=e[31]=o;let s=1/t,c=1/n;e[2]=e[10]=e[18]=e[26]=r+s*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i+c*this._topHeight,e[4]=e[12]=e[20]=e[28]=a-s*this._rightWidth,e[17]=e[19]=e[21]=e[23]=o-c*this._bottomHeight,this.getBuffer(`aUV`).update()}};bh.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};var xh=bh,Sh=class extends sf{constructor(){super(),this.geometry=new xh}destroy(){this.geometry.destroy()}},Ch=class{constructor(e){this._renderer=e,this._managedSprites=new zi({renderer:e,type:`renderable`,name:`nineSliceSprite`})}addRenderable(e,t){let n=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,n),this._renderer.renderPipes.batch.addToBatch(n,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new Sh,n=t;return n.renderable=e,n.transform=e.groupTransform,n.texture=e._texture,n.roundPixels=this._renderer._roundPixels|e._roundPixels,this._managedSprites.add(e),e.didViewUpdate||this._updateBatchableSprite(e,n),t}destroy(){this._managedSprites.destroy(),this._renderer=null}};Ch.extension={type:[W.WebGLPipes,W.WebGPUPipes],name:`nineSliceSprite`},F.add(yh),F.add(Ch);var wh=class e extends tt{constructor(t){t instanceof h&&(t={texture:t});let{width:n,height:r,anchor:i,leftWidth:a,rightWidth:o,topHeight:s,bottomHeight:c,texture:l,roundPixels:u,...d}=t;super({label:`NineSliceSprite`,...d}),this.renderPipeId=`nineSliceSprite`,this.batched=!0,this._leftWidth=a??l?.defaultBorders?.left??xh.defaultOptions.leftWidth,this._topHeight=s??l?.defaultBorders?.top??xh.defaultOptions.topHeight,this._rightWidth=o??l?.defaultBorders?.right??xh.defaultOptions.rightWidth,this._bottomHeight=c??l?.defaultBorders?.bottom??xh.defaultOptions.bottomHeight,this._width=n??l.width??xh.defaultOptions.width,this._height=r??l.height??xh.defaultOptions.height,this.allowChildren=!1,this.texture=l??e.defaultOptions.texture,this.roundPixels=u??!1,this._anchor=new ke({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:this.texture.defaultAnchor&&(this.anchor=this.texture.defaultAnchor)}get anchor(){return this._anchor}set anchor(e){typeof e==`number`?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return this._width}set width(e){this._width=e,this.onViewUpdate()}get height(){return this._height}set height(e){this._height=e,this.onViewUpdate()}setSize(e,t){typeof e==`object`&&(t=e.height??e.width,e=e.width),this._width=e,this._height=t??e,this.onViewUpdate()}getSize(e){return e||={},e.width=this._width,e.height=this._height,e}get leftWidth(){return this._leftWidth}set leftWidth(e){this._leftWidth=e,this.onViewUpdate()}get topHeight(){return this._topHeight}set topHeight(e){this._topHeight=e,this.onViewUpdate()}get rightWidth(){return this._rightWidth}set rightWidth(e){this._rightWidth=e,this.onViewUpdate()}get bottomHeight(){return this._bottomHeight}set bottomHeight(e){this._bottomHeight=e,this.onViewUpdate()}get texture(){return this._texture}set texture(e){e||=h.EMPTY;let t=this._texture;t!==e&&(t&&t.dynamic&&t.off(`update`,this.onViewUpdate,this),e.dynamic&&e.on(`update`,this.onViewUpdate,this),this._texture=e,this.onViewUpdate())}get originalWidth(){return this._texture.width}get originalHeight(){return this._texture.height}get trim(){return this._texture.trim??null}destroy(e){if(super.destroy(e),typeof e==`boolean`?e:e?.texture){let t=typeof e==`boolean`?e:e?.textureSource;this._texture.destroy(t)}this._texture=null}updateBounds(){let e=this._bounds,t=this._anchor,n=this._width,r=this._height;e.minX=-t._x*n,e.maxX=e.minX+n,e.minY=-t._y*r,e.maxY=e.minY+r}};wh.defaultOptions={texture:h.EMPTY};var Th=wh,Eh=class extends Th{constructor(...e){let t=e[0];t instanceof h&&(y(n,`NineSlicePlane now uses the options object {texture, leftWidth, rightWidth, topHeight, bottomHeight}`),t={texture:t,leftWidth:e[1],topHeight:e[2],rightWidth:e[3],bottomHeight:e[4]}),y(n,`NineSlicePlane is deprecated. Use NineSliceSprite instead.`),super(t)}};function Dh(e){let{text:t,style:n,chars:r}=e,i=n,a=Ws.getFont(t,i),o=Hs(q.graphemeSegmenter(t),i,a,!0),s=o.scale,c=[],l=[],u=[],d=n.lineHeight?n.lineHeight:a.lineHeight*s,f=0;for(let e of o.lines){if(e.chars.length===0)continue;let t=new G({label:`line`});t.y=f,u.push(t);let n=new G({label:`word`}),o=0;for(let u=0;u<e.chars.length;u++){let d=e.chars[u];if(!d||!a.chars[d])continue;let f=d===` `,p=u===e.chars.length-1,m;r.length>0?(m=r.shift(),m.text=d,m.style=i,m.label=`char-${d}`,m.x=e.charPositions[u]*s-e.charPositions[o]*s):m=new cp({text:d,style:i,label:`char-${d}`,x:e.charPositions[u]*s-e.charPositions[o]*s}),f||(c.push(m),n.addChild(m)),(f||p)&&n.children.length>0&&(n.x=e.charPositions[o]*s,l.push(n),t.addChild(n),n=new G({label:`word`}),o=u+1)}f+=d}return{chars:c,lines:u,words:l}}var Oh=class extends G{constructor(e){let{text:t,style:n,autoSplit:r,lineAnchor:i,wordAnchor:a,charAnchor:o,...s}=e;super(s),this._dirty=!1,this._canReuseChars=!1,this.chars=[],this.words=[],this.lines=[],this._originalText=t,this._autoSplit=r,this._lineAnchor=i,this._wordAnchor=a,this._charAnchor=o,this.style=n}split(){let e=this.splitFn();this.chars=e.chars,this.words=e.words,this.lines=e.lines,this.addChild(...this.lines),this.charAnchor=this._charAnchor,this.wordAnchor=this._wordAnchor,this.lineAnchor=this._lineAnchor,this._dirty=!1,this._canReuseChars=!0}get text(){return this._originalText}set text(e){this._originalText=e,this.lines.forEach(e=>e.destroy({children:!0})),this.lines.length=0,this.words.length=0,this.chars.length=0,this._canReuseChars=!1,this.onTextUpdate()}_setOrigin(e,t,n){let r;r=typeof e==`number`?{x:e,y:e}:{x:e.x,y:e.y},t.forEach(e=>{let t=e.getLocalBounds(),n=t.minX+t.width*r.x,i=t.minY+t.height*r.y;e.origin.set(n,i)}),this[n]=e}get lineAnchor(){return this._lineAnchor}set lineAnchor(e){this._setOrigin(e,this.lines,`_lineAnchor`)}get wordAnchor(){return this._wordAnchor}set wordAnchor(e){this._setOrigin(e,this.words,`_wordAnchor`)}get charAnchor(){return this._charAnchor}set charAnchor(e){this._setOrigin(e,this.chars,`_charAnchor`)}get style(){return this._style}set style(e){e||={},this._style=new Bs(e),this.styleChanged()}styleChanged(){this.words.forEach(e=>e.destroy()),this.words.length=0,this.lines.forEach(e=>e.destroy()),this.lines.length=0,this._canReuseChars=!0,this.onTextUpdate()}onTextUpdate(){this._dirty=!0,this._autoSplit&&this.split()}destroy(e){super.destroy(e),this.chars=[],this.words=[],this.lines=[],(typeof e==`boolean`?e:e?.style)&&this._style.destroy(e),this._style=null,this._originalText=``}},kh=class e extends Oh{constructor(t){var n;let r={...e.defaultOptions,...t};r.style??={},(n=r.style).fill??(n.fill=16777215),super(r)}static from(t,n){let r={...e.defaultOptions,...n,text:t.text,style:new Bs(t.style)};t.style.tagStyles&&(D(`[SplitBitmapText] Tag styles are not supported for SplitBitmapText. They will be ignored.`),t.style._tagStyles=void 0);let i=new e({...r}),a=t.anchor;return(a.x!==0||a.y!==0)&&i.pivot.set(i.width*a.x,i.height*a.y),i}splitFn(){return Dh({text:this._originalText,style:this._style,chars:this._canReuseChars?this.chars:[]})}};kh.defaultOptions={autoSplit:!0,lineAnchor:0,wordAnchor:0,charAnchor:0};var Ah=kh;function jh(e,t,n){switch(e){case`center`:return(n-t)/2;case`right`:return n-t;default:return 0}}function Mh(e){return e===`\r`||e===`
2486
+ `||e===`\r
2487
+ `}var Nh=/^\s*$/;function Ph(e,t){let n=[],r=t.lines[0],i=``,a=[],o=0;return e.forEach(e=>{let s=Nh.test(e),c=Mh(e),l=i.length===0&&s;s&&!c&&l||(c||(i+=e),a.push(e),i.length>=r.length&&(n.push({line:i,chars:a}),a=[],i=``,o++,r=t.lines[o]))}),n}function Fh(e){let{text:t,style:n,chars:r}=e,i=n,a=q.measureText(t,i);if(a.runsByLine&&a.runsByLine.length>0)return Ih(a,i,r,t);let o=Ph(q.graphemeSegmenter(t),a),s=i.align,c=a.lineWidths.reduce((e,t)=>Math.max(e,t),0),l=i._fill?.fill,u=i._stroke?.fill,d=l instanceof bn,f=u instanceof bn,p=d||f,m=d&&l.textureSpace===`local`||f&&u.textureSpace===`local`,h=a.width,g=a.height,_=i.clone();_.align=`left`;let v=0,y=0;if(_.trim){let{frame:e,canvasAndContext:n}=Vf.getCanvasAndContext({text:t,style:i,resolution:1});Vf.returnCanvasAndContext(n),v=-e.x,y=-e.y,_.trim=!1}let b=[],x=[],S=[],C=0,w=0,T=m?{width:h,height:g}:null;return o.forEach((e,t)=>{let n=new G({label:`line-${t}`});n.y=C+y,x.push(n);let l=a.lineWidths[t],u=jh(s,l,c),d=new G({label:`word`});d.x=u+v;let f=q._context;f.font=_._fontString,q.experimentalLetterSpacingSupported&&(f.letterSpacing=`0px`,f.textLetterSpacing=`0px`);let m=e.line,h=f.measureText(m).width;if(e.chars.forEach(e=>{if(Mh(e))return;m=m.slice(e.length);let t=m.length>0?f.measureText(m).width:0,a=h-t;if(h=t,a!==0)if(e===` `)d.children.length>0&&(S.push(d),n.addChild(d)),u+=a+i.letterSpacing,d=new G({label:`word`}),d.x=u+v;else{let t=_;p&&(t=_.clone(),t._gradientOffset={x:-u,y:-C},T&&(t._gradientBounds=T));let n;w<r.length?(n=r[w++],n.text=e,n.style=t,n.setFromMatrix(U.IDENTITY),n.x=u-d.x+v):n=new Jf({text:e,style:t,x:u-d.x+v}),b.push(n),d.addChild(n),u+=a+i.letterSpacing}}),d.children.length>0&&(S.push(d),n.addChild(d)),s===`justify`&&i.wordWrap&&t<o.length-1){let e=n.children,t=e.length-1;if(t>0){let n=(c-l)/t;for(let t=1;t<e.length;t++)e[t].x+=t*n}}C+=a.lineHeight}),{chars:b,lines:x,words:S}}function Ih(e,t,n,r){let{runsByLine:i}=e,a=t.align,o=e.lineWidths.reduce((e,t)=>Math.max(e,t),0),s=0,c=0;if(t.trim){let{frame:e,canvasAndContext:n}=Vf.getCanvasAndContext({text:r,style:t,resolution:1});Vf.returnCanvasAndContext(n),s=-e.x,c=-e.y}let l=[],u=[],d=[],f=0,p=0;return i.forEach((r,m)=>{let h=new G({label:`line-${m}`});h.y=f+c,u.push(h);let g=e.lineWidths[m],_=jh(a,g,o),v=new G({label:`word`});v.x=_+s;for(let e of r){let t=e.style,r=t._fill?.fill,i=t._stroke?.fill,a=r instanceof bn,o=i instanceof bn,c=a||o,u=a&&r.textureSpace===`local`||o&&i.textureSpace===`local`,f=q.graphemeSegmenter(e.text),m=t.clone();m.align=`left`,m.wordWrap=!1,m.trim&&=!1,m.tagStyles=void 0,m._lineHeight=0;let g=q._context;g.font=m._fontString,q.experimentalLetterSpacingSupported&&(g.letterSpacing=`0px`,g.textLetterSpacing=`0px`);let y=e.text,b=g.measureText(y).width,x=_,S=b,C=q.measureFont(m._fontString),w=t.lineHeight||C.fontSize,T=u?{width:S,height:w}:null;for(let e of f){y=y.slice(e.length);let r=y.length>0?g.measureText(y).width:0,i=b-r;if(b=r,!Mh(e)&&i!==0)if(e===` `)v.children.length>0&&(d.push(v),h.addChild(v)),_+=i+t.letterSpacing,v=new G({label:`word`}),v.x=_+s;else{let r=m;c&&(r=m.clone(),u?(r._gradientOffset={x:-(_-x),y:0},r._gradientBounds=T):r._gradientOffset={x:-(_-x),y:0});let a;p<n.length?(a=n[p++],a.text=e,a.style=r,a.setFromMatrix(U.IDENTITY),a.x=_-v.x+s):a=new Jf({text:e,style:r,x:_-v.x+s}),l.push(a),v.addChild(a),_+=i+t.letterSpacing}}}if(v.children.length>0&&(d.push(v),h.addChild(v)),a===`justify`&&t.wordWrap&&m<i.length-1){let e=h.children,t=e.length-1;if(t>0){let n=(o-g)/t;for(let t=1;t<e.length;t++)e[t].x+=t*n}}let y=e.lineHeights?.[m]??e.lineHeight;f+=y}),{chars:l,lines:u,words:d}}var Lh=class e extends Oh{constructor(t){let n={...e.defaultOptions,...t};super(n)}static from(t,n){let r=new e({...e.defaultOptions,...n,text:t.text,style:new Bs(t.style)}),i=t.anchor;return(i.x!==0||i.y!==0)&&r.pivot.set(r.width*i.x,r.height*i.y),r}splitFn(){return Fh({text:this._originalText,style:this._style,chars:this._canReuseChars?this.chars:[]})}};Lh.defaultOptions={autoSplit:!0,lineAnchor:0,wordAnchor:0,charAnchor:0};var Rh=Lh,zh=[`align`,`breakWords`,`cssOverrides`,`fontVariant`,`fontWeight`,`leading`,`letterSpacing`,`lineHeight`,`padding`,`textBaseline`,`trim`,`whiteSpace`,`wordWrap`,`wordWrapWidth`,`fontFamily`,`fontStyle`,`fontSize`];function Bh(e){let t=[],n=0;for(let r=0;r<zh.length;r++){let i=`_${zh[r]}`;t[n++]=e[i]}return n=Hh(e._fill,t,n),n=Uh(e._stroke,t,n),n=Wh(e.dropShadow,t,n),n=Vh(e.filters,t,n),t.join(`-`)}function Vh(e,t,n){if(!e)return n;for(let r of e)t[n++]=r.uid;return n}function Hh(e,t,n){return e?(t[n++]=e.color,t[n++]=e.alpha,t[n++]=e.fill?.styleKey,n):n}function Uh(e,t,n){return e?(n=Hh(e,t,n),t[n++]=e.width,t[n++]=e.alignment,t[n++]=e.cap,t[n++]=e.join,t[n++]=e.miterLimit,n):n}function Wh(e,t,n){return e?(t[n++]=e.alpha,t[n++]=e.angle,t[n++]=e.blur,t[n++]=e.distance,t[n++]=N.shared.setValue(e.color).toNumber(),n):n}async function Gh(e,t,n=200){let r=await t.extract.base64(e);t.type!==P.CANVAS&&await t.encoder.commandFinished;let i=n;console.log(`logging texture ${e.source.width}px ${e.source.height}px`);let a=[`font-size: 1px;`,`padding: ${i}px 300px;`,`background: url(${r}) no-repeat;`,`background-size: contain;`].join(` `);console.log(`%c `,a)}var Kh=[`#000080`,`#228B22`,`#8B0000`,`#4169E1`,`#008080`,`#800000`,`#9400D3`,`#FF8C00`,`#556B2F`,`#8B008B`],qh=0;function Jh(e,t=0,n={color:`#000000`}){e.renderGroup&&(n.color=Kh[qh++]);let r=``;for(let e=0;e<t;e++)r+=` `;let i=e.label;!i&&e instanceof Ye&&(i=`sprite:${e.texture.label}`);let a=`%c ${r}|- ${i} (worldX:${e.worldTransform.tx}, relativeRenderX:${e.relativeGroupTransform.tx}, renderX:${e.groupTransform.tx}, localX:${e.x})`;e.renderGroup&&(a+=` (RenderGroup)`),e.filters&&(a+=`(*filters)`),console.log(a,`color:${n.color}; font-weight:bold;`),t++;for(let r=0;r<e.children.length;r++){let i=e.children[r];Jh(i,t,{...n})}}function Yh(e,t=0,n={index:0,color:`#000000`}){let r=``;for(let e=0;e<t;e++)r+=` `;let i=`%c ${r}- ${n.index}: ${e.root.label} worldX:${e.worldTransform.tx}`;console.log(i,`color:${n.color}; font-weight:bold;`),t++;for(let r=0;r<e.renderGroupChildren.length;r++){let i=e.renderGroupChildren[r];Yh(i,t,{...n,index:r})}}F.add(Qs,$s);export{Os as AbstractBitmapFont,Zf as AbstractBitmapTextPipe,Mr as AbstractRenderer,Oh as AbstractSplitText,jf as AbstractText,Gf as AbstractTextSystem,pt as AccessibilitySystem,Md as AlphaFilter,Xt as AlphaMask,gr as AlphaMaskPipe,df as AnimatedSprite,Ic as Application,mr as ApplicationInitHook,Xl as Assets,Yl as AssetsClass,_i as BLEND_TO_NPM,Rs as BREAKING_SPACES,Ps as BREAKING_SPACES_SET,Ns as BREAK_AFTER_CHARS,Ds as BREAK_AFTER_CHARS_SET,eo as BUFFER_TYPE,Uc as BackgroundLoader,Er as BackgroundSystem,gi as Batch,li as BatchGeometry,si as BatchTextureArray,mn as BatchableGraphics,xp as BatchableHTMLText,sf as BatchableMesh,Tr as BatchableSprite,Uf as BatchableText,ji as Batcher,yr as BatcherPipe,de as BigPool,L as BindGroup,Ro as BindGroupSystem,hs as BitmapFont,Ws as BitmapFontManager,cp as BitmapText,Xf as BitmapTextGraphics,sp as BitmapTextPipe,J as BlendModeFilter,Gr as BlendModePipe,Ud as BlurFilter,Hd as BlurFilterPass,l as Bounds,H as BrowserAdapter,B as Buffer,v as BufferImageSource,ra as BufferResource,k as BufferUsage,Nr as CLEAR,Ks as COLLAPSIBLE_SPACES,Ys as COLLAPSIBLE_SPACES_SET,K as Cache,ba as CanvasBatchAdaptor,$f as CanvasBitmapTextPipe,fa as CanvasColorMaskPipe,ha as CanvasContextSystem,qt as CanvasFilterSystem,da as CanvasGraphicsAdaptor,ua as CanvasGraphicsContextSystem,pa as CanvasGraphicsPipe,oa as CanvasLimitsSystem,yh as CanvasNineSliceSpritePipe,_t as CanvasObserver,Zm as CanvasParticleContainerAdaptor,ch as CanvasParticleContainerPipe,on as CanvasPool,an as CanvasPoolClass,_a as CanvasRenderTargetAdaptor,ma as CanvasRenderTargetSystem,aa as CanvasRenderer,Kf as CanvasRendererTextSystem,rt as CanvasSource,sa as CanvasStencilMaskPipe,Vf as CanvasTextGenerator,q as CanvasTextMetrics,Wf as CanvasTextPipe,qf as CanvasTextSystem,ya as CanvasTextureSystem,gf as CanvasTilingSpritePipe,sn as Circle,N as Color,oc as ColorBlend,sc as ColorBurnBlend,cc as ColorDodgeBlend,jt as ColorMask,pr as ColorMaskPipe,Kd as ColorMatrixFilter,$l as CompressedSource,G as Container,Zp as CubeTexture,Jp as CubeTextureSource,bd as Culler,xd as CullerPlugin,xr as CustomRenderPipe,Tu as D3D10_RESOURCE_DIMENSION,Eu as D3DFMT,Zr as DATA_URI,X as DDS,A as DEG_TO_RAD,Kp as DEPRECATED_SCALE_MODES,Wp as DEPRECATED_WRAP_MODES,r as DOMAdapter,ft as DOMContainer,gt as DOMPipe,Up as DRAW_MODES,wu as DXGI_FORMAT,Ou as DXGI_TO_TEXTURE_FORMAT,lc as DarkenBlend,Pi as DefaultBatcher,Li as DefaultShader,uc as DifferenceBlend,Xd as DisplacementFilter,dc as DivideBlend,Fs as DynamicBitmapFont,wn as Ellipse,xt as EventBoundary,ie as EventEmitter,vt as EventSystem,St as EventsTicker,fc as ExclusionBlend,W as ExtensionType,tm as ExternalSource,ii as ExtractSystem,Du as FOURCC_TO_TEXTURE_FORMAT,Ct as FederatedContainer,bt as FederatedEvent,yt as FederatedMouseEvent,dt as FederatedPointerEvent,ht as FederatedWheelEvent,bn as FillGradient,Fn as FillPattern,at as Filter,je as FilterEffect,Wt as FilterPipe,Jt as FilterSystem,Ep as FontStylePromiseCache,Nd as GAUSSIAN_VALUES,zi as GCManagedHash,Vr as GCSystem,To as GL_FORMATS,Iu as GL_INTERNAL_FORMAT,ho as GL_TARGETS,xo as GL_TYPES,so as GL_WRAP_MODES,os as GPUTextureGpuData,ai as GenerateTextureSystem,he as Geometry,Ja as GlBackBufferSystem,fo as GlBatchAdaptor,Co as GlBuffer,_o as GlBufferSystem,Ka as GlColorMaskSystem,Za as GlContextSystem,qa as GlEncoderSystem,Ra as GlGeometryGpuData,xa as GlGeometrySystem,mo as GlGraphicsAdaptor,ja as GlLimitsSystem,wo as GlMeshAdaptor,lh as GlParticleContainerAdaptor,uh as GlParticleContainerPipe,be as GlProgram,Aa as GlProgramData,yo as GlRenderTarget,Ca as GlRenderTargetAdaptor,Mo as GlRenderTargetSystem,Ea as GlShaderSystem,Qa as GlStateSystem,Ma as GlStencilSystem,jo as GlTexture,bo as GlTextureSystem,Ua as GlUboSystem,Ba as GlUniformGroupSystem,E as GlobalResourceRegistry,Hr as GlobalUniformSystem,Bo as GpuBatchAdaptor,as as GpuBlendModesToPixi,$o as GpuBufferData,Lo as GpuBufferSystem,es as GpuColorMaskSystem,zo as GpuDeviceSystem,Fo as GpuEncoderSystem,rs as GpuGraphicsAdaptor,fn as GpuGraphicsContext,Io as GpuLimitsSystem,cs as GpuMeshAdapter,Go as GpuMipmapGenerator,dh as GpuParticleContainerAdaptor,fh as GpuParticleContainerPipe,ue as GpuProgram,Wo as GpuRenderTarget,Xo as GpuRenderTargetAdaptor,Zo as GpuRenderTargetSystem,ns as GpuShaderSystem,Yo as GpuStateSystem,na as GpuStencilModesToPixi,Ho as GpuStencilSystem,Qo as GpuTextureSystem,Ko as GpuUboSystem,ps as GpuUniformBatchPipe,ca as Graphics,er as GraphicsContext,dn as GraphicsContextRenderData,Sn as GraphicsContextSystem,la as GraphicsGpuData,Pn as GraphicsPath,ga as GraphicsPipe,Mp as HTMLText,Sp as HTMLTextPipe,vp as HTMLTextRenderData,hp as HTMLTextStyle,jp as HTMLTextSystem,pc as HardLightBlend,mc as HardMixBlend,Br as HelloSystem,Na as IGLUniformData,tn as ImageSource,C as InstructionSet,Z as KTX,hc as LightenBlend,gc as LinearBurnBlend,_c as LinearDodgeBlend,vc as LinearLightBlend,nl as Loader,Bt as LoaderParserPriority,yc as LuminosityBlend,Oe as MaskEffectManager,Ae as MaskEffectManagerClass,kr as MaskFilter,U as Matrix,uf as Mesh,of as MeshGeometry,cf as MeshGpuData,lf as MeshPipe,Wm as MeshPlane,Jm as MeshRope,Ym as MeshSimple,ks as NEWLINES,Js as NEWLINES_SET,Ts as NEWLINE_MATCH_REGEX,gs as NEWLINE_SPLIT_REGEX,c as NOOP,bc as NegationBlend,xh as NineSliceGeometry,Eh as NineSlicePlane,Th as NineSliceSprite,Sh as NineSliceSpriteGpuData,Ch as NineSliceSpritePipe,ef as NoiseFilter,ke as ObservablePoint,xc as OverlayBlend,le as PI_2,mh as Particle,th as ParticleBuffer,vh as ParticleContainer,sh as ParticleContainerPipe,oh as ParticleShader,Ut as PassthroughFilter,Um as PerspectiveMesh,Vm as PerspectivePlaneGeometry,Sc as PinLightBlend,us as PipelineSystem,km as PlaneGeometry,V as Point,Nn as Polygon,ee as Pool,f as PoolGroupClass,rf as PrepareBase,Yf as PrepareQueue,Pp as PrepareSystem,Np as PrepareUpload,Sf as QuadGeometry,me as RAD_TO_DEG,p as Rectangle,am as RenderContainer,qe as RenderGroup,Wr as RenderGroupPipe,ur as RenderGroupSystem,Dm as RenderLayer,Kr as RenderTarget,ei as RenderTargetSystem,Ir as RenderTexture,Rr as RenderableGCSystem,vr as RendererInitHook,P as RendererType,Nc as ResizePlugin,Zt as Resolver,Km as RopeGeometry,jn as RoundedRectangle,qp as SCALE_MODES,di as STENCIL_MODES,lm as SVGDefsCollector,Yn as SVGParser,Cc as SaturationBlend,qr as SchedulerSystem,Rp as ScissorMask,op as SdfShader,ce as Shader,O as ShaderStage,nr as ShapePath,Ur as SharedRenderPipes,Fr as SharedSystems,wc as SoftLightBlend,Ah as SplitBitmapText,Rh as SplitText,Ye as Sprite,cr as SpritePipe,kt as Spritesheet,et as State,Lt as StencilMask,Cr as StencilMaskPipe,Tc as SubtractBlend,jr as SystemRunner,ku as TEXTURE_FORMAT_BLOCK_SIZE,Jf as Text,Bs as TextStyle,h as Texture,ti as TextureGCSystem,g as TextureMatrix,Ve as TexturePool,ot as TexturePoolClass,m as TextureSource,b as TextureStyle,nm as TextureUvs,it as Ticker,We as TickerListener,Pc as TickerPlugin,Af as TilingSprite,Df as TilingSpriteGpuData,Of as TilingSpritePipe,xf as TilingSpriteShader,ff as Transform,Zs as Triangle,ko as UNIFORM_TO_ARRAY_SETTERS,Va as UNIFORM_TO_SINGLE_SETTERS,re as UNIFORM_TYPES_MAP,_e as UNIFORM_TYPES_VALUES,Ge as UPDATE_BLEND,Ke as UPDATE_COLOR,Qe as UPDATE_PRIORITY,nt as UPDATE_TRANSFORM,$e as UPDATE_VISIBLE,No as UboBatch,$i as UboSystem,pe as UniformGroup,_r as VERSION,Ht as VideoSource,tt as ViewContainer,Yr as ViewSystem,pi as ViewableBuffer,Ec as VividLightBlend,Po as WGSL_ALIGN_SIZE_DATA,Wa as WGSL_TO_STD40_SIZE,Gp as WRAP_MODES,Ga as WebGLRenderer,Uo as WebGPURenderer,Od as WebWorkerAdapter,Pl as WorkerManager,wt as accessibilityTarget,ui as addBits,Nt as addMaskBounds,$t as addMaskLocalBounds,s as addProgramDefines,kd as alphaFrag,Ad as alphaWgsl,$n as appendSVGPath,wf as applyMatrix,Am as applyProjectiveTransformationToPlane,uo as applyStyleParams,Je as assignWithIgnore,sr as autoDetectEnvironment,Mc as autoDetectRenderer,Ft as autoDetectSource,fu as basisTranscoderUrls,Re as bgr2rgb,Vc as bitmapFontCachePlugin,Lc as bitmapFontTextParser,Rc as bitmapFontXMLParser,zc as bitmapFontXMLStringParser,Dh as bitmapTextSplit,ec as blendTemplateFrag,tc as blendTemplateVert,nc as blendTemplateWgsl,ts as blockDataMap,zd as blurTemplateWgsl,Xe as boundsPool,Qs as browserExt,Dn as buildAdaptiveBezier,rr as buildAdaptiveQuadratic,un as buildArc,En as buildArcTo,ir as buildArcToSvg,hn as buildCircle,Gn as buildContextBatches,On as buildEllipse,Tm as buildGeometryFromPath,Tn as buildLine,yn as buildPixelLine,pn as buildPolygon,Cn as buildRectangle,An as buildRoundedRectangle,Sm as buildSVGFillAttributes,pm as buildSVGPath,Cm as buildSVGStrokeAttributes,Zn as buildSimpleUvs,xn as buildTriangle,_n as buildUvs,Be as cacheAsTextureMixin,Wc as cacheTextureArray,Ln as calculatePathArea,Qr as calculateProjection,nn as canUseNewCanvasBlendModes,Fh as canvasTextSplit,rn as canvasUtils,Te as checkChildrenDidChange,rl as checkDataUrl,il as checkExtension,tr as checkForNestedPattern,mi as checkMaxIfStatementsInShader,ut as childrenHelperMixin,Pr as cleanArray,ni as cleanHash,Sr as clearList,ln as closePointEps,qs as collapseNewlines,Es as collapseSpaces,om as collectAllRenderables,Ie as collectRenderablesMixin,oi as color32BitToUniform,Mi as colorBit,Bi as colorBitGl,Wd as colorMatrixFilterFrag,Gd as colorMatrixFilterWgsl,lr as colorToUniform,Eo as compareModeToGlCompare,Ci as compileHighShader,Ui as compileHighShaderGl,Ti as compileHighShaderGlProgram,Ei as compileHighShaderGpuProgram,bi as compileHooks,Hi as compileInputs,ci as compileOutputs,Da as compileShader,Bm as compute2DProjection,td as convertFormatIfRequired,en as convertToList,Tt as copySearchParams,io as createGlUploadCubeTextureResource,qo as createGpuUploadCubeTextureResource,ne as createIdFromString,Qm as createIndicesForQuads,yu as createLevelBuffers,rd as createLevelBuffersFromKTX,Et as createStringVariations,bl as createTexture,Oa as createUboElementsSTD40,ds as createUboElementsWGSL,Xi as createUboSyncFunction,ka as createUboSyncFunctionSTD40,fs as createUboSyncFunctionWGSL,Hl as crossOrigin,ze as cullingMixin,kn as curveEps,Mt as defaultFilterVert,La as defaultValue,Se as definedProps,y as deprecation,Kc as detectAvif,Ql as detectBasis,md as detectCompressed,Jc as detectDefaults,Zc as detectMp4,Qc as detectOgv,Rt as detectVideoAlphaMode,$c as detectWebm,el as detectWebp,Wl as determineCrossOrigin,qd as displacementFrag,Jd as displacementVert,Yd as displacementWgsl,vi as earcut,Fe as effectsMixin,qi as ensureAttributes,fe as ensureIsBuffer,S as ensurePrecision,Mf as ensureTextOptions,br as executeInstructions,F as extensions,co as extractAttributesFromGlProgram,xe as extractAttributesFromGpuProgram,Cp as extractFontFamilies,ve as extractStructAndGroups,Kn as extractSubpaths,qn as extractSvgUrlId,fi as fastCopy,Ne as findMixin,As as fontStringFromTextStyle,Lp as formatShader,Di as fragmentGPUTemplate,xi as fragmentGlTemplate,Ha as generateArraySyncSTD40,Vo as generateArraySyncWGSL,Fd as generateBlurFragSource,Rd as generateBlurGlProgram,Bd as generateBlurProgram,Ld as generateBlurVertSource,Fp as generateGPULayout,z as generateGpuLayoutGroups,Ip as generateLayout,te as generateLayoutHash,$m as generateParticleUpdateFunction,Ta as generateProgram,za as generateShaderSyncCode,Bh as generateTextStyleKey,Ri as generateTextureBatchBit,wi as generateTextureBatchBitGl,Wn as generateTextureMatrix,wa as generateUniformsSync,hi as getAdjustedBlendModeBlend,j as getAttributeInfoFromFormat,ki as getBatchSamplersUniformGroup,Hs as getBitmapTextLayout,Rf as getCanvasBoundingBox,Us as getCanvasFillStyle,$r as getCanvasTexture,vs as getCharacterGroups,M as getDefaultUniformValue,im as getFastGlobalBounds,Ce as getFastGlobalBoundsMixin,Rn as getFillInstructionData,Dp as getFontCss,hl as getFontFamilyName,oe as getGeometryBounds,no as getGlTypeFromFormat,Pe as getGlobalBounds,De as getGlobalMixin,Yt as getGlobalRenderableBounds,st as getLocalBounds,o as getMaxFragmentPrecision,Jn as getMaxMiterRatio,Ai as getMaxTexturesPerBatch,or as getOrientationOfPoints,Ss as getPlainText,Vt as getPo2TextureFromSource,yl as getResolutionOfUrl,Op as getSVGUrl,au as getSupportedCompressedTextureFormats,ru as getSupportedGPUCompressedTextureFormats,tu as getSupportedGlCompressedTextureFormats,cu as getSupportedTextureFormats,kp as getTemporaryCanvasFromImage,_ as getTestContext,Gi as getTextureBatchBindGroup,Xm as getTextureDefaultMatrix,cd as getTextureFormatFromKTXTexture,Sa as getUboData,lo as getUniformData,At as getUrlExtension,ad as glFormatToGPUFormat,Oo as glUploadBufferImageResource,Ya as glUploadCompressedTextureResource,ao as glUploadImageResource,po as glUploadVideoResource,Ii as globalUniformsBit,Ni as globalUniformsBitGl,Oi as globalUniformsUBOBitGl,xu as gpuFormatToBasisTranscoderFormat,ud as gpuFormatToKTXBasisTranscoderFormat,Jo as gpuUploadBufferImageResource,ls as gpuUploadCompressedTextureResource,ss as gpuUploadImageResource,is as gpuUploadVideoResource,wm as graphicsContextToSvg,d as groupD8,Lr as hasCachedCanvasTexture,ws as hasTagMarkup,ys as hasTagStyles,tf as hslWgsl,ic as hslgl,ac as hslgpu,yi as injectBits,ye as insertVersion,_s as isBreakAfterChar,Cs as isBreakingSpace,Pt as isCanvasFilterCapable,Ls as isCollapsibleSpace,mt as isMobile,ms as isNewline,i as isPow2,Jr as isRenderingToScreen,Do as isSafari,Dt as isSingleItem,Oc as isWebGLSupported,Ac as isWebGPUSupported,Ku as ktxTranscoderUrls,vu as loadBasis,_u as loadBasisOnWorker,Hc as loadBitmapFont,Fu as loadDDS,zr as loadEnvironmentExtensions,wp as loadFontAsBase64,Tp as loadFontCSS,Ll as loadImageBitmap,sl as loadJson,Hu as loadKTX,$u as loadKTX2,Qu as loadKTX2onWorker,Ap as loadSVGImage,Cl as loadSvg,Rl as loadTextures,ul as loadTxt,Kl as loadVideoTextures,vl as loadWebFont,Ji as localUniformBit,Yi as localUniformBitGl,ea as localUniformBitGroup2,ep as localUniformMSDFBit,tp as localUniformMSDFBitGl,w as log2,Gh as logDebugTexture,Ia as logProgramError,Yh as logRenderGroupScene,Jh as logScene,np as mSDFBit,rp as mSDFBitGl,va as mapCanvasBlendModesToPixi,$a as mapFormatToGlFormat,So as mapFormatToGlInternalFormat,go as mapFormatToGlType,Pa as mapGlToVertexFormat,Vp as mapSize,Fa as mapType,Xa as mapViewDimensionToGlTarget,Ao as mapWebGLBlendModesToPixi,Ar as maskFrag,Or as maskVert,hr as maskWgsl,Me as matrixPool,bp as measureHtmlText,Le as measureMixin,js as measureTaggedText,zp as migrateFragmentFromV7toV8,to as mipmapScaleModeToGlFilter,Ee as multiplyColors,T as multiplyHexColors,u as nextPow2,Zd as noiseFrag,Qd as noiseWgsl,ou as nonCompressedFormats,R as normalizeExtensionPriority,ct as onRenderMixin,Au as parseDDS,rm as parseFunctionBody,Lu as parseKTX,Hn as parseSVGDefinitions,Vn as parseSVGFloatAttribute,Mn as parseSVGPath,Bn as parseSVGStyle,bs as parseTaggedText,hh as particleData,rh as particlesFrag,ih as particlesVert,ah as particlesWgsl,zt as passthroughFrag,Kt as passthroughWgsl,Ot as path,Xs as pointInTriangle,Ul as preloadVideo,we as removeItems,ae as removeStructAndGroupDuplicates,ge as resetUids,zs as resolveCharacters,fd as resolveCompressedTextureUrl,Jl as resolveJsonUrl,ql as resolveTextureUrl,It as resourceToTexture,Si as roundPixelsBit,Fi as roundPixelsBitGl,ar as roundedShapeArc,In as roundedShapeQuadraticCurve,Xr as sayHello,ro as scaleModeToGlFilter,pu as setBasisTranscoderPath,qu as setKTXTranscoderPath,Cf as setPositions,a as setProgramName,Tf as setUvs,cn as shapeBuilders,Ue as sortMixin,Qt as spritesheetAsset,zn as squaredDistanceToLineSegment,x as stripVersion,Xn as styleAttributes,Gc as testImageFormat,Xc as testVideoFormat,lp as textStyleToCSS,Zi as textureBit,ia as textureBitGl,Gt as textureFrom,_f as tilingBit,vf as tilingBitGl,Qn as toFillStyle,lt as toLocalGlobalMixin,Un as toStrokeStyle,Is as tokenize,Ms as tokenizeTaggedRuns,vn as transformVertices,gn as triangulateWithHoles,xs as trimRight,Qi as uboSyncFunctionsSTD40,ta as uboSyncFunctionsWGSL,se as uid,Ki as uniformParsers,oo as unpremultiplyAlpha,wr as unsafeEvalSupported,sm as updateLocalTransform,He as updateQuadBounds,Dr as updateRenderGroupTransform,fr as updateRenderGroupTransforms,Hf as updateTextBounds,dr as updateTransformAndChildren,Ze as updateTransformBackwards,cm as updateWorldTransform,n as v8_0_0,I as v8_3_4,dd as validFormats,ri as validateRenderables,Vi as vertexGPUTemplate,Wi as vertexGlTemplate,sd as vkFormatToGPUFormat,D as warn,$s as webworkerExt,Gs as wordWrap,Vs as wordWrapTaggedLines,vo as wrapModeToGlAddress};