@semacode/cli 1.5.11 → 1.5.16

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 (177) hide show
  1. package/README.md +6 -1
  2. package/dist/index.js +446 -32
  3. package/package.json +23 -32
  4. package/semacode-cli-1.3.1.tgz +0 -0
  5. package/src/angular-consumer-standalone.ts +312 -0
  6. package/src/cpp-symbols.ts +82 -0
  7. package/src/docs.ts +535 -0
  8. package/src/dotnet-http.ts +355 -0
  9. package/src/drift.ts +4933 -0
  10. package/src/go-http.ts +118 -0
  11. package/src/importador.ts +3891 -0
  12. package/src/index.ts +5641 -0
  13. package/src/java-http.ts +247 -0
  14. package/src/lua-symbols.ts +114 -0
  15. package/src/php-symbols.ts +462 -0
  16. package/src/projeto.ts +862 -0
  17. package/src/python-http.ts +258 -0
  18. package/src/rust-http.ts +125 -0
  19. package/src/tipos.ts +24 -0
  20. package/src/typescript-http.ts +1076 -0
  21. package/tsconfig.json +20 -0
  22. package/AGENTS.md +0 -272
  23. package/LICENSE +0 -22
  24. package/SEMA_BRIEF.curto.txt +0 -9
  25. package/SEMA_BRIEF.md +0 -63
  26. package/SEMA_BRIEF.micro.txt +0 -7
  27. package/SEMA_INDEX.json +0 -799
  28. package/dist/angular-consumer-standalone.d.ts +0 -6
  29. package/dist/angular-consumer-standalone.js.map +0 -1
  30. package/dist/cpp-symbols.d.ts +0 -10
  31. package/dist/cpp-symbols.js.map +0 -1
  32. package/dist/docs.d.ts +0 -56
  33. package/dist/docs.js.map +0 -1
  34. package/dist/dotnet-http.d.ts +0 -23
  35. package/dist/dotnet-http.js.map +0 -1
  36. package/dist/drift.d.ts +0 -225
  37. package/dist/drift.js.map +0 -1
  38. package/dist/go-http.d.ts +0 -23
  39. package/dist/go-http.js.map +0 -1
  40. package/dist/importador.d.ts +0 -31
  41. package/dist/importador.js.map +0 -1
  42. package/dist/index.d.ts +0 -2
  43. package/dist/index.js.map +0 -1
  44. package/dist/java-http.d.ts +0 -23
  45. package/dist/java-http.js.map +0 -1
  46. package/dist/lua-symbols.d.ts +0 -10
  47. package/dist/lua-symbols.js.map +0 -1
  48. package/dist/php-symbols.d.ts +0 -24
  49. package/dist/php-symbols.js.map +0 -1
  50. package/dist/projeto.d.ts +0 -53
  51. package/dist/projeto.js.map +0 -1
  52. package/dist/python-http.d.ts +0 -23
  53. package/dist/python-http.js.map +0 -1
  54. package/dist/rust-http.d.ts +0 -23
  55. package/dist/rust-http.js.map +0 -1
  56. package/dist/tipos.d.ts +0 -3
  57. package/dist/tipos.js.map +0 -1
  58. package/dist/typescript-http.d.ts +0 -35
  59. package/dist/typescript-http.js.map +0 -1
  60. package/docs/AGENT_STARTER.md +0 -102
  61. package/docs/cli.md +0 -110
  62. package/docs/como-ensinar-a-sema-para-ia.md +0 -149
  63. package/docs/deploy.md +0 -70
  64. package/docs/documentacao.md +0 -63
  65. package/docs/env.md +0 -56
  66. package/docs/extensao-vscode.md +0 -45
  67. package/docs/fluxo-pratico-ia-sema.md +0 -177
  68. package/docs/instalacao-e-primeiro-uso.md +0 -112
  69. package/docs/integracao-com-ia.md +0 -101
  70. package/docs/mcp.md +0 -53
  71. package/docs/pagamento-ponta-a-ponta.md +0 -155
  72. package/docs/persistencia-vendor-first.md +0 -145
  73. package/docs/prompt-base-ia-sema.md +0 -104
  74. package/docs/rollback.md +0 -47
  75. package/docs/sintaxe.md +0 -244
  76. package/exemplos/agendamento.sema +0 -106
  77. package/exemplos/assinatura.sema +0 -136
  78. package/exemplos/auditoria.sema +0 -88
  79. package/exemplos/autenticacao.sema +0 -125
  80. package/exemplos/automacao.sema +0 -107
  81. package/exemplos/cadastro_usuario.sema +0 -54
  82. package/exemplos/calculadora.sema +0 -78
  83. package/exemplos/crud_simples.sema +0 -89
  84. package/exemplos/estoque.sema +0 -126
  85. package/exemplos/exportacao.sema +0 -94
  86. package/exemplos/fila.sema +0 -131
  87. package/exemplos/integracao_externa.sema +0 -94
  88. package/exemplos/multi_tenant.sema +0 -140
  89. package/exemplos/notificacao.sema +0 -98
  90. package/exemplos/operacao_estrategia.sema +0 -402
  91. package/exemplos/pagamento.sema +0 -222
  92. package/exemplos/pagamento_dominio.sema +0 -35
  93. package/exemplos/pedido.sema +0 -119
  94. package/exemplos/permissao.sema +0 -121
  95. package/exemplos/persistencia_vendor_first.sema +0 -86
  96. package/exemplos/relatorio.sema +0 -93
  97. package/exemplos/testes_embutidos.sema +0 -45
  98. package/exemplos/tratamento_erro.sema +0 -157
  99. package/exemplos/upload_arquivo.sema +0 -93
  100. package/exemplos/webhook.sema +0 -96
  101. package/llms-full.txt +0 -34
  102. package/llms.txt +0 -17
  103. package/node_modules/@sema/gerador-css/dist/index.d.ts +0 -3
  104. package/node_modules/@sema/gerador-css/dist/index.js +0 -592
  105. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  106. package/node_modules/@sema/gerador-css/package.json +0 -7
  107. package/node_modules/@sema/gerador-dart/dist/index.d.ts +0 -3
  108. package/node_modules/@sema/gerador-dart/dist/index.js +0 -44
  109. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  110. package/node_modules/@sema/gerador-dart/package.json +0 -7
  111. package/node_modules/@sema/gerador-html/dist/index.d.ts +0 -3
  112. package/node_modules/@sema/gerador-html/dist/index.js +0 -163
  113. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  114. package/node_modules/@sema/gerador-html/package.json +0 -7
  115. package/node_modules/@sema/gerador-javascript/dist/index.d.ts +0 -3
  116. package/node_modules/@sema/gerador-javascript/dist/index.js +0 -421
  117. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  118. package/node_modules/@sema/gerador-javascript/package.json +0 -7
  119. package/node_modules/@sema/gerador-lua/dist/index.d.ts +0 -3
  120. package/node_modules/@sema/gerador-lua/dist/index.js +0 -328
  121. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  122. package/node_modules/@sema/gerador-lua/package.json +0 -7
  123. package/node_modules/@sema/gerador-python/dist/index.d.ts +0 -6
  124. package/node_modules/@sema/gerador-python/dist/index.js +0 -729
  125. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  126. package/node_modules/@sema/gerador-python/package.json +0 -7
  127. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +0 -6
  128. package/node_modules/@sema/gerador-typescript/dist/index.js +0 -793
  129. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  130. package/node_modules/@sema/gerador-typescript/package.json +0 -7
  131. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +0 -123
  132. package/node_modules/@sema/nucleo/dist/ast/tipos.js +0 -2
  133. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  134. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +0 -21
  135. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +0 -12
  136. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  137. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +0 -9
  138. package/node_modules/@sema/nucleo/dist/formatador/index.js +0 -460
  139. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  140. package/node_modules/@sema/nucleo/dist/index.d.ts +0 -35
  141. package/node_modules/@sema/nucleo/dist/index.js +0 -96
  142. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  143. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +0 -5
  144. package/node_modules/@sema/nucleo/dist/ir/conversor.js +0 -883
  145. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  146. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +0 -345
  147. package/node_modules/@sema/nucleo/dist/ir/modelos.js +0 -2
  148. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  149. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +0 -7
  150. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +0 -122
  151. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  152. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +0 -8
  153. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -61
  154. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  155. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +0 -9
  156. package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -771
  157. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  158. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +0 -39
  159. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +0 -294
  160. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  161. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +0 -57
  162. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +0 -1617
  163. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  164. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +0 -104
  165. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +0 -445
  166. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  167. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +0 -91
  168. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +0 -258
  169. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  170. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +0 -2
  171. package/node_modules/@sema/nucleo/dist/util/arquivos.js +0 -25
  172. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  173. package/node_modules/@sema/nucleo/package.json +0 -7
  174. package/node_modules/@sema/padroes/dist/index.d.ts +0 -25
  175. package/node_modules/@sema/padroes/dist/index.js +0 -316
  176. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
  177. package/node_modules/@sema/padroes/package.json +0 -7
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversor.js","sourceRoot":"","sources":["../../src/ir/conversor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,EACjC,2BAA2B,EAC3B,kCAAkC,EAClC,kCAAkC,EAClC,qBAAqB,EACrB,oCAAoC,EACpC,qCAAqC,EACrC,2BAA2B,EAC3B,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAkCzI,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,IAAI;IACJ,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,KAAuB,EAAE,YAAoB;IACtE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AACrJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAmC,EAAE,GAAG,KAAe;IAC7E,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI;SACR,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAiB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAE,CAAC;QACjC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,mBAAmB,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,oBAAoB,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,mBAAmB,KAAK,CAAC,IAAI,oBAAoB,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACnG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,aAAuB;IAC9D,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,yBAAyB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEhI,IAAI,QAAQ,GAAG,YAAY,CAAC;IAC5B,IAAI,aAAa,GAA6B,UAAU,CAAC;IACzD,IAAI,iBAAiB,GAAa,EAAE,CAAC;IACrC,IAAI,QAA4B,CAAC;IACjC,IAAI,SAA6B,CAAC;IAClC,IAAI,SAA6B,CAAC;IAClC,IAAI,QAAQ,GAAG,sBAAsB,CAAC;IAEtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,IAAI,CAAC;QAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,IAAI,CAAC;QAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,aAAa,GAAG,OAAO,CAAC;QACxB,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvD,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC9C,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,aAAa,GAAG,OAAO,CAAC;QACxB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,aAAa,GAAG,MAAM,CAAC;QACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/E,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,yBAAyB;QACxC,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,iBAAiB;QACjB,QAAQ;QACR,SAAS;QACT,SAAS;QACT,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAwB;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC;aACtF,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY;YAC5C,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;SACnC,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB;IAC5C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACvD,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmC,EAAE,IAAY;IAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAuB;IAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IACzF,IAAI,SAAS,IAAI,0BAA0B,CAAC,GAAG,CAAC,SAAoC,CAAC,EAAE,CAAC;QACtF,OAAO,SAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oCAAoC,CAC3C,gBAAsE;IAEtE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAyB;IAC7D,MAAM,YAAY,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY;QAClC,YAAY;QACZ,MAAM,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzE,UAAU,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjF,KAAK,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvE,WAAW,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;eAClH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,UAAU,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;eAChH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1E,gBAAgB,EAAE,qCAAqC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;eAChI,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACjF,UAAU,EAAE,oCAAoC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;eACnH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,IAAI;QACJ,SAAS;QACT,QAAQ,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7E,GAAG,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,SAAS,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/E,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,EAAE,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1G,YAAY,EAAE,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC;QAChE,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5D,QAAQ,EAAE,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC;QACxD,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5D,WAAW,EAAE,yBAAyB,CAAC,OAAO,EAAE,aAAa,CAAC;QAC9D,KAAK,EAAE,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpD,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;QAC9B,eAAe,EAAE,oCAAoC,CAAC,iCAAiC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC5H,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA0B;IACnD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU;QACjC,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjG,MAAM,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1E,QAAQ,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9E,WAAW,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;eACnH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,UAAU,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;eACjH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3E,gBAAgB,EAAE,qCAAqC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;eACjI,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAClF,UAAU,EAAE,oCAAoC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;eACpH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3G,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5E,YAAY,EAAE,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC;QACjE,UAAU,EAAE,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC;QACzD,UAAU,EAAE,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,WAAW,EAAE,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/D,KAAK,EAAE,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnD,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrD,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC;QAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM;aACvB,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;aAC7E,GAAG,CAAC,4BAA4B,CAAC;aACjC,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAwB;IACvD,MAAM,cAAc,GAA0B,EAAE,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClE,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAChF,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK;YACL,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrD,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrD,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnG,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACxJ,eAAe,EAAE,gBAAyB;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,IAAI,IAAI,cAAc;YAC5B,KAAK;YACL,eAAe,EAAE,gBAAyB;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;SAC3B,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC;SAC1E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;QAC9F,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY;QACrC,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAClG,UAAU,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjH,eAAe,EAAE,gBAAyB;KAC3C,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/E,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAEpG,OAAO;QACL,YAAY,EAAE,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,MAAM;QACtE,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,QAAQ;QACzE,KAAK,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,QAAQ;QACrE,WAAW,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,SAAS;QAClF,sBAAsB,EAAE,CACtB,sBAAsB,KAAK,OAAO;eAC/B,sBAAsB,KAAK,MAAM;eACjC,sBAAsB,KAAK,SAAS,CACxC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO;QACpC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAwB;IAClD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAwB,EAAE,QAA8B;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,KAAK,CAAC,IAAI;YAClB,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,MAAM;YACN,QAAQ,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,qBAAqB,MAAM,IAAI;YACrG,SAAS,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpE,gBAAgB,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAClF,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC3E,aAAa,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,KAAK,YAAY;YAC9F,iBAAiB,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,KAAK,YAAY;SACvG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,SAAgC,SAAS;IACxF,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACrG,IACE,MAAM,KAAK,SAAS;WACjB,MAAM,KAAK,SAAS;WACpB,MAAM,KAAK,cAAc;WACzB,MAAM,KAAK,QAAQ;WACnB,MAAM,KAAK,WAAW,EACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,SAAS,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,OAAiB;IACxC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CAAC,MAatB;IACC,MAAM,iBAAiB,GAAG,eAAe,CAAC;QACxC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9F,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACvD,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,eAAe,CACvC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAC7E,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,cAAc,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC;QAC/G,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,sBAAsB,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAChH,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,iBAAiB;QACjB,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/E,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAgB;IACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CACnB,GAA8B;IAE9B,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAuB,EAAE,UAAmB;IACxE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IACE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS;WAClB,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC;WACrC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,EAClJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAsB,EACtB,UAA4B;IAE5B,MAAM,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;SACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,qBAAqB,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,aAAa,CAAC;QACjC,KAAK;QACL,MAAM;QACN,OAAO,EAAE,OAAO;QAChB,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,iBAAiB,EAAE,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;KAC1G,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI;QAC7B,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,KAAK;QACL,MAAM;QACN,OAAO;QACP,sBAAsB,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtF,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,qBAAqB;QACrB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,YAA2B,EAAE,QAA4B;IAC1G,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEpI,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;QAChF,WAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAe,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,WAAW,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACvE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,iBAAiB,GAAG,QAAQ,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAE,CAAC;IACnE,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;aACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,aAAa,CAAC;YACjC,KAAK;YACL,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC9D,kBAAkB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;iBAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClE,mBAAmB,EAAE,OAAO;YAC5B,sBAAsB,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YACxE,qBAAqB,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;iBACnD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvF,eAAe;YACf,qBAAqB;YACrB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;gBAC1H,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACxD,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;qBACpF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC,SAAS;YACb,YAAY;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA8B,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SAChI,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;iBAClC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;iBAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChG,mBAAmB,EAAE,OAAO;YAC5B,QAAQ;YACR,qBAAqB;YACrB,YAAY,EAAE,aAAa,CAAC;gBAC1B,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,OAAO;gBAChB,QAAQ;aACT,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;QAC1E,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACtF,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;QACjG,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3C,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACvE,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1E,qBAAqB,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5D,wBAAwB,EAAE,EAAE;QAC5B,YAAY,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;SACtB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,gBAAgB,EAAE,EAAE;SACrB;KACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAE,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,qBAAqB,GAAG,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,MAAM,sBAAsB,GAAG,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAChH,MAAM,yBAAyB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aAC3F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC5D,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,IAAI,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAA8D,EAAE,EAAE,CAAC,CAAC;gBAC5H,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,KAAK,CAAC,IAAI;gBACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,UAAmB;gBAClC,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACb,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAA8D,EAAE,EAAE,CAAC,CAAC;gBAC9H,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,KAAK,CAAC,IAAI;gBACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,UAAmB;gBAClC,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACb,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC,eAAe,EAAE,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAA0C,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAuB,EAAE,EAAE,CAC9M,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,MAAM,wBAAwB,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,eAAe,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE;YAC9H,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAY;YAC9B,GAAG,KAAK;YACR,YAAY,EAAE,qBAAqB;YACnC,aAAa,EAAE,sBAAsB;YACrC,aAAa,EAAE,uBAAuB;YACtC,eAAe,EAAE,yBAAyB;YAC1C,wBAAwB;YACxB,YAAY,EAAE,aAAa,CAAC;gBAC1B,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,EAAE;aACpE,CAAC;YACF,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,uBAAuB;gBAC/B,OAAO,EAAE,yBAAyB;gBAClC,gBAAgB,EAAE,wBAAwB;gBAC1C,iBAAiB,EAAE,OAAO;gBAC1B,cAAc,EAAE,OAAO;gBACvB,oBAAoB,EAAE,EAAE;aACzB;SACF,CAAC;QAEF,cAAc,CAAC,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACpF,cAAc,CAAC,OAAO,CAAC,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7E,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAmB;QAClC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACtE,CAAC;IAEF,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;QAChF,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,WAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,UAAU,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE1D,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACvC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACpD,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;YACnD,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;SAC3D;QACD,QAAQ,EAAE;YACR,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5C,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC5D;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,MAAM;YACtC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAChF,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM;SAC/B,CAAC,CAAC;QACH,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI;aACjG,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5C,qBAAqB,EAAE,YAAY;QACnC,KAAK;QACL,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,KAAK;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,MAAM;QACN,SAAS;QACT,YAAY,EAAE;YACZ,GAAG,kBAAkB;YACrB,mBAAmB,EAAE,eAAe,CAAC;gBACnC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjF,GAAG,WAAW;qBACX,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,qBAAqB,KAAK,SAAS,CAAC;qBACtE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;aAChE,CAAC;SACH;QACD,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -1,345 +0,0 @@
1
- import type { Diagnostico } from "../diagnosticos/index.js";
2
- import type { ContratoErroRouteSemantico, EfeitoSemantico, EtapaFlowSemantica, ExpressaoSemantica, TransicaoEstadoSemantica } from "../semantico/estruturas.js";
3
- import type { CompatibilidadePersistencia, ConsistenciaPersistencia, DurabilidadePersistencia, EngineBanco, ModeloConsultaPersistencia, ModeloTransacaoPersistencia, StatusCompatibilidadePersistencia, TipoRecursoPersistencia } from "../persistencia/contratos.js";
4
- import type { ClassificacaoDadoSemantico, ModoAuthSemantico, MotivoAuditSemantico, OrigemAuthSemantica, PrincipalAuthSemantico, RedacaoLogSemantica, TenantAuthzSemantico } from "../semantico/seguranca.js";
5
- export type PerfilCompatibilidade = "publico" | "interno" | "experimental" | "legado" | "deprecado";
6
- export type StatusResolucaoSemantica = "nao_verificado" | "resolvido" | "parcial" | "inferido" | "quebrado" | "nao_encontrado";
7
- export type NivelConfiancaSemantica = "alta" | "media" | "baixa";
8
- export type NivelRiscoSemantico = "baixo" | "medio" | "alto";
9
- export type TipoSuperficieIr = "worker" | "evento" | "fila" | "cron" | "webhook" | "cache" | "storage" | "policy";
10
- export interface IrCampo {
11
- nome: string;
12
- tipo: string;
13
- modificadores: string[];
14
- tipoOriginal: string;
15
- tipoBase: string;
16
- cardinalidade: "unitario" | "lista" | "mapa" | "uniao";
17
- opcional: boolean;
18
- tiposAlternativos: string[];
19
- tipoItem?: string;
20
- chaveMapa?: string;
21
- valorMapa?: string;
22
- refinamentos: string[];
23
- }
24
- export interface IrImplementacaoTask {
25
- origem: "ts" | "py" | "dart" | "lua" | "php" | "cs" | "java" | "go" | "rust" | "cpp";
26
- caminho: string;
27
- origemArquivo?: string;
28
- origemSimbolo?: string;
29
- resolucaoImpl?: string;
30
- statusImpl?: StatusResolucaoSemantica;
31
- }
32
- export interface IrVinculo {
33
- tipo: string;
34
- valor: string;
35
- arquivo?: string;
36
- simbolo?: string;
37
- recurso?: string;
38
- superficie?: string;
39
- statusResolucao?: StatusResolucaoSemantica;
40
- confianca?: NivelConfiancaSemantica;
41
- }
42
- export interface IrExecucao {
43
- idempotencia: boolean;
44
- timeout: string;
45
- retry: string;
46
- compensacao: string;
47
- criticidadeOperacional: "baixa" | "media" | "alta" | "critica";
48
- explicita: boolean;
49
- }
50
- export interface IrAuth {
51
- explicita: boolean;
52
- modo?: ModoAuthSemantico | string;
53
- estrategia?: string;
54
- principal?: PrincipalAuthSemantico | string;
55
- origem?: OrigemAuthSemantica | string;
56
- }
57
- export interface IrAuthz {
58
- explicita: boolean;
59
- papeis: string[];
60
- escopos: string[];
61
- politica?: string;
62
- tenant?: TenantAuthzSemantico | string;
63
- }
64
- export interface IrCampoDadoClassificado {
65
- origem: string;
66
- campo: string;
67
- classificacao: ClassificacaoDadoSemantico | string;
68
- }
69
- export interface IrDados {
70
- explicita: boolean;
71
- classificacaoPadrao?: ClassificacaoDadoSemantico | string;
72
- redacaoLog?: RedacaoLogSemantica | string;
73
- retencao?: string;
74
- campos: IrCampoDadoClassificado[];
75
- }
76
- export interface IrAudit {
77
- explicita: boolean;
78
- evento?: string;
79
- ator?: string;
80
- correlacao?: string;
81
- retencao?: string;
82
- motivo?: MotivoAuditSemantico | string;
83
- }
84
- export interface IrSegredo {
85
- nome: string;
86
- origem?: string;
87
- escopo?: string;
88
- acesso?: string;
89
- rotacao?: string;
90
- naoLogar?: boolean;
91
- naoRetornar?: boolean;
92
- mascarar?: boolean;
93
- }
94
- export interface IrSegredos {
95
- explicita: boolean;
96
- itens: IrSegredo[];
97
- }
98
- export interface IrForbidden {
99
- explicita: boolean;
100
- regras: string[];
101
- }
102
- export interface IrBlocoDeclarativo {
103
- campos: IrCampo[];
104
- linhas: string[];
105
- blocos: IrBlocoDeclarativoAninhado[];
106
- }
107
- export interface IrBlocoDeclarativoAninhado {
108
- nome: string;
109
- conteudo: IrBlocoDeclarativo;
110
- }
111
- export interface IrCasoTeste {
112
- nome: string;
113
- given: IrBlocoDeclarativo;
114
- when?: IrBlocoDeclarativo;
115
- expect: IrBlocoDeclarativo;
116
- error?: IrBlocoDeclarativo;
117
- }
118
- export interface IrResumoAgente {
119
- riscos: string[];
120
- checks: string[];
121
- entidadesAfetadas: string[];
122
- superficiesPublicas: string[];
123
- mutacoesPrevistas: string[];
124
- }
125
- export interface IrType {
126
- nome: string;
127
- definicao: IrBlocoDeclarativo;
128
- invariantes: ExpressaoSemantica[];
129
- }
130
- export interface IrEntity {
131
- nome: string;
132
- campos: IrCampo[];
133
- invariantes: ExpressaoSemantica[];
134
- }
135
- export interface IrEnum {
136
- nome: string;
137
- valores: string[];
138
- }
139
- export interface IrUse {
140
- origem: "sema" | "ts" | "py" | "dart" | "lua" | "php" | "cs" | "java" | "go" | "rust" | "cpp";
141
- caminho: string;
142
- externo: boolean;
143
- }
144
- export interface IrInteropExterno {
145
- origem: "ts" | "py" | "dart" | "lua" | "php" | "cs" | "java" | "go" | "rust" | "cpp";
146
- caminho: string;
147
- }
148
- export interface IrErroOperacional {
149
- codigo: string;
150
- mensagem: string;
151
- categoria?: string;
152
- recuperabilidade?: string;
153
- acaoChamador?: string;
154
- impactaEstado?: boolean;
155
- requerCompensacao?: boolean;
156
- origemTask?: string;
157
- }
158
- export interface IrTask {
159
- nome: string;
160
- input: IrCampo[];
161
- output: IrCampo[];
162
- rules: string[];
163
- regrasEstruturadas: ExpressaoSemantica[];
164
- effects: string[];
165
- efeitosEstruturados: EfeitoSemantico[];
166
- implementacoesExternas: IrImplementacaoTask[];
167
- vinculos: IrVinculo[];
168
- execucao: IrExecucao;
169
- auth: IrAuth;
170
- authz: IrAuthz;
171
- dados: IrDados;
172
- audit: IrAudit;
173
- segredos: IrSegredos;
174
- forbidden: IrForbidden;
175
- guarantees: string[];
176
- garantiasEstruturadas: ExpressaoSemantica[];
177
- errors: Record<string, string>;
178
- errosDetalhados: IrErroOperacional[];
179
- perfilCompatibilidade: PerfilCompatibilidade;
180
- stateContract?: IrTaskStateContract;
181
- resumoAgente: IrResumoAgente;
182
- tests: IrCasoTeste[];
183
- }
184
- export interface IrErroPublico extends IrErroOperacional {
185
- nome: string;
186
- }
187
- export interface IrRoutePublica {
188
- metodo?: string;
189
- caminho?: string;
190
- task?: string;
191
- input: IrCampo[];
192
- output: IrCampo[];
193
- errors: IrErroPublico[];
194
- effects: EfeitoSemantico[];
195
- garantiasMinimas: string[];
196
- confiancaContrato?: NivelConfiancaSemantica;
197
- riscoRegressao?: NivelRiscoSemantico;
198
- divergenciasPublicas?: string[];
199
- }
200
- export interface IrTaskStateContract {
201
- nomeEstado?: string;
202
- campos: IrCampo[];
203
- linhas: string[];
204
- transicoes: TransicaoEstadoSemantica[];
205
- }
206
- export interface IrFlow {
207
- nome: string;
208
- campos: IrCampo[];
209
- linhas: string[];
210
- tasksReferenciadas: string[];
211
- etapasEstruturadas: EtapaFlowSemantica[];
212
- effects: string[];
213
- efeitosEstruturados: EfeitoSemantico[];
214
- vinculos: IrVinculo[];
215
- perfilCompatibilidade: PerfilCompatibilidade;
216
- resumoAgente: IrResumoAgente;
217
- }
218
- export interface IrRoute {
219
- nome: string;
220
- campos: IrCampo[];
221
- linhas: string[];
222
- metodo?: string;
223
- caminho?: string;
224
- task?: string;
225
- inputPublico: IrCampo[];
226
- outputPublico: IrCampo[];
227
- errosPublicos: ContratoErroRouteSemantico[];
228
- efeitosPublicos: EfeitoSemantico[];
229
- vinculos: IrVinculo[];
230
- auth: IrAuth;
231
- authz: IrAuthz;
232
- dados: IrDados;
233
- audit: IrAudit;
234
- segredos: IrSegredos;
235
- forbidden: IrForbidden;
236
- perfilCompatibilidade: PerfilCompatibilidade;
237
- garantiasPublicasMinimas: string[];
238
- resumoAgente: IrResumoAgente;
239
- publico: IrRoutePublica;
240
- }
241
- export interface IrSuperficie {
242
- tipo: TipoSuperficieIr;
243
- nome: string;
244
- campos: IrCampo[];
245
- linhas: string[];
246
- task?: string;
247
- input: IrCampo[];
248
- output: IrCampo[];
249
- effects: EfeitoSemantico[];
250
- implementacoesExternas: IrImplementacaoTask[];
251
- vinculos: IrVinculo[];
252
- execucao: IrExecucao;
253
- auth: IrAuth;
254
- authz: IrAuthz;
255
- dados: IrDados;
256
- audit: IrAudit;
257
- segredos: IrSegredos;
258
- forbidden: IrForbidden;
259
- perfilCompatibilidade: PerfilCompatibilidade;
260
- resumoAgente: IrResumoAgente;
261
- }
262
- export interface IrState {
263
- nome?: string;
264
- campos: IrCampo[];
265
- linhas: string[];
266
- invariantes: ExpressaoSemantica[];
267
- transicoes: TransicaoEstadoSemantica[];
268
- }
269
- export interface IrCompatibilidadePersistencia extends CompatibilidadePersistencia {
270
- engine: EngineBanco;
271
- status: StatusCompatibilidadePersistencia;
272
- }
273
- export interface IrRecursoPersistencia {
274
- nome: string;
275
- resourceKind: TipoRecursoPersistencia;
276
- entity?: string;
277
- collection?: string;
278
- table?: string;
279
- consistency?: ConsistenciaPersistencia | string;
280
- durability?: DurabilidadePersistencia | string;
281
- transactionModel?: ModeloTransacaoPersistencia | string;
282
- queryModel?: ModeloConsultaPersistencia | string;
283
- mode?: string;
284
- isolation?: string;
285
- strategy?: string;
286
- ttl?: string;
287
- retention?: string;
288
- path?: string;
289
- from?: string;
290
- to?: string;
291
- surface?: string;
292
- adapter?: string;
293
- portavel?: boolean;
294
- capabilities: string[];
295
- operations: string[];
296
- indexing: string[];
297
- guarantees: string[];
298
- diagnostics: string[];
299
- risks: string[];
300
- fields: IrCampo[];
301
- lines: string[];
302
- block: IrBlocoDeclarativo;
303
- compatibilidade: IrCompatibilidadePersistencia[];
304
- }
305
- export interface IrBancoDados {
306
- nome: string;
307
- engine?: EngineBanco;
308
- schema?: string;
309
- database?: string;
310
- consistency?: ConsistenciaPersistencia | string;
311
- durability?: DurabilidadePersistencia | string;
312
- transactionModel?: ModeloTransacaoPersistencia | string;
313
- queryModel?: ModeloConsultaPersistencia | string;
314
- portavel?: boolean;
315
- adapter?: string;
316
- capabilities: string[];
317
- operations: string[];
318
- indexing: string[];
319
- guarantees: string[];
320
- diagnostics: string[];
321
- risks: string[];
322
- fields: IrCampo[];
323
- lines: string[];
324
- block: IrBlocoDeclarativo;
325
- resources: IrRecursoPersistencia[];
326
- }
327
- export interface IrModulo {
328
- nome: string;
329
- uses: string[];
330
- imports: IrUse[];
331
- interoperabilidades: IrInteropExterno[];
332
- vinculos: IrVinculo[];
333
- perfilCompatibilidade: PerfilCompatibilidade;
334
- types: IrType[];
335
- entities: IrEntity[];
336
- enums: IrEnum[];
337
- tasks: IrTask[];
338
- flows: IrFlow[];
339
- routes: IrRoute[];
340
- superficies: IrSuperficie[];
341
- states: IrState[];
342
- databases: IrBancoDados[];
343
- resumoAgente: IrResumoAgente;
344
- diagnosticos: Diagnostico[];
345
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=modelos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modelos.js","sourceRoot":"","sources":["../../src/ir/modelos.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { type Diagnostico } from "../diagnosticos/index.js";
2
- import { type Token } from "./tokens.js";
3
- export interface ResultadoLexer {
4
- tokens: Token[];
5
- diagnosticos: Diagnostico[];
6
- }
7
- export declare function tokenizar(codigo: string, arquivo?: string): ResultadoLexer;
@@ -1,122 +0,0 @@
1
- import { criarDiagnostico } from "../diagnosticos/index.js";
2
- import { PALAVRAS_CHAVE } from "./tokens.js";
3
- function avancar(posicao, caractere) {
4
- if (caractere === "\n") {
5
- return { indice: posicao.indice + 1, linha: posicao.linha + 1, coluna: 1 };
6
- }
7
- return { indice: posicao.indice + 1, linha: posicao.linha, coluna: posicao.coluna + 1 };
8
- }
9
- function criarToken(tipo, valor, inicio, fim, arquivo) {
10
- return {
11
- tipo,
12
- valor,
13
- intervalo: { inicio, fim, arquivo },
14
- };
15
- }
16
- export function tokenizar(codigo, arquivo) {
17
- const tokens = [];
18
- const diagnosticos = [];
19
- let posicao = { indice: 0, linha: 1, coluna: 1 };
20
- while (posicao.indice < codigo.length) {
21
- const inicio = { ...posicao };
22
- const atual = codigo[posicao.indice];
23
- if (atual === " " || atual === "\t" || atual === "\r") {
24
- posicao = avancar(posicao, atual);
25
- continue;
26
- }
27
- if (atual === "\n") {
28
- posicao = avancar(posicao, atual);
29
- tokens.push(criarToken("nova_linha", "\n", inicio, { ...posicao }, arquivo));
30
- continue;
31
- }
32
- if (atual === "/" && codigo[posicao.indice + 1] === "/") {
33
- let texto = "";
34
- let cursor = { ...posicao };
35
- while (cursor.indice < codigo.length && codigo[cursor.indice] !== "\n") {
36
- texto += codigo[cursor.indice];
37
- cursor = avancar(cursor, codigo[cursor.indice]);
38
- }
39
- tokens.push(criarToken("comentario", texto, inicio, cursor, arquivo));
40
- posicao = cursor;
41
- continue;
42
- }
43
- if (atual === "\"") {
44
- let texto = "";
45
- let cursor = avancar(posicao, atual);
46
- let fechado = false;
47
- while (cursor.indice < codigo.length) {
48
- const caractere = codigo[cursor.indice];
49
- if (caractere === "\\") {
50
- const proximo = codigo[cursor.indice + 1];
51
- if (proximo) {
52
- texto += caractere + proximo;
53
- cursor = avancar(avancar(cursor, caractere), proximo);
54
- continue;
55
- }
56
- }
57
- if (caractere === "\"") {
58
- fechado = true;
59
- cursor = avancar(cursor, caractere);
60
- break;
61
- }
62
- texto += caractere;
63
- cursor = avancar(cursor, caractere);
64
- }
65
- if (!fechado) {
66
- diagnosticos.push(criarDiagnostico("LEX001", "Texto nao foi fechado com aspas.", "erro", { inicio, fim: cursor, arquivo }, "Feche a string com aspas duplas."));
67
- posicao = cursor;
68
- continue;
69
- }
70
- tokens.push(criarToken("texto", texto, inicio, cursor, arquivo));
71
- posicao = cursor;
72
- continue;
73
- }
74
- if (/[0-9]/.test(atual)) {
75
- let texto = "";
76
- let cursor = { ...posicao };
77
- while (cursor.indice < codigo.length && /[0-9.]/.test(codigo[cursor.indice])) {
78
- texto += codigo[cursor.indice];
79
- cursor = avancar(cursor, codigo[cursor.indice]);
80
- }
81
- tokens.push(criarToken("numero", texto, inicio, cursor, arquivo));
82
- posicao = cursor;
83
- continue;
84
- }
85
- if (/[A-Za-z_]/.test(atual)) {
86
- let texto = "";
87
- let cursor = { ...posicao };
88
- while (cursor.indice < codigo.length && /[A-Za-z0-9_.-]/.test(codigo[cursor.indice])) {
89
- texto += codigo[cursor.indice];
90
- cursor = avancar(cursor, codigo[cursor.indice]);
91
- }
92
- const tipo = PALAVRAS_CHAVE.has(texto) ? "palavra_chave" : "identificador";
93
- tokens.push(criarToken(tipo, texto, inicio, cursor, arquivo));
94
- posicao = cursor;
95
- continue;
96
- }
97
- const doisCaracteres = codigo.slice(posicao.indice, posicao.indice + 2);
98
- if (["==", "!=", ">=", "<=", "->"].includes(doisCaracteres)) {
99
- const cursor = avancar(avancar(posicao, doisCaracteres[0]), doisCaracteres[1]);
100
- tokens.push(criarToken("operador", doisCaracteres, inicio, cursor, arquivo));
101
- posicao = cursor;
102
- continue;
103
- }
104
- if ("{}[]():,.".includes(atual)) {
105
- const cursor = avancar(posicao, atual);
106
- tokens.push(criarToken("pontuacao", atual, inicio, cursor, arquivo));
107
- posicao = cursor;
108
- continue;
109
- }
110
- if ("=><+-*/|?".includes(atual)) {
111
- const cursor = avancar(posicao, atual);
112
- tokens.push(criarToken("operador", atual, inicio, cursor, arquivo));
113
- posicao = cursor;
114
- continue;
115
- }
116
- diagnosticos.push(criarDiagnostico("LEX002", `Caractere inesperado encontrado: "${atual}".`, "erro", { inicio, fim: avancar(posicao, atual), arquivo }, "Remova o caractere ou adicione suporte no lexer."));
117
- posicao = avancar(posicao, atual);
118
- }
119
- tokens.push(criarToken("fim_arquivo", "", { ...posicao }, { ...posicao }, arquivo));
120
- return { tokens, diagnosticos };
121
- }
122
- //# sourceMappingURL=lexer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAuC,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAC;AAOzE,SAAS,OAAO,CAAC,OAAqB,EAAE,SAAiB;IACvD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,UAAU,CAAC,IAAe,EAAE,KAAa,EAAE,MAAoB,EAAE,GAAiB,EAAE,OAAgB;IAC3G,OAAO;QACL,IAAI;QACJ,KAAK;QACL,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,OAAgB;IACxD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAE/D,OAAO,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;QAEtC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACtE,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;gBACzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC1C,IAAI,OAAO,EAAE,CAAC;wBACZ,KAAK,IAAI,SAAS,GAAG,OAAO,CAAC;wBAC7B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;wBACtD,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBACpC,MAAM;gBACR,CAAC;gBACD,KAAK,IAAI,SAAS,CAAC;gBACnB,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,YAAY,CAAC,IAAI,CACf,gBAAgB,CACd,QAAQ,EACR,kCAAkC,EAClC,MAAM,EACN,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,kCAAkC,CACnC,CACF,CAAC;gBACF,OAAO,GAAG,MAAM,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACjE,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC;gBAC9E,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC;gBACtF,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,IAAI,GAAc,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAAE,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CACf,gBAAgB,CACd,QAAQ,EACR,qCAAqC,KAAK,IAAI,EAC9C,MAAM,EACN,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,EACjD,kDAAkD,CACnD,CACF,CAAC;QACF,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,IAAI,CACT,UAAU,CACR,aAAa,EACb,EAAE,EACF,EAAE,GAAG,OAAO,EAAE,EACd,EAAE,GAAG,OAAO,EAAE,EACd,OAAO,CACR,CACF,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAClC,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { IntervaloFonte } from "../diagnosticos/index.js";
2
- export type TipoToken = "palavra_chave" | "identificador" | "texto" | "numero" | "pontuacao" | "operador" | "nova_linha" | "comentario" | "fim_arquivo";
3
- export interface Token {
4
- tipo: TipoToken;
5
- valor: string;
6
- intervalo: IntervaloFonte;
7
- }
8
- export declare const PALAVRAS_CHAVE: Set<string>;
@@ -1,61 +0,0 @@
1
- export const PALAVRAS_CHAVE = new Set([
2
- "module",
3
- "use",
4
- "database",
5
- "type",
6
- "entity",
7
- "enum",
8
- "task",
9
- "worker",
10
- "evento",
11
- "fila",
12
- "cron",
13
- "webhook",
14
- "cache",
15
- "storage",
16
- "policy",
17
- "input",
18
- "output",
19
- "rules",
20
- "effects",
21
- "impl",
22
- "vinculos",
23
- "execucao",
24
- "auth",
25
- "authz",
26
- "dados",
27
- "audit",
28
- "segredos",
29
- "forbidden",
30
- "guarantees",
31
- "state",
32
- "flow",
33
- "route",
34
- "tests",
35
- "error",
36
- "docs",
37
- "comments",
38
- "table",
39
- "view",
40
- "query",
41
- "transaction",
42
- "index",
43
- "constraint",
44
- "relationship",
45
- "collection",
46
- "document",
47
- "keyspace",
48
- "stream",
49
- "lock",
50
- "retention",
51
- "replication",
52
- "fields",
53
- "invariants",
54
- "transitions",
55
- "given",
56
- "when",
57
- "expect",
58
- "caso",
59
- "required",
60
- ]);
61
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/lexer/tokens.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACpC,QAAQ;IACR,KAAK;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,WAAW;IACX,YAAY;IACZ,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,aAAa;IACb,OAAO;IACP,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,MAAM;IACN,WAAW;IACX,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,UAAU;CACX,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { type Diagnostico } from "../diagnosticos/index.js";
2
- import type { ModuloAst } from "../ast/tipos.js";
3
- import type { Token } from "../lexer/tokens.js";
4
- interface ResultadoParser {
5
- modulo?: ModuloAst;
6
- diagnosticos: Diagnostico[];
7
- }
8
- export declare function parsear(tokens: Token[]): ResultadoParser;
9
- export {};