@nice2dev/ui-graphics 1.0.0 → 1.0.3

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 (146) hide show
  1. package/CHANGELOG.md +147 -1
  2. package/dist/cjs/animation/AnimatedPerson.js +2 -2
  3. package/dist/cjs/animation/AnimatedPerson.js.map +1 -1
  4. package/dist/cjs/animation/AnimationEditor.js +11 -6
  5. package/dist/cjs/animation/AnimationEditor.js.map +1 -1
  6. package/dist/cjs/animation/Audience.js +4 -3
  7. package/dist/cjs/animation/Audience.js.map +1 -1
  8. package/dist/cjs/animation/BodyRenderer.js +5 -2
  9. package/dist/cjs/animation/BodyRenderer.js.map +1 -1
  10. package/dist/cjs/animation/rig/RigPlayer.js +2 -2
  11. package/dist/cjs/animation/rig/RigPlayer.js.map +1 -1
  12. package/dist/cjs/animation/rig/RiggedBody.js +2 -2
  13. package/dist/cjs/animation/rig/RiggedBody.js.map +1 -1
  14. package/dist/cjs/animation/shapes/heads.js +4 -1
  15. package/dist/cjs/animation/shapes/heads.js.map +1 -1
  16. package/dist/cjs/core/LocalUI.js +1 -1
  17. package/dist/cjs/core/NiceBrushEngine.js +446 -0
  18. package/dist/cjs/core/NiceBrushEngine.js.map +1 -0
  19. package/dist/cjs/core/yjsCollaboration.js +292 -0
  20. package/dist/cjs/core/yjsCollaboration.js.map +1 -0
  21. package/dist/cjs/font/NiceFontEditor.js +89 -85
  22. package/dist/cjs/font/NiceFontEditor.js.map +1 -1
  23. package/dist/cjs/font/fontFormatUtils.js +468 -0
  24. package/dist/cjs/font/fontFormatUtils.js.map +1 -0
  25. package/dist/cjs/game/GameAsset2dEditor.js +38 -24
  26. package/dist/cjs/game/GameAsset2dEditor.js.map +1 -1
  27. package/dist/cjs/icon/NiceIconEditor.js +218 -133
  28. package/dist/cjs/icon/NiceIconEditor.js.map +1 -1
  29. package/dist/cjs/index.js +83 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  32. package/dist/cjs/photo/NiceAITools.js +446 -0
  33. package/dist/cjs/photo/NiceAITools.js.map +1 -0
  34. package/dist/cjs/photo/PhotoEditor.js +2 -2
  35. package/dist/cjs/photo/PhotoEditor.js.map +1 -1
  36. package/dist/cjs/pixel/PixelEditor.js +16 -5
  37. package/dist/cjs/pixel/PixelEditor.js.map +1 -1
  38. package/dist/cjs/pixel/PixelEditor.module.css.js +1 -1
  39. package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -1
  40. package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -1
  41. package/dist/cjs/pixel/PixelEditorRightPanel.js +3 -2
  42. package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -1
  43. package/dist/cjs/pixel/PixelEditorTimeline.js +2 -1
  44. package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -1
  45. package/dist/cjs/pixel/PixelEditorToolbar.js +2 -1
  46. package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -1
  47. package/dist/cjs/pixel/SpriteGeneratorPanel.js +224 -0
  48. package/dist/cjs/pixel/SpriteGeneratorPanel.js.map +1 -0
  49. package/dist/cjs/pixel/animalGeneratorPresets.js +654 -0
  50. package/dist/cjs/pixel/animalGeneratorPresets.js.map +1 -0
  51. package/dist/cjs/pixel/buildingGeneratorPresets.js +573 -0
  52. package/dist/cjs/pixel/buildingGeneratorPresets.js.map +1 -0
  53. package/dist/cjs/pixel/characterGeneratorPresets.js +563 -0
  54. package/dist/cjs/pixel/characterGeneratorPresets.js.map +1 -0
  55. package/dist/cjs/pixel/spriteGeneratorCore.js +297 -0
  56. package/dist/cjs/pixel/spriteGeneratorCore.js.map +1 -0
  57. package/dist/cjs/pixel/usePixelEditor.js +16 -0
  58. package/dist/cjs/pixel/usePixelEditor.js.map +1 -1
  59. package/dist/cjs/texture/Nice3DTexturePainter.js +123 -79
  60. package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -1
  61. package/dist/cjs/ui/NiceUIDesigner.js +175 -62
  62. package/dist/cjs/ui/NiceUIDesigner.js.map +1 -1
  63. package/dist/cjs/ui/dist/index.js +50089 -0
  64. package/dist/cjs/ui/dist/index.js.map +1 -0
  65. package/dist/cjs/vector/NiceSvgToCode.js +427 -0
  66. package/dist/cjs/vector/NiceSvgToCode.js.map +1 -0
  67. package/dist/cjs/vector/VectorEditor.js +7 -3
  68. package/dist/cjs/vector/VectorEditor.js.map +1 -1
  69. package/dist/cjs/vector/VectorEditor.module.css.js +1 -1
  70. package/dist/cjs/vector/VectorEditorMenuBar.js +5 -1
  71. package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -1
  72. package/dist/cjs/vector/VectorEditorRightPanel.js +23 -19
  73. package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -1
  74. package/dist/esm/animation/AnimatedPerson.js +2 -2
  75. package/dist/esm/animation/AnimatedPerson.js.map +1 -1
  76. package/dist/esm/animation/AnimationEditor.js +12 -8
  77. package/dist/esm/animation/AnimationEditor.js.map +1 -1
  78. package/dist/esm/animation/Audience.js +5 -4
  79. package/dist/esm/animation/Audience.js.map +1 -1
  80. package/dist/esm/animation/BodyRenderer.js +4 -2
  81. package/dist/esm/animation/BodyRenderer.js.map +1 -1
  82. package/dist/esm/animation/rig/RigPlayer.js +4 -4
  83. package/dist/esm/animation/rig/RigPlayer.js.map +1 -1
  84. package/dist/esm/animation/rig/RiggedBody.js +2 -2
  85. package/dist/esm/animation/rig/RiggedBody.js.map +1 -1
  86. package/dist/esm/animation/shapes/heads.js +4 -2
  87. package/dist/esm/animation/shapes/heads.js.map +1 -1
  88. package/dist/esm/core/LocalUI.js +4 -4
  89. package/dist/esm/core/NiceBrushEngine.js +442 -0
  90. package/dist/esm/core/NiceBrushEngine.js.map +1 -0
  91. package/dist/esm/core/yjsCollaboration.js +283 -0
  92. package/dist/esm/core/yjsCollaboration.js.map +1 -0
  93. package/dist/esm/font/NiceFontEditor.js +89 -85
  94. package/dist/esm/font/NiceFontEditor.js.map +1 -1
  95. package/dist/esm/font/fontFormatUtils.js +461 -0
  96. package/dist/esm/font/fontFormatUtils.js.map +1 -0
  97. package/dist/esm/game/GameAsset2dEditor.js +38 -25
  98. package/dist/esm/game/GameAsset2dEditor.js.map +1 -1
  99. package/dist/esm/icon/NiceIconEditor.js +218 -133
  100. package/dist/esm/icon/NiceIconEditor.js.map +1 -1
  101. package/dist/esm/index.js +21 -11
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  104. package/dist/esm/photo/NiceAITools.js +439 -0
  105. package/dist/esm/photo/NiceAITools.js.map +1 -0
  106. package/dist/esm/photo/PhotoEditor.js +2 -2
  107. package/dist/esm/photo/PhotoEditor.js.map +1 -1
  108. package/dist/esm/pixel/PixelEditor.js +16 -6
  109. package/dist/esm/pixel/PixelEditor.js.map +1 -1
  110. package/dist/esm/pixel/PixelEditor.module.css.js +1 -1
  111. package/dist/esm/pixel/PixelEditorMenuBar.js +2 -1
  112. package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -1
  113. package/dist/esm/pixel/PixelEditorRightPanel.js +3 -2
  114. package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -1
  115. package/dist/esm/pixel/PixelEditorTimeline.js +2 -1
  116. package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -1
  117. package/dist/esm/pixel/PixelEditorToolbar.js +2 -1
  118. package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -1
  119. package/dist/esm/pixel/SpriteGeneratorPanel.js +222 -0
  120. package/dist/esm/pixel/SpriteGeneratorPanel.js.map +1 -0
  121. package/dist/esm/pixel/animalGeneratorPresets.js +647 -0
  122. package/dist/esm/pixel/animalGeneratorPresets.js.map +1 -0
  123. package/dist/esm/pixel/buildingGeneratorPresets.js +566 -0
  124. package/dist/esm/pixel/buildingGeneratorPresets.js.map +1 -0
  125. package/dist/esm/pixel/characterGeneratorPresets.js +556 -0
  126. package/dist/esm/pixel/characterGeneratorPresets.js.map +1 -0
  127. package/dist/esm/pixel/spriteGeneratorCore.js +279 -0
  128. package/dist/esm/pixel/spriteGeneratorCore.js.map +1 -0
  129. package/dist/esm/pixel/usePixelEditor.js +16 -0
  130. package/dist/esm/pixel/usePixelEditor.js.map +1 -1
  131. package/dist/esm/texture/Nice3DTexturePainter.js +123 -79
  132. package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -1
  133. package/dist/esm/ui/NiceUIDesigner.js +175 -62
  134. package/dist/esm/ui/NiceUIDesigner.js.map +1 -1
  135. package/dist/esm/ui/dist/index.js +49686 -0
  136. package/dist/esm/ui/dist/index.js.map +1 -0
  137. package/dist/esm/vector/NiceSvgToCode.js +423 -0
  138. package/dist/esm/vector/NiceSvgToCode.js.map +1 -0
  139. package/dist/esm/vector/VectorEditor.js +7 -4
  140. package/dist/esm/vector/VectorEditor.js.map +1 -1
  141. package/dist/esm/vector/VectorEditor.module.css.js +1 -1
  142. package/dist/esm/vector/VectorEditorMenuBar.js +5 -1
  143. package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -1
  144. package/dist/esm/vector/VectorEditorRightPanel.js +23 -19
  145. package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -1
  146. package/package.json +3 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildingGeneratorPresets.js","sources":["../../../src/pixel/buildingGeneratorPresets.ts"],"sourcesContent":[null],"names":["createPartData","registerParts"],"mappings":"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AE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,C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AAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC7D,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAGA,kCAAc,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACvD,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,WAAW,GAAGA,kCAAc,CAAC,EAAE,EAAE,CAAC,EAAE;AACxC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACnE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAGA,kCAAc,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACvD,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC;AACA,MAAM,SAAS,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACb,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACnB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,WAAW,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACvC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACzB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC;AACA,MAAM,aAAa,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACzC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B,MAAM,YAAY,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACxC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B,MAAM,WAAW,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACvC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B,MAAM,YAAY,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACxC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B;AACA,MAAM,aAAa,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACzC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACb,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC,MAAM,aAAa,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACzC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACV,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAErC;AACA,MAAM,OAAO,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACnC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,CAAA,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,MAAM,MAAM,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAClC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B,MAAM,SAAS,GAAGA,kCAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B,MAAM,WAAW,GAAGA,kCAAc,CAAC,EAAE,EAAE,CAAC,EAAE;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAA,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1B;;AAEsE;AAE/D,MAAM,cAAc,GAAiB;;AAE1C,IAAA;AACE,QAAA,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;AAC5F,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;AAChE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;AAC5F,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;AAChE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;AAC1F,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACpE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACpE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAClE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACzD,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAC/E,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;AAC3E,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,uBAAuB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtE,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAC1E,QAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AAClE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAClE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACtE,QAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACxE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAClE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;AACrE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACpE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AAClE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACtE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;AAC9E,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;AAC5E,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AAC9D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;AAC1E,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;AAC5E,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AAC9D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;AAChF,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;AAC9D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;AAChF,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;AAC9D,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAA;;AAGD,IAAA;AACE,QAAA,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM;AACzE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;QAClE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAChD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM;AACvE,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC;AACzE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM;AACrF,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;AAC5E,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM;AACjF,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACrE,QAAA,MAAM,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,KAAA;;AA2BH;AACM,SAAU,0BAA0B,CAAC,MAAsB,EAAA;;IAC/D,MAAM,WAAW,GAAG,CAAC;IACrB,MAAM,gBAAgB,GAAG,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC;AACpB,IAAA,MAAM,WAAW,GAAG,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC;IAC1F,MAAM,KAAK,GAAoB,EAAE;;AAGjC,IAAA,MAAM,KAAK,GAAG,WAAW,GAAG,gBAAgB;AAC5C,IAAA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;AAGvE,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW;;QAG5C,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,KAAK,CAAC,cAAc;AACrC,SAAA,CAAC;;AAGF,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,eAAe,EAAE;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe;AACnD,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE;;QAGA,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QACxF;;AAGA,QAAA,IAAI,KAAK,CAAC,aAAa,EAAE;AACvB,YAAA,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE;AACrC,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1D;QACF;IACF;;AAGA,IAAA,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,UAAU;IACrE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;AAGlE,IAAA,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,MAAM,CAAC,SAAS;AACxB,YAAA,OAAO,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,IAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACrD,OAAO,EAAE,KAAK,GAAG,CAAC;AACnB,SAAA,CAAC;IACJ;IAEA,OAAO;AACL,QAAA,EAAE,EAAE,CAAA,SAAA,EAAY,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA,CAAE;QAChE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACvC,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,UAAU,EAAE,UAAU;KACvB;AACH;AAcO,MAAM,gBAAgB,GAAqB;AAChD,IAAA;QACE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB;AAC3E,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;AACnC,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe;YACzE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;AAC1D,YAAA,MAAM,EAAE,CAAC;AACP,oBAAA,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxB,oBAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;iBACrC,CAAC;AACH,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB;AAC5E,QAAA,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;AACtC,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe;YAC7E,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;AAC1D,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxB,oBAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrC,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB;QACpF,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;AAC9C,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW;AAC3E,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;oBAC1B,eAAe,EAAE,CAAC,CAAC,CAAC;AACpB,oBAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrC,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,aAAa,EAAE,CAAC,aAAa,CAAC;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB;QACvE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;AACxC,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe;AACtE,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,CAAC;AACP,oBAAA,MAAM,EAAE,iBAAiB;oBACzB,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxB,oBAAA,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;oBACtC,aAAa,EAAE,CAAC,kBAAkB,CAAC;iBACpC,CAAC;AACH,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B;QACvE,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;AAC/C,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe;YACtE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;AAC1D,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,MAAM,EAAE,iBAAiB;oBACzB,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxB,oBAAA,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACvC,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,iBAAiB;oBACzB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,aAAa,EAAE,CAAC,cAAc,CAAC;AAChC,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB;QACzE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC3C,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW;AACrE,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxB,oBAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrC,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;QACE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B;QAC5E,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;AAC1C,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa;AACvE,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,oBAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrC,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,CAAC,cAAc,CAAC;oBAC3B,eAAe,EAAE,CAAC,CAAC,CAAC;AACrB,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;;AAGH;SACgB,iBAAiB,GAAA;IAC/BC,iCAAa,CAAC,cAAc,CAAC;AAC/B;;;;;;;;;"}
@@ -0,0 +1,563 @@
1
+ 'use strict';
2
+
3
+ var spriteGeneratorCore = require('./spriteGeneratorCore.js');
4
+
5
+ /**
6
+ * characterGeneratorPresets.ts — Extensive library of character parts
7
+ * for the sprite generator. Provides heads, hair, torsos, arms, legs,
8
+ * faces, and equipment in multiple styles at 16×16 and 32×32 sizes.
9
+ *
10
+ * Each part has directional pixel data (S, E, N with mirroring for W, etc.)
11
+ */
12
+ /* ════════════════════════════════════════════════════════════════
13
+ COLOR PALETTES
14
+ ════════════════════════════════════════════════════════════════ */
15
+ const SKIN_PALETTES = {
16
+ light: ['#ffecd2', '#f5c6a0', '#e0a070', '#c07848', '#8b5e3c'],
17
+ medium: ['#e8c090', '#d4a06c', '#b88050', '#946038', '#6b4423'],
18
+ dark: ['#c08050', '#a06838', '#805028', '#603818', '#402010'],
19
+ fantasy1: ['#d0f0d0', '#a8d8a0', '#78b868', '#508030', '#304818'],
20
+ fantasy2: ['#d0d8f0', '#a8b0d8', '#7888b8', '#506090', '#303860'],
21
+ };
22
+ const HAIR_PALETTES = {
23
+ black: ['#1a1a2e', '#101020', '#080810'],
24
+ brown: ['#8b6914', '#6b4e0a', '#4a3508'],
25
+ blonde: ['#f0d060', '#d0b040', '#b09028'],
26
+ red: ['#d03020', '#a02018', '#781810'],
27
+ white: ['#f0f0f0', '#d0d0d0', '#a0a0a0'],
28
+ blue: ['#4080e0', '#3060b0', '#204080'],
29
+ green: ['#40c040', '#309030', '#206020'],
30
+ pink: ['#f080b0', '#d06090', '#a04070'],
31
+ purple: ['#a040e0', '#8030b0', '#602080'],
32
+ };
33
+ const CLOTHING_PALETTES = {
34
+ leather: ['#b08060', '#906840', '#705028'],
35
+ iron: ['#c0c0c8', '#909098', '#606068'],
36
+ gold: ['#f0d060', '#d0b040', '#a08020'],
37
+ cloth_r: ['#d04040', '#b02020', '#801010'],
38
+ cloth_b: ['#4060d0', '#3040b0', '#202880'],
39
+ cloth_g: ['#40b040', '#208020', '#105010'],
40
+ cloth_w: ['#f0f0f0', '#d0d0d0', '#b0b0b0'],
41
+ cloth_k: ['#404040', '#282828', '#181818'],
42
+ royal: ['#8020a0', '#601080', '#400860'],
43
+ };
44
+ /* ════════════════════════════════════════════════════════════════
45
+ 16×16 CHARACTER PARTS — HEADS
46
+ ════════════════════════════════════════════════════════════════ */
47
+ const _ = -1; // transparent shorthand
48
+ const HEAD_ROUND_S = spriteGeneratorCore.createPartData(8, 8, [
49
+ [_, _, 1, 1, 1, 1, _, _],
50
+ [_, 1, 0, 0, 0, 0, 1, _],
51
+ [1, 0, 0, 0, 0, 0, 0, 1],
52
+ [1, 0, 3, 0, 0, 3, 0, 1],
53
+ [1, 0, 0, 0, 0, 0, 0, 1],
54
+ [1, 0, 0, 2, 2, 0, 0, 1],
55
+ [_, 1, 0, 0, 0, 0, 1, _],
56
+ [_, _, 1, 1, 1, 1, _, _],
57
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
58
+ const HEAD_ROUND_E = spriteGeneratorCore.createPartData(7, 8, [
59
+ [_, _, 1, 1, 1, _, _],
60
+ [_, 1, 0, 0, 0, 1, _],
61
+ [1, 0, 0, 0, 0, 0, 1],
62
+ [1, 0, 0, 0, 3, 0, 1],
63
+ [1, 0, 0, 0, 0, 0, 1],
64
+ [1, 0, 0, 0, 2, 0, 1],
65
+ [_, 1, 0, 0, 0, 1, _],
66
+ [_, _, 1, 1, 1, _, _],
67
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
68
+ const HEAD_ROUND_N = spriteGeneratorCore.createPartData(8, 8, [
69
+ [_, _, 1, 1, 1, 1, _, _],
70
+ [_, 1, 0, 0, 0, 0, 1, _],
71
+ [1, 0, 0, 0, 0, 0, 0, 1],
72
+ [1, 0, 0, 0, 0, 0, 0, 1],
73
+ [1, 0, 0, 0, 0, 0, 0, 1],
74
+ [1, 0, 0, 0, 0, 0, 0, 1],
75
+ [_, 1, 0, 0, 0, 0, 1, _],
76
+ [_, _, 1, 1, 1, 1, _, _],
77
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
78
+ const HEAD_SQUARE_S = spriteGeneratorCore.createPartData(8, 7, [
79
+ [_, 1, 1, 1, 1, 1, 1, _],
80
+ [1, 0, 0, 0, 0, 0, 0, 1],
81
+ [1, 0, 3, 0, 0, 3, 0, 1],
82
+ [1, 0, 0, 0, 0, 0, 0, 1],
83
+ [1, 0, 0, 2, 2, 0, 0, 1],
84
+ [1, 0, 0, 0, 0, 0, 0, 1],
85
+ [_, 1, 1, 1, 1, 1, 1, _],
86
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
87
+ const HEAD_CHIBI_S = spriteGeneratorCore.createPartData(10, 10, [
88
+ [_, _, _, 1, 1, 1, 1, _, _, _],
89
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
90
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
91
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
92
+ [1, 0, 0, 3, 0, 0, 3, 0, 0, 1],
93
+ [1, 0, 0, 3, 0, 0, 3, 0, 0, 1],
94
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
95
+ [1, 0, 0, 0, 2, 2, 0, 0, 0, 1],
96
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
97
+ [_, _, 1, 1, 1, 1, 1, 1, _, _],
98
+ ], ['#ffecd2', '#c07848', '#e05050', '#2a2a4e']);
99
+ /* ── HAIR ── */
100
+ const HAIR_SHORT_S = spriteGeneratorCore.createPartData(8, 4, [
101
+ [_, _, 0, 0, 0, 0, _, _],
102
+ [_, 0, 0, 0, 0, 0, 0, _],
103
+ [0, 0, 1, 1, 1, 1, 0, 0],
104
+ [0, 1, _, _, _, _, 1, 0],
105
+ ], ['#4a3508', '#6b4e0a']);
106
+ const HAIR_LONG_S = spriteGeneratorCore.createPartData(10, 10, [
107
+ [_, _, _, 0, 0, 0, 0, _, _, _],
108
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
109
+ [_, 0, 0, 1, 1, 1, 1, 0, 0, _],
110
+ [0, 0, 1, _, _, _, _, 1, 0, 0],
111
+ [0, 1, _, _, _, _, _, _, 1, 0],
112
+ [0, 1, _, _, _, _, _, _, 1, 0],
113
+ [0, 1, _, _, _, _, _, _, 1, 0],
114
+ [0, 0, _, _, _, _, _, _, 0, 0],
115
+ [_, 0, _, _, _, _, _, _, 0, _],
116
+ [_, 0, 0, _, _, _, _, 0, 0, _],
117
+ ], ['#4a3508', '#6b4e0a']);
118
+ const HAIR_MOHAWK_S = spriteGeneratorCore.createPartData(8, 6, [
119
+ [_, _, _, 0, 0, _, _, _],
120
+ [_, _, 0, 0, 0, 0, _, _],
121
+ [_, _, 0, 0, 0, 0, _, _],
122
+ [_, _, 0, 1, 1, 0, _, _],
123
+ [_, 0, 1, _, _, 1, 0, _],
124
+ [0, 1, _, _, _, _, 1, 0],
125
+ ], ['#d03020', '#a02018']);
126
+ const HAIR_PONYTAIL_S = spriteGeneratorCore.createPartData(10, 8, [
127
+ [_, _, _, 0, 0, 0, 0, _, _, _],
128
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
129
+ [_, 0, 0, 1, 1, 1, 1, 0, 0, _],
130
+ [0, 0, 1, _, _, _, _, 1, 0, 0],
131
+ [_, _, _, _, _, _, _, _, 0, 0],
132
+ [_, _, _, _, _, _, _, _, _, 0],
133
+ [_, _, _, _, _, _, _, _, _, 0],
134
+ [_, _, _, _, _, _, _, _, 0, _],
135
+ ], ['#f0d060', '#d0b040']);
136
+ const HAIR_SPIKY_S = spriteGeneratorCore.createPartData(10, 6, [
137
+ [_, 0, _, _, 0, _, 0, _, _, _],
138
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
139
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, _],
140
+ [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
141
+ [0, 1, _, _, _, _, _, _, 1, 0],
142
+ [_, _, _, _, _, _, _, _, _, _],
143
+ ], ['#1a1a2e', '#101020']);
144
+ /* ── TORSOS ── */
145
+ const TORSO_BASIC_S = spriteGeneratorCore.createPartData(8, 6, [
146
+ [_, _, 1, 1, 1, 1, _, _],
147
+ [_, 1, 0, 0, 0, 0, 1, _],
148
+ [1, 0, 0, 0, 0, 0, 0, 1],
149
+ [1, 0, 0, 0, 0, 0, 0, 1],
150
+ [_, 1, 0, 0, 0, 0, 1, _],
151
+ [_, _, 1, 1, 1, 1, _, _],
152
+ ], ['#4060d0', '#3040b0']);
153
+ const TORSO_ARMOR_S = spriteGeneratorCore.createPartData(10, 7, [
154
+ [_, _, _, 1, 1, 1, 1, _, _, _],
155
+ [_, _, 1, 0, 2, 2, 0, 1, _, _],
156
+ [_, 1, 0, 0, 2, 2, 0, 0, 1, _],
157
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
158
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
159
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
160
+ [_, _, 1, 1, 1, 1, 1, 1, _, _],
161
+ ], ['#c0c0c8', '#909098', '#f0d060']);
162
+ const TORSO_ROBE_S = spriteGeneratorCore.createPartData(10, 10, [
163
+ [_, _, _, 1, 1, 1, 1, _, _, _],
164
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
165
+ [_, 1, 0, 0, 2, 2, 0, 0, 1, _],
166
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
167
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
168
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
169
+ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
170
+ [_, 1, 0, 0, 0, 0, 0, 0, 1, _],
171
+ [_, _, 1, 0, 0, 0, 0, 1, _, _],
172
+ [_, _, _, 1, 1, 1, 1, _, _, _],
173
+ ], ['#8020a0', '#601080', '#f0d060']);
174
+ /* ── ARMS ── */
175
+ const ARM_BASIC_S = spriteGeneratorCore.createPartData(3, 5, [
176
+ [_, 0, _],
177
+ [0, 0, 1],
178
+ [0, 0, 1],
179
+ [0, 0, 1],
180
+ [_, 0, _],
181
+ ], ['#ffecd2', '#c07848']);
182
+ const ARM_ARMORED_S = spriteGeneratorCore.createPartData(4, 5, [
183
+ [_, 0, 1, _],
184
+ [0, 0, 0, 1],
185
+ [0, 0, 0, 1],
186
+ [0, 0, 0, 1],
187
+ [_, 0, 1, _],
188
+ ], ['#c0c0c8', '#909098']);
189
+ /* ── LEGS ── */
190
+ const LEG_BASIC_S = spriteGeneratorCore.createPartData(3, 5, [
191
+ [_, 0, _],
192
+ [0, 0, 1],
193
+ [0, 0, 1],
194
+ [0, 0, 1],
195
+ [0, 1, 1],
196
+ ], ['#4060d0', '#3040b0']);
197
+ const LEG_BOOT_S = spriteGeneratorCore.createPartData(4, 5, [
198
+ [_, 0, 0, _],
199
+ [_, 0, 0, _],
200
+ [_, 0, 0, _],
201
+ [0, 0, 0, 1],
202
+ [0, 0, 0, 1],
203
+ ], ['#b08060', '#906840']);
204
+ /* ── HATS ── */
205
+ const HAT_WIZARD_S = spriteGeneratorCore.createPartData(10, 8, [
206
+ [_, _, _, _, 0, _, _, _, _, _],
207
+ [_, _, _, 0, 0, 0, _, _, _, _],
208
+ [_, _, 0, 0, 0, 0, 0, _, _, _],
209
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
210
+ [_, 0, 0, 0, 2, 0, 0, 0, _, _],
211
+ [0, 0, 0, 0, 2, 0, 0, 0, 0, _],
212
+ [0, 1, 1, 1, 1, 1, 1, 1, 0, _],
213
+ [_, _, _, _, _, _, _, _, _, _],
214
+ ], ['#8020a0', '#601080', '#f0d060']);
215
+ const HAT_KNIGHT_S = spriteGeneratorCore.createPartData(10, 6, [
216
+ [_, _, _, 0, 0, 0, 0, _, _, _],
217
+ [_, _, 0, 0, 0, 0, 0, 0, _, _],
218
+ [_, 0, 0, 0, 0, 0, 0, 0, 0, _],
219
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
220
+ [0, 0, 2, 2, 2, 2, 2, 2, 0, 0],
221
+ [_, _, _, 1, 1, 1, 1, _, _, _],
222
+ ], ['#c0c0c8', '#606068', '#f0d060']);
223
+ const HAT_CROWN_S = spriteGeneratorCore.createPartData(10, 5, [
224
+ [_, 2, _, _, 2, _, _, 2, _, _],
225
+ [_, 0, 2, _, 0, _, 2, 0, _, _],
226
+ [_, 0, 0, 2, 0, 2, 0, 0, _, _],
227
+ [_, 0, 0, 0, 0, 0, 0, 0, _, _],
228
+ [_, 1, 1, 1, 1, 1, 1, 1, _, _],
229
+ ], ['#f0d060', '#d0b040', '#ff4040']);
230
+ const HAT_CAP_S = spriteGeneratorCore.createPartData(9, 5, [
231
+ [_, _, _, 0, 0, 0, _, _, _],
232
+ [_, _, 0, 0, 0, 0, 0, _, _],
233
+ [_, 0, 0, 0, 0, 0, 0, 0, _],
234
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
235
+ [_, _, 1, 1, 1, 1, 1, _, _],
236
+ ], ['#d04040', '#b02020']);
237
+ /* ── WEAPONS ── */
238
+ const WEAPON_SWORD_S = spriteGeneratorCore.createPartData(3, 10, [
239
+ [_, 0, _],
240
+ [_, 0, _],
241
+ [_, 0, _],
242
+ [_, 0, _],
243
+ [_, 0, _],
244
+ [_, 0, _],
245
+ [_, 0, _],
246
+ [1, 1, 1],
247
+ [_, 2, _],
248
+ [_, 2, _],
249
+ ], ['#c0c0c8', '#f0d060', '#8b5e3c']);
250
+ const WEAPON_STAFF_S = spriteGeneratorCore.createPartData(3, 12, [
251
+ [_, 1, _],
252
+ [1, 1, 1],
253
+ [_, 1, _],
254
+ [_, 0, _],
255
+ [_, 0, _],
256
+ [_, 0, _],
257
+ [_, 0, _],
258
+ [_, 0, _],
259
+ [_, 0, _],
260
+ [_, 0, _],
261
+ [_, 0, _],
262
+ [_, 0, _],
263
+ ], ['#8b5e3c', '#4080e0']);
264
+ const WEAPON_BOW_S = spriteGeneratorCore.createPartData(5, 10, [
265
+ [_, _, _, 0, _],
266
+ [_, _, 0, _, 1],
267
+ [_, 0, _, _, 1],
268
+ [0, _, _, _, 1],
269
+ [0, _, _, _, 1],
270
+ [0, _, _, _, 1],
271
+ [0, _, _, _, 1],
272
+ [_, 0, _, _, 1],
273
+ [_, _, 0, _, 1],
274
+ [_, _, _, 0, _],
275
+ ], ['#8b5e3c', '#c0c0c8']);
276
+ const SHIELD_ROUND_S = spriteGeneratorCore.createPartData(6, 7, [
277
+ [_, _, 1, 1, _, _],
278
+ [_, 1, 0, 0, 1, _],
279
+ [1, 0, 0, 2, 0, 1],
280
+ [1, 0, 2, 2, 0, 1],
281
+ [1, 0, 0, 2, 0, 1],
282
+ [_, 1, 0, 0, 1, _],
283
+ [_, _, 1, 1, _, _],
284
+ ], ['#c0c0c8', '#909098', '#f0d060']);
285
+ /* ════════════════════════════════════════════════════════════════
286
+ REGISTER ALL CHARACTER PARTS
287
+ ════════════════════════════════════════════════════════════════ */
288
+ const CHARACTER_PARTS = [
289
+ // ── Heads ──
290
+ {
291
+ id: 'head-round', name: 'Round Head', category: 'head', slot: 'head',
292
+ anchorX: 4, anchorY: 7, zOrder: 10, tags: ['basic', 'round'],
293
+ pixels: spriteGeneratorCore.generateMirroredDirections({ S: HEAD_ROUND_S, E: HEAD_ROUND_E, N: HEAD_ROUND_N }),
294
+ },
295
+ {
296
+ id: 'head-square', name: 'Square Head', category: 'head', slot: 'head',
297
+ anchorX: 4, anchorY: 6, zOrder: 10, tags: ['basic', 'angular'],
298
+ pixels: { S: HEAD_SQUARE_S },
299
+ },
300
+ {
301
+ id: 'head-chibi', name: 'Chibi Head', category: 'head', slot: 'head',
302
+ anchorX: 5, anchorY: 9, zOrder: 10, tags: ['cute', 'chibi', 'large'],
303
+ pixels: { S: HEAD_CHIBI_S },
304
+ },
305
+ // ── Hair ──
306
+ {
307
+ id: 'hair-short', name: 'Short Hair', category: 'hair', slot: 'head',
308
+ anchorX: 4, anchorY: 3, zOrder: 11, tags: ['basic', 'short'],
309
+ pixels: { S: HAIR_SHORT_S },
310
+ recolorableIndices: [0, 1],
311
+ },
312
+ {
313
+ id: 'hair-long', name: 'Long Hair', category: 'hair', slot: 'head',
314
+ anchorX: 5, anchorY: 3, zOrder: 11, tags: ['long', 'flowing'],
315
+ pixels: { S: HAIR_LONG_S },
316
+ recolorableIndices: [0, 1],
317
+ },
318
+ {
319
+ id: 'hair-mohawk', name: 'Mohawk', category: 'hair', slot: 'head',
320
+ anchorX: 4, anchorY: 5, zOrder: 12, tags: ['punk', 'mohawk'],
321
+ pixels: { S: HAIR_MOHAWK_S },
322
+ recolorableIndices: [0, 1],
323
+ },
324
+ {
325
+ id: 'hair-ponytail', name: 'Ponytail', category: 'hair', slot: 'head',
326
+ anchorX: 5, anchorY: 3, zOrder: 11, tags: ['long', 'ponytail'],
327
+ pixels: { S: HAIR_PONYTAIL_S },
328
+ recolorableIndices: [0, 1],
329
+ },
330
+ {
331
+ id: 'hair-spiky', name: 'Spiky Hair', category: 'hair', slot: 'head',
332
+ anchorX: 5, anchorY: 5, zOrder: 12, tags: ['spiky', 'anime'],
333
+ pixels: { S: HAIR_SPIKY_S },
334
+ recolorableIndices: [0, 1],
335
+ },
336
+ // ── Torsos ──
337
+ {
338
+ id: 'torso-basic', name: 'Basic Torso', category: 'torso', slot: 'torso',
339
+ anchorX: 4, anchorY: 0, zOrder: 5, tags: ['basic', 'shirt'],
340
+ pixels: { S: TORSO_BASIC_S },
341
+ recolorableIndices: [0, 1],
342
+ },
343
+ {
344
+ id: 'torso-armor', name: 'Armor Torso', category: 'torso', slot: 'torso',
345
+ anchorX: 5, anchorY: 0, zOrder: 5, tags: ['armor', 'knight'],
346
+ pixels: { S: TORSO_ARMOR_S },
347
+ recolorableIndices: [0, 1, 2],
348
+ },
349
+ {
350
+ id: 'torso-robe', name: 'Robe Torso', category: 'torso', slot: 'torso',
351
+ anchorX: 5, anchorY: 0, zOrder: 5, tags: ['robe', 'wizard', 'long'],
352
+ pixels: { S: TORSO_ROBE_S },
353
+ recolorableIndices: [0, 1, 2],
354
+ },
355
+ // ── Arms ──
356
+ {
357
+ id: 'arm-basic', name: 'Basic Arm', category: 'arm', slot: 'leftArm',
358
+ anchorX: 1, anchorY: 0, zOrder: 6, tags: ['basic', 'bare'],
359
+ pixels: { S: ARM_BASIC_S },
360
+ },
361
+ {
362
+ id: 'arm-armored', name: 'Armored Arm', category: 'arm', slot: 'leftArm',
363
+ anchorX: 2, anchorY: 0, zOrder: 6, tags: ['armor', 'knight'],
364
+ pixels: { S: ARM_ARMORED_S },
365
+ recolorableIndices: [0, 1],
366
+ },
367
+ // ── Legs ──
368
+ {
369
+ id: 'leg-basic', name: 'Basic Leg', category: 'leg', slot: 'leftLeg',
370
+ anchorX: 1, anchorY: 0, zOrder: 3, tags: ['basic', 'pants'],
371
+ pixels: { S: LEG_BASIC_S },
372
+ recolorableIndices: [0, 1],
373
+ },
374
+ {
375
+ id: 'leg-boot', name: 'Boot Leg', category: 'leg', slot: 'leftLeg',
376
+ anchorX: 2, anchorY: 0, zOrder: 3, tags: ['boot', 'heavy'],
377
+ pixels: { S: LEG_BOOT_S },
378
+ recolorableIndices: [0, 1],
379
+ },
380
+ // ── Hats ──
381
+ {
382
+ id: 'hat-wizard', name: 'Wizard Hat', category: 'hat', slot: 'head',
383
+ anchorX: 5, anchorY: 7, zOrder: 13, tags: ['wizard', 'magic'],
384
+ pixels: { S: HAT_WIZARD_S },
385
+ recolorableIndices: [0, 1, 2],
386
+ },
387
+ {
388
+ id: 'hat-knight', name: 'Knight Helmet', category: 'helmet', slot: 'head',
389
+ anchorX: 5, anchorY: 5, zOrder: 13, tags: ['knight', 'armor'],
390
+ pixels: { S: HAT_KNIGHT_S },
391
+ recolorableIndices: [0, 1, 2],
392
+ },
393
+ {
394
+ id: 'hat-crown', name: 'Crown', category: 'hat', slot: 'head',
395
+ anchorX: 5, anchorY: 4, zOrder: 14, tags: ['royal', 'king'],
396
+ pixels: { S: HAT_CROWN_S },
397
+ recolorableIndices: [0, 1, 2],
398
+ },
399
+ {
400
+ id: 'hat-cap', name: 'Cap', category: 'hat', slot: 'head',
401
+ anchorX: 4, anchorY: 4, zOrder: 13, tags: ['casual', 'cap'],
402
+ pixels: { S: HAT_CAP_S },
403
+ recolorableIndices: [0, 1],
404
+ },
405
+ // ── Weapons ──
406
+ {
407
+ id: 'weapon-sword', name: 'Sword', category: 'weapon', slot: 'rightHand',
408
+ anchorX: 1, anchorY: 7, zOrder: 15, tags: ['sword', 'melee'],
409
+ pixels: { S: WEAPON_SWORD_S },
410
+ },
411
+ {
412
+ id: 'weapon-staff', name: 'Staff', category: 'weapon', slot: 'rightHand',
413
+ anchorX: 1, anchorY: 2, zOrder: 15, tags: ['staff', 'magic'],
414
+ pixels: { S: WEAPON_STAFF_S },
415
+ },
416
+ {
417
+ id: 'weapon-bow', name: 'Bow', category: 'weapon', slot: 'rightHand',
418
+ anchorX: 0, anchorY: 5, zOrder: 15, tags: ['bow', 'ranged'],
419
+ pixels: { S: WEAPON_BOW_S },
420
+ },
421
+ // ── Shields ──
422
+ {
423
+ id: 'shield-round', name: 'Round Shield', category: 'shield', slot: 'leftHand',
424
+ anchorX: 3, anchorY: 3, zOrder: 7, tags: ['shield', 'defense'],
425
+ pixels: { S: SHIELD_ROUND_S },
426
+ recolorableIndices: [0, 1, 2],
427
+ },
428
+ ];
429
+ function charAssembly(name, parts, w = 32, h = 32) {
430
+ return {
431
+ id: `char-${name.toLowerCase().replace(/\s+/g, '-')}`,
432
+ name,
433
+ parts,
434
+ skeletonId: 'basic-humanoid',
435
+ canvasWidth: w,
436
+ canvasHeight: h,
437
+ projection: 'sideView',
438
+ };
439
+ }
440
+ const CHARACTER_PRESETS = [
441
+ {
442
+ id: 'preset-warrior', name: 'Warrior', description: 'Knight with armor and sword',
443
+ tags: ['knight', 'armor', 'melee'],
444
+ assembly: charAssembly('Warrior', [
445
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
446
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
447
+ { partId: 'torso-armor', offsetX: 11, offsetY: 16 },
448
+ { partId: 'arm-armored', offsetX: 7, offsetY: 17 },
449
+ { partId: 'arm-armored', offsetX: 21, offsetY: 17, flipH: true },
450
+ { partId: 'head-round', offsetX: 12, offsetY: 8 },
451
+ { partId: 'hat-knight', offsetX: 11, offsetY: 3 },
452
+ { partId: 'weapon-sword', offsetX: 24, offsetY: 12 },
453
+ { partId: 'shield-round', offsetX: 3, offsetY: 16 },
454
+ ]),
455
+ },
456
+ {
457
+ id: 'preset-mage', name: 'Mage', description: 'Wizard with robe and staff',
458
+ tags: ['wizard', 'magic', 'ranged'],
459
+ assembly: charAssembly('Mage', [
460
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
461
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
462
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
463
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
464
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
465
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
466
+ { partId: 'hat-wizard', offsetX: 11, offsetY: -2 },
467
+ { partId: 'weapon-staff', offsetX: 24, offsetY: 6 },
468
+ ]),
469
+ },
470
+ {
471
+ id: 'preset-archer', name: 'Archer', description: 'Ranger with bow',
472
+ tags: ['ranger', 'bow', 'ranged'],
473
+ assembly: charAssembly('Archer', [
474
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
475
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
476
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
477
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
478
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
479
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
480
+ { partId: 'hair-short', offsetX: 12, offsetY: 6 },
481
+ { partId: 'weapon-bow', offsetX: 23, offsetY: 14 },
482
+ ]),
483
+ },
484
+ {
485
+ id: 'preset-king', name: 'King', description: 'Royal with crown and robe',
486
+ tags: ['royal', 'king', 'npc'],
487
+ assembly: charAssembly('King', [
488
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
489
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
490
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
491
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
492
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
493
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
494
+ { partId: 'hat-crown', offsetX: 11, offsetY: 2 },
495
+ ]),
496
+ },
497
+ {
498
+ id: 'preset-villager', name: 'Villager', description: 'Simple villager NPC',
499
+ tags: ['npc', 'villager', 'simple'],
500
+ assembly: charAssembly('Villager', [
501
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
502
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
503
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
504
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
505
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
506
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
507
+ { partId: 'hair-short', offsetX: 12, offsetY: 6 },
508
+ ]),
509
+ },
510
+ {
511
+ id: 'preset-punk', name: 'Punk', description: 'Edgy character with mohawk',
512
+ tags: ['punk', 'rebellious'],
513
+ assembly: charAssembly('Punk', [
514
+ { partId: 'leg-boot', offsetX: 10, offsetY: 24 },
515
+ { partId: 'leg-boot', offsetX: 18, offsetY: 24, flipH: true },
516
+ { partId: 'torso-basic', offsetX: 12, offsetY: 17 },
517
+ { partId: 'arm-basic', offsetX: 9, offsetY: 18 },
518
+ { partId: 'arm-basic', offsetX: 21, offsetY: 18, flipH: true },
519
+ { partId: 'head-round', offsetX: 12, offsetY: 9 },
520
+ { partId: 'hair-mohawk', offsetX: 12, offsetY: 4 },
521
+ ]),
522
+ },
523
+ {
524
+ id: 'preset-chibi-hero', name: 'Chibi Hero', description: 'Cute chibi character',
525
+ tags: ['chibi', 'cute', 'hero'],
526
+ assembly: charAssembly('Chibi Hero', [
527
+ { partId: 'leg-basic', offsetX: 11, offsetY: 26 },
528
+ { partId: 'leg-basic', offsetX: 18, offsetY: 26, flipH: true },
529
+ { partId: 'torso-basic', offsetX: 12, offsetY: 19 },
530
+ { partId: 'arm-basic', offsetX: 9, offsetY: 20 },
531
+ { partId: 'arm-basic', offsetX: 21, offsetY: 20, flipH: true },
532
+ { partId: 'head-chibi', offsetX: 11, offsetY: 9 },
533
+ { partId: 'hair-spiky', offsetX: 11, offsetY: 4 },
534
+ { partId: 'weapon-sword', offsetX: 24, offsetY: 14 },
535
+ ]),
536
+ },
537
+ {
538
+ id: 'preset-princess', name: 'Princess', description: 'Royal princess with crown and long hair',
539
+ tags: ['royal', 'princess', 'npc'],
540
+ assembly: charAssembly('Princess', [
541
+ { partId: 'leg-basic', offsetX: 11, offsetY: 24 },
542
+ { partId: 'leg-basic', offsetX: 18, offsetY: 24, flipH: true },
543
+ { partId: 'torso-robe', offsetX: 11, offsetY: 14 },
544
+ { partId: 'arm-basic', offsetX: 8, offsetY: 15 },
545
+ { partId: 'arm-basic', offsetX: 22, offsetY: 15, flipH: true },
546
+ { partId: 'head-round', offsetX: 12, offsetY: 6 },
547
+ { partId: 'hair-long', offsetX: 11, offsetY: 3 },
548
+ { partId: 'hat-crown', offsetX: 11, offsetY: 2 },
549
+ ]),
550
+ },
551
+ ];
552
+ /** Initialize: register all character parts */
553
+ function initCharacterParts() {
554
+ spriteGeneratorCore.registerParts(CHARACTER_PARTS);
555
+ }
556
+
557
+ exports.CHARACTER_PARTS = CHARACTER_PARTS;
558
+ exports.CHARACTER_PRESETS = CHARACTER_PRESETS;
559
+ exports.CLOTHING_PALETTES = CLOTHING_PALETTES;
560
+ exports.HAIR_PALETTES = HAIR_PALETTES;
561
+ exports.SKIN_PALETTES = SKIN_PALETTES;
562
+ exports.initCharacterParts = initCharacterParts;
563
+ //# sourceMappingURL=characterGeneratorPresets.js.map