create-aura3d 1.4.2 → 1.4.4

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 (78) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/showcase-spec-artifacts.d.ts +5 -0
  7. package/dist/showcase-spec-artifacts.d.ts.map +1 -1
  8. package/dist/showcase-spec-artifacts.js +11 -2
  9. package/dist/showcase-spec-artifacts.js.map +1 -1
  10. package/dist/showcase-spec-asset-pair-composition.d.ts +116 -0
  11. package/dist/showcase-spec-asset-pair-composition.d.ts.map +1 -0
  12. package/dist/showcase-spec-asset-pair-composition.js +336 -0
  13. package/dist/showcase-spec-asset-pair-composition.js.map +1 -0
  14. package/dist/showcase-spec-compiler.d.ts.map +1 -1
  15. package/dist/showcase-spec-compiler.js +149 -10
  16. package/dist/showcase-spec-compiler.js.map +1 -1
  17. package/dist/showcase-spec-composition-evidence.d.ts +14 -0
  18. package/dist/showcase-spec-composition-evidence.d.ts.map +1 -0
  19. package/dist/showcase-spec-composition-evidence.js +123 -0
  20. package/dist/showcase-spec-composition-evidence.js.map +1 -0
  21. package/dist/showcase-spec-evidence.js +50 -1
  22. package/dist/showcase-spec-evidence.js.map +1 -1
  23. package/dist/showcase-spec-game-geometry-extractor.d.ts +4 -2
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
  25. package/dist/showcase-spec-game-geometry-extractor.js +248 -26
  26. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -1
  27. package/dist/showcase-spec-game-geometry-probe.d.ts +20 -0
  28. package/dist/showcase-spec-game-geometry-probe.d.ts.map +1 -0
  29. package/dist/showcase-spec-game-geometry-probe.js +16 -0
  30. package/dist/showcase-spec-game-geometry-probe.js.map +1 -0
  31. package/dist/showcase-spec-game-replacement-evidence.js +7 -3
  32. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -1
  33. package/dist/showcase-spec-game-scene-scale.d.ts +10 -0
  34. package/dist/showcase-spec-game-scene-scale.d.ts.map +1 -0
  35. package/dist/showcase-spec-game-scene-scale.js +71 -0
  36. package/dist/showcase-spec-game-scene-scale.js.map +1 -0
  37. package/dist/showcase-spec-game-template-evidence.d.ts +10 -0
  38. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -1
  39. package/dist/showcase-spec-game-template-evidence.js +48 -5
  40. package/dist/showcase-spec-game-template-evidence.js.map +1 -1
  41. package/dist/showcase-spec-gameplay-evidence.js +4 -3
  42. package/dist/showcase-spec-gameplay-evidence.js.map +1 -1
  43. package/dist/showcase-spec-parser.d.ts.map +1 -1
  44. package/dist/showcase-spec-parser.js +3 -0
  45. package/dist/showcase-spec-parser.js.map +1 -1
  46. package/dist/showcase-spec-platformer-artifacts.d.ts +1 -0
  47. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -1
  48. package/dist/showcase-spec-platformer-artifacts.js +164 -43
  49. package/dist/showcase-spec-platformer-artifacts.js.map +1 -1
  50. package/dist/showcase-spec-racing-artifacts.d.ts +1 -0
  51. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -1
  52. package/dist/showcase-spec-racing-artifacts.js +203 -31
  53. package/dist/showcase-spec-racing-artifacts.js.map +1 -1
  54. package/dist/showcase-spec-replacement-candidates.js +2 -1
  55. package/dist/showcase-spec-replacement-candidates.js.map +1 -1
  56. package/dist/showcase-spec-types.d.ts +22 -0
  57. package/dist/showcase-spec-types.d.ts.map +1 -1
  58. package/package.json +3 -3
  59. package/templates/animation-channel/package.json +1 -1
  60. package/templates/animation-studio/package.json +5 -5
  61. package/templates/character-controller/package.json +3 -3
  62. package/templates/cinematic-scene/package.json +1 -1
  63. package/templates/episode-builder/package.json +1 -1
  64. package/templates/falling-blocks-starter/package.json +1 -1
  65. package/templates/fighting-game/package.json +1 -1
  66. package/templates/mini-game/package.json +1 -1
  67. package/templates/product-viewer/package.json +1 -1
  68. package/templates/prompt-animation-channel/package.json +1 -1
  69. package/templates/racing-starter/package.json +1 -1
  70. package/templates/racing-starter/src/main.ts +1 -1
  71. package/templates/three-compat-architecture-interior/package.json +1 -1
  72. package/templates/three-compat-asset-inspector/package.json +1 -1
  73. package/templates/three-compat-character-viewer/package.json +1 -1
  74. package/templates/three-compat-custom-threejs-migration/package.json +1 -1
  75. package/templates/three-compat-large-scene/package.json +1 -1
  76. package/templates/three-compat-material-authoring/package.json +1 -1
  77. package/templates/three-compat-postprocess-scene/package.json +1 -1
  78. package/templates/three-compat-premium-product-viewer/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"showcase-spec-evidence.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,4CAA4C,EAC5C,mCAAmC,EACpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAQjF,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAyBhF,MAAM,UAAU,uBAAuB,CAAC,IAAkB,EAAE,UAAqC,EAAE;IACjG,IAAI,IAAI,CAAC,YAAY,KAAK,yBAAyB;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,mCAAmC,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3H,QAAQ,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAElE,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,cAAc,UAAU,CAAC,IAAI,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1I,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAkB,EAAE,OAAkC;IAC9F,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC;QACnE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAC;YACrF,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,mCAAmC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,6BAA6B,CAAC;YAC7C,KAAK,EAAE,mBAAmB;YAC1B,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB;YACnD,gBAAgB,EAAE,QAAQ;YAC1B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YACrF,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC1E,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,sCAAsC,EAAE,OAAO,CAAC,CAAC;YAC3F,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,yCAAyC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3H,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,6BAA6B,CAAC;YAC7C,KAAK,EAAE,uBAAuB;YAC9B,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,iBAAiB;YACxD,gBAAgB,EAAE,YAAY;YAC9B,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvG,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAkB;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa;QAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAC7E,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QAC9E,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAkB;IACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,gCAAgC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB;IACpC,OAAO,IAAI,CAAC,QAAQ,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,CAAC;AAChF,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe,EAAE,KAAc;IAChE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,iDAAiD,OAAO,EAAE,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;IACtH,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC;IACjG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;IAC5I,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,uDAAuD,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5F,QAAQ,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,0DAA0D,OAAO,EAAE,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAkB;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC9H,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACtI,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACvF,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAkB;IAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACrG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAAE,OAAO,CAAC,GAAG,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAkB;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,0FAA0F,CAAC;WAChH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;WAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;WAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,QAAgB,EAAE,UAAqC,EAAE;IACpG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAA2C;IAChF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnF,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,sBAAsB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,kBAAkB,OAAO,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,YAAY,KAAK,aAAa,EAAE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7G,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,4CAA4C,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACpI,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,qBAAqB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACzG,QAAQ,CAAC,IAAI,CAAC,GAAG,qCAAqC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,gBAAgB,CAAC,CAAC;IAC7E,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qCAAqC,CAAC,KAA2C;IACxF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnF,MAAM,QAAQ,GAAG,QAAQ,EAAE,gBAAgB,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,YAAY,KAAK,4BAA4B,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,+BAA+B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,YAAY,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAChE,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,2BAA2B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,oCAAoC,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,2BAA2B,CAAC,CAAC;IAC9D,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,YAAY,KAAK,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtG,IAAI,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,gDAAgD,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,gDAAgD,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,qCAAqC,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,QAAQ,EAAE,gBAAgB,IAAI,QAAQ,CAAC,4BAA4B,KAAK,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC7G,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,sCAAsC,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,kCAAkC,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IACtF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kCAAkC,CACzC,KAAa,EACb,QAAsC,EACtC,cAAiC;IAEjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,gCAAgC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmD;IACnF,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iCAAiC,CAAC;AAC7F,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAkB,EAAE,QAAmD;IACzG,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,qBAAqB;QAC/C,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,uBAAuB,CAAC;AAC3D,CAAC;AAED,SAAS,4CAA4C,CAAC,KAAuC;IAC3F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,8BAA8B,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,+BAA+B,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,4BAA4B,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,YAAY,KAAK,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC/G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,mCAAmC,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,cAAc,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACxG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,+BAA+B,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,QAAQ,CAAC,gBAAgB,KAAK,cAAc,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,6BAA6B,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,YAAY,KAAK,aAAa,EAAE,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,YAAY,CACnB,QAAgB,EAChB,KAAa,EACb,UAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,EAAE,CAAC;IAC7E,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,EAAE,CAAC;QACtF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAkC;IAC/E,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAkB,EAAE,KAAc,EAAE,OAAkC;IACjH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,gDAAgD,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,MAAM,mBAAmB,GAAG,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,kCAAkC;QAAE,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACzH,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACnG,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACjH,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC3G,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,CAAC,UAAU,CAAC,oBAAoB;QAAE,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACrI,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,4DAA4D,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAC/H,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,mFAAmF,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,sBAAsB,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,gCAAgC,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACxF,QAAQ,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClF,QAAQ,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,qEAAqE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3I,IAAI,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,0EAA0E,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAChF,QAAQ,CAAC,IAAI,CAAC,0EAA0E,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,qDAAqD,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpJ,QAAQ,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC;YAC9C,KAAK,EAAE,gDAAgD;YACvD,KAAK,EAAE,QAAQ,CAAC,cAAc;YAC9B,UAAU,EAAE,GAAG;YACf,IAAI;SACL,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACrF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,iDAAiD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,sDAAsD,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,+DAA+D,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,KAAK,CAAC,wBAAwB,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,uBAAuB,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAClH,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,iCAAiC,CAAC,cAAc,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC3I,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5H,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yCAAyC,CAAC,IAAkB,EAAE,KAAc,EAAE,OAAkC;IACvH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,mDAAmD,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,0DAA0D,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,MAAM,uBAAuB,GAAG,qCAAqC,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,yCAAyC;QAAE,QAAQ,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACtI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACzG,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,CAAC,cAAc;QAAE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACjI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC3I,IAAI,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,yDAAyD,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,4FAA4F,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9I,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,sBAAsB,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,sCAAsC,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5F,QAAQ,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClF,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,UAAU,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,yFAAyF,uBAAuB,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACnG,QAAQ,CAAC,IAAI,CAAC,+EAA+E,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QACrJ,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,CAAC;YAC3G,QAAQ,CAAC,IAAI,CAAC,sEAAsE,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrI,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,2DAA2D,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC;YAC9C,KAAK,EAAE,sDAAsD;YAC7D,KAAK,EAAE,UAAU,CAAC,cAAc;YAChC,UAAU,EAAE,GAAG;YACf,IAAI;SACL,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,oCAAoC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC3F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnH,IAAI,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,4DAA4D,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,CAAC,qBAAqB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACtI,IAAI,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,0EAA0E,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACxI,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC7G,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC7G,IAAI,KAAK,CAAC,6BAA6B,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC7I,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,iCAAiC,CAAC,cAAc,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACjJ,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CACvC,IAAkB,EAClB,QAA2C,EAC3C,cAAsB,EACtB,OAAkC;IAElC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,sBAAsB;QAAE,OAAO,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,mCAAmC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7G,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO;YACL,4DAA4D;YAC5D,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kCAAkC,OAAO,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,sEAAsE,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5H,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,iEAAiE,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1H,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oCAAoC,CAC3C,IAAkB,EAClB,UAA6C,EAC7C,OAAkC;IAElC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,sBAAsB;QAAE,OAAO,EAAE,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,qEAAqE,CAAC,CAAC;IACjI,MAAM,SAAS,GAAG,4CAA4C,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/G,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO;YACL,kEAAkE;YAClE,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,wCAAwC,OAAO,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,oBAAoB,GAAG,qCAAqC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7F,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,kFAAkF,oBAAoB,EAAE,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,wEAAwE,SAAS,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACtI,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAkB,EAAE,KAAwC;IAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,cAAc,KAAK,oBAAoB;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,sDAAsD,CAAC,CAAC;IACnF,IAAI,YAAY,CAAC,IAAI,KAAK,oCAAoC,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,YAAY,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1G,QAAQ,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,YAAY,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAClG,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,6EAA6E,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACzI,CAAC;IACD,IAAI,YAAY,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAkB,EAAE,KAAwC;IACnG,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,aAAa,KAAK,iCAAiC;QAAE,OAAO,EAAE,CAAC;IACzE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,6DAA6D,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,wCAAwC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,OAAO,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,IAAI,UAAU;YAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,yEAAyE,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QACpH,CAAC;aAAM,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvG,QAAQ,CAAC,IAAI,CAAC,yEAAyE,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QACpH,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAC7F,QAAQ,CAAC,IAAI,CAAC,0EAA0E,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QACrH,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,mFAAmF,UAAU,IAAI,SAAS,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpK,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAuB,EAAE,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzJ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,qEAAqE,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,oEAAoE,UAAU,EAAE,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,MAAM,KAAK,2BAA2B,IAAI,MAAM,KAAK,oBAAoB,CAAC;AACnF,CAAC;AAED,SAAS,oCAAoC,CAAC,MAAc;IAC1D,OAAO,MAAM,KAAK,+BAA+B,IAAI,MAAM,KAAK,iCAAiC,CAAC;AACpG,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAe;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,sBAAsB,IAAI,KAAK,KAAK,qCAAqC,IAAI,KAAK,KAAK,qCAAqC,CAAC;AAChJ,CAAC;AAED,SAAS,iCAAiC,CAAC,MAAe;IACxD,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,mBAAmB,CAAC;AAC7D,CAAC;AAED,SAAS,mCAAmC,CAAC,KAAa,EAAE,KAAc,EAAE,IAAkB;IAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,OAAO,QAAQ,EAAE,YAAY,KAAK,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IACzI,OAAO,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,0CAA0C,CAAC,CAAC;AACpI,CAAC;AAED,SAAS,8BAA8B,CAAC,KAA4C;IAClF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,iCAAiC,eAAe,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,eAAe,KAAK,sBAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,yBAAyB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,IAAI,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjF,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;gBACrD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;QAClF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,UAAU,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC;QAC3C,KAAK;QACL,MAAM,EAAE,WAAW;QACnB,UAAU;QACV,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IACpG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,KAMpC;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,2BAA2B,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,CAAC,KAAK,4BAA4B,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9F,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;YACnD,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClD,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBACvG,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,2CAA2C,KAAK,EAAE,CAAC,CAAC;oBAChF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,qCAAqC,KAAK,EAAE,CAAC,CAAC;YAC7G,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,2BAA2B,KAAK,CAAC,UAAU,YAAY,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,KAAqC;IACxE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,QAA2B;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;IAC5F,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAA0C,CAAC,CAAC,CAAC,SAAS,CAAC;AACvI,CAAC;AAED,SAAS,qCAAqC,CAAC,QAA4B;IACzE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IAC/F,CAAC,CAAC,CAAC,MAAM,CAAC;AACZ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAkB,EAAE,KAAc;IAC9D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAElH,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,kBAAkB,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACpI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACnI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACnI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,0CAA0C,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAwC,EAAE,OAAe;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAwC,EAAE,OAAe;IAC1F,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAwC,EAAE,cAAsB;IACrG,OAAO,sCAAsC,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,SAAS,sCAAsC,CAC7C,KAAwC,EACxC,cAAsB;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC9G,OAAO,KAAK,CAAC,aAAa,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAwC,EAAE,cAAsB;IACpG,MAAM,aAAa,GAAG,sCAAsC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC;IACrC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAa,EACb,QAAgB,EAChB,cAAsB,EACtB,OAAkC;IAElC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAClF,IAAI,YAAY,KAAK,cAAc;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;IACpF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtG,CAAC"}
1
+ {"version":3,"file":"showcase-spec-evidence.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import type { ShowcasePlatformerPlayableSurfaceMap, ShowcaseRacingTrackTopology } from "./showcase-spec-types.js";
2
- interface ExtractOptions {
2
+ export interface ExtractOptions {
3
3
  readonly projectDir?: string;
4
4
  readonly renderedProbePath?: string;
5
5
  readonly routeOverlayPath?: string;
6
+ readonly characterAssetId?: string;
7
+ readonly characterScaleRatio?: number;
8
+ readonly characterFootprintWidth?: number;
6
9
  }
7
10
  export interface GeometryExtractionSuccess<T> {
8
11
  readonly ok: true;
@@ -17,5 +20,4 @@ export interface GeometryExtractionFailure {
17
20
  export type GeometryExtractionResult<T> = GeometryExtractionSuccess<T> | GeometryExtractionFailure;
18
21
  export declare function extractRacingTrackTopologyFromAsset(assetId: string, options?: ExtractOptions): GeometryExtractionResult<ShowcaseRacingTrackTopology>;
19
22
  export declare function extractPlatformerPlayableSurfaceMapFromAsset(assetId: string, options?: ExtractOptions): GeometryExtractionResult<ShowcasePlatformerPlayableSurfaceMap>;
20
- export {};
21
23
  //# sourceMappingURL=showcase-spec-game-geometry-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"showcase-spec-game-geometry-extractor.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-game-geometry-extractor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,UAAU,cAAc;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC;AA8HnG,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,2BAA2B,CAAC,CA2EvD;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,oCAAoC,CAAC,CA+EhE"}
1
+ {"version":3,"file":"showcase-spec-game-geometry-extractor.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-game-geometry-extractor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAkJnG,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,2BAA2B,CAAC,CA2EvD;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,oCAAoC,CAAC,CAiGhE"}
@@ -7,6 +7,8 @@ const IDENTITY_MATRIX = [
7
7
  0, 0, 1, 0,
8
8
  0, 0, 0, 1
9
9
  ];
10
+ const RACING_CERTIFIED_GAME_UNITS_PER_SECOND = 1.1;
11
+ const RACING_MAX_AUTHORED_LAP_SECONDS = 60;
10
12
  const ROAD_PATTERN = /\b(asph|asphalt|road|track|circuit|route|lane|kerb|curb)\b/i;
11
13
  const ROAD_EXCLUDE_PATTERN = /\b(grass|water|lake|mount|terrain|wall|fence|tree|building|sky)\b/i;
12
14
  const PLATFORM_PATTERN = /\b(platform|walkway|ground|floor|level|ledge|bridge|runway|road|grass|rock|terrain)\b/i;
@@ -19,6 +21,11 @@ const PLATFORMER_MIN_LEVEL_LENGTH = 12;
19
21
  const PLATFORMER_AMBIGUOUS_COLUMN_STEP = 0.5;
20
22
  const PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES = 3;
21
23
  const PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE = 1.5;
24
+ const PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH = 0.72;
25
+ const PLATFORMER_MAX_HORIZONTAL_TRAVERSAL_GAP = 8;
26
+ const PLATFORMER_MAX_UPWARD_TRAVERSAL_STEP = 2.5;
27
+ const PLATFORMER_MAX_RETAINED_MESH_SURFACES = 16;
28
+ const PLATFORMER_DECORATIVE_PATTERN = /\b(column|pillar|tower|decor|background|backdrop)\b/i;
22
29
  export function extractRacingTrackTopologyFromAsset(assetId, options = {}) {
23
30
  const geometry = loadAssetGeometry(assetId, options.projectDir ?? process.cwd());
24
31
  if (!geometry.ok)
@@ -51,7 +58,7 @@ export function extractRacingTrackTopologyFromAsset(assetId, options = {}) {
51
58
  width: centerline[index % centerline.length]?.width ?? averageRoadWidth(roadSize)
52
59
  })),
53
60
  lapLengthMeters: round3(lapLength),
54
- estimatedLapSeconds: Math.max(30, Math.ceil(lapLength / 0.28)),
61
+ estimatedLapSeconds: Math.min(RACING_MAX_AUTHORED_LAP_SECONDS, Math.max(30, Math.ceil(lapLength / RACING_CERTIFIED_GAME_UNITS_PER_SECOND))),
55
62
  confidence: 0.76,
56
63
  modelAlignment: {
57
64
  source: "asset-mesh-extracted",
@@ -103,13 +110,22 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
103
110
  if (horizontalCandidates.length === 0) {
104
111
  return failure([`asset-extraction:platformer-horizontal-surfaces-not-found:${assetId}`], [`${assetId} has ${surfaceSelection.primitives.length} candidate primitive(s), but none are flat enough for playable surfaces.`]);
105
112
  }
106
- const surfaces = createPlayableSurfaces(horizontalCandidates, surfaceBounds);
113
+ const prepared = preparePlatformerSurfacePrimitives(assetId, horizontalCandidates, surfaceBounds, platformerCharacterFootprintWidth(options, options.projectDir ?? process.cwd()));
114
+ if (prepared.blockers.length > 0) {
115
+ return failure(prepared.blockers, [
116
+ `${assetId} produced ${horizontalCandidates.length} flat candidate primitive(s), but no retained depth-coherent traversable chain met the public platformer geometry floor.`,
117
+ ...prepared.reasons,
118
+ ...surfaceSelection.reasons
119
+ ]);
120
+ }
121
+ const surfaces = createPlayableSurfaces(prepared.primitives, surfaceBounds);
107
122
  const meshPlayableSurfaces = meshBoundPlayableSurfaces(surfaces);
108
123
  const qualityBlockers = platformerMeshSurfaceQualityBlockers(assetId, meshPlayableSurfaces);
109
124
  if (qualityBlockers.length > 0) {
110
125
  return failure(qualityBlockers, [
111
126
  `${assetId} produced ${meshPlayableSurfaces.length} mesh-bound playable surface(s); public platformer worlds require retained game geometry, not generated checkpoint/finish markers.`,
112
127
  ...qualityBlockers,
128
+ ...prepared.reasons,
113
129
  ...surfaceSelection.reasons
114
130
  ]);
115
131
  }
@@ -149,6 +165,7 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
149
165
  value: map,
150
166
  reasons: [
151
167
  `mesh-derived platformer surfaces from ${horizontalCandidates.length} ${surfaceSelection.mode} primitive(s)`,
168
+ ...prepared.reasons,
152
169
  ...surfaceSelection.reasons,
153
170
  `surfaceCount:${surfaces.length}`,
154
171
  `meshPlayableSurfaceCount:${meshPlayableSurfaces.length}`,
@@ -156,6 +173,208 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
156
173
  ]
157
174
  };
158
175
  }
176
+ function preparePlatformerSurfacePrimitives(assetId, primitives, bounds, characterFootprintWidth) {
177
+ const modelToGameScale = platformerModelToGameScale(bounds);
178
+ const minimumWalkableWidth = Math.max(PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH, characterFootprintWidth);
179
+ const uniquePrimitives = uniquePlayableSurfacePrimitives(primitives);
180
+ const walkable = uniquePrimitives.filter((primitive) => primitive.size[0] * modelToGameScale >= minimumWalkableWidth);
181
+ const narrowCount = uniquePrimitives.length - walkable.length;
182
+ if (walkable.length === 0) {
183
+ return {
184
+ primitives: [],
185
+ blockers: [`asset-extraction:platformer-no-walkable-width-surfaces:${assetId}`],
186
+ reasons: [`excluded ${narrowCount} primitive(s) narrower than the ${round3(minimumWalkableWidth)} game-unit character footprint`]
187
+ };
188
+ }
189
+ const families = createPlatformerDepthFamilies(walkable, bounds);
190
+ const selectedFamily = [...families].sort((a, b) => platformerDepthFamilyScore(b, modelToGameScale) - platformerDepthFamilyScore(a, modelToGameScale))[0];
191
+ if (!selectedFamily) {
192
+ return {
193
+ primitives: [],
194
+ blockers: [`asset-extraction:platformer-depth-family-not-found:${assetId}`],
195
+ reasons: []
196
+ };
197
+ }
198
+ const familySurfaces = candidatePlatformerSurfaces(selectedFamily.primitives, bounds);
199
+ const columnResolution = resolveAmbiguousPlatformerColumns(assetId, familySurfaces);
200
+ const retainedPrimitiveKeys = new Set(columnResolution.surfaces.map((surface) => surface.primitiveKey));
201
+ const columnResolvedPrimitives = selectedFamily.primitives.filter((primitive) => retainedPrimitiveKeys.has(platformerPrimitiveKey(primitive)));
202
+ const traversal = selectPlatformerTraversalComponent(columnResolvedPrimitives, bounds);
203
+ const familyReasons = families
204
+ .filter((family) => family !== selectedFamily)
205
+ .map((family, index) => `excluded depth family ${index + 1} with ${family.primitives.length} primitive(s) at model z ${round3(family.minZ)}..${round3(family.maxZ)}`);
206
+ const reasons = [
207
+ `selected depth-coherent family with ${selectedFamily.primitives.length} primitive(s) at model z ${round3(selectedFamily.minZ)}..${round3(selectedFamily.maxZ)}`,
208
+ ...familyReasons,
209
+ ...(narrowCount > 0
210
+ ? [`excluded ${narrowCount} primitive(s) narrower than the ${round3(minimumWalkableWidth)} game-unit character footprint`]
211
+ : []),
212
+ ...columnResolution.reasons,
213
+ ...traversal.reasons,
214
+ ...platformerSemanticHintReasons(traversal.primitives)
215
+ ];
216
+ const blockers = [
217
+ ...columnResolution.blockers,
218
+ ...traversal.blockers
219
+ ];
220
+ return {
221
+ primitives: blockers.length === 0 ? traversal.primitives : [],
222
+ blockers,
223
+ reasons
224
+ };
225
+ }
226
+ function createPlatformerDepthFamilies(primitives, bounds) {
227
+ const tolerance = Math.max(0.25, (bounds.max[2] - bounds.min[2]) * 0.04);
228
+ const sorted = [...primitives].sort((a, b) => a.center[2] - b.center[2]);
229
+ const families = [];
230
+ for (const primitive of sorted) {
231
+ const primitiveCenterZ = primitive.center[2];
232
+ const family = families.find((candidate) => {
233
+ const centers = candidate.primitives.map((entry) => entry.center[2]);
234
+ return Math.abs(primitiveCenterZ - average(centers)) <= tolerance;
235
+ });
236
+ if (!family) {
237
+ families.push({
238
+ primitives: [primitive],
239
+ minZ: primitiveCenterZ,
240
+ maxZ: primitiveCenterZ
241
+ });
242
+ continue;
243
+ }
244
+ const mergedPrimitives = [...family.primitives, primitive];
245
+ const merged = {
246
+ primitives: mergedPrimitives,
247
+ minZ: Math.min(...mergedPrimitives.map((entry) => entry.center[2])),
248
+ maxZ: Math.max(...mergedPrimitives.map((entry) => entry.center[2]))
249
+ };
250
+ families.splice(families.indexOf(family), 1, merged);
251
+ }
252
+ return families;
253
+ }
254
+ function platformerDepthFamilyScore(family, modelToGameScale) {
255
+ const minX = Math.min(...family.primitives.map((primitive) => primitive.bounds.min[0]));
256
+ const maxX = Math.max(...family.primitives.map((primitive) => primitive.bounds.max[0]));
257
+ const semanticScore = family.primitives.reduce((score, primitive) => {
258
+ const label = `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`;
259
+ if (PLATFORM_PATTERN.test(label))
260
+ return score + 0.25;
261
+ if (PLATFORMER_DECORATIVE_PATTERN.test(label))
262
+ return score - 0.25;
263
+ return score;
264
+ }, 0);
265
+ return ((maxX - minX) * modelToGameScale + family.primitives.length * 0.5) * 1_000 + semanticScore;
266
+ }
267
+ function candidatePlatformerSurfaces(primitives, bounds) {
268
+ const modelToGameScale = platformerModelToGameScale(bounds);
269
+ const baseline = Math.min(...primitives.map((primitive) => primitive.bounds.max[1]));
270
+ return primitives.map((primitive, index) => ({
271
+ id: `candidate-platform-${String(index).padStart(2, "0")}`,
272
+ x: round3((primitive.bounds.min[0] - bounds.min[0]) * modelToGameScale + (primitive.size[0] * modelToGameScale) / 2),
273
+ y: round3(Math.max(0, primitive.bounds.max[1] - baseline) * modelToGameScale),
274
+ width: round3(primitive.size[0] * modelToGameScale),
275
+ height: round3(Math.max(0.22, primitive.size[1] * modelToGameScale)),
276
+ modelTopY: round3(primitive.bounds.max[1]),
277
+ modelCenterZ: center(primitive.bounds, 2),
278
+ kind: "platform",
279
+ primitiveKey: platformerPrimitiveKey(primitive)
280
+ }));
281
+ }
282
+ function resolveAmbiguousPlatformerColumns(assetId, surfaces) {
283
+ const columns = new Map();
284
+ for (const surface of surfaces) {
285
+ const column = platformerSurfaceColumn(surface.x);
286
+ columns.set(column, [...(columns.get(column) ?? []), surface]);
287
+ }
288
+ const retained = new Set(surfaces);
289
+ const unresolvedColumns = [];
290
+ const reasons = [];
291
+ for (const [column, columnSurfaces] of columns) {
292
+ if (columnSurfaces.length < PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES)
293
+ continue;
294
+ const minY = Math.min(...columnSurfaces.map((surface) => surface.y));
295
+ const maxY = Math.max(...columnSurfaces.map((surface) => surface.y));
296
+ if (maxY - minY < PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE)
297
+ continue;
298
+ const keep = [...columnSurfaces]
299
+ .sort((a, b) => b.width - a.width || a.y - b.y)
300
+ .slice(0, 2);
301
+ for (const surface of columnSurfaces) {
302
+ if (!keep.includes(surface))
303
+ retained.delete(surface);
304
+ }
305
+ unresolvedColumns.push(column);
306
+ reasons.push(`resolved stacked column ${column} by retaining its two widest walkable tiers`);
307
+ }
308
+ const resolved = surfaces.filter((surface) => retained.has(surface));
309
+ const resolvedLength = measurePlatformerSurfaceLength(resolved);
310
+ const blockers = unresolvedColumns.length > 0 && (resolved.length < PLATFORMER_MIN_MESH_PLAYABLE_SURFACES || resolvedLength < PLATFORMER_MIN_LEVEL_LENGTH)
311
+ ? unresolvedColumns.map((column) => `asset-extraction:platformer-column-unresolved:${assetId}:${column}`)
312
+ : [];
313
+ return { surfaces: resolved, blockers, reasons };
314
+ }
315
+ function selectPlatformerTraversalComponent(primitives, bounds) {
316
+ const surfaces = [...candidatePlatformerSurfaces(primitives, bounds)].sort((a, b) => (a.x - a.width / 2) - (b.x - b.width / 2) || a.y - b.y);
317
+ const components = [];
318
+ let current = [];
319
+ let currentRight = Number.NEGATIVE_INFINITY;
320
+ let currentHighestReachableY = 0;
321
+ for (const surface of surfaces) {
322
+ const left = surface.x - surface.width / 2;
323
+ const gap = left - currentRight;
324
+ const upwardStep = surface.y - currentHighestReachableY;
325
+ if (current.length > 0 && (gap > PLATFORMER_MAX_HORIZONTAL_TRAVERSAL_GAP || upwardStep > PLATFORMER_MAX_UPWARD_TRAVERSAL_STEP)) {
326
+ components.push(current);
327
+ current = [];
328
+ currentRight = Number.NEGATIVE_INFINITY;
329
+ currentHighestReachableY = surface.y;
330
+ }
331
+ current.push(surface);
332
+ currentRight = Math.max(currentRight, surface.x + surface.width / 2);
333
+ currentHighestReachableY = Math.max(currentHighestReachableY, surface.y);
334
+ }
335
+ if (current.length > 0)
336
+ components.push(current);
337
+ const ranked = [...components].sort((a, b) => {
338
+ const aLength = measurePlatformerSurfaceLength(a);
339
+ const bLength = measurePlatformerSurfaceLength(b);
340
+ const aQualifies = a.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && aLength >= PLATFORMER_MIN_LEVEL_LENGTH;
341
+ const bQualifies = b.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && bLength >= PLATFORMER_MIN_LEVEL_LENGTH;
342
+ return Number(bQualifies) - Number(aQualifies) || bLength - aLength || b.length - a.length;
343
+ });
344
+ const selected = ranked[0] ?? [];
345
+ const selectedLength = measurePlatformerSurfaceLength(selected);
346
+ const qualifies = selected.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && selectedLength >= PLATFORMER_MIN_LEVEL_LENGTH;
347
+ const primitiveKeys = new Set(selected.map((surface) => surface.primitiveKey));
348
+ const selectedPrimitives = primitives.filter((primitive) => primitiveKeys.has(platformerPrimitiveKey(primitive)));
349
+ const reasons = [
350
+ `selected traversable component with ${selected.length} mesh surface(s) spanning ${round3(selectedLength)} game units`,
351
+ ...(components.length > 1 ? [`excluded ${components.length - 1} disconnected traversal component(s)`] : [])
352
+ ];
353
+ if (qualifies)
354
+ return { primitives: selectedPrimitives, blockers: [], reasons };
355
+ return {
356
+ primitives: [],
357
+ blockers: [`asset-extraction:platformer-traversable-chain-too-short:${selected.length}:${round3(selectedLength)}`],
358
+ reasons
359
+ };
360
+ }
361
+ function platformerSemanticHintReasons(primitives) {
362
+ const labels = primitives.map((primitive) => `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`);
363
+ const positive = labels.filter((label) => PLATFORM_PATTERN.test(label)).length;
364
+ const decorative = labels.filter((label) => PLATFORMER_DECORATIVE_PATTERN.test(label)).length;
365
+ if (positive === 0 && decorative === 0)
366
+ return ["generic node names contributed no semantic confidence; certification remained geometry-only"];
367
+ return [`semantic hints: ${positive} playable label(s), ${decorative} decorative label(s); hints only affected family ranking`];
368
+ }
369
+ function platformerPrimitiveKey(primitive) {
370
+ return [
371
+ primitive.bounds.min[0], primitive.bounds.min[1], primitive.bounds.min[2],
372
+ primitive.bounds.max[0], primitive.bounds.max[1], primitive.bounds.max[2]
373
+ ].map((value) => value.toFixed(3)).join(":");
374
+ }
375
+ function platformerSurfaceColumn(x) {
376
+ return (Math.round(x / PLATFORMER_AMBIGUOUS_COLUMN_STEP) * PLATFORMER_AMBIGUOUS_COLUMN_STEP).toFixed(2);
377
+ }
159
378
  function loadAssetGeometry(assetId, projectDir) {
160
379
  const asset = readManifestAssets(projectDir).find((entry) => entry.id === assetId);
161
380
  if (!asset)
@@ -293,39 +512,28 @@ function isPlatformPrimitive(primitive) {
293
512
  return PLATFORM_PATTERN.test(label) && !PLATFORM_EXCLUDE_PATTERN.test(label);
294
513
  }
295
514
  function selectPlatformerSurfacePrimitives(geometry) {
296
- const semantic = geometry.primitives.filter(isPlatformPrimitive);
297
- if (semantic.length > 0) {
298
- return {
299
- primitives: semantic,
300
- mode: "semantic",
301
- reasons: [`selected ${semantic.length} primitive(s) by semantic platform/world labels`]
302
- };
303
- }
304
515
  const geometric = geometry.primitives.filter((primitive) => isGenericPlatformerSurfacePrimitive(primitive, geometry.bounds));
516
+ const positive = geometric.filter(isPlatformPrimitive).length;
517
+ const decorative = geometric.filter((primitive) => PLATFORMER_DECORATIVE_PATTERN.test(`${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`)).length;
305
518
  return {
306
519
  primitives: geometric,
307
520
  mode: "geometric",
308
521
  reasons: geometric.length > 0
309
- ? [`selected ${geometric.length} primitive(s) by flat horizontal game-surface geometry because the asset uses generic node/material names`]
310
- : ["semantic labels were absent and no flat horizontal primitive passed the game-surface footprint filter"]
522
+ ? [`selected ${geometric.length} primitive(s) by flat horizontal game-surface geometry; ${positive} playable and ${decorative} decorative semantic hint(s) remained soft ranking signals`]
523
+ : ["no flat horizontal primitive passed the game-surface footprint filter"]
311
524
  };
312
525
  }
313
526
  function isGenericPlatformerSurfacePrimitive(primitive, modelBounds) {
314
- const label = `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`;
315
- if (PLATFORM_EXCLUDE_PATTERN.test(label))
316
- return false;
317
527
  if (!isHorizontalSurface(primitive))
318
528
  return false;
319
529
  const modelSize = boundsSize(modelBounds);
320
530
  const modelFootprint = Math.max(0.001, modelSize[0] * modelSize[2]);
321
531
  const primitiveFootprint = primitive.size[0] * primitive.size[2];
322
- const verticalPosition = (primitive.bounds.max[1] - modelBounds.min[1]) / Math.max(0.001, modelSize[1]);
323
532
  const longestAxis = Math.max(primitive.size[0], primitive.size[2]);
324
533
  const shortestAxis = Math.min(primitive.size[0], primitive.size[2]);
325
534
  return primitiveFootprint >= Math.max(0.08, modelFootprint * 0.00045) &&
326
535
  longestAxis >= Math.max(0.7, modelSize[0] * 0.006) &&
327
- shortestAxis >= 0.16 &&
328
- verticalPosition <= 0.92;
536
+ shortestAxis >= 0.16;
329
537
  }
330
538
  function isHorizontalSurface(primitive) {
331
539
  const horizontal = Math.max(primitive.size[0], primitive.size[2]);
@@ -388,7 +596,7 @@ function createPlayableSurfaces(primitives, bounds) {
388
596
  });
389
597
  const selectedSurfaces = [...dedupePlayableSurfaces(candidateSurfaces)]
390
598
  .sort((a, b) => a.x - b.x)
391
- .slice(0, 8);
599
+ .slice(0, PLATFORMER_MAX_RETAINED_MESH_SURFACES);
392
600
  const selectedBaselineTopY = selectedPlayableSurfaceBaseline(selectedSurfaces);
393
601
  const topSurfaces = selectedSurfaces.map((surface, index) => ({
394
602
  ...surface,
@@ -517,8 +725,8 @@ function platformerMeshSurfaceQualityBlockers(assetId, surfaces) {
517
725
  if (levelLength < PLATFORMER_MIN_LEVEL_LENGTH) {
518
726
  blockers.push(`asset-extraction:platformer-level-length-too-short:${assetId}:${round3(levelLength)}`);
519
727
  }
520
- if (hasAmbiguousStackedSurfaceColumn(surfaces)) {
521
- blockers.push(`asset-extraction:platformer-playable-surface-columns-ambiguous:${assetId}`);
728
+ for (const column of ambiguousStackedSurfaceColumns(surfaces)) {
729
+ blockers.push(`asset-extraction:platformer-column-unresolved:${assetId}:${column}`);
522
730
  }
523
731
  return blockers;
524
732
  }
@@ -529,21 +737,22 @@ function measurePlatformerSurfaceLength(surfaces) {
529
737
  const maxX = Math.max(...surfaces.map((surface) => surface.x + surface.width / 2));
530
738
  return round3(maxX - minX);
531
739
  }
532
- function hasAmbiguousStackedSurfaceColumn(surfaces) {
740
+ function ambiguousStackedSurfaceColumns(surfaces) {
533
741
  const columns = new Map();
534
742
  for (const surface of surfaces) {
535
- const column = (Math.round(surface.x / PLATFORMER_AMBIGUOUS_COLUMN_STEP) * PLATFORMER_AMBIGUOUS_COLUMN_STEP).toFixed(2);
743
+ const column = platformerSurfaceColumn(surface.x);
536
744
  columns.set(column, [...(columns.get(column) ?? []), surface]);
537
745
  }
538
- for (const columnSurfaces of columns.values()) {
746
+ const ambiguous = [];
747
+ for (const [column, columnSurfaces] of columns) {
539
748
  if (columnSurfaces.length < PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES)
540
749
  continue;
541
750
  const minY = Math.min(...columnSurfaces.map((surface) => surface.y));
542
751
  const maxY = Math.max(...columnSurfaces.map((surface) => surface.y));
543
752
  if (maxY - minY >= PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE)
544
- return true;
753
+ ambiguous.push(column);
545
754
  }
546
- return false;
755
+ return ambiguous;
547
756
  }
548
757
  function pickPlatformerAnchorSurfaces(surfaces) {
549
758
  if (surfaces.length <= 3)
@@ -579,6 +788,19 @@ function platformerModelToGameScale(bounds) {
579
788
  const widthScale = PLATFORMER_TARGET_GAME_LENGTH / Math.max(0.001, size[0]);
580
789
  return round3(Math.min(PLATFORMER_MAX_GAME_SCALE, Math.max(PLATFORMER_MIN_GAME_SCALE, widthScale)));
581
790
  }
791
+ function platformerCharacterFootprintWidth(options, projectDir) {
792
+ if (options.characterFootprintWidth !== undefined)
793
+ return options.characterFootprintWidth;
794
+ if (!options.characterAssetId)
795
+ return PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH;
796
+ const character = readManifestAssets(projectDir).find((asset) => asset.id === options.characterAssetId);
797
+ const size = character?.boundsMetadata?.size ?? character?.bounds;
798
+ if (!size)
799
+ return PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH;
800
+ const characterWidthToHeight = size[0] / Math.max(0.001, size[1]);
801
+ const scaledCharacterWidth = characterWidthToHeight * Math.max(0.01, options.characterScaleRatio ?? 0.42);
802
+ return round3(Math.max(PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH, scaledCharacterWidth));
803
+ }
582
804
  function boundsForPrimitives(primitives) {
583
805
  return boundsForVertices(primitives.flatMap((primitive) => [primitive.bounds.min, primitive.bounds.max]));
584
806
  }