@designliquido/delegua 0.0.1 → 0.1.2

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 (153) hide show
  1. package/README.md +14 -7
  2. package/bin/delegua.cmd +1 -0
  3. package/bin/package.json +51 -0
  4. package/index.js +25 -12
  5. package/index.js.map +1 -0
  6. package/package.json +51 -37
  7. package/src/ambiente.js +49 -0
  8. package/src/ambiente.js.map +1 -0
  9. package/src/avaliador-sintatico/dialetos/egua-classico.js +635 -0
  10. package/src/avaliador-sintatico/dialetos/egua-classico.js.map +1 -0
  11. package/src/avaliador-sintatico/dialetos/index.js +14 -0
  12. package/src/avaliador-sintatico/dialetos/index.js.map +1 -0
  13. package/src/avaliador-sintatico/index.js +635 -0
  14. package/src/avaliador-sintatico/index.js.map +1 -0
  15. package/src/avaliador-sintatico/parser-error.js +27 -0
  16. package/src/avaliador-sintatico/parser-error.js.map +1 -0
  17. package/src/bibliotecas/bibliotecaGlobal.js +97 -0
  18. package/src/bibliotecas/bibliotecaGlobal.js.map +1 -0
  19. package/src/bibliotecas/importarBiblioteca.js +32 -0
  20. package/src/bibliotecas/importarBiblioteca.js.map +1 -0
  21. package/src/construtos/assign-subscript.js +35 -0
  22. package/src/construtos/assign-subscript.js.map +1 -0
  23. package/src/construtos/atribuir.js +34 -0
  24. package/src/construtos/atribuir.js.map +1 -0
  25. package/src/construtos/binario.js +35 -0
  26. package/src/construtos/binario.js.map +1 -0
  27. package/src/construtos/call.js +35 -0
  28. package/src/construtos/call.js.map +1 -0
  29. package/src/construtos/conjunto.js +35 -0
  30. package/src/construtos/conjunto.js.map +1 -0
  31. package/src/construtos/dicionario.js +34 -0
  32. package/src/construtos/dicionario.js.map +1 -0
  33. package/src/construtos/expr.js +11 -0
  34. package/src/construtos/expr.js.map +1 -0
  35. package/src/construtos/funcao.js +34 -0
  36. package/src/construtos/funcao.js.map +1 -0
  37. package/src/construtos/get.js +34 -0
  38. package/src/construtos/get.js.map +1 -0
  39. package/src/construtos/grouping.js +33 -0
  40. package/src/construtos/grouping.js.map +1 -0
  41. package/src/construtos/index.js +31 -0
  42. package/src/construtos/index.js.map +1 -0
  43. package/src/construtos/isto.js +33 -0
  44. package/src/construtos/isto.js.map +1 -0
  45. package/src/construtos/literal.js +33 -0
  46. package/src/construtos/literal.js.map +1 -0
  47. package/src/construtos/logical.js +35 -0
  48. package/src/construtos/logical.js.map +1 -0
  49. package/src/construtos/subscript.js +35 -0
  50. package/src/construtos/subscript.js.map +1 -0
  51. package/src/construtos/super.js +34 -0
  52. package/src/construtos/super.js.map +1 -0
  53. package/src/construtos/unario.js +34 -0
  54. package/src/construtos/unario.js.map +1 -0
  55. package/src/construtos/variavel.js +33 -0
  56. package/src/construtos/variavel.js.map +1 -0
  57. package/src/construtos/vetor.js +33 -0
  58. package/src/construtos/vetor.js.map +1 -0
  59. package/src/declaracoes/index.js +249 -0
  60. package/src/declaracoes/index.js.map +1 -0
  61. package/src/delegua.js +132 -0
  62. package/src/delegua.js.map +1 -0
  63. package/src/estruturas/callable.js +16 -0
  64. package/src/estruturas/callable.js.map +1 -0
  65. package/src/estruturas/classe.js +57 -0
  66. package/src/estruturas/classe.js.map +1 -0
  67. package/src/estruturas/funcao-padrao.js +38 -0
  68. package/src/estruturas/funcao-padrao.js.map +1 -0
  69. package/src/estruturas/funcao.js +81 -0
  70. package/src/estruturas/funcao.js.map +1 -0
  71. package/src/estruturas/index.js +19 -0
  72. package/src/estruturas/index.js.map +1 -0
  73. package/src/estruturas/instancia.js +28 -0
  74. package/src/estruturas/instancia.js.map +1 -0
  75. package/src/estruturas/modulo.js +15 -0
  76. package/src/estruturas/modulo.js.map +1 -0
  77. package/src/excecoes/break-exception.js +27 -0
  78. package/src/excecoes/break-exception.js.map +1 -0
  79. package/src/excecoes/continue-exception.js +27 -0
  80. package/src/excecoes/continue-exception.js.map +1 -0
  81. package/src/excecoes/erro-em-tempo-de-execucao.js +31 -0
  82. package/src/excecoes/erro-em-tempo-de-execucao.js.map +1 -0
  83. package/src/excecoes/index.js +17 -0
  84. package/src/excecoes/index.js.map +1 -0
  85. package/src/excecoes/return-exception.js +30 -0
  86. package/src/excecoes/return-exception.js.map +1 -0
  87. package/src/interfaces/avaliador-sintatico-interface.js +3 -0
  88. package/src/interfaces/avaliador-sintatico-interface.js.map +1 -0
  89. package/src/interfaces/index.js +19 -0
  90. package/src/interfaces/index.js.map +1 -0
  91. package/src/interfaces/interpretador-interface.js +3 -0
  92. package/src/interfaces/interpretador-interface.js.map +1 -0
  93. package/src/interfaces/lexador-interface.js +3 -0
  94. package/src/interfaces/lexador-interface.js.map +1 -0
  95. package/src/interfaces/pilha-interface.js +3 -0
  96. package/src/interfaces/pilha-interface.js.map +1 -0
  97. package/src/interfaces/resolvedor-interface.js +3 -0
  98. package/src/interfaces/resolvedor-interface.js.map +1 -0
  99. package/src/interfaces/simbolo-interface.js +3 -0
  100. package/src/interfaces/simbolo-interface.js.map +1 -0
  101. package/src/interpretador/dialetos/egua-classico.js +665 -0
  102. package/src/interpretador/dialetos/egua-classico.js.map +1 -0
  103. package/src/interpretador/dialetos/index.js +14 -0
  104. package/src/interpretador/dialetos/index.js.map +1 -0
  105. package/src/interpretador/index.js +665 -0
  106. package/src/interpretador/index.js.map +1 -0
  107. package/src/lexador/dialetos/egua-classico.js +287 -0
  108. package/src/lexador/dialetos/egua-classico.js.map +1 -0
  109. package/src/lexador/dialetos/index.js +14 -0
  110. package/src/lexador/dialetos/index.js.map +1 -0
  111. package/src/lexador/index.js +287 -0
  112. package/src/lexador/index.js.map +1 -0
  113. package/src/resolvedor/Pilha.js +27 -0
  114. package/src/resolvedor/Pilha.js.map +1 -0
  115. package/src/resolvedor/ResolverError.js +29 -0
  116. package/src/resolvedor/ResolverError.js.map +1 -0
  117. package/src/resolvedor/dialetos/egua-classico.js +331 -0
  118. package/src/resolvedor/dialetos/egua-classico.js.map +1 -0
  119. package/src/resolvedor/dialetos/index.js +14 -0
  120. package/src/resolvedor/dialetos/index.js.map +1 -0
  121. package/src/resolvedor/index.js +331 -0
  122. package/src/resolvedor/index.js.map +1 -0
  123. package/src/tiposDeSimbolos.js +69 -0
  124. package/src/tiposDeSimbolos.js.map +1 -0
  125. package/src/web.js +65 -69
  126. package/src/web.js.map +1 -0
  127. package/.vscode/launch.json +0 -29
  128. package/.vscode/settings.json +0 -3
  129. package/LICENSE +0 -21
  130. package/babel.config.js +0 -1
  131. package/index.html +0 -43
  132. package/src/egua.js +0 -102
  133. package/src/environment.js +0 -53
  134. package/src/errors.js +0 -17
  135. package/src/expr.js +0 -228
  136. package/src/interpreter.js +0 -798
  137. package/src/lexer.js +0 -315
  138. package/src/lib/__tests__/eguamat.test.js +0 -101
  139. package/src/lib/eguamat.js +0 -725
  140. package/src/lib/globalLib.js +0 -171
  141. package/src/lib/importStdlib.js +0 -41
  142. package/src/lib/tempo.js +0 -50
  143. package/src/parser.js +0 -826
  144. package/src/resolver.js +0 -425
  145. package/src/stmt.js +0 -215
  146. package/src/structures/callable.js +0 -5
  147. package/src/structures/class.js +0 -43
  148. package/src/structures/function.js +0 -62
  149. package/src/structures/instance.js +0 -27
  150. package/src/structures/module.js +0 -9
  151. package/src/structures/standardFn.js +0 -18
  152. package/src/tokenTypes.js +0 -67
  153. package/testes/testes.egua +0 -631
package/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  <br>
2
2
  <p align="center">
3
- <img src="./web/assets/egua.png" alt="egua" width="auto" height="80px">
4
-
5
3
  <h3 align="center">Linguagem Delégua</h3>
6
4
 
7
5
  <p align="center">
@@ -11,15 +9,23 @@
11
9
  <br />
12
10
  <br />
13
11
  <a href="https://egua.tech/egua/" target="_blank">IDEgua (Ambiente de Desenvolvimento Integrado da Linguagem Égua)</a>
14
- ·
12
+ </p>
13
+
14
+ <p align="center">
15
+ <img src="https://img.shields.io/github/issues/Designliquido/delegua" />
16
+ <img src="https://img.shields.io/github/stars/Designliquido/delegua" />
17
+ <img src="https://img.shields.io/github/forks/Designliquido/delegua" />
18
+ <img src="https://img.shields.io/npm/v/@designliquido/delegua" />
19
+ <img src="https://img.shields.io/github/license/Designliquido/delegua" />
20
+ <br>
15
21
  </p>
16
22
  </p>
17
23
 
18
24
  ## Introdução
19
25
 
20
- Delégua é uma variação da linguagem Égua, usada para fins educacionais e comerciais pela Design Líquido.
26
+ Delégua é uma variação da linguagem Égua, usada para fins educacionais e comerciais pela Design Líquido. A variação começou na versão 1.2.0 de Égua.
21
27
 
22
- Por ora, Delégua tem retrocompatibilidade com a linguagem Égua. Em outras palavras, todo programa escrito em Égua funciona em Delégua, mas Delégua tem capacidades a mais, conforme mencionado em documentação.
28
+ Delégua tem retrocompatibilidade com a linguagem Égua e usa a mesma extensão de arquivo (`.egua`). Em outras palavras, todo programa escrito em Égua funciona em Delégua, mas Delégua tem capacidades a mais, [conforme mencionado em documentação](https://github.com/DesignLiquido/delegua/wiki).
23
29
 
24
30
  ## Características
25
31
 
@@ -52,8 +58,9 @@ Para finalizar a execução do interpretador LAIR Delégua, use o atalho <key>Ct
52
58
 
53
59
  ## Documentação
54
60
 
55
- - Para acessar nossa documentação, visite o [site de documentação](https://egua.tech/docs).
61
+ - Para acessar a documentação da linguagem Égua, visite https://egua.tech/docs.
62
+ - [Delégua é documentada na Wiki deste GitHub](https://github.com/DesignLiquido/delegua/wiki).
56
63
 
57
- ## Contruibuições
64
+ ## Contribuições
58
65
 
59
66
  * Para contribuições, por favor, leia o nosso [Guia de Contribuição](.github/CONTRIBUTING.md) antes de submeter uma Pull Request.
@@ -0,0 +1 @@
1
+ node ..\index.js %*
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@designliquido/delegua",
3
+ "version": "0.1.1",
4
+ "description": "Linguagem de programação simples e moderna usando português",
5
+ "main": "indice.js",
6
+ "scripts": {
7
+ "empacotar": "rm -Rf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
8
+ "npm-publish": "npm publish --access public",
9
+ "testes": "./bin/delegua testes/testes.egua",
10
+ "testes-unitarios": "jest",
11
+ "release": "release-it"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/DesignLiquido/delegua.git"
16
+ },
17
+ "bin": {
18
+ "delegua": "./bin/delegua"
19
+ },
20
+ "keywords": [
21
+ "egua",
22
+ "delegua"
23
+ ],
24
+ "author": "Leonel Sanches da Silva",
25
+ "contributors": [
26
+ {
27
+ "name": "Leonel Sanches da Silva",
28
+ "url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
29
+ },
30
+ {
31
+ "name": "Samuel Renan Gonçalves Vaz",
32
+ "url": "https://www.linkedin.com/in/samuel-renan-gon%C3%A7alves-vaz-b6b83a103/"
33
+ }
34
+ ],
35
+ "license": "MIT",
36
+ "bugs": {
37
+ "url": "https://github.com/DesignLiquido/delegua/issues"
38
+ },
39
+ "homepage": "https://github.com/DesignLiquido/delegua#readme",
40
+ "devDependencies": {
41
+ "@babel/preset-env": "^7.12.1",
42
+ "copyfiles": "^2.4.1",
43
+ "jest": "^26.6.1",
44
+ "release-it": "^14.11.8",
45
+ "ts-node": "^10.4.0",
46
+ "typescript": "^4.5.4"
47
+ },
48
+ "dependencies": {
49
+ "commander": "^8.3.0"
50
+ }
51
+ }
package/index.js CHANGED
@@ -1,14 +1,27 @@
1
- const Egua = require("./src/egua.js").Egua;
2
-
3
- const main = function() {
4
- let args = process.argv;
5
-
6
- const egua = new Egua();
7
- if (args.length === 2) {
8
- egua.runPrompt();
9
- } else {
10
- egua.runfile(args[2]);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var delegua_1 = require("./src/delegua");
4
+ var commander_1 = require("commander");
5
+ var principal = function () {
6
+ var analisadorArgumentos = new commander_1.Command();
7
+ var nomeArquivo;
8
+ analisadorArgumentos
9
+ .option("-d, --dialeto <dialeto>", "Dialeto a ser usado. Padrão: delegua", "delegua")
10
+ .argument('[arquivos...]', 'Nomes dos arquivos (opcional)')
11
+ .action(function (arquivos) {
12
+ if (arquivos.length > 0) {
13
+ nomeArquivo = arquivos[0];
14
+ }
15
+ });
16
+ analisadorArgumentos.parse();
17
+ var opcoes = analisadorArgumentos.opts();
18
+ var delegua = new delegua_1.Delegua(opcoes.dialeto);
19
+ if (!nomeArquivo) {
20
+ delegua.iniciarDelegua();
21
+ }
22
+ else {
23
+ delegua.carregarArquivo(nomeArquivo);
11
24
  }
12
25
  };
13
-
14
- main();
26
+ principal();
27
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AACxC,uCAAoC;AAEpC,IAAM,SAAS,GAAG;IAChB,IAAM,oBAAoB,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC3C,IAAI,WAAW,CAAC;IAEhB,oBAAoB;SACjB,MAAM,CAAC,yBAAyB,EAAE,sCAAsC,EAAG,SAAS,CAAC;SACrF,QAAQ,CAAC,eAAe,EAAE,+BAA+B,CAAC;SAC1D,MAAM,CAAC,UAAC,QAAQ;QACb,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC7B;IACL,CAAC,CAAC,CAAC;IAEL,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC7B,IAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAE3C,IAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,cAAc,EAAE,CAAC;KAC1B;SAAM;QACL,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAEF,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,37 +1,51 @@
1
- {
2
- "name": "@designliquido/delegua",
3
- "version": "0.0.1",
4
- "description": "Linguagem de programação simples e moderna usando português",
5
- "main": "index.js",
6
- "scripts": {
7
- "npm-publish": "npm publish --access public",
8
- "testes": "./bin/delegua testes/testes.egua",
9
- "testes-unitarios": "jest",
10
- "production": "npm run npm-publish"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "git+https://github.com/DesignLiquido/delegua.git"
15
- },
16
- "bin": {
17
- "delegua": "./bin/delegua"
18
- },
19
- "keywords": [
20
- "egua",
21
- "delegua"
22
- ],
23
- "author": "Leonel Sanches da Silva",
24
- "contributors": [
25
- "Leonel Sanches da Silva <leonel@designliquido.com.br> (https://www.linkedin.com/in/leonelsanchesdasilva/)"
26
- ],
27
- "license": "MIT",
28
- "bugs": {
29
- "url": "https://github.com/DesignLiquido/delegua/issues"
30
- },
31
- "homepage": "https://github.com/DesignLiquido/delegua#readme",
32
- "devDependencies": {
33
- "@babel/preset-env": "^7.12.1",
34
- "jest": "^26.6.1"
35
- },
36
- "dependencies": {}
37
- }
1
+ {
2
+ "name": "@designliquido/delegua",
3
+ "version": "0.1.2",
4
+ "description": "Linguagem de programação simples e moderna usando português",
5
+ "main": "indice.js",
6
+ "scripts": {
7
+ "empacotar": "rm -Rf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
8
+ "npm-publish": "npm publish --access public",
9
+ "testes": "./bin/delegua testes/testes.egua",
10
+ "testes-unitarios": "jest",
11
+ "release": "release-it"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/DesignLiquido/delegua.git"
16
+ },
17
+ "bin": {
18
+ "delegua": "./bin/delegua"
19
+ },
20
+ "keywords": [
21
+ "egua",
22
+ "delegua"
23
+ ],
24
+ "author": "Leonel Sanches da Silva",
25
+ "contributors": [
26
+ {
27
+ "name": "Leonel Sanches da Silva",
28
+ "url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
29
+ },
30
+ {
31
+ "name": "Samuel Renan Gonçalves Vaz",
32
+ "url": "https://www.linkedin.com/in/samuel-renan-gon%C3%A7alves-vaz-b6b83a103/"
33
+ }
34
+ ],
35
+ "license": "MIT",
36
+ "bugs": {
37
+ "url": "https://github.com/DesignLiquido/delegua/issues"
38
+ },
39
+ "homepage": "https://github.com/DesignLiquido/delegua#readme",
40
+ "devDependencies": {
41
+ "@babel/preset-env": "^7.12.1",
42
+ "copyfiles": "^2.4.1",
43
+ "jest": "^26.6.1",
44
+ "release-it": "^14.11.8",
45
+ "ts-node": "^10.4.0",
46
+ "typescript": "^4.5.4"
47
+ },
48
+ "dependencies": {
49
+ "commander": "^8.3.0"
50
+ }
51
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ambiente = void 0;
4
+ var excecoes_1 = require("./excecoes");
5
+ var Ambiente = /** @class */ (function () {
6
+ function Ambiente(enclosing) {
7
+ this.enclosing = enclosing || null;
8
+ this.valores = {};
9
+ }
10
+ Ambiente.prototype.definirVariavel = function (nomeVariavel, valor) {
11
+ this.valores[nomeVariavel] = valor;
12
+ };
13
+ Ambiente.prototype.atribuirVariavelEm = function (distancia, nome, valor) {
14
+ this.ancestor(distancia).valores[nome.lexema] = valor;
15
+ };
16
+ Ambiente.prototype.atribuirVariavel = function (nome, valor) {
17
+ if (this.valores[nome.lexema] !== undefined) {
18
+ this.valores[nome.lexema] = valor;
19
+ return;
20
+ }
21
+ if (this.enclosing != null) {
22
+ this.enclosing.atribuirVariavel(nome, valor);
23
+ return;
24
+ }
25
+ throw new excecoes_1.ErroEmTempoDeExecucao(nome, "Variável não definida '" + nome.lexema + "'.");
26
+ };
27
+ Ambiente.prototype.ancestor = function (distancia) {
28
+ var ambiente = this;
29
+ for (var i = 0; i < distancia; i++) {
30
+ ambiente = ambiente.enclosing;
31
+ }
32
+ return ambiente;
33
+ };
34
+ Ambiente.prototype.obterVariavelEm = function (distancia, nome) {
35
+ return this.ancestor(distancia).valores[nome];
36
+ };
37
+ Ambiente.prototype.obterVariavel = function (simbolo) {
38
+ if (this.valores[simbolo.lexema] !== undefined) {
39
+ return this.valores[simbolo.lexema];
40
+ }
41
+ if (this.enclosing !== null)
42
+ return this.enclosing.obterVariavel(simbolo);
43
+ throw new excecoes_1.ErroEmTempoDeExecucao(simbolo, "Variável não definida '" + simbolo.lexema + "'.");
44
+ };
45
+ return Ambiente;
46
+ }());
47
+ exports.Ambiente = Ambiente;
48
+ ;
49
+ //# sourceMappingURL=ambiente.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambiente.js","sourceRoot":"","sources":["../../src/ambiente.ts"],"names":[],"mappings":";;;AAAA,uCAAmD;AAEnD;IAII,kBAAY,SAAe;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,kCAAe,GAAf,UAAgB,YAAiB,EAAE,KAAU;QACzC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,qCAAkB,GAAlB,UAAmB,SAAc,EAAE,IAAS,EAAE,KAAU;QACpD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC1D,CAAC;IAED,mCAAgB,GAAhB,UAAiB,IAAS,EAAE,KAAU;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAClC,OAAO;SACV;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;SACV;QAED,MAAM,IAAI,gCAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,2BAAQ,GAAR,UAAS,SAAc;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAChC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;SACjC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kCAAe,GAAf,UAAgB,SAAc,EAAE,IAAS;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,gCAAa,GAAb,UAAc,OAAY;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1E,MAAM,IAAI,gCAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChG,CAAC;IACL,eAAC;AAAD,CAAC,AArDD,IAqDC;AArDY,4BAAQ;AAqDpB,CAAC"}