maistro 1.0.390

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 (111) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +107 -0
  3. package/dist/app.d.ts +247 -0
  4. package/dist/app.d.ts.map +1 -0
  5. package/dist/app.js +4971 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/buildInfo.d.ts +5 -0
  8. package/dist/buildInfo.d.ts.map +1 -0
  9. package/dist/buildInfo.js +2 -0
  10. package/dist/buildInfo.js.map +1 -0
  11. package/dist/caffeinate.d.ts +72 -0
  12. package/dist/caffeinate.d.ts.map +1 -0
  13. package/dist/caffeinate.js +258 -0
  14. package/dist/caffeinate.js.map +1 -0
  15. package/dist/claudePath.d.ts +10 -0
  16. package/dist/claudePath.d.ts.map +1 -0
  17. package/dist/claudePath.js +34 -0
  18. package/dist/claudePath.js.map +1 -0
  19. package/dist/clipboard.d.ts +44 -0
  20. package/dist/clipboard.d.ts.map +1 -0
  21. package/dist/clipboard.js +442 -0
  22. package/dist/clipboard.js.map +1 -0
  23. package/dist/config.d.ts +211 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +933 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/constants.d.ts +50 -0
  28. package/dist/constants.d.ts.map +1 -0
  29. package/dist/constants.js +81 -0
  30. package/dist/constants.js.map +1 -0
  31. package/dist/contextBuilder.d.ts +38 -0
  32. package/dist/contextBuilder.d.ts.map +1 -0
  33. package/dist/contextBuilder.js +113 -0
  34. package/dist/contextBuilder.js.map +1 -0
  35. package/dist/dependencyDetector.d.ts +57 -0
  36. package/dist/dependencyDetector.d.ts.map +1 -0
  37. package/dist/dependencyDetector.js +505 -0
  38. package/dist/dependencyDetector.js.map +1 -0
  39. package/dist/executor.d.ts +83 -0
  40. package/dist/executor.d.ts.map +1 -0
  41. package/dist/executor.js +583 -0
  42. package/dist/executor.js.map +1 -0
  43. package/dist/git.d.ts +85 -0
  44. package/dist/git.d.ts.map +1 -0
  45. package/dist/git.js +283 -0
  46. package/dist/git.js.map +1 -0
  47. package/dist/imageManager.d.ts +161 -0
  48. package/dist/imageManager.d.ts.map +1 -0
  49. package/dist/imageManager.js +674 -0
  50. package/dist/imageManager.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +437 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/input-visual-test.d.ts +9 -0
  56. package/dist/input-visual-test.d.ts.map +1 -0
  57. package/dist/input-visual-test.js +108 -0
  58. package/dist/input-visual-test.js.map +1 -0
  59. package/dist/inputBox.d.ts +228 -0
  60. package/dist/inputBox.d.ts.map +1 -0
  61. package/dist/inputBox.js +966 -0
  62. package/dist/inputBox.js.map +1 -0
  63. package/dist/logger.d.ts +136 -0
  64. package/dist/logger.d.ts.map +1 -0
  65. package/dist/logger.js +347 -0
  66. package/dist/logger.js.map +1 -0
  67. package/dist/orchestrator.d.ts +149 -0
  68. package/dist/orchestrator.d.ts.map +1 -0
  69. package/dist/orchestrator.js +821 -0
  70. package/dist/orchestrator.js.map +1 -0
  71. package/dist/planner.d.ts +86 -0
  72. package/dist/planner.d.ts.map +1 -0
  73. package/dist/planner.js +830 -0
  74. package/dist/planner.js.map +1 -0
  75. package/dist/pty-test-runner.d.ts +87 -0
  76. package/dist/pty-test-runner.d.ts.map +1 -0
  77. package/dist/pty-test-runner.js +721 -0
  78. package/dist/pty-test-runner.js.map +1 -0
  79. package/dist/screen.d.ts +44 -0
  80. package/dist/screen.d.ts.map +1 -0
  81. package/dist/screen.js +152 -0
  82. package/dist/screen.js.map +1 -0
  83. package/dist/taskQueue.d.ts +70 -0
  84. package/dist/taskQueue.d.ts.map +1 -0
  85. package/dist/taskQueue.js +282 -0
  86. package/dist/taskQueue.js.map +1 -0
  87. package/dist/tui-test-harness.d.ts +216 -0
  88. package/dist/tui-test-harness.d.ts.map +1 -0
  89. package/dist/tui-test-harness.js +527 -0
  90. package/dist/tui-test-harness.js.map +1 -0
  91. package/dist/types.d.ts +257 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +46 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/ui-visual-test.d.ts +15 -0
  96. package/dist/ui-visual-test.d.ts.map +1 -0
  97. package/dist/ui-visual-test.js +141 -0
  98. package/dist/ui-visual-test.js.map +1 -0
  99. package/dist/ui.d.ts +272 -0
  100. package/dist/ui.d.ts.map +1 -0
  101. package/dist/ui.js +1531 -0
  102. package/dist/ui.js.map +1 -0
  103. package/dist/validator.d.ts +53 -0
  104. package/dist/validator.d.ts.map +1 -0
  105. package/dist/validator.js +491 -0
  106. package/dist/validator.js.map +1 -0
  107. package/dist/versionCheck.d.ts +63 -0
  108. package/dist/versionCheck.d.ts.map +1 -0
  109. package/dist/versionCheck.js +261 -0
  110. package/dist/versionCheck.js.map +1 -0
  111. package/package.json +62 -0
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuB3C,MAAM,OAAO,aAAc,SAAQ,YAAY;IACrC,EAAE,GAAqB,IAAI,CAAC;IAC5B,SAAS,GAAG,KAAK,CAAC;IAE1B,iCAAiC;IACzB,MAAM,CAAgB;IACtB,OAAO,CAAiB;IAEhC,YAAY,KAAqB,EAAE,MAAuB;QACxD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,4EAA4E;QAC5E,iEAAiE;IACnE,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,0DAA0D;YAClF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,CAAS;QAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAY;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAY,EAAE,KAA4D;QACrF,MAAM,MAAM,GAA2B;YACrC,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,KAAiB,EACjB,SAAiB,kBAAkB,EACnC,aAAgD,EAChD,OAAiC;QAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,IAAI,UAAU,GAA0B,IAAI,CAAC;YAC7C,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,4CAA4C;YAC5C,qFAAqF;YACrF,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC;YAExD,MAAM,MAAM,GAAG,CAAC,WAAW,GAAG,KAAK,EAAE,EAAE;gBACrC,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,GAAG,KAAK,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,qDAAqD;oBACrD,6EAA6E;oBAC7E,mDAAmD;oBACnD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;wBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;oBAC9D,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB;oBACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B;gBAC3D,CAAC;gBAED,MAAM,KAAK,GAAa,EAAE,CAAC;gBAE3B,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,MAAM,MAAM,GAAG,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC;oBAClE,MAAM,KAAK,GAAG,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,IAAI,CAAC,GAAG,YAAY,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAE7C,IAAI,SAAS,EAAE,CAAC;oBACd,+CAA+C;oBAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC;oBAEtB,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACtD,IAAI,eAAe,EAAE,CAAC;wBACpB,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,iBAAiB,CAAC,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,MAAM,WAAW,GAAG,iBAAiB,CAAC;wBACtC,KAAK,CAAC,IAAI,CAAC,2CAA2C,WAAW,SAAS,CAAC,CAAC;oBAC9E,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACtD,yCAAyC;oBACzC,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;oBAE/D,oCAAoC;oBACpC,IAAI,WAAW,EAAE,CAAC;wBAChB,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,2DAA2D;oBAC3D,MAAM,IAAI,GAAG,wBAAwB,CAAC;oBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;gBACjE,CAAC;gBAED,iDAAiD;gBACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC;YAEF,gEAAgE;YAChE,MAAM,WAAW,GAAG,CAAC,WAAmB,EAAE,EAAE;gBAC1C,qDAAqD;gBACrD,+EAA+E;gBAC/E,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;gBAC9D,CAAC;gBACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB;gBACnD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B;gBAEzD,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,KAAK,WAAW,CAAC;oBAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC;oBACrD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,IAAI,CAAC,GAAG,YAAY,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAE7C,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACtD,yCAAyC;oBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC;oBACtB,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjF,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;oBAC9F,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxD,CAAC;gBACD,yEAAyE;gBAEzE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9C,CAAC,CAAC;YAEF,iBAAiB;YACjB,MAAM,EAAE,CAAC;YAET,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAE5B,mCAAmC;gBACnC,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjD,8EAA8E;oBAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;wBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBAC5C,OAAO,QAAQ,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,CAAC;oBACrG,CAAC,CAAC,CAAC;oBACH,IAAI,UAAU,EAAE,CAAC;wBACf,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBAC5B,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACxB,OAAO;oBACT,CAAC;oBACD,0CAA0C;oBAC1C,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,SAAS;gBACT,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE,CAAC;oBAClD,eAAe,GAAG,IAAI,CAAC;oBACvB,WAAW,GAAG,EAAE,CAAC;oBACjB,MAAM,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,eAAe,IAAI,SAAS,EAAE,CAAC;oBACjC,YAAY;oBACZ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACrC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACzC,CAAC;6BAAM,CAAC;4BACN,eAAe,GAAG,KAAK,CAAC;wBAC1B,CAAC;wBACD,MAAM,EAAE,CAAC;wBACT,OAAO;oBACT,CAAC;oBAED,0BAA0B;oBAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACnC,IAAI,WAAW,EAAE,CAAC;4BAChB,0CAA0C;4BAC1C,IAAI,aAAa,EAAE,CAAC;gCAClB,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gCACvC,IAAI,GAAG,EAAE,CAAC;oCACR,WAAW,CAAC,WAAW,CAAC,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,OAAO,CAAC,GAAG,CAAC,CAAC;oCACb,OAAO;gCACT,CAAC;4BACH,CAAC;4BAED,wEAAwE;4BACxE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;4BAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU;gCACrC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,CACxC,CAAC;4BACF,IAAI,WAAW,EAAE,CAAC;gCAChB,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gCAC7B,OAAO,EAAE,CAAC;gCACV,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gCACzB,OAAO;4BACT,CAAC;wBACH,CAAC;wBACD,yBAAyB;wBACzB,WAAW,GAAG,EAAE,CAAC;wBACjB,eAAe,GAAG,KAAK,CAAC;wBACxB,MAAM,EAAE,CAAC;wBACT,OAAO;oBACT,CAAC;oBAED,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;wBACrC,WAAW,IAAI,IAAI,CAAC;wBACpB,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtC,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBAED,kEAAkE;gBAClE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC9C,aAAa,GAAG,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBAClE,MAAM,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,sEAAsE;gBACtE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC9C,aAAa,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBACnD,MAAM,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,uDAAuD;gBACvD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACrC,OAAO;gBACT,CAAC;gBAED,iEAAiE;gBACjE,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;oBACnE,eAAe,GAAG,IAAI,CAAC;oBACvB,WAAW,GAAG,IAAI,CAAC;oBACnB,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,UAAU;oBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBACrC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,WAAoB;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,8BAA8B;YACnD,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,4DAA4D;YACnF,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,4DAA4D;YAEnF,wDAAwD;YACxD,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YAEzE,iEAAiE;YACjE,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,gFAAgF;gBAChF,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBACxF,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;gBAEpE,6CAA6C;gBAC7C,MAAM,SAAS,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;gBAE3F,oDAAoD;gBACpD,MAAM,SAAS,GAAG,mBAAmB,GAAG,WAAW,CAAC;gBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;gBACpD,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;gBAExC,iFAAiF;gBACjF,qGAAqG;gBACrG,oFAAoF;gBACpF,0DAA0D;gBAC1D,MAAM,aAAa,GAAG,kBAAkB,GAAG,CAAC,IAAI,kBAAkB,GAAG,SAAS,KAAK,CAAC,CAAC;gBACrF,MAAM,mBAAmB,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;gBAEtE,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,GAAG,KAAK,CAAC;oBACtB,iDAAiD;oBACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,uDAAuD;oBACvD,EAAE;oBACF,0EAA0E;oBAC1E,wEAAwE;oBACxE,2BAA2B;oBAC3B,EAAE;oBACF,uDAAuD;oBACvD,wFAAwF;oBACxF,2EAA2E;oBAC3E,EAAE;oBACF,wEAAwE;oBACxE,kEAAkE;oBAClE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;oBAE5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;oBAE/C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,YAAY,GAAG,CAAC,CAAC;oBAC9C,CAAC;oBACD,qCAAqC;oBACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACxC,CAAC;gBAED,iEAAiE;gBACjE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,WAAW,WAAW,SAAS,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC;gBAChD,CAAC;gBAED,sDAAsD;gBACtD,uFAAuF;gBACvF,mEAAmE;gBACnE,iEAAiE;gBACjE,iCAAiC;gBACjC,gFAAgF;gBAChF,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,mBAAmB,GAAG,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB;gBAChD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,yBAAyB;gBACrE,CAAC;gBACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,+BAA+B;gBAEhE,uDAAuD;gBACvD,aAAa,GAAG,SAAS,CAAC;gBAC1B,aAAa,GAAG,SAAS,CAAC;YAC5B,CAAC,CAAC;YAEF,IAAI,aAAa,GAA0B,IAAI,CAAC;YAChD,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;gBAChC,IAAI,QAAQ;oBAAE,OAAO;gBACrB,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAE1B,mCAAmC;gBACnC,sDAAsD;gBACtD,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC;oBAC3B,YAAY,GAAG,EAAE,CAAC;oBAClB,IAAI,aAAa,EAAE,CAAC;wBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;wBAC5B,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAED,mFAAmF;gBACnF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,YAAY,GAAG,IAAI,CAAC;oBACpB,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC9B,6BAA6B;wBAC7B,YAAY,GAAG,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,EAAE,EAAE,CAAC,CAAC;oBACP,OAAO;gBACT,CAAC;gBAED,SAAS;gBACT,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,iBAAiB;gBACjB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBAED,aAAa;gBACb,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBACpB,WAAW,EAAE,CAAC;wBACd,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,cAAc;gBACd,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;wBACrC,WAAW,EAAE,CAAC;wBACd,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,gEAAgE;gBAChE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC5G,WAAW,GAAG,CAAC,CAAC;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,6DAA6D;gBAC7D,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC5G,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;oBACjC,MAAM,EAAE,CAAC;oBACT,OAAO;gBACT,CAAC;gBAED,wCAAwC;gBACxC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACrC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBACpB,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBACrF,WAAW,EAAE,CAAC;wBACd,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,qCAAqC;gBACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;wBACrC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;wBACrF,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,6DAA6D;oBAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;oBACxF,MAAM,SAAS,GAAG,mBAAmB,GAAG,WAAW,CAAC;oBACpD,iDAAiD;oBACjD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;wBAC3B,6DAA6D;wBAC7D,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;wBAC3C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC,CAAC;wBAC9D,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,mEAAmE;gBACnE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,6DAA6D;oBAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;oBACxF,MAAM,SAAS,GAAG,mBAAmB,GAAG,WAAW,CAAC;oBACpD,MAAM,QAAQ,GAAG,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;oBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;oBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;oBACrD,kDAAkD;oBAClD,IAAI,UAAU,GAAG,MAAM,EAAE,CAAC;wBACxB,2DAA2D;wBAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAC/D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,CAAC,CAAC;wBAC/E,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,gCAAgC;gBAChC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,2DAA2D;gBAC3D,2DAA2D;gBAC3D,IAAI,aAAa,GAAG,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,iFAAiF;oBACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;wBAC7B,aAAa,IAAI,CAAC,CAAC;oBACrB,CAAC;oBACD,0DAA0D;oBAC1D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC7B,aAAa,IAAI,GAAG,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjG,WAAW,IAAI,aAAa,CAAC,MAAM,CAAC;oBACpC,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC,CAAC;YAEF,wCAAwC;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,2BAA2B;YAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAElC,iBAAiB;YACjB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAoB;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAEvB,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,mBAAmB;YACnB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvC,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAElC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO;YACL,IAAI,EAAE,CAAC,YAAqB,EAAE,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBACf,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;gBAC/C,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB,8BAA8B;QAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,SAAS,CAAC,CAAC;YAEzC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;gBAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAED;;;;;GAKG;AACH;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAoB;IACvE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,kBAAkB,CAAC,CAAE,qCAAqC;QACnE,CAAC;QACD,OAAO,kBAAkB,CAAC,CAAM,2BAA2B;IAC7D,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,kBAAkB,CAAC,CAAG,+CAA+C;QAC9E,CAAC;QACD,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,CAAG,2CAA2C;QAC1E,CAAC;QACD,OAAO,kBAAkB,CAAC,CAAM,gCAAgC;IAClE,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,kBAAkB;KAC9B,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,WAAoB;IACnE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,wBAAwB,CAAC;QAClC,CAAC;QACD,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,wBAAwB,CAAC;QAClC,CAAC;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAA2B;QACpC,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,4BAA4B;QACzC,SAAS,EAAE,0BAA0B;KACtC,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,WAAoB;IACnE,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;AACjG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,kBAAkB,CAAC,CAAE,qBAAqB;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,KAAa,EAAE,QAAgB,EAAE,EAAE,UAAkB,CAAC;IACnG,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,GAAG,eAAe,GAAG,aAAa,CAAC;IAEtD,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC;QACxC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;QACtC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;IAEpE,yEAAyE;IACzE,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC;QAC1B,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,IAAI,KAAK,EAAE;QACpC,CAAC,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IAE5B,OAAO,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC9B,CAAC;AA4BD;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,QAAQ,GAA0B,IAAI,CAAC;IACvC,SAAS,GAAW,CAAC,CAAC;IACtB,aAAa,GAAW,CAAC,CAAC;IAC1B,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,UAAU,GAAG,CAAC,CAAC;IACf,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAAG,CAAC,CAAC,CAAC,mDAAmD;IACrE,aAAa,GAAG,IAAI,CAAC;IAE7B,wDAAwD;IAChD,SAAS,GAAG,CAAC,CAAC;IACd,SAAS,GAAG,CAAC,CAAC;IACd,WAAW,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAEvD,gBAAgB;IACR,WAAW,GAAW,EAAE,CAAC;IACzB,aAAa,GAAW,EAAE,CAAC;IAC3B,gBAAgB,GAAW,CAAC,CAAC;IAC7B,UAAU,GAAW,CAAC,CAAC;IACvB,cAAc,GAAW,CAAC,CAAC;IAC3B,YAAY,GAAW,CAAC,CAAC;IACzB,KAAK,GAA8C,WAAW,CAAC;IAC/D,SAAS,GAAG,KAAK,CAAC;IAE1B,oBAAoB;IACZ,mBAAmB,GAAW,CAAC,CAAC,CAAC,sCAAsC;IAE/E,mBAAmB;IACX,eAAe,GAAa,EAAE,CAAC;IAC/B,cAAc,GAAG,EAAE,CAAC,CAAC,+BAA+B;IAE5D,YAAY;IACJ,WAAW,GAAW,EAAE,CAAC;IACzB,gBAAgB,GAAW,CAAC,CAAC;IAC7B,eAAe,GAAqC,IAAI,CAAC;IACzD,UAAU,GAAmC,IAAI,CAAC;IAClD,aAAa,GAAwB,IAAI,CAAC;IAElD,mCAAmC;IAC3B,eAAe,GAAG,KAAK,CAAC;IACxB,UAAU,GAA0B,IAAI,CAAC;IAEjD,iCAAiC;IACzB,YAAY,GAAG,KAAK,CAAC;IACrB,aAAa,GAAmB,EAAE,CAAC;IACnC,qBAAqB,GAAG,CAAC,CAAC;IAC1B,wBAAwB,GAAoC,IAAI,CAAC;IACjE,eAAe,GAAW,EAAE,CAAC,CAAC,wCAAwC;IAE9E,iFAAiF;IACzE,cAAc,GAAwB,IAAI,CAAC;IAEnD;;;OAGG;IACH,iBAAiB,CAAC,QAAoB;QACpC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAkB,EAAE,OAAiC,EAAE,6BAAqC,CAAC,EAAE,sBAA8B,CAAC,EAAE,gBAA2C;QAC/K,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,0BAA0B,CAAC;QACtD,IAAI,CAAC,wBAAwB,GAAG,gBAAgB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,wBAAwB;QACxB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAEvB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAE5B,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,qEAAqE;gBACrE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACzB,gDAAgD;wBAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACzB,CAAC;wBACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC7B,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;oBACpC,CAAC;yBAAM,CAAC;wBACN,wDAAwD;wBACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,8CAA8C;wBAC7D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;4BAChC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;4BAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;4BACvB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,mCAAmC;wBACpD,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,yBAAyB;oBACrC,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzB,CAAC;oBACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBAED,kDAAkD;gBAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzB,CAAC;oBACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,uEAAuE;gBACzE,CAAC;gBAED,uBAAuB;gBACvB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;wBACpD,6CAA6C;wBAC7C,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;4BACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;4BACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;4BAC1B,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;wBAChD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,aAAa;gBACb,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC,aAAa;oBACpC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC,cAAc;oBACrC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;wBACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,WAAW;gBACX,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,iBAAiB;oBACjF,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,UAAU;gBACV,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,gBAAgB;oBAChF,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;wBACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;wBAChD,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,aAAa;gBACb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;wBACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;4BAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;wBACrE,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,YAAY;gBACZ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACrC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;4BACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,4EAA4E;gBAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;oBACpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;wBAChD,IAAI;wBACJ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACjE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC;oBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;YACxB,sCAAsC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhD,iBAAiB;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,uBAAuB;QACvB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACpE,oDAAoD;YACpD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,yBAAyB;YAC/D,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,oFAAoF;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAEtD,uBAAuB;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAChC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB,EAAE,SAAiB,EAAE,MAAe;QAC5D,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAgD;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,UAAmB;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,yDAAyD;QACzD,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,mBAAmB,IAAI,YAAY,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,YAAqB;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,4BAA4B;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,qCAAqC;QACxE,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,qBAAqB;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;YACpE,mEAAmE;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACpD,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CACtD,CAAC;YACF,IAAI,CAAC,qBAAqB,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QACpC,qCAAqC;QACrC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,WAAW;QACX,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,UAAU;QACV,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;oBAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO;QACT,CAAC;QAED,YAAY;QACZ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;oBACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;gBAChD,IAAI;gBACJ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAAC,GAAW;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,GAAG,iCAAiC,CAAC;YACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAE1C,8CAA8C;QAC9C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,4CAA4C,CAAC;gBACpE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3C,IAAI,CAAC,eAAe,GAAG,mDAAmD,CAAC;gBAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,wBAAwB,EAAE,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,eAAe,GAAG,sBAAsB,YAAY,CAAC,KAAK,SAAS,CAAC;gBACzE,oBAAoB;gBACpB,IAAI,IAAI,CAAC,wBAAwB,EAAE,QAAQ,EAAE,CAAC;oBAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;gBACtE,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,GAAG,oCAAoC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,+CAA+C,CAAC;gBACvE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,wBAAwB,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,eAAe,GAAG,uBAAuB,YAAY,CAAC,KAAK,SAAS,CAAC;gBAC1E,yCAAyC;gBACzC,IAAI,IAAI,CAAC,wBAAwB,EAAE,QAAQ,EAAE,CAAC;oBAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;oBACpE,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;oBAC7E,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,GAAG,oCAAoC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,+CAA+C,CAAC;gBACvE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,wBAAwB,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,GAAG,yBAAyB,YAAY,CAAC,KAAK,SAAS,CAAC;gBAC5E,yCAAyC;gBACzC,IAAI,IAAI,CAAC,wBAAwB,EAAE,QAAQ,EAAE,CAAC;oBAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;oBACpE,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;oBAC7E,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,GAAG,oCAAoC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,eAAe,GAAG,4BAA4B,GAAG,SAAS,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,mFAAmF;YACnF,6FAA6F;YAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,YAAY,GAAG,CAAC,CAAC,CAAE,iBAAiB;YACnE,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,qCAAqC;QACxE,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;QAE1B,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,IAAI,GAAG,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAChD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,2BAA2B;QAE5D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,0BAA0B;QAE7F,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ;YACjD,KAAK,YAAY;gBACf,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;YACvD,KAAK,YAAY;gBACf,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;YACvD;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,iEAAiE;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B;QAEtE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,gBAAgB;QAChB,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,sDAAsD;QACtD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACtD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,2BAA2B;YAC5D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,4DAA4D;QAC5D,kGAAkG;QAClG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YAErE,yDAAyD;YACzD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjE,OAAO,IAAI,kBAAkB,CAAC,CAAC,sBAAsB;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,kBAAkB,CAAC,CAAC,aAAa;gBAC9C,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,SAAS,EAAE,0BAA0B;gBACrC,UAAU,EAAE,2BAA2B;gBACvC,UAAU,EAAE,2BAA2B;aACxC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEd,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,yBAAyB,IAAI,CAAC,gBAAgB,GAAG,CAAC,YAAY,UAAU,cAAc,WAAW,UAAU,CAAC,CAAC;QACpI,CAAC;QAED,wDAAwD;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;YACjD,CAAC,CAAC,CAAC,CAAC;QAEN,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEhD,4EAA4E;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;QAC5D,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;YACvC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;YACrC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;QAEzE,MAAM,iBAAiB,GAAG,GAAG,cAAc,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3D,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;YACpC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;YAClE,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAiB,yCAAyC,QAAQ,YAAY,OAAO,UAAU,CAAC,CAAC;QACtH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,iCAAiC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAE/C,0DAA0D;QAC1D,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;YACnH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,gEAAgE;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC;YAEnF,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC;gBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC;gBAEjD,cAAc;gBACd,IAAI,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE/D,kBAAkB;gBAClB,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnD,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC;gBAEnB,6BAA6B;gBAC7B,MAAM,aAAa,GAAG,SAAS,GAAG,EAAE,CAAC;gBACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;oBACjC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;gBACpD,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,IAAI,WAAW,KAAK,kCAAkC,CAAC;gBAC7D,CAAC;qBAAM,IAAI,UAAU,EAAE,CAAC;oBACtB,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,KAAK,CAAC;gBAChB,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAED,kCAAkC;YAClC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,UAAU,CAAC;gBACrG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YAED,+BAA+B;YAC/B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,GAAG,6CAA6C,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,IAAI,GAAG,mCAAmC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,6BAA6B,CAAC;QACvC,CAAC;QAED,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,8DAA8D;QAC9D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClE,mDAAmD;YACnD,KAAK,CAAC,IAAI,CAAC,oBAAoB,YAAY,UAAU,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAClF,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,gBAAgB;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,sCAAsC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;QAE/D,kBAAkB;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAe;QACjB,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAE,iBAAiB;YACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,qCAAqC;QACxE,CAAC;QAED,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,wBAAwB;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import type { Task, ValidationResult, AcceptanceCriterionResult } from './types.js';
2
+ export interface ValidatorOptions {
3
+ /** Working directory for running tests */
4
+ cwd: string;
5
+ /** Timeout for test execution in milliseconds (default: 5 minutes) */
6
+ testTimeout?: number;
7
+ /** Whether to use AI review (uses Claude Code CLI) */
8
+ useAIReview?: boolean;
9
+ /** Whether to use staged diff (includes new files) */
10
+ useStagedDiff?: boolean;
11
+ }
12
+ /**
13
+ * Validate a completed task
14
+ */
15
+ export declare function validate(task: Task, options: ValidatorOptions): Promise<ValidationResult>;
16
+ /**
17
+ * Run test command and return result
18
+ */
19
+ export declare function runTests(command: string, options: ValidatorOptions): Promise<{
20
+ passed: boolean;
21
+ output: string;
22
+ }>;
23
+ /**
24
+ * Run AI-based code review using Claude Code CLI
25
+ */
26
+ export declare function runAIReview(task: Task, options: ValidatorOptions): Promise<{
27
+ passed: boolean;
28
+ feedback: string;
29
+ }>;
30
+ /**
31
+ * Run acceptance criteria validation using a specialized Claude agent
32
+ */
33
+ export declare function runAcceptanceCriteriaValidation(task: Task, options: ValidatorOptions): Promise<{
34
+ passed: boolean;
35
+ feedback: string;
36
+ criteriaResults?: AcceptanceCriterionResult[];
37
+ }>;
38
+ /**
39
+ * Generate a brief 2-line summary of what was accomplished
40
+ */
41
+ export declare function generateResultSummary(task: Task, options: ValidatorOptions): Promise<string | undefined>;
42
+ /**
43
+ * Check if tests are configured in package.json
44
+ */
45
+ export declare function detectTestCommand(cwd: string): Promise<string | null>;
46
+ /**
47
+ * Run a quick syntax check (TypeScript compile)
48
+ */
49
+ export declare function runTypeCheck(cwd: string): Promise<{
50
+ passed: boolean;
51
+ output: string;
52
+ }>;
53
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAKpF,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyGD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAuE3B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC9C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDhD;AA4BD;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAAE,CAAC,CAoJ/F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2D7B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkB3E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5F"}
@@ -0,0 +1,491 @@
1
+ import { execa } from 'execa';
2
+ import { getDiff } from './git.js';
3
+ import { getLogger } from './logger.js';
4
+ import { getClaudePath } from './claudePath.js';
5
+ const DEFAULT_TEST_TIMEOUT = 5 * 60 * 1000; // 5 minutes
6
+ const REVIEW_PROMPT = `You are a code reviewer. Review the following code changes and provide feedback.
7
+
8
+ Your review should:
9
+ 1. Check for bugs or logic errors
10
+ 2. Check for security issues
11
+ 3. Verify the changes align with the task description
12
+ 4. Keep feedback concise and actionable
13
+
14
+ Task: {taskTitle}
15
+ Task Description: {taskDescription}
16
+
17
+ Code Changes (diff):
18
+ \`\`\`diff
19
+ {diff}
20
+ \`\`\`
21
+
22
+ Respond with:
23
+ 1. PASS or FAIL (on its own line)
24
+ 2. Brief feedback (2-3 sentences max)
25
+
26
+ Example responses:
27
+ PASS
28
+ The changes correctly implement the authentication flow with proper error handling.
29
+
30
+ FAIL
31
+ The password validation logic is missing, and there's no rate limiting on login attempts.`;
32
+ const RESULT_SUMMARY_PROMPT = `You are a technical writer summarizing completed work.
33
+
34
+ ## Task Information
35
+ Title: {taskTitle}
36
+ Description: {taskDescription}
37
+
38
+ ## Code Changes Made (diff)
39
+ \`\`\`diff
40
+ {diff}
41
+ \`\`\`
42
+
43
+ ## Your Task
44
+ Provide a brief 2-line summary of what was accomplished in this implementation.
45
+
46
+ Rules:
47
+ - Line 1: What was added/changed (the "what")
48
+ - Line 2: Key technical details or how it works (the "how")
49
+ - Each line should be under 80 characters
50
+ - Be specific and factual - mention actual file names, functions, or components
51
+ - Use past tense (e.g., "Added", "Implemented", "Fixed")
52
+ - No bullet points or formatting, just two plain text lines
53
+
54
+ Example output:
55
+ Added user authentication with JWT tokens and refresh flow.
56
+ Implemented auth middleware in src/middleware/auth.ts with token validation.`;
57
+ const ACCEPTANCE_VALIDATION_PROMPT = `You are a VALIDATION AGENT. Your job is to verify if task implementation meets the acceptance criteria.
58
+
59
+ ## Task Information
60
+ Title: {taskTitle}
61
+ Description: {taskDescription}
62
+
63
+ ## Acceptance Criteria to Verify
64
+ {acceptanceCriteria}
65
+
66
+ ## Your Task
67
+ For EACH acceptance criterion above:
68
+ 1. Use the Read tool to examine relevant files in the codebase
69
+ 2. Run any commands needed to verify functionality (tests, build, etc.)
70
+ 3. Analyze the implementation holistically to determine if each criterion is satisfied
71
+ 4. Mark each as [PASS] or [FAIL] with specific details
72
+
73
+ You have full access to tools - use them to thoroughly validate each criterion. Do not implement or fix anything - only validate and report.
74
+
75
+ ## Response Format (STRICT)
76
+ Your FINAL output must start with: PASS or FAIL (overall result - PASS only if ALL criteria pass)
77
+
78
+ Then for each criterion:
79
+ - [PASS/FAIL] Criterion text: Explanation with specific file/line references
80
+
81
+ **CRITICAL FOR FAILURES:**
82
+ If ANY criterion fails, you MUST provide SPECIFIC, ACTIONABLE feedback in a "## Required Fixes" section at the end:
83
+ - List exactly what is missing or wrong
84
+ - Specify file names, line numbers, and what needs to be added/changed
85
+ - Include code snippets or examples where helpful
86
+ - Be concrete - the developer implementing the fix should know exactly what to do
87
+
88
+ Example PASS response:
89
+ PASS
90
+ - [PASS] User interface exists: The User interface is defined in src/models/user.ts line 5.
91
+ - [PASS] Has required fields: All three fields (id, name, email) are present with correct types.
92
+
93
+ Example FAIL response:
94
+ FAIL
95
+ - [PASS] User interface exists: Found in src/models/user.ts.
96
+ - [FAIL] Has required fields: Missing the email field, only id and name are defined.
97
+ - [FAIL] Exports User type: The User type is defined but not exported.
98
+
99
+ ## Required Fixes
100
+ 1. In src/models/user.ts, add the missing "email: string" field to the User interface
101
+ 2. Add "export" keyword before the User interface definition: "export interface User"
102
+
103
+ IMPORTANT: Be strict but fair. Only mark as FAIL if the criterion is clearly not met.`;
104
+ /**
105
+ * Validate a completed task
106
+ */
107
+ export async function validate(task, options) {
108
+ const results = [];
109
+ let passed = true;
110
+ let acceptanceCriteriaResults;
111
+ // Run test command if specified
112
+ if (task.testCommand) {
113
+ const testResult = await runTests(task.testCommand, options);
114
+ results.push(`Tests: ${testResult.passed ? 'PASSED' : 'FAILED'}`);
115
+ if (testResult.output) {
116
+ results.push(testResult.output);
117
+ }
118
+ if (!testResult.passed) {
119
+ passed = false;
120
+ }
121
+ }
122
+ // Run acceptance criteria validation if criteria are defined
123
+ if (task.acceptanceCriteria && task.acceptanceCriteria.length > 0) {
124
+ const acResult = await runAcceptanceCriteriaValidation(task, options);
125
+ results.push(`Acceptance Criteria: ${acResult.passed ? 'PASSED' : 'FAILED'}`);
126
+ if (acResult.feedback) {
127
+ results.push(acResult.feedback);
128
+ }
129
+ // Store per-criterion results
130
+ if (acResult.criteriaResults && acResult.criteriaResults.length > 0) {
131
+ acceptanceCriteriaResults = acResult.criteriaResults;
132
+ }
133
+ if (!acResult.passed) {
134
+ passed = false;
135
+ }
136
+ }
137
+ // Run AI review if enabled (legacy, in addition to acceptance criteria)
138
+ if (options.useAIReview) {
139
+ const reviewResult = await runAIReview(task, options);
140
+ results.push(`AI Review: ${reviewResult.passed ? 'PASSED' : 'FAILED'}`);
141
+ if (reviewResult.feedback) {
142
+ results.push(reviewResult.feedback);
143
+ }
144
+ if (!reviewResult.passed) {
145
+ passed = false;
146
+ }
147
+ }
148
+ // If no validation was run, assume pass
149
+ if (!task.testCommand && !options.useAIReview && (!task.acceptanceCriteria || task.acceptanceCriteria.length === 0)) {
150
+ results.push('No validation configured - assuming pass');
151
+ }
152
+ // Generate result summary if validation passed
153
+ let resultSummary;
154
+ if (passed) {
155
+ resultSummary = await generateResultSummary(task, options);
156
+ }
157
+ return {
158
+ passed,
159
+ details: results.join('\n'),
160
+ testOutput: task.testCommand ? results[0] : undefined,
161
+ reviewFeedback: options.useAIReview ? results[results.length - 1] : undefined,
162
+ acceptanceCriteriaResults,
163
+ resultSummary,
164
+ };
165
+ }
166
+ /**
167
+ * Run test command and return result
168
+ */
169
+ export async function runTests(command, options) {
170
+ const timeout = options.testTimeout ?? DEFAULT_TEST_TIMEOUT;
171
+ try {
172
+ // Parse command into executable and args
173
+ const parts = command.split(' ');
174
+ const executable = parts[0];
175
+ const args = parts.slice(1);
176
+ const result = await execa(executable, args, {
177
+ cwd: options.cwd,
178
+ timeout,
179
+ reject: false,
180
+ env: {
181
+ ...process.env,
182
+ CI: 'true', // Set CI mode for better test output
183
+ },
184
+ });
185
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
186
+ const stderr = typeof result.stderr === 'string' ? result.stderr : '';
187
+ return {
188
+ passed: result.exitCode === 0,
189
+ output: stdout || stderr || 'No output',
190
+ };
191
+ }
192
+ catch (error) {
193
+ const errorMessage = error instanceof Error ? error.message : String(error);
194
+ return {
195
+ passed: false,
196
+ output: `Test execution failed: ${errorMessage}`,
197
+ };
198
+ }
199
+ }
200
+ /**
201
+ * Run AI-based code review using Claude Code CLI
202
+ */
203
+ export async function runAIReview(task, options) {
204
+ try {
205
+ // Get the diff of changes (use staged diff if specified to include new files)
206
+ const diffResult = await getDiff(options.cwd, options.useStagedDiff ?? false);
207
+ if (!diffResult.success || !diffResult.output) {
208
+ return {
209
+ passed: true,
210
+ feedback: 'AI review skipped - no changes detected',
211
+ };
212
+ }
213
+ const prompt = REVIEW_PROMPT
214
+ .replace('{taskTitle}', task.title)
215
+ .replace('{taskDescription}', task.description)
216
+ .replace('{diff}', diffResult.output);
217
+ // Exclude ANTHROPIC_API_KEY to use subscription auth
218
+ const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
219
+ const result = await execa(getClaudePath(), ['--print', '-p', prompt], {
220
+ cwd: options.cwd,
221
+ timeout: 60000, // 1 minute for review
222
+ reject: false,
223
+ stdin: 'ignore',
224
+ env: cleanEnv,
225
+ });
226
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
227
+ if (result.exitCode !== 0) {
228
+ return {
229
+ passed: true, // Don't block on AI review errors
230
+ feedback: 'AI review skipped - Claude Code CLI error',
231
+ };
232
+ }
233
+ const reviewText = stdout.trim();
234
+ const passed = reviewText.toUpperCase().startsWith('PASS');
235
+ const feedback = reviewText.replace(/^(PASS|FAIL)\s*/i, '').trim();
236
+ return { passed, feedback };
237
+ }
238
+ catch (error) {
239
+ const errorMessage = error instanceof Error ? error.message : String(error);
240
+ return {
241
+ passed: true, // Don't block on AI review errors
242
+ feedback: `AI review error: ${errorMessage}`,
243
+ };
244
+ }
245
+ }
246
+ /**
247
+ * Parse a criteria result line into a structured AcceptanceCriterionResult
248
+ * Expected format: "- [PASS/FAIL] Criterion text: Explanation"
249
+ */
250
+ function parseCriterionResult(line, originalCriteria) {
251
+ // Match pattern like: "- [PASS] Some criterion: Some explanation"
252
+ const match = line.match(/^-\s*\[(PASS|FAIL)\]\s*(.+?):\s*(.+)$/i);
253
+ if (!match)
254
+ return null;
255
+ const [, status, criterionText, explanation] = match;
256
+ const passed = status.toUpperCase() === 'PASS';
257
+ // Try to match the criterion text to original criteria
258
+ // The AI might paraphrase slightly, so we try to find the best match
259
+ const criterion = originalCriteria.find(c => criterionText.toLowerCase().includes(c.toLowerCase().slice(0, 20)) ||
260
+ c.toLowerCase().includes(criterionText.toLowerCase().slice(0, 20))) || criterionText;
261
+ return {
262
+ criterion,
263
+ passed,
264
+ explanation: explanation.trim(),
265
+ };
266
+ }
267
+ /**
268
+ * Run acceptance criteria validation using a specialized Claude agent
269
+ */
270
+ export async function runAcceptanceCriteriaValidation(task, options) {
271
+ const logger = getLogger();
272
+ // Skip if no acceptance criteria defined
273
+ if (!task.acceptanceCriteria || task.acceptanceCriteria.length === 0) {
274
+ return {
275
+ passed: true,
276
+ feedback: 'No acceptance criteria defined - skipping validation',
277
+ };
278
+ }
279
+ logger?.info('Starting acceptance criteria validation', {
280
+ taskId: task.id,
281
+ criteriaCount: task.acceptanceCriteria.length,
282
+ criteria: task.acceptanceCriteria,
283
+ });
284
+ try {
285
+ // Format acceptance criteria
286
+ const criteriaList = task.acceptanceCriteria
287
+ .map((c, i) => `${i + 1}. ${c}`)
288
+ .join('\n');
289
+ const prompt = ACCEPTANCE_VALIDATION_PROMPT
290
+ .replace('{taskTitle}', task.title)
291
+ .replace('{taskDescription}', task.description)
292
+ .replace('{acceptanceCriteria}', criteriaList);
293
+ logger?.validationPromptFull(task.id, prompt);
294
+ // Exclude ANTHROPIC_API_KEY to use subscription auth
295
+ const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
296
+ // Run Claude Code in agentic mode with tool access for thorough validation
297
+ const result = await execa(getClaudePath(), ['--dangerously-skip-permissions', '-p', prompt], {
298
+ cwd: options.cwd,
299
+ timeout: 180000, // 3 minutes for thorough agentic validation
300
+ reject: false,
301
+ stdin: 'ignore',
302
+ env: cleanEnv,
303
+ });
304
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
305
+ const stderr = typeof result.stderr === 'string' ? result.stderr : '';
306
+ if (result.exitCode !== 0) {
307
+ logger?.error('Acceptance criteria validation agent error', {
308
+ taskId: task.id,
309
+ exitCode: result.exitCode,
310
+ stderr: stderr.slice(0, 500),
311
+ });
312
+ return {
313
+ passed: true, // Don't block on validation errors
314
+ feedback: 'Acceptance criteria validation skipped - validation agent error',
315
+ };
316
+ }
317
+ const responseText = stdout.trim();
318
+ // Log full response for debugging
319
+ logger?.validationResponseFull(task.id, responseText);
320
+ const lines = responseText.split('\n');
321
+ // Find the PASS/FAIL verdict line - it may not be the first line if Claude provides analysis first
322
+ // Look for a line that is just "PASS" or "FAIL" (possibly with whitespace or markdown formatting)
323
+ let passed = false;
324
+ let verdictLineIndex = -1;
325
+ for (let i = 0; i < lines.length; i++) {
326
+ // Strip markdown formatting (**, *, etc.) and whitespace
327
+ const lineTrimmed = lines[i].trim().replace(/^\*+|\*+$/g, '').trim().toUpperCase();
328
+ if (lineTrimmed === 'PASS' || lineTrimmed === 'FAIL') {
329
+ passed = lineTrimmed === 'PASS';
330
+ verdictLineIndex = i;
331
+ break;
332
+ }
333
+ }
334
+ // If no standalone verdict line found, fall back to checking first line
335
+ if (verdictLineIndex === -1) {
336
+ const firstLine = lines[0].toUpperCase().trim().replace(/^\*+|\*+$/g, '').trim();
337
+ passed = firstLine.startsWith('PASS');
338
+ }
339
+ logger?.validationParsing(task.id, passed, {
340
+ firstLine: lines[0],
341
+ criteriaCount: task.acceptanceCriteria.length,
342
+ parsedCount: 0, // Will update after parsing
343
+ });
344
+ // Extract and parse individual criteria results
345
+ const criteriaResults = [];
346
+ for (const line of lines.slice(1)) {
347
+ if (line.trim().startsWith('- [')) {
348
+ const parsed = parseCriterionResult(line.trim(), task.acceptanceCriteria);
349
+ if (parsed) {
350
+ criteriaResults.push(parsed);
351
+ }
352
+ }
353
+ }
354
+ // Log per-criterion results
355
+ logger?.info('Acceptance criteria validation results', {
356
+ taskId: task.id,
357
+ overallPassed: passed,
358
+ criteriaResults: criteriaResults.map(r => ({
359
+ criterion: r.criterion.slice(0, 50),
360
+ passed: r.passed,
361
+ })),
362
+ passedCount: criteriaResults.filter(r => r.passed).length,
363
+ failedCount: criteriaResults.filter(r => !r.passed).length,
364
+ totalCriteria: task.acceptanceCriteria.length,
365
+ parsedCriteria: criteriaResults.length,
366
+ });
367
+ // Extract "Required Fixes" section for better retry feedback
368
+ const fixesMatch = responseText.match(/## Required Fixes\n([\s\S]+?)(?:\n##|$)/i);
369
+ const requiredFixes = fixesMatch ? fixesMatch[1].trim() : '';
370
+ // Combine failed criteria and required fixes for actionable feedback
371
+ const failedCriteria = criteriaResults.filter(c => !c.passed);
372
+ let feedback = lines.slice(1).join('\n').trim() || 'Validation complete';
373
+ if (!passed && requiredFixes) {
374
+ const failedLines = failedCriteria.map(c => `- [FAIL] ${c.criterion}: ${c.explanation}`);
375
+ feedback = `${failedLines.join('\n')}\n\nRequired Fixes:\n${requiredFixes}`;
376
+ }
377
+ return {
378
+ passed,
379
+ feedback,
380
+ criteriaResults,
381
+ };
382
+ }
383
+ catch (error) {
384
+ const errorMessage = error instanceof Error ? error.message : String(error);
385
+ logger?.error('Acceptance criteria validation exception', {
386
+ taskId: task.id,
387
+ error: errorMessage,
388
+ });
389
+ return {
390
+ passed: true, // Don't block on validation errors
391
+ feedback: `Acceptance criteria validation error: ${errorMessage}`,
392
+ };
393
+ }
394
+ }
395
+ /**
396
+ * Generate a brief 2-line summary of what was accomplished
397
+ */
398
+ export async function generateResultSummary(task, options) {
399
+ const logger = getLogger();
400
+ try {
401
+ // Get the diff of changes
402
+ const diffResult = await getDiff(options.cwd, options.useStagedDiff ?? false);
403
+ if (!diffResult.success || !diffResult.output) {
404
+ logger?.info('Result summary skipped - no changes detected', { taskId: task.id });
405
+ return undefined;
406
+ }
407
+ const prompt = RESULT_SUMMARY_PROMPT
408
+ .replace('{taskTitle}', task.title)
409
+ .replace('{taskDescription}', task.description)
410
+ .replace('{diff}', diffResult.output);
411
+ // Exclude ANTHROPIC_API_KEY to use subscription auth
412
+ const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
413
+ const result = await execa(getClaudePath(), ['--print', '-p', prompt], {
414
+ cwd: options.cwd,
415
+ timeout: 30000, // 30 seconds for summary
416
+ reject: false,
417
+ stdin: 'ignore',
418
+ env: cleanEnv,
419
+ });
420
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
421
+ if (result.exitCode !== 0) {
422
+ logger?.warn('Result summary generation failed', {
423
+ taskId: task.id,
424
+ exitCode: result.exitCode,
425
+ });
426
+ return undefined;
427
+ }
428
+ // Clean up the response - take first 2 non-empty lines
429
+ const lines = stdout.trim().split('\n').filter(line => line.trim().length > 0);
430
+ const summary = lines.slice(0, 2).join('\n');
431
+ logger?.info('Generated result summary', {
432
+ taskId: task.id,
433
+ summaryLength: summary.length,
434
+ });
435
+ return summary || undefined;
436
+ }
437
+ catch (error) {
438
+ const errorMessage = error instanceof Error ? error.message : String(error);
439
+ logger?.warn('Result summary generation error', {
440
+ taskId: task.id,
441
+ error: errorMessage,
442
+ });
443
+ return undefined;
444
+ }
445
+ }
446
+ /**
447
+ * Check if tests are configured in package.json
448
+ */
449
+ export async function detectTestCommand(cwd) {
450
+ try {
451
+ const result = await execa('npm', ['run'], {
452
+ cwd,
453
+ reject: false,
454
+ });
455
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
456
+ // Check for common test scripts
457
+ if (stdout.includes('test')) {
458
+ return 'npm test';
459
+ }
460
+ return null;
461
+ }
462
+ catch {
463
+ return null;
464
+ }
465
+ }
466
+ /**
467
+ * Run a quick syntax check (TypeScript compile)
468
+ */
469
+ export async function runTypeCheck(cwd) {
470
+ try {
471
+ const result = await execa('npx', ['tsc', '--noEmit'], {
472
+ cwd,
473
+ reject: false,
474
+ timeout: 60000,
475
+ });
476
+ const stdout = typeof result.stdout === 'string' ? result.stdout : '';
477
+ const stderr = typeof result.stderr === 'string' ? result.stderr : '';
478
+ return {
479
+ passed: result.exitCode === 0,
480
+ output: stderr || stdout || 'Type check passed',
481
+ };
482
+ }
483
+ catch (error) {
484
+ const errorMessage = error instanceof Error ? error.message : String(error);
485
+ return {
486
+ passed: false,
487
+ output: `Type check failed: ${errorMessage}`,
488
+ };
489
+ }
490
+ }
491
+ //# sourceMappingURL=validator.js.map