@crewx/cli 0.8.0-rc.66

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 (219) hide show
  1. package/README.md +663 -0
  2. package/dist/ai-provider.service.d.ts +36 -0
  3. package/dist/ai-provider.service.js +315 -0
  4. package/dist/ai-provider.service.js.map +1 -0
  5. package/dist/ai.service.d.ts +17 -0
  6. package/dist/ai.service.js +51 -0
  7. package/dist/ai.service.js.map +1 -0
  8. package/dist/app.module.d.ts +5 -0
  9. package/dist/app.module.js +165 -0
  10. package/dist/app.module.js.map +1 -0
  11. package/dist/cli/agent.handler.d.ts +2 -0
  12. package/dist/cli/agent.handler.js +186 -0
  13. package/dist/cli/agent.handler.js.map +1 -0
  14. package/dist/cli/builtin.handler.d.ts +3 -0
  15. package/dist/cli/builtin.handler.js +110 -0
  16. package/dist/cli/builtin.handler.js.map +1 -0
  17. package/dist/cli/chat.handler.d.ts +20 -0
  18. package/dist/cli/chat.handler.js +446 -0
  19. package/dist/cli/chat.handler.js.map +1 -0
  20. package/dist/cli/cli.handler.d.ts +4 -0
  21. package/dist/cli/cli.handler.js +119 -0
  22. package/dist/cli/cli.handler.js.map +1 -0
  23. package/dist/cli/doctor.handler.d.ts +38 -0
  24. package/dist/cli/doctor.handler.js +495 -0
  25. package/dist/cli/doctor.handler.js.map +1 -0
  26. package/dist/cli/execute.handler.d.ts +2 -0
  27. package/dist/cli/execute.handler.js +376 -0
  28. package/dist/cli/execute.handler.js.map +1 -0
  29. package/dist/cli/help.handler.d.ts +2 -0
  30. package/dist/cli/help.handler.js +10 -0
  31. package/dist/cli/help.handler.js.map +1 -0
  32. package/dist/cli/init.handler.d.ts +26 -0
  33. package/dist/cli/init.handler.js +450 -0
  34. package/dist/cli/init.handler.js.map +1 -0
  35. package/dist/cli/log.handler.d.ts +2 -0
  36. package/dist/cli/log.handler.js +69 -0
  37. package/dist/cli/log.handler.js.map +1 -0
  38. package/dist/cli/mcp.handler.d.ts +3 -0
  39. package/dist/cli/mcp.handler.js +121 -0
  40. package/dist/cli/mcp.handler.js.map +1 -0
  41. package/dist/cli/query.handler.d.ts +2 -0
  42. package/dist/cli/query.handler.js +392 -0
  43. package/dist/cli/query.handler.js.map +1 -0
  44. package/dist/cli/skill.handler.d.ts +2 -0
  45. package/dist/cli/skill.handler.js +252 -0
  46. package/dist/cli/skill.handler.js.map +1 -0
  47. package/dist/cli/slack-files.handler.d.ts +2 -0
  48. package/dist/cli/slack-files.handler.js +291 -0
  49. package/dist/cli/slack-files.handler.js.map +1 -0
  50. package/dist/cli/template.handler.d.ts +2 -0
  51. package/dist/cli/template.handler.js +188 -0
  52. package/dist/cli/template.handler.js.map +1 -0
  53. package/dist/cli/templates.handler.d.ts +2 -0
  54. package/dist/cli/templates.handler.js +100 -0
  55. package/dist/cli/templates.handler.js.map +1 -0
  56. package/dist/cli-options.d.ts +40 -0
  57. package/dist/cli-options.js +371 -0
  58. package/dist/cli-options.js.map +1 -0
  59. package/dist/config/timeout.config.d.ts +14 -0
  60. package/dist/config/timeout.config.js +34 -0
  61. package/dist/config/timeout.config.js.map +1 -0
  62. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  63. package/dist/conversation/base-conversation-history.provider.js +45 -0
  64. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  65. package/dist/conversation/cli-box-reader.adapter.d.ts +6 -0
  66. package/dist/conversation/cli-box-reader.adapter.js +10 -0
  67. package/dist/conversation/cli-box-reader.adapter.js.map +1 -0
  68. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  69. package/dist/conversation/cli-conversation-history.provider.js +112 -0
  70. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  71. package/dist/conversation/cli-task-reader.adapter.d.ts +6 -0
  72. package/dist/conversation/cli-task-reader.adapter.js +25 -0
  73. package/dist/conversation/cli-task-reader.adapter.js.map +1 -0
  74. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  75. package/dist/conversation/conversation-provider.factory.js +50 -0
  76. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  77. package/dist/conversation/index.d.ts +8 -0
  78. package/dist/conversation/index.js +29 -0
  79. package/dist/conversation/index.js.map +1 -0
  80. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  81. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  82. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  83. package/dist/crewx.tool.d.ts +360 -0
  84. package/dist/crewx.tool.js +2531 -0
  85. package/dist/crewx.tool.js.map +1 -0
  86. package/dist/crewx.tool.spec.d.ts +1 -0
  87. package/dist/crewx.tool.spec.js +222 -0
  88. package/dist/crewx.tool.spec.js.map +1 -0
  89. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  90. package/dist/guards/bearer-auth.guard.js +44 -0
  91. package/dist/guards/bearer-auth.guard.js.map +1 -0
  92. package/dist/health.controller.d.ts +6 -0
  93. package/dist/health.controller.js +32 -0
  94. package/dist/health.controller.js.map +1 -0
  95. package/dist/main.d.ts +1 -0
  96. package/dist/main.js +311 -0
  97. package/dist/main.js.map +1 -0
  98. package/dist/mcp.controller.d.ts +8 -0
  99. package/dist/mcp.controller.js +62 -0
  100. package/dist/mcp.controller.js.map +1 -0
  101. package/dist/package.json +3 -0
  102. package/dist/providers/dynamic-provider.factory.d.ts +17 -0
  103. package/dist/providers/dynamic-provider.factory.js +138 -0
  104. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  105. package/dist/providers/logger.adapter.d.ts +7 -0
  106. package/dist/providers/logger.adapter.js +107 -0
  107. package/dist/providers/logger.adapter.js.map +1 -0
  108. package/dist/services/agent-loader.service.d.ts +35 -0
  109. package/dist/services/agent-loader.service.js +623 -0
  110. package/dist/services/agent-loader.service.js.map +1 -0
  111. package/dist/services/auth.service.d.ts +9 -0
  112. package/dist/services/auth.service.js +47 -0
  113. package/dist/services/auth.service.js.map +1 -0
  114. package/dist/services/config-validator.service.d.ts +29 -0
  115. package/dist/services/config-validator.service.js +483 -0
  116. package/dist/services/config-validator.service.js.map +1 -0
  117. package/dist/services/config.service.d.ts +45 -0
  118. package/dist/services/config.service.js +352 -0
  119. package/dist/services/config.service.js.map +1 -0
  120. package/dist/services/document-loader.service.d.ts +26 -0
  121. package/dist/services/document-loader.service.js +186 -0
  122. package/dist/services/document-loader.service.js.map +1 -0
  123. package/dist/services/help.service.d.ts +5 -0
  124. package/dist/services/help.service.js +139 -0
  125. package/dist/services/help.service.js.map +1 -0
  126. package/dist/services/intelligent-compression.service.d.ts +20 -0
  127. package/dist/services/intelligent-compression.service.js +179 -0
  128. package/dist/services/intelligent-compression.service.js.map +1 -0
  129. package/dist/services/mcp-client.service.d.ts +26 -0
  130. package/dist/services/mcp-client.service.js +81 -0
  131. package/dist/services/mcp-client.service.js.map +1 -0
  132. package/dist/services/parallel-processing.service.d.ts +108 -0
  133. package/dist/services/parallel-processing.service.js +333 -0
  134. package/dist/services/parallel-processing.service.js.map +1 -0
  135. package/dist/services/provider-bridge.service.d.ts +35 -0
  136. package/dist/services/provider-bridge.service.js +224 -0
  137. package/dist/services/provider-bridge.service.js.map +1 -0
  138. package/dist/services/remote-agent.service.d.ts +50 -0
  139. package/dist/services/remote-agent.service.js +171 -0
  140. package/dist/services/remote-agent.service.js.map +1 -0
  141. package/dist/services/result-formatter.service.d.ts +27 -0
  142. package/dist/services/result-formatter.service.js +126 -0
  143. package/dist/services/result-formatter.service.js.map +1 -0
  144. package/dist/services/skill-loader.service.d.ts +15 -0
  145. package/dist/services/skill-loader.service.js +278 -0
  146. package/dist/services/skill-loader.service.js.map +1 -0
  147. package/dist/services/skill.service.d.ts +69 -0
  148. package/dist/services/skill.service.js +779 -0
  149. package/dist/services/skill.service.js.map +1 -0
  150. package/dist/services/skill.service.spec.d.ts +1 -0
  151. package/dist/services/skill.service.spec.js +168 -0
  152. package/dist/services/skill.service.spec.js.map +1 -0
  153. package/dist/services/task-management.service.d.ts +71 -0
  154. package/dist/services/task-management.service.js +324 -0
  155. package/dist/services/task-management.service.js.map +1 -0
  156. package/dist/services/template.service.d.ts +61 -0
  157. package/dist/services/template.service.js +416 -0
  158. package/dist/services/template.service.js.map +1 -0
  159. package/dist/services/tool-call.service.d.ts +16 -0
  160. package/dist/services/tool-call.service.js +302 -0
  161. package/dist/services/tool-call.service.js.map +1 -0
  162. package/dist/services/tracing.service.d.ts +197 -0
  163. package/dist/services/tracing.service.js +1267 -0
  164. package/dist/services/tracing.service.js.map +1 -0
  165. package/dist/slack/formatters/message.formatter.d.ts +43 -0
  166. package/dist/slack/formatters/message.formatter.js +505 -0
  167. package/dist/slack/formatters/message.formatter.js.map +1 -0
  168. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  169. package/dist/slack/services/slack-file-download.service.js +558 -0
  170. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  171. package/dist/slack/slack-bot.d.ts +33 -0
  172. package/dist/slack/slack-bot.js +568 -0
  173. package/dist/slack/slack-bot.js.map +1 -0
  174. package/dist/stderr.logger.d.ts +8 -0
  175. package/dist/stderr.logger.js +26 -0
  176. package/dist/stderr.logger.js.map +1 -0
  177. package/dist/types/usage.types.d.ts +107 -0
  178. package/dist/types/usage.types.js +3 -0
  179. package/dist/types/usage.types.js.map +1 -0
  180. package/dist/utils/config-utils.d.ts +15 -0
  181. package/dist/utils/config-utils.js +69 -0
  182. package/dist/utils/config-utils.js.map +1 -0
  183. package/dist/utils/extract-text.d.ts +1 -0
  184. package/dist/utils/extract-text.js +15 -0
  185. package/dist/utils/extract-text.js.map +1 -0
  186. package/dist/utils/mcp-installer.d.ts +20 -0
  187. package/dist/utils/mcp-installer.js +199 -0
  188. package/dist/utils/mcp-installer.js.map +1 -0
  189. package/dist/utils/project-hash.d.ts +6 -0
  190. package/dist/utils/project-hash.js +70 -0
  191. package/dist/utils/project-hash.js.map +1 -0
  192. package/dist/utils/simple-security.d.ts +3 -0
  193. package/dist/utils/simple-security.js +20 -0
  194. package/dist/utils/simple-security.js.map +1 -0
  195. package/dist/utils/stdin-utils.d.ts +6 -0
  196. package/dist/utils/stdin-utils.js +109 -0
  197. package/dist/utils/stdin-utils.js.map +1 -0
  198. package/dist/utils/template-processor.d.ts +27 -0
  199. package/dist/utils/template-processor.js +395 -0
  200. package/dist/utils/template-processor.js.map +1 -0
  201. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  202. package/dist/utils/terminal-message-formatter.js +136 -0
  203. package/dist/utils/terminal-message-formatter.js.map +1 -0
  204. package/dist/version.d.ts +1 -0
  205. package/dist/version.js +17 -0
  206. package/dist/version.js.map +1 -0
  207. package/dist/workspace.service.d.ts +44 -0
  208. package/dist/workspace.service.js +299 -0
  209. package/dist/workspace.service.js.map +1 -0
  210. package/package.json +135 -0
  211. package/scripts/backfill-tokens.js +218 -0
  212. package/scripts/postbuild-cli.mjs +88 -0
  213. package/scripts/postinstall-cli.mjs +30 -0
  214. package/templates/agents/default.yaml +490 -0
  215. package/templates/agents/minimal.yaml +16 -0
  216. package/templates/documents/conversation-history-default.hbs +17 -0
  217. package/templates/documents/crewx-manual.md +2278 -0
  218. package/templates/documents/crewx-quick-guide.md +147 -0
  219. package/templates/versions.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.service.js","sourceRoot":"","sources":["../../src/services/tracing.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAqG;AACrG,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,oCAAwE;AAIxE,IAAI,QAAQ,GAAuD,IAAI,CAAC;AACxE,IAAI,CAAC;IACH,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAAC,MAAM,CAAC;AAET,CAAC;AAKD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAKD,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;AACvB,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAsKM,IAAM,cAAc,sBAApB,MAAM,cAAc;IAKzB,YACyC,OAA+B;QALvD,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,OAAE,GAAgD,IAAI,CAAC;QAM7D,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAKO,kBAAkB;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YAGD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAGzB,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAGpC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAG7C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAGzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;OAiBZ,CAAC,CAAC;YAGH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;OAkBZ,CAAC,CAAC;YAGH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;OAMZ,CAAC,CAAC;YAGH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAG5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAG3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAG3B,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAGhC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAG3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAG3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAG5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnG,CAAC;QAEJ,CAAC;IACH,CAAC;IAKO,YAAY,CAAC,SAAiB,EAAE,UAAkB;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAA4B,CAAC;YACzF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG;YACjB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;YAClC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;YACxC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;YACpD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE;YACxD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;SACjD,CAAC;QAEF,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC;oBACrF,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,OAAO,GAAG;YACd,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE;YAClD,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,gBAAgB,EAAE;YAC9D,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,eAAe,EAAE;SAC7D,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,aAAa,6BAA6B,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAWO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG;YACjB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;YAChC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;YACjC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE;YAC9C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;SAC/B,CAAC;QAEF,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,aAAa,6BAA6B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAQO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAGrB,MAAM,eAAe,GAAG;YACtB,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;YAChE,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;SACrE,CAAC;QAEF,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;QAEjB,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,aAAa,mCAAmC,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAOO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CACvC,uEAAuE,CACxE,CAAC;QACF,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CACzC,yEAAyE,CAC1E,CAAC;QAGF,IAAI,mBAAmB,IAAI,qBAAqB,EAAE,CAAC;YACjD,IAAI,CAAC;gBAEH,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;WAIZ,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;WAIZ,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;YACxG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;aAEI,IAAI,mBAAmB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YAE3F,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;SAGZ,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YAEnG,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBAC3E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAC/E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;SAEZ,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;YAChG,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;OAIZ,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;QAGD,IAAI,qBAAqB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAC3B,uDAAuD,CACH,CAAC;gBAEvD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,GAAG,CAAC,IAAI,2BAA2B,CAAC,CAAC;oBAC/F,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;IACH,CAAC;IASO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAGrB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;OAUZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;QAGD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;OAcZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QAGD,MAAM,eAAe,GAAG;YACtB,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;YAC5D,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;SACnE,CAAC;QAEF,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzF,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5H,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjI,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChI,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,aAAa,6BAA6B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAMO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnH,OAAO;QACT,CAAC;QAGD,MAAM,OAAO,GAAG;YACd,EAAE,IAAI,EAAE,4BAA4B,EAAE,GAAG,EAAE,uFAAuF,EAAE;YACpI,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,wEAAwE,EAAE;YAChH,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,EAAE,sFAAsF,EAAE;YACrI,EAAE,IAAI,EAAE,gCAAgC,EAAE,GAAG,EAAE,0FAA0F,EAAE;SAC5I,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAMO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC;YAEH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAC7B,yEAAyE,CAC1E,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;SAaZ,CAAC,CAAC;gBAGH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;SAIZ,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;OAwBZ,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAOO,GAAG;QACT,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAMO,cAAc,CAAC,IAAY;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAQD,UAAU,CAAC,KAAsB;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAA,gBAAU,EAAC,KAAK,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAG9G,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAI7D,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QAClD,IAAI,cAAc,GAAG,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC;QACnD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YACvE,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,GAAG,eAAe,CAAC;YACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;OAUX,EAAE;gBACD,EAAE;gBACF,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,OAAO,IAAI,IAAI;gBACrB,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,IAAI;gBACV,UAAU,CAAC,OAAO;gBAClB,GAAG;gBACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBACtB,KAAK,CAAC,cAAc,IAAI,IAAI;gBAC5B,KAAK,CAAC,eAAe,IAAI,IAAI;gBAC7B,KAAK,CAAC,KAAK,IAAI,IAAI;gBACnB,KAAK,CAAC,QAAQ,IAAI,KAAK;gBACvB,KAAK,CAAC,aAAa,IAAI,IAAI;gBAC3B,KAAK,CAAC,YAAY,IAAI,CAAC;gBACvB,KAAK,CAAC,aAAa,IAAI,CAAC;gBACxB,KAAK,CAAC,QAAQ,IAAI,CAAC;gBACnB,KAAK,CAAC,GAAG,IAAI,IAAI;gBACjB,cAAc;gBACd,KAAK,CAAC,OAAO,IAAI,IAAI;gBACrB,KAAK,CAAC,oBAAoB,IAAI,IAAI;gBAClC,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvB,IAAI;gBACJ,WAAW;gBACX,aAAa;gBACb,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvB,KAAK,CAAC,aAAa,IAAI,IAAI;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,KAAK,CAAC,QAAQ,YAAY,KAAK,CAAC,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;YAC1G,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAOO,oBAAoB,CAAC,IAAmC;QAC9D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,IAAI,KAAK,GAAyD,IAAI,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAEvC,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAGD,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACxB,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC5B,MAAM,CAAC,KAAK;gBACZ,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;gBACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAgC,CAAC;gBAClD,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBAC9E,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;gBACzE,CAAC;YACH,CAAC;YAGD,IACE,MAAM,CAAC,IAAI,KAAK,gBAAgB;gBAChC,MAAM,CAAC,KAAK;gBACZ,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;gBACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAgC,CAAC;gBAClD,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBAC9E,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,YAAY,CACV,MAAc,EACd,MAAe,EACf,QAAwB,EACxB,KAAqD;QAErD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAGvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ;gBAC3C,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACrB,CAAC,CAAE,MAAgB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClF,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAG7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;YAGlC,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAGrE,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;gBACxC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;gBAC1C,OAAO,GAAG,IAAA,mBAAa,EAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;;;;;OASxB,EAAE;gBACD,UAAU,CAAC,OAAO;gBAClB,UAAU,IAAI,IAAI;gBAClB,GAAG;gBACH,GAAG;gBACH,WAAW;gBACX,YAAY;gBACZ,OAAO;gBACP,QAAQ,IAAI,IAAI;gBAChB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,QAAQ,CACN,MAAc,EACd,KAAa,EACb,QAAwB,EACxB,KAAqD;QAErD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAGvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;YAGlC,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAGrE,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;gBACxC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;gBAC1C,OAAO,GAAG,IAAA,mBAAa,EAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;;;;;OASxB,EAAE;gBACD,UAAU,CAAC,MAAM;gBACjB,KAAK;gBACL,GAAG;gBACH,GAAG;gBACH,WAAW;gBACX,YAAY;gBACZ,OAAO;gBACP,QAAQ,IAAI,IAAI;gBAChB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uBAAuB,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,aAAa,CAAC,MAAc,EAAE,GAAW;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;OAIxB,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAElB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iCAAiC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,4BAA4B,CAAC,MAAc,EAAE,OAAe;QAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;OAIxB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAEtB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,4BAA4B,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kDAAkD,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtH,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,wBAAwB,CAAC,MAAc,EAAE,cAAsB;QAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;YAClD,IAAI,eAAe,GAAG,cAAc,CAAC;YACrC,IAAI,cAAc,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;gBACrD,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,GAAG,eAAe,CAAC;gBACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,0BAA0B,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;OAIxB,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YAE9B,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjH,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,aAAa,CAAC,MAAc,EAAE,KAAsB;QAClD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,CAAwC,CAAC;YAEhH,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,+BAA+B,CAAC,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;YAGD,IAAI,IAAI,GAAsB,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBAEP,IAAI,GAAG,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAGjB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAEnG,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iCAAiC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,MAAM,CAAC,CAAQ,CAAC;YAE7E,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,GAAG,GAAG;gBACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC7D,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sBAAsB,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,SAAS,CAAC,OAA+D;QACvE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,qBAAqB,CAAC;YAClC,MAAM,MAAM,GAAU,EAAE,CAAC;YAEzB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,IAAI,qBAAqB,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAED,KAAK,IAAI,4CAA4C,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;YAEjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxB,GAAG,GAAG;gBACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC7D,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAKD,UAAU,CAAC,KAAsB;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,gBAAU,EAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;OAGX,EAAE;gBACD,EAAE;gBACF,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,cAAc,IAAI,IAAI;gBAC5B,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ;gBAC/B,IAAI;gBACJ,GAAG;gBACH,KAAK,CAAC,KAAK,IAAI,IAAI;gBACnB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;aAC3D,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,YAAY,CAAC,MAAc,EAAE,MAAe;QAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;OAKxB,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAEvC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;OAKxB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAE9B,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uBAAuB,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,eAAe,CAAC,MAAc;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,+DAA+D,EAAE,CAAC,MAAM,CAAC,CAAU,CAAC;YAE7G,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxB,GAAG,GAAG;gBACN,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;aACpE,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gCAAgC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpG,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAKD,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,MAAM,CAAC,CAAQ,CAAC;YAE7E,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,GAAG,GAAG;gBACN,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;aACpE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sBAAsB,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAMD,WAAW,CAAC,KAA0B;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,gBAAU,EAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;OAKX,EAAE;gBACD,EAAE;gBACF,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,UAAU,IAAI,IAAI;gBACxB,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBAChD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClD,KAAK,CAAC,WAAW,IAAI,IAAI;gBACzB,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAMD,mBAAmB,CAAC,MAAc;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mEAAmE,EAAE,CAAC,MAAM,CAAC,CAAU,CAAC;YAEjH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxB,GAAG,GAAG;gBACN,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;aACxD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qCAAqC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzG,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAMD,gBAAgB,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;;;OAMzB,EAAE,CAAC,MAAM,CAAC,CAAkD,CAAC;YAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;OAEzB,EAAE,CAAC,MAAM,CAAC,CAAiC,CAAC;YAE7C,OAAO;gBACL,UAAU,EAAE,KAAK,CAAC,WAAW;gBAC7B,WAAW,EAAE,KAAK,CAAC,YAAY;gBAC/B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aACvC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0CAA0C,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9G,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,eAAe,CAAC,aAAqB,EAAE;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YAGxC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAE7E,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAMD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAuB,CAAC,KAAK,CAAC;YAClG,MAAM,SAAS,GAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAuB,CAAC,KAAK,CAAC;YAGlG,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC;gBACH,aAAa,GAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0CAA0C,CAAuB,CAAC,KAAK,CAAC;YACvG,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;YAGD,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAMO,iBAAiB;QACvB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;YACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;SACnC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,OAAO,MAAM,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,qBAAqB,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa;QAEnB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,QAAS,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAMM,yBAAyB,CAAC,OAAe;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAA,qBAAe,EAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACvD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAEO,uBAAuB,CAC7B,WAAoB,EACpB,aAAsB;QAItB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,EAAE,GAAG,WAAW,IAAI,IAAA,qBAAe,EAAC,aAAa,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,aAAa,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAG1D,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAEvD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAKO,oBAAoB,CAAC,WAAmB,EAAE,aAAsB;QACtE,MAAM,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1E,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAC1B,sDAAsD,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAC9C,CAAC;gBAEhC,IAAI,QAAQ,EAAE,CAAC;oBAEb,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChD,IAAI,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAKO,kBAAkB,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY,EAAE,aAAqB;QACtF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;OAGX,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAG9C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;OAEX,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,aAAqB;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACzE,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAEO,eAAe,CAAC,SAAiB;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;IAC9C,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1B,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF,CAAA;AAxlDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAOR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;;GAN7B,cAAc,CAwlD1B"}
@@ -0,0 +1,43 @@
1
+ import { Block, KnownBlock } from '@slack/web-api';
2
+ import { BaseMessageFormatter, StructuredMessage, FormatterOptions, TaskLogEntry } from '@crewx/sdk';
3
+ export interface ExecutionResult {
4
+ agent: string;
5
+ provider: string;
6
+ taskId: string;
7
+ response: string;
8
+ success: boolean;
9
+ error?: string;
10
+ logs?: TaskLogEntry[];
11
+ }
12
+ export declare class SlackMessageFormatter extends BaseMessageFormatter {
13
+ private readonly maxResponseLength;
14
+ private readonly maxBlockSize;
15
+ private markdownToSlackFn;
16
+ constructor();
17
+ private loadMarkdownConverter;
18
+ formatMessage(msg: StructuredMessage, options?: FormatterOptions): string;
19
+ redactCredentials(text: string): string;
20
+ formatExecutionResult(result: ExecutionResult): (Block | KnownBlock)[];
21
+ private resolveResponseText;
22
+ private appendResponseBlocks;
23
+ private formatLogEntries;
24
+ private formatSingleLogEntry;
25
+ private formatToolUseLog;
26
+ private formatToolResultLog;
27
+ private formatErrorLog;
28
+ private formatInfoLog;
29
+ private formatAgentCallLog;
30
+ private createFooter;
31
+ private convertMarkdownToMrkdwn;
32
+ private standardizeMentions;
33
+ private convertEmojiCodes;
34
+ private truncateForSlack;
35
+ formatError(error: string): (Block | KnownBlock)[];
36
+ formatSimpleMessage(message: string, emoji?: string): (Block | KnownBlock)[];
37
+ private validateBlockCount;
38
+ private splitIntoSections;
39
+ private forceSplitLongLine;
40
+ private findBestBreakPoint;
41
+ private ensureMaxLength;
42
+ private truncateAtMrkdwnLevel;
43
+ }
@@ -0,0 +1,505 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlackMessageFormatter = void 0;
4
+ const sdk_1 = require("@crewx/sdk");
5
+ class SlackMessageFormatter extends sdk_1.BaseMessageFormatter {
6
+ constructor() {
7
+ super();
8
+ this.maxResponseLength = parseInt(process.env.SLACK_MAX_RESPONSE_LENGTH || '400000', 10);
9
+ this.maxBlockSize = Math.min(parseInt(process.env.SLACK_MAX_BLOCK_SIZE || '2900', 10), 3000);
10
+ this.markdownToSlackFn = this.loadMarkdownConverter();
11
+ }
12
+ loadMarkdownConverter() {
13
+ try {
14
+ const { markdownToSlack } = require('md-to-slack');
15
+ return markdownToSlack;
16
+ }
17
+ catch (error) {
18
+ console.error('Failed to load md-to-slack:', error);
19
+ return (text) => text;
20
+ }
21
+ }
22
+ formatMessage(msg, options) {
23
+ if (!msg || !msg.text) {
24
+ return '';
25
+ }
26
+ const opts = this.getDefaultOptions({
27
+ platform: 'slack',
28
+ userPrefix: ':bust_in_silhouette:',
29
+ assistantPrefix: ':robot_face:',
30
+ ...options,
31
+ });
32
+ const headerParts = [];
33
+ const prefix = msg.isAssistant
34
+ ? opts.assistantPrefix
35
+ : opts.userPrefix;
36
+ headerParts.push(prefix);
37
+ const slackMetadata = msg.metadata?.slack ?? {};
38
+ const slackUserId = slackMetadata.user_id || slackMetadata.bot_user_id;
39
+ const displayName = slackMetadata.user_profile?.display_name ||
40
+ slackMetadata.username ||
41
+ slackMetadata.bot_username ||
42
+ this.resolveDisplayName(msg) ||
43
+ msg.userId;
44
+ if (opts.includeUserId) {
45
+ if (slackUserId) {
46
+ headerParts.push(`<@${slackUserId}>`);
47
+ }
48
+ else if (displayName) {
49
+ headerParts.push(`*${displayName}*`);
50
+ }
51
+ }
52
+ if (msg.isAssistant && msg.metadata?.agent_id) {
53
+ headerParts.push(`(${msg.metadata.agent_id})`);
54
+ }
55
+ if (opts.includeTimestamp && msg.timestamp) {
56
+ const timestamp = this.normalizeTimestamp(msg.timestamp);
57
+ headerParts.push(`_${timestamp}_`);
58
+ }
59
+ const header = headerParts.join(' ');
60
+ const slackText = this.sanitizeText(this.standardizeMentions(this.convertMarkdownToMrkdwn(msg.text)), opts.maxLength);
61
+ return `${header}: ${slackText}`;
62
+ }
63
+ redactCredentials(text) {
64
+ if (!text)
65
+ return '';
66
+ return text
67
+ .replace(/\bsk-[A-Za-z0-9_-]{3,}/g, 'sk-****')
68
+ .replace(/\bghp_[A-Za-z0-9]{3,}/g, 'ghp_****')
69
+ .replace(/\b(bearer\s+)[A-Za-z0-9._\-/+=]{8,}/gi, '$1****')
70
+ .replace(/(password\s*=\s*)[^\s&"',;)}\]]+/gi, '$1****')
71
+ .replace(/(api[_-]?key\s*[=:]\s*)[^\s&"',;)}\]]+/gi, '$1****');
72
+ }
73
+ formatExecutionResult(result) {
74
+ const blocks = [];
75
+ if (result.success) {
76
+ const responseText = this.resolveResponseText(result);
77
+ if (result.logs && result.logs.length > 0) {
78
+ const logBlocks = this.formatLogEntries(result.logs, responseText);
79
+ blocks.push(...logBlocks);
80
+ }
81
+ else {
82
+ this.appendResponseBlocks(blocks, responseText);
83
+ }
84
+ }
85
+ else {
86
+ blocks.push({
87
+ type: 'section',
88
+ text: {
89
+ type: 'mrkdwn',
90
+ text: `❌ *Error*\n\`\`\`${result.error || 'Unknown error'}\`\`\``,
91
+ },
92
+ });
93
+ blocks.push({
94
+ type: 'context',
95
+ elements: [
96
+ {
97
+ type: 'mrkdwn',
98
+ text: `Agent: *${result.agent}* (${result.provider}) · Task ID: \`${result.taskId}\``,
99
+ },
100
+ ],
101
+ });
102
+ }
103
+ blocks.push(...this.createFooter());
104
+ return blocks;
105
+ }
106
+ resolveResponseText(result) {
107
+ if (result.logs && result.logs.length > 0) {
108
+ const textLogs = result.logs.filter((l) => l.type === 'text');
109
+ if (textLogs.length > 0) {
110
+ return textLogs.map((l) => l.content || '').join('\n\n');
111
+ }
112
+ }
113
+ return result.response;
114
+ }
115
+ appendResponseBlocks(blocks, responseText) {
116
+ let response = this.truncateForSlack(responseText, this.maxResponseLength);
117
+ let slackFormatted = this.convertMarkdownToMrkdwn(response);
118
+ const adjustedMaxChars = this.validateBlockCount(slackFormatted, this.maxBlockSize);
119
+ const maxTotalLength = adjustedMaxChars * 48;
120
+ if (slackFormatted.length > maxTotalLength) {
121
+ response = this.truncateForSlack(responseText, maxTotalLength * 0.95);
122
+ slackFormatted = this.convertMarkdownToMrkdwn(response);
123
+ if (slackFormatted.length > maxTotalLength) {
124
+ slackFormatted = this.truncateAtMrkdwnLevel(slackFormatted, maxTotalLength);
125
+ }
126
+ }
127
+ if (slackFormatted.length > this.maxBlockSize) {
128
+ const sections = this.splitIntoSections(slackFormatted, adjustedMaxChars);
129
+ sections.forEach((sectionText, index) => {
130
+ blocks.push({
131
+ type: 'section',
132
+ text: {
133
+ type: 'mrkdwn',
134
+ text: sectionText,
135
+ },
136
+ });
137
+ if (index < sections.length - 1 && sections.length < 10) {
138
+ blocks.push({ type: 'divider' });
139
+ }
140
+ });
141
+ }
142
+ else {
143
+ blocks.push({
144
+ type: 'section',
145
+ text: {
146
+ type: 'mrkdwn',
147
+ text: slackFormatted,
148
+ },
149
+ });
150
+ }
151
+ }
152
+ formatLogEntries(logs, responseText) {
153
+ const blocks = [];
154
+ const MAX_LOG_BLOCKS = 44;
155
+ this.appendResponseBlocks(blocks, responseText);
156
+ const nonTextLogs = logs.filter((l) => l.type !== 'text');
157
+ if (nonTextLogs.length === 0) {
158
+ return blocks;
159
+ }
160
+ blocks.push({ type: 'divider' });
161
+ for (const log of nonTextLogs) {
162
+ if (blocks.length >= MAX_LOG_BLOCKS) {
163
+ blocks.push({
164
+ type: 'context',
165
+ elements: [
166
+ {
167
+ type: 'mrkdwn',
168
+ text: `_... ${nonTextLogs.length - nonTextLogs.indexOf(log)} more log entries truncated_`,
169
+ },
170
+ ],
171
+ });
172
+ break;
173
+ }
174
+ const logBlocks = this.formatSingleLogEntry(log);
175
+ blocks.push(...logBlocks);
176
+ }
177
+ return blocks;
178
+ }
179
+ formatSingleLogEntry(log) {
180
+ switch (log.type) {
181
+ case 'tool_use':
182
+ return this.formatToolUseLog(log);
183
+ case 'tool_result':
184
+ return this.formatToolResultLog(log);
185
+ case 'error':
186
+ return this.formatErrorLog(log);
187
+ case 'info':
188
+ return this.formatInfoLog(log);
189
+ case 'agent_call':
190
+ return this.formatAgentCallLog(log);
191
+ default:
192
+ return [];
193
+ }
194
+ }
195
+ formatToolUseLog(log) {
196
+ const toolName = log.toolName || 'unknown';
197
+ const input = log.toolInput
198
+ ? this.redactCredentials(this.truncateForSlack(log.toolInput, 200))
199
+ : '';
200
+ const inputDisplay = input ? `\n\`\`\`${input}\`\`\`` : '';
201
+ return [
202
+ {
203
+ type: 'context',
204
+ elements: [
205
+ {
206
+ type: 'mrkdwn',
207
+ text: `🔧 *${toolName}*${inputDisplay}`,
208
+ },
209
+ ],
210
+ },
211
+ ];
212
+ }
213
+ formatToolResultLog(log) {
214
+ const icon = log.isError ? '❌' : '✅';
215
+ const toolName = log.toolName || '';
216
+ const preview = log.resultPreview
217
+ ? this.redactCredentials(this.truncateForSlack(log.resultPreview, 500))
218
+ : '';
219
+ const previewDisplay = preview ? `\n\`\`\`${preview}\`\`\`` : '';
220
+ return [
221
+ {
222
+ type: 'context',
223
+ elements: [
224
+ {
225
+ type: 'mrkdwn',
226
+ text: `${icon} ${toolName}${previewDisplay}`,
227
+ },
228
+ ],
229
+ },
230
+ ];
231
+ }
232
+ formatErrorLog(log) {
233
+ const content = log.errorMessage || log.content || 'Unknown error';
234
+ const redacted = this.redactCredentials(content);
235
+ return [
236
+ {
237
+ type: 'section',
238
+ text: {
239
+ type: 'mrkdwn',
240
+ text: `🔴 *Error*\n\`\`\`${this.truncateForSlack(redacted, 500)}\`\`\``,
241
+ },
242
+ },
243
+ ];
244
+ }
245
+ formatInfoLog(log) {
246
+ const content = log.content || '';
247
+ if (!content)
248
+ return [];
249
+ return [
250
+ {
251
+ type: 'context',
252
+ elements: [
253
+ {
254
+ type: 'mrkdwn',
255
+ text: `ℹ️ ${this.truncateForSlack(content, 300)}`,
256
+ },
257
+ ],
258
+ },
259
+ ];
260
+ }
261
+ formatAgentCallLog(log) {
262
+ const target = log.targetAgent || 'unknown';
263
+ const taskId = log.targetTaskId ? ` (\`${log.targetTaskId}\`)` : '';
264
+ return [
265
+ {
266
+ type: 'context',
267
+ elements: [
268
+ {
269
+ type: 'mrkdwn',
270
+ text: `🤖 Delegated to *${target}*${taskId}`,
271
+ },
272
+ ],
273
+ },
274
+ ];
275
+ }
276
+ createFooter() {
277
+ return [
278
+ { type: 'divider' },
279
+ {
280
+ type: 'context',
281
+ elements: [
282
+ {
283
+ type: 'mrkdwn',
284
+ text: '$ crewx | <https://github.com/sowonlabs/crewx|github.com/sowonlabs/crewx>',
285
+ },
286
+ ],
287
+ },
288
+ ];
289
+ }
290
+ convertMarkdownToMrkdwn(text) {
291
+ if (!text)
292
+ return '';
293
+ const withHeadings = text.replace(/^(#{1,6})\s+(.+)$/gm, '**$2**');
294
+ const slackText = this.markdownToSlackFn(withHeadings);
295
+ const withBold = slackText.replace(/\*\*([^*]+)\*\*/g, '*$1*');
296
+ const withEmoji = this.convertEmojiCodes(withBold);
297
+ return withEmoji;
298
+ }
299
+ standardizeMentions(text) {
300
+ if (!text) {
301
+ return '';
302
+ }
303
+ return text
304
+ .replace(/<@?([UW][A-Z0-9]{8,})>?/g, '<@$1>')
305
+ .replace(/@([UW][A-Z0-9]{8,})\b/g, '<@$1>');
306
+ }
307
+ convertEmojiCodes(text) {
308
+ const emojiMap = {
309
+ ':dart:': '🎯',
310
+ ':white_check_mark:': '✅',
311
+ ':rocket:': '🚀',
312
+ ':bulb:': '💡',
313
+ ':wrench:': '🔧',
314
+ ':book:': '📚',
315
+ ':fire:': '🔥',
316
+ ':star:': '⭐',
317
+ ':warning:': '⚠️',
318
+ ':x:': '❌',
319
+ ':sparkles:': '✨',
320
+ ':mag:': '🔍',
321
+ ':hammer:': '🔨',
322
+ ':package:': '📦',
323
+ ':bug:': '🐛',
324
+ ':zap:': '⚡',
325
+ ':art:': '🎨',
326
+ ':lock:': '🔒',
327
+ ':key:': '🔑',
328
+ ':eyes:': '👀',
329
+ ':bust_in_silhouette:': '👤',
330
+ ':robot_face:': '🤖',
331
+ };
332
+ return text.replace(/:([a-z_]+):/g, (match, name) => {
333
+ return emojiMap[`:${name}:`] || match;
334
+ });
335
+ }
336
+ truncateForSlack(text, maxLength) {
337
+ if (!text)
338
+ return '';
339
+ if (text.length <= maxLength) {
340
+ return text;
341
+ }
342
+ const searchStart = Math.max(0, maxLength - 500);
343
+ let breakPoint = maxLength;
344
+ const lastNewline = text.lastIndexOf('\n', maxLength);
345
+ if (lastNewline > searchStart) {
346
+ breakPoint = lastNewline;
347
+ }
348
+ else {
349
+ const lastPeriod = text.lastIndexOf('. ', maxLength);
350
+ if (lastPeriod > searchStart) {
351
+ breakPoint = lastPeriod + 1;
352
+ }
353
+ }
354
+ const truncatedText = text.substring(0, breakPoint);
355
+ const estimatedTokens = Math.floor(text.length / 4);
356
+ return truncatedText + `\n\n_[Response truncated: ~${estimatedTokens.toLocaleString()} tokens. Adjust SLACK_MAX_RESPONSE_LENGTH env var if needed]_`;
357
+ }
358
+ formatError(error) {
359
+ return [
360
+ {
361
+ type: 'section',
362
+ text: {
363
+ type: 'mrkdwn',
364
+ text: `❌ *Error*\n\`\`\`${error}\`\`\``,
365
+ },
366
+ },
367
+ ];
368
+ }
369
+ formatSimpleMessage(message, emoji) {
370
+ return [
371
+ {
372
+ type: 'section',
373
+ text: {
374
+ type: 'mrkdwn',
375
+ text: `${emoji || '💬'} ${message}`,
376
+ },
377
+ },
378
+ ];
379
+ }
380
+ validateBlockCount(response, maxCharsPerSection) {
381
+ const estimatedBlocks = Math.ceil(response.length / maxCharsPerSection);
382
+ const MAX_BLOCKS = 48;
383
+ if (estimatedBlocks > MAX_BLOCKS) {
384
+ const idealSectionSize = Math.ceil(response.length / MAX_BLOCKS);
385
+ if (idealSectionSize > this.maxBlockSize) {
386
+ return this.maxBlockSize;
387
+ }
388
+ return idealSectionSize;
389
+ }
390
+ return maxCharsPerSection;
391
+ }
392
+ splitIntoSections(text, maxLength) {
393
+ if (!text || text.length <= maxLength) {
394
+ return [text];
395
+ }
396
+ const sections = [];
397
+ let currentSection = '';
398
+ const lines = text.split('\n');
399
+ for (const line of lines) {
400
+ const lineWithNewline = line + '\n';
401
+ if (currentSection.length + lineWithNewline.length > maxLength) {
402
+ if (currentSection) {
403
+ sections.push(currentSection.trimEnd());
404
+ currentSection = '';
405
+ }
406
+ if (lineWithNewline.length > maxLength) {
407
+ const splitLines = this.forceSplitLongLine(lineWithNewline, maxLength);
408
+ for (let i = 0; i < splitLines.length - 1; i++) {
409
+ const segment = splitLines[i];
410
+ if (segment) {
411
+ sections.push(segment.trimEnd());
412
+ }
413
+ }
414
+ currentSection = splitLines[splitLines.length - 1] ?? '';
415
+ }
416
+ else {
417
+ currentSection = lineWithNewline;
418
+ }
419
+ }
420
+ else {
421
+ currentSection += lineWithNewline;
422
+ }
423
+ }
424
+ if (currentSection) {
425
+ sections.push(currentSection.trimEnd());
426
+ }
427
+ return this.ensureMaxLength(sections, maxLength);
428
+ }
429
+ forceSplitLongLine(line, maxLength) {
430
+ const segments = [];
431
+ let remaining = line;
432
+ while (remaining.length > maxLength) {
433
+ let breakPoint = this.findBestBreakPoint(remaining, maxLength);
434
+ if (breakPoint <= 0) {
435
+ breakPoint = maxLength;
436
+ }
437
+ segments.push(remaining.substring(0, breakPoint));
438
+ remaining = remaining.substring(breakPoint);
439
+ if (remaining.startsWith(' ')) {
440
+ remaining = remaining.trimStart();
441
+ }
442
+ }
443
+ if (remaining) {
444
+ segments.push(remaining);
445
+ }
446
+ return segments;
447
+ }
448
+ findBestBreakPoint(text, maxLength) {
449
+ const searchStart = Math.floor(maxLength * 0.8);
450
+ const lastSpace = text.lastIndexOf(' ', maxLength);
451
+ if (lastSpace >= searchStart) {
452
+ return lastSpace + 1;
453
+ }
454
+ const punctuation = ['. ', ', ', '; ', ': ', '] ', ') ', '} '];
455
+ for (const punct of punctuation) {
456
+ const pos = text.lastIndexOf(punct, maxLength);
457
+ if (pos >= searchStart) {
458
+ return pos + punct.length;
459
+ }
460
+ }
461
+ if (lastSpace > 0) {
462
+ return lastSpace + 1;
463
+ }
464
+ return 0;
465
+ }
466
+ ensureMaxLength(sections, maxLength) {
467
+ const result = [];
468
+ for (const section of sections) {
469
+ if (section.length <= maxLength) {
470
+ result.push(section);
471
+ }
472
+ else {
473
+ const splits = this.forceSplitLongLine(section, maxLength);
474
+ result.push(...splits.map((s) => s.trimEnd()).filter((s) => s));
475
+ }
476
+ }
477
+ return result;
478
+ }
479
+ truncateAtMrkdwnLevel(text, maxLength) {
480
+ if (text.length <= maxLength) {
481
+ return text;
482
+ }
483
+ const searchStart = Math.max(0, maxLength - 500);
484
+ let breakPoint = maxLength;
485
+ const lastDoubleNewline = text.lastIndexOf('\n\n', maxLength);
486
+ if (lastDoubleNewline > searchStart) {
487
+ breakPoint = lastDoubleNewline;
488
+ }
489
+ else {
490
+ const lastNewline = text.lastIndexOf('\n', maxLength);
491
+ if (lastNewline > searchStart) {
492
+ breakPoint = lastNewline;
493
+ }
494
+ else {
495
+ const lastPeriod = text.lastIndexOf('. ', maxLength);
496
+ if (lastPeriod > searchStart) {
497
+ breakPoint = lastPeriod + 1;
498
+ }
499
+ }
500
+ }
501
+ return text.substring(0, breakPoint) + '\n\n_[Truncated due to Slack limits]_';
502
+ }
503
+ }
504
+ exports.SlackMessageFormatter = SlackMessageFormatter;
505
+ //# sourceMappingURL=message.formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.formatter.js","sourceRoot":"","sources":["../../../src/slack/formatters/message.formatter.ts"],"names":[],"mappings":"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"}