yukigo-haskell-parser 0.1.0
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.
- package/.mocharc.json +4 -0
- package/CHANGELOG.md +19 -0
- package/README.md +10 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/grammar.d.ts +28 -0
- package/dist/parser/grammar.js +404 -0
- package/dist/parser/grammar.js.map +1 -0
- package/dist/parser/layoutPreprocessor.d.ts +1 -0
- package/dist/parser/layoutPreprocessor.js +22 -0
- package/dist/parser/layoutPreprocessor.js.map +1 -0
- package/dist/parser/lexer.d.ts +42 -0
- package/dist/parser/lexer.js +75 -0
- package/dist/parser/lexer.js.map +1 -0
- package/dist/parser/preprocessor.d.ts +28 -0
- package/dist/parser/preprocessor.js +453 -0
- package/dist/parser/preprocessor.js.map +1 -0
- package/dist/prelude.d.ts +1 -0
- package/dist/prelude.js +205 -0
- package/dist/prelude.js.map +1 -0
- package/dist/typechecker/DeclarationCollector.d.ts +15 -0
- package/dist/typechecker/DeclarationCollector.js +80 -0
- package/dist/typechecker/DeclarationCollector.js.map +1 -0
- package/dist/typechecker/TypeBuilder.d.ts +12 -0
- package/dist/typechecker/TypeBuilder.js +113 -0
- package/dist/typechecker/TypeBuilder.js.map +1 -0
- package/dist/typechecker/checker.d.ts +80 -0
- package/dist/typechecker/checker.js +269 -0
- package/dist/typechecker/checker.js.map +1 -0
- package/dist/typechecker/core.d.ts +14 -0
- package/dist/typechecker/core.js +142 -0
- package/dist/typechecker/core.js.map +1 -0
- package/dist/typechecker/inference.d.ts +69 -0
- package/dist/typechecker/inference.js +984 -0
- package/dist/typechecker/inference.js.map +1 -0
- package/dist/utils/helpers.d.ts +2 -0
- package/dist/utils/helpers.js +25 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/types.d.ts +6 -0
- package/dist/utils/types.js +53 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +36 -0
- package/src/index.ts +55 -0
- package/src/parser/grammar.ne +463 -0
- package/src/parser/grammar.ts +512 -0
- package/src/parser/layoutPreprocessor.ts +21 -0
- package/src/parser/lexer.ts +77 -0
- package/src/parser/preprocessor.ne +375 -0
- package/src/parser/preprocessor.ts +502 -0
- package/src/prelude.ts +206 -0
- package/src/typechecker/DeclarationCollector.ts +104 -0
- package/src/typechecker/TypeBuilder.ts +148 -0
- package/src/typechecker/checker.ts +395 -0
- package/src/typechecker/core.ts +162 -0
- package/src/typechecker/inference.ts +1327 -0
- package/src/utils/helpers.ts +29 -0
- package/src/utils/types.ts +56 -0
- package/tests/parser.spec.ts +823 -0
- package/tests/prelude.spec.ts +22 -0
- package/tests/preprocessor.spec.ts +69 -0
- package/tests/typechecker.spec.ts +310 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../../src/parser/preprocessor.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,wCAAwC;AACxC,wDAAwD;AACxD,aAAa;AACb,SAAS,EAAE,CAAC,CAAQ,IAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAoB3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE;IACf,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC;AAMD,CAAC;AAQD,CAAC;AAMD,CAAC;AAQD,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE;QACX,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAC;QACzC,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACnH,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACjH,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QACrE,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,sBAAsB,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAC;QAC1E,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAC;QAC/D,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,6BAA6B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClG,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAC;QAClH,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAC;QAC3G,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAC;QAChE,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACvE,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAC;QACpE,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAC;QACtE,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACrG,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC/I,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAChF,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACrJ,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACzF,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAClK,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAClK,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACrF,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC3J,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC9J,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACrF,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACtJ,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACjJ,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACjJ,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC/E,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACpJ,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACpJ,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC5I,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC3I,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC5I,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACjH,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACnF,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACvJ,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACzF,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC5K,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACtG,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACrN,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC3F,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,OAAO,EAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC/G,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC7C,EAAC,MAAM,EAAE,oDAAoD,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QACjF,EAAC,MAAM,EAAE,oDAAoD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC/H,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,EAAC;QAC5H,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,oCAAoC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClJ,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE;gBACpF,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC,EAAE;QACP,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QACnE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QACnE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QACnE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QACnE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QACnE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAClE,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,0BAA0B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;QAClG,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC3J,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC5J,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QACpI,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACzE,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACtE,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAChF,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAChF,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC7H,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QACnI,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjF,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC1M,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,EAAE,EAAC;QAC3D,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,sBAAsB,CAAC,EAAC;QAC5H,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kCAAkC,EAAE,kDAAkD,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5L,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,kCAAkC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACjL,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC/I,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACvF,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC/D,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC9G,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC/D,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC9G,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,mCAAmC,EAAE,YAAY,EAAE,mCAAmC,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QACzR,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAC;QAC1G,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yCAAyC,CAAC,EAAC;QAC3F,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAC;QAC1G,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,yCAAyC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjK,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,aAAa,EAAE,yBAAyB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAC;QAChN,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EACvN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;SAChC;QACL,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAC;QACpD,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAC;QAC1G,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,2BAA2B,EAAE,2CAA2C,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACvK,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACtJ,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QAClI,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,+CAA+C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QACzH,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,+CAA+C,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,+CAA+C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QACzH,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,+CAA+C,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,+CAA+C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC1H,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,+CAA+C,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,+CAA+C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QACzH,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,+CAA+C,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,+CAA+C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC1H,EAAC,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,+CAA+C,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,+BAA+B,EAAE,YAAY,EAAE,+BAA+B,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,+BAA+B,EAAE,YAAY,EAAE,+BAA+B,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,+BAA+B,EAAE,YAAY,CAAC,EAAE,aAAa,EACzT,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;SACvD;QACL,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC9D,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QACpG,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC7H,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QACpF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC7E,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC9D,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QACpG,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC7H,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC7H,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC9D,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,EAAE,kCAAkC,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,kCAAkC,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,GAAI,CAAC,CAAC,CAAC,CAAC,EAAC;QACrS,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC5H,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,CAAC,EAAC;QAC3G,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC7D,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC5H,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,CAAC,EAAC;QAC3G,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC7D,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC7D,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QACnG,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,CAAC,EAAC;QAC3G,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC5H,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,CAAC,EAAC;QAC3G,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QAC1F,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wCAAwC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC5G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC5E,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,iCAAiC,EAAE,YAAY,EAAE,iCAAiC,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,iCAAiC,EAAE,WAAW,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC;QACjS,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC3C,EAAC,MAAM,EAAE,kEAAkE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC7I,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,kEAAkE,CAAC,EAAC;QAC7I,EAAC,MAAM,EAAE,kEAAkE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QACpH,EAAC,MAAM,EAAE,kDAAkD,EAAE,SAAS,EAAE,CAAC,kEAAkE,CAAC,EAAC;QAC7I,EAAC,MAAM,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,kDAAkD,EAAE,UAAU,CAAC,EAAC;QACzH,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5I,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACnI,EAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACrH,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,0CAA0C,CAAC,EAAC;QAC7F,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QACtD,EAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACrH,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,0CAA0C,CAAC,EAAC;QAC7F,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QACtD,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,0BAA0B,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,0BAA0B,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QAChL,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAC;QAClD,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,EAAC;QACvF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,yCAAyC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjK,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAC;QAClD,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAC;QAC9G,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,yCAAyC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjK,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QACtF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC7E,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,EAAE,aAAa,EACtN,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACjJ;QACL,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAC,SAAS,EAAC,UAAU,EAAC,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACvI,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QACzI,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5E,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAC;QAClD,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAC;QACzJ,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,yCAAyC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjK,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QAC/M,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC9G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wCAAwC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC5G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC5E,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wCAAwC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC5G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC5E,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wCAAwC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC5G,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC5E,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,YAAY,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAC;QACrU,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAC;QACjD,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,wCAAwC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9J,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QAC5I,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC5C,EAAC,MAAM,EAAE,0DAA0D,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAC;QAC/H,EAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,CAAC,0DAA0D,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAChJ,EAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC9F,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,0CAA0C,EAAE,OAAO,CAAC,EAAC;QAC1I,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC/I,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QAClI,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACzK,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAC;QACjK,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC3E,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAC;QACpD,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAC;QAC7G,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,2BAA2B,EAAE,2CAA2C,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACvK,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAChE,EAAC,MAAM,EAAE,oDAAoD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC/H,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,oDAAoD,CAAC,EAAC;QACjH,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,cAAc,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,oCAAoC,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QAC7S,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACxG,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACxL,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC1D,EAAC,MAAM,EAAE,8CAA8C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QAChG,EAAC,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,CAAC,8CAA8C,CAAC,EAAC;QACrG,EAAC,MAAM,EAAE,8CAA8C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACzH,EAAC,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,CAAC,8CAA8C,CAAC,EAAC;QACrG,EAAC,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC1D,EAAC,MAAM,EAAE,8CAA8C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QAChG,EAAC,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,CAAC,8CAA8C,CAAC,EAAC;QACrG,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,OAAO,EAAC,EAAE,8BAA8B,EAAE,eAAe,EAAE,8BAA8B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC;QACpL,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC/C,EAAC,MAAM,EAAE,sEAAsE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QACxH,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,sEAAsE,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,sEAAsE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACjJ,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,sEAAsE,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,sDAAsD,EAAE,sBAAsB,CAAC,EAAC;QAC7I,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxJ,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,iCAAiC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC9F,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QACrE,EAAC,MAAM,EAAE,iEAAiE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC5I,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,iEAAiE,CAAC,EAAC;QAC3I,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,EAAE,cAAc,CAAC,EAAC;QAC3H,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,iCAAiC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC9F,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QACrE,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE;gBACjH,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC;YACzC,CAAC,EAAE;QACP,EAAC,MAAM,EAAE,0CAA0C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACrH,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,0CAA0C,CAAC,EAAC;QAC7F,EAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QACtD,EAAC,MAAM,EAAE,iEAAiE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC5I,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,iEAAiE,CAAC,EAAC;QAC3I,EAAC,MAAM,EAAE,iDAAiD,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,iDAAiD,EAAE,cAAc,CAAC,EAAC;QAC3H,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,iCAAiC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC9F,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QACrE,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC;QAC3O,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC5F,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC;QAC5D,EAAC,MAAM,EAAE,6CAA6C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACxH,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,6CAA6C,CAAC,EAAC;QACnG,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QACzD,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QAC7I,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,gDAAgD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC3H,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,gDAAgD,CAAC,EAAC;QACzG,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,gDAAgD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC3H,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,gDAAgD,CAAC,EAAC;QACzG,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,gDAAgD,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QAC3H,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,gDAAgD,CAAC,EAAC;QACzG,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAC5D,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,gCAAgC,EAAE,WAAW,EAAE,gCAAgC,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,gCAAgC,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACvP,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,WAAW,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAC;QAC5F,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC1E,EAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAC;QAChD,EAAC,MAAM,EAAE,uCAAuC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAC;QAC/E,EAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC,uBAAuB,EAAE,uCAAuC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC3J,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QAC3I,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gCAAgC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC5F,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QACpE,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9F,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,qCAAqC,CAAC,EAAC;QACnF,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,qBAAqB,EAAE,qCAAqC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;QAC/L,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACnF,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAC;QACrE,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAC;QACvE,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAC;QAC1E,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QAC3E,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QAC3E,EAAC,MAAM,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gCAAgC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxG,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAC;QAC1J,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAChI,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjF,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjF,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACvE,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACvE,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,4BAA4B,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACzI,EAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,4CAA4C,CAAC,EAAC;QACjG,EAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,4BAA4B,EAAE,4CAA4C,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC1K,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,4BAA4B,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;QACvM,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC;QACvF,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAC;QACpD,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,eAAe,CAAC,EAAC;QAC9G,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,2BAA2B,EAAE,2CAA2C,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACvK,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QAC1J,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QACnI,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC/E,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QACzE,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAC;QACjJ,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC9C,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAC;QAClG,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,qBAAqB,EAAE,qCAAqC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACxI,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAC;QACnG,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sCAAsC,CAAC,EAAC;QACrF,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAC;QACnG,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxJ,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;QAC7L,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,EAAC;QACvF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yCAAyC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QAC9G,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC7E,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE;gBAC1J,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBAEzC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAClD,CAAC,EAAE;QACP,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC/C,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAC;QAC/E,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxJ,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QAC1I,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QAC5K,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC1E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAClI,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAC;QACjD,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAC;QACxG,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,wCAAwC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9J,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE,CACnG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC;QACP,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAC;QACnF,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,mCAAmC,CAAC,EAAC;QAC/E,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAC;QACnF,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC/I,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QAC5L,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAC;QACpI,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sCAAsC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;QACxG,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAC;QAC1E,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,EAAC;QAC/C,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,sEAAsE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACjJ,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,sEAAsE,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAC;QAClF,EAAC,MAAM,EAAE,sEAAsE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAC;QACjJ,EAAC,MAAM,EAAE,sDAAsD,EAAE,SAAS,EAAE,CAAC,sEAAsE,CAAC,EAAC;QACrJ,EAAC,MAAM,EAAE,sCAAsC,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAE,sDAAsD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,sDAAsD,CAAC,EAAC;QAC/P,EAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACxJ,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE;gBACzH,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1D,OAAO,WAAW,GAAG,MAAM,CAAA;YAC/B,CAAC;SACA;QACL,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yCAAyC,CAAC,EAAC;QAC3F,EAAC,MAAM,EAAE,yCAAyC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,yCAAyC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjK,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,yBAAyB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;QACnJ,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACpF,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAC;QACrE,EAAC,MAAM,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;QACxE,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,6BAA6B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClG,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC3H,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC;QAC9F,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,oCAAoC,CAAC,EAAC;QACjF,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAC;QAC9F,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,oBAAoB,EAAE,oCAAoC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAClJ,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;QACtL,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QAC3H,EAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC/E,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAC;QAC1I,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAC;QACnI,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAC;QACxG,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC;QACvI,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAC;QACjH,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QAC3I,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAC;QACxK,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;QAClM,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAC;QACjD,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAC;QACxG,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,wCAAwC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QAC9J,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;QACjJ,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAC;QAC7E,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,qCAAqC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,EAAC;QAC9E,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,qCAAqC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC;QACxH,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;QACjG,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC;QACvG,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;QACjG,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAC;QACzG,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAC;QACnC,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACjI,EAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAC;QACtC,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;QAC3E,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;QACnI,EAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAC;KACzC;IACD,WAAW,EAAE,SAAS;CACvB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const preludeCode = "data Ordering = LT | EQ | GT\ndata Maybe a = Nothing | Just a\n(,) :: a -> b -> (a, b)\n(,) x y = (x, y)\n($) :: (a -> b) -> a -> b\n($) f x = f x\n(.) :: (b -> c) -> (a -> b) -> a -> c\n(.) f g a = (\\x -> f (g x)) a\n(:) :: a -> [a] -> [a]\n(:) x xs = x : xs\n(++) :: [a] -> [a] -> [a]\n(++) [] ys = ys\n(++) (x:xs) ys = x : (xs ++ ys)\n(&&) :: (Eq a) => a -> a -> Boolean\n(||) :: (Eq a) => a -> a -> Boolean\n(&&) x y = x && y\n(||) x y = x || y\n(==) :: (Ord a) => a -> a -> Boolean\n(/=) :: (Ord a) => a -> a -> Boolean\n(<) :: (Ord a) => a -> a -> Boolean\n(>) :: (Ord a) => a -> a -> Boolean\n(<=) :: (Ord a) => a -> a -> Boolean\n(>=) :: (Ord a) => a -> a -> Boolean\n(==) x y = x == y\n(/=) x y = x /= y\n(<) x y = x < y\n(>) x y = x > y\n(<=) x y = x <= y\n(>=) x y = x >= y\n(+) :: Num a => a -> a -> a\n(-) :: Num a => a -> a -> a\n(+) x y = x + y\n(-) x y = x - y\n(**) :: (Floating a) => a -> a -> a\n(**) x y = x ** y\n(^) :: (Num a, Integral b) => a -> b -> a\n(^) x y = x ^ y\n(^^) :: (Fractional a, Integral b) => a -> b -> a\n(^^) x y = x ^^ y\n(*) :: (Num a) => a -> a -> a\n(*) x y = x * y\n(/) :: Fractional a => a -> a -> a\n(/) _ 0 = error \"Prelude./: divide by zero\"\n(/) x y = x / y\n(!!) :: [a] -> Int -> a\n(!!) xs n | n < 0 = error \"Prelude.!!: negative index\"\n(!!) [] _ = error \"Prelude.!!: index too large\"\n(!!) (x:_) 0 = x\n(!!) (_:xs) n = xs !! (n - 1)\nnot :: Bool -> Bool\nnot True = False\nnot False = True\nquot :: Integral a => a -> a -> a\nquot _ 0 = error \"divide by zero\"\nquot 0 _ = 0\nquot a b = let { absA = abs a; absB = abs b; result = quotPositive absA absB } in if (a < 0) == (b < 0) then result else -result\nrem :: Integral a => a -> a -> a\nrem _ 0 = error \"divide by zero\"\nrem 0 _ = 0\nrem a b = let { absA = abs a; absB = abs b; remainder = remPositive absA absB } in if a < 0 then -remainder else remainder\nquotPositive :: Integral a => a -> a -> a\nquotPositive n d | n < d = 0 | otherwise = 1 + quotPositive (n - d) d\nremPositive :: Integral a => a -> a -> a\nremPositive n d | n < d = n | otherwise = remPositive (n - d) d\ndiv :: Integral a => a -> a -> a\ndiv _ 0 = error \"divide by zero\"\ndiv 0 _ = 0\ndiv a b = let { q = quot a b; r = rem a b } in if r == 0 || (a < 0) == (b < 0) then q else q - 1\nmod :: Integral a => a -> a -> a\nmod _ 0 = error \"divide by zero\"\nmod 0 _ = 0\nmod a b = a - (div a b) * b\nsignum :: (Num a) => a -> a\nsignum x | x == 0 = 0 | x > 0 = 1 | otherwise = -1\nabs :: (Num a) => a -> a\nabs n = if n < 0 then -n else n\nsqrt :: (Num a) => a -> a\nsqrt x = x ** 0.5\nmax :: a -> a -> a\nmax x y = if x <= y then y else x\nmin :: a -> a -> a\nmin x y = if x <= y then x else y\neven :: (Integral a) => a -> Bool\nodd :: (Integral a) => a -> Bool\neven n = n `rem` 2 == 0\nodd n = (not . even) n\nlength :: [a] -> Int\nlength [] = 0\nlength (_:l) = 1 + length l\ngenericLength :: (Integral a) => [b] -> a\ngenericLength [] = 0\ngenericLength (x:xs) = 1 + genericLength xs\nnull :: [a] -> Bool\nnull [] = True\nnull (_:_) = False\nunion :: (Eq a) => [a] -> [a] -> [a]\nunion xs ys = unionBy (==) xs ys\ndeleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]\ndeleteBy eq x [] = []\ndeleteBy eq x (y:ys) = if x `eq` y then ys else y : deleteBy eq x ys\ndeleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]\ndeleteFirstsBy eq xs ys = foldl (flip (deleteBy eq)) xs ys\nnubBy :: (a -> a -> Bool) -> [a] -> [a]\nnubBy eq [] = []\nnubBy eq (x:xs) = x : nubBy eq (filter (\\y -> not (eq x y)) xs)\nunionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]\nunionBy eq xs ys = xs ++ deleteFirstsBy eq (nubBy eq ys) xs\nintersect :: (Eq a) => [a] -> [a] -> [a]\nintersect xs ys = intersectBy (==) xs ys\nintersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]\nintersectBy eq xs ys = [x | x <- xs, any (eq x) ys]\nelem :: (Eq a) => a -> [a] -> Bool\nnotElem :: (Eq a) => a -> [a] -> Bool\nelem x xs = any (\\y -> y == x) xs\nnotElem x xs = all (\\y -> y /= x) xs\nmaximum :: (Ord a) => [a] -> a\nminimum :: (Ord a) => [a] -> a\nmaximum [] = error \"Prelude.maximum: empty list\"\nmaximum xs = foldl1 max xs\nminimum [] = error \"Prelude.minimum: empty list\"\nminimum xs = foldl1 min xs\nsum :: (Num a) => [a] -> a\nproduct :: (Num a) => [a] -> a\nsum xs = foldl (+) 0 xs\nproduct xs = foldl (*) 1 xs\nconcat :: [[a]] -> [a]\nconcat xss = foldr (++) [] xss\nconcatMap :: (a -> [b]) -> [a] -> [b]\nconcatMap f xs = (concat . map) f xs\ntake :: Int -> [a] -> [a]\ntake n _ | n <= 0 = []\ntake _ [] = []\ntake n (x:xs) = x : take (n - 1) xs\ndrop :: Int -> [a] -> [a]\ndrop n xs | n <= 0 = xs\ndrop _ [] = []\ndrop n (_:xs) = drop (n - 1) xs\nhead :: [a] -> a\nhead (x:_) = x\nhead [] = error \"Prelude.head: empty list\"\ntail :: [a] -> [a]\ntail (_:xs) = xs\ntail [] = error \"Prelude.tail: empty list\"\nlast :: [a] -> a\nlast [x] = x\nlast (_:xs) = last xs\nlast [] = error \"Prelude.last: empty list\"\ninit :: [a] -> [a]\ninit [x] = []\ninit (x:xs) = x : init xs\ninit [] = error \"Prelude.init: empty list\"\nzip :: [a] -> [b] -> [(a, b)]\nzip xs ys = zipWith (,) xs ys\nzipWith :: (a -> b -> c) -> [a] -> [b] -> [c]\nzipWith z (a:as) (b:bs) = z a b : zipWith z as bs\nzipWith _ _ _ = []\nreverse :: [a] -> [a]\nreverse xs = foldl (flip (:)) [] xs\nfilter :: (a -> Bool) -> [a] -> [a]\nfilter p [] = []\nfilter p (x:xs) | p x = x : filter p xs | otherwise = filter p xs\nmap :: (a -> b) -> [a] -> [b]\nmap f [] = []\nmap f (x:xs) = f x : map f xs\nany :: (a -> Bool) -> [a] -> Bool\nall :: (a -> Bool) -> [a] -> Bool\nany f (x:xs) = f x || any f xs\nall f (x:xs) = f x && all f xs\nfoldl :: (a -> b -> a) -> a -> [b] -> a\nfoldl f z [] = z\nfoldl f z (x:xs) = foldl f (f z x) xs\nfoldl1 :: (a -> a -> a) -> [a] -> a\nfoldl1 f (x:xs) = foldl f x xs\nfoldl1 _ [] = error \"Prelude.foldl1: empty list\"\nfoldr :: (a -> b -> b) -> b -> [a] -> b\nfoldr f z [] = z\nfoldr f z (x:xs) = f x (foldr f z xs)\nfoldr1 :: (a -> a -> a) -> [a] -> a\nfoldr1 f [x] = x\nfoldr1 f (x:xs) = f x (foldr1 f xs)\nfoldr1 _ [] = error \"Prelude.foldr1: empty list\"\nfind :: Ord a => (a -> Bool) -> [a] -> Maybe a\nfind _ [] = Nothing\nfind f (x:xs) | f x = Just x | otherwise = find f xs\nsort :: (Ord a) => [a] -> [a]\nsort xs = sortBy compare xs\nsortBy :: (a -> a -> Ordering) -> [a] -> [a]\nsortBy cmp xs = foldr (insertBy cmp) [] xs\ncompare :: a -> a -> Ordering\ncompare x y | x == y = EQ | x <= y = LT | otherwise = GT\ninsertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]\ninsertBy cmp x [] = [x]\ninsertBy cmp x ys@(y:ys') = case cmp x y of { GT -> y : insertBy cmp x ys'; _ -> x : ys }\nflip :: (a -> b -> c) -> b -> a -> c\nflip f x y = f y x\nrepeat :: a -> [a]\nrepeat x = x : (repeat x)\niterate :: (a -> a) -> a -> [a]\niterate f x = x : iterate f (f x)\nreplicate :: Int -> a -> [a]\nreplicate n x = take n (repeat x)\ncycle :: [a] -> [a]\ncycle [] = error \"Prelude.cycle: empty list\"\ncycle xs = xs ++ (cycle xs)";
|
package/dist/prelude.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
export const preludeCode = `data Ordering = LT | EQ | GT
|
|
2
|
+
data Maybe a = Nothing | Just a
|
|
3
|
+
(,) :: a -> b -> (a, b)
|
|
4
|
+
(,) x y = (x, y)
|
|
5
|
+
($) :: (a -> b) -> a -> b
|
|
6
|
+
($) f x = f x
|
|
7
|
+
(.) :: (b -> c) -> (a -> b) -> a -> c
|
|
8
|
+
(.) f g a = (\\x -> f (g x)) a
|
|
9
|
+
(:) :: a -> [a] -> [a]
|
|
10
|
+
(:) x xs = x : xs
|
|
11
|
+
(++) :: [a] -> [a] -> [a]
|
|
12
|
+
(++) [] ys = ys
|
|
13
|
+
(++) (x:xs) ys = x : (xs ++ ys)
|
|
14
|
+
(&&) :: (Eq a) => a -> a -> Boolean
|
|
15
|
+
(||) :: (Eq a) => a -> a -> Boolean
|
|
16
|
+
(&&) x y = x && y
|
|
17
|
+
(||) x y = x || y
|
|
18
|
+
(==) :: (Ord a) => a -> a -> Boolean
|
|
19
|
+
(/=) :: (Ord a) => a -> a -> Boolean
|
|
20
|
+
(<) :: (Ord a) => a -> a -> Boolean
|
|
21
|
+
(>) :: (Ord a) => a -> a -> Boolean
|
|
22
|
+
(<=) :: (Ord a) => a -> a -> Boolean
|
|
23
|
+
(>=) :: (Ord a) => a -> a -> Boolean
|
|
24
|
+
(==) x y = x == y
|
|
25
|
+
(/=) x y = x /= y
|
|
26
|
+
(<) x y = x < y
|
|
27
|
+
(>) x y = x > y
|
|
28
|
+
(<=) x y = x <= y
|
|
29
|
+
(>=) x y = x >= y
|
|
30
|
+
(+) :: Num a => a -> a -> a
|
|
31
|
+
(-) :: Num a => a -> a -> a
|
|
32
|
+
(+) x y = x + y
|
|
33
|
+
(-) x y = x - y
|
|
34
|
+
(**) :: (Floating a) => a -> a -> a
|
|
35
|
+
(**) x y = x ** y
|
|
36
|
+
(^) :: (Num a, Integral b) => a -> b -> a
|
|
37
|
+
(^) x y = x ^ y
|
|
38
|
+
(^^) :: (Fractional a, Integral b) => a -> b -> a
|
|
39
|
+
(^^) x y = x ^^ y
|
|
40
|
+
(*) :: (Num a) => a -> a -> a
|
|
41
|
+
(*) x y = x * y
|
|
42
|
+
(/) :: Fractional a => a -> a -> a
|
|
43
|
+
(/) _ 0 = error "Prelude./: divide by zero"
|
|
44
|
+
(/) x y = x / y
|
|
45
|
+
(!!) :: [a] -> Int -> a
|
|
46
|
+
(!!) xs n | n < 0 = error "Prelude.!!: negative index"
|
|
47
|
+
(!!) [] _ = error "Prelude.!!: index too large"
|
|
48
|
+
(!!) (x:_) 0 = x
|
|
49
|
+
(!!) (_:xs) n = xs !! (n - 1)
|
|
50
|
+
not :: Bool -> Bool
|
|
51
|
+
not True = False
|
|
52
|
+
not False = True
|
|
53
|
+
quot :: Integral a => a -> a -> a
|
|
54
|
+
quot _ 0 = error "divide by zero"
|
|
55
|
+
quot 0 _ = 0
|
|
56
|
+
quot a b = let { absA = abs a; absB = abs b; result = quotPositive absA absB } in if (a < 0) == (b < 0) then result else -result
|
|
57
|
+
rem :: Integral a => a -> a -> a
|
|
58
|
+
rem _ 0 = error "divide by zero"
|
|
59
|
+
rem 0 _ = 0
|
|
60
|
+
rem a b = let { absA = abs a; absB = abs b; remainder = remPositive absA absB } in if a < 0 then -remainder else remainder
|
|
61
|
+
quotPositive :: Integral a => a -> a -> a
|
|
62
|
+
quotPositive n d | n < d = 0 | otherwise = 1 + quotPositive (n - d) d
|
|
63
|
+
remPositive :: Integral a => a -> a -> a
|
|
64
|
+
remPositive n d | n < d = n | otherwise = remPositive (n - d) d
|
|
65
|
+
div :: Integral a => a -> a -> a
|
|
66
|
+
div _ 0 = error "divide by zero"
|
|
67
|
+
div 0 _ = 0
|
|
68
|
+
div a b = let { q = quot a b; r = rem a b } in if r == 0 || (a < 0) == (b < 0) then q else q - 1
|
|
69
|
+
mod :: Integral a => a -> a -> a
|
|
70
|
+
mod _ 0 = error "divide by zero"
|
|
71
|
+
mod 0 _ = 0
|
|
72
|
+
mod a b = a - (div a b) * b
|
|
73
|
+
signum :: (Num a) => a -> a
|
|
74
|
+
signum x | x == 0 = 0 | x > 0 = 1 | otherwise = -1
|
|
75
|
+
abs :: (Num a) => a -> a
|
|
76
|
+
abs n = if n < 0 then -n else n
|
|
77
|
+
sqrt :: (Num a) => a -> a
|
|
78
|
+
sqrt x = x ** 0.5
|
|
79
|
+
max :: a -> a -> a
|
|
80
|
+
max x y = if x <= y then y else x
|
|
81
|
+
min :: a -> a -> a
|
|
82
|
+
min x y = if x <= y then x else y
|
|
83
|
+
even :: (Integral a) => a -> Bool
|
|
84
|
+
odd :: (Integral a) => a -> Bool
|
|
85
|
+
even n = n \`rem\` 2 == 0
|
|
86
|
+
odd n = (not . even) n
|
|
87
|
+
length :: [a] -> Int
|
|
88
|
+
length [] = 0
|
|
89
|
+
length (_:l) = 1 + length l
|
|
90
|
+
genericLength :: (Integral a) => [b] -> a
|
|
91
|
+
genericLength [] = 0
|
|
92
|
+
genericLength (x:xs) = 1 + genericLength xs
|
|
93
|
+
null :: [a] -> Bool
|
|
94
|
+
null [] = True
|
|
95
|
+
null (_:_) = False
|
|
96
|
+
union :: (Eq a) => [a] -> [a] -> [a]
|
|
97
|
+
union xs ys = unionBy (==) xs ys
|
|
98
|
+
deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
|
|
99
|
+
deleteBy eq x [] = []
|
|
100
|
+
deleteBy eq x (y:ys) = if x \`eq\` y then ys else y : deleteBy eq x ys
|
|
101
|
+
deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
|
|
102
|
+
deleteFirstsBy eq xs ys = foldl (flip (deleteBy eq)) xs ys
|
|
103
|
+
nubBy :: (a -> a -> Bool) -> [a] -> [a]
|
|
104
|
+
nubBy eq [] = []
|
|
105
|
+
nubBy eq (x:xs) = x : nubBy eq (filter (\\y -> not (eq x y)) xs)
|
|
106
|
+
unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
|
|
107
|
+
unionBy eq xs ys = xs ++ deleteFirstsBy eq (nubBy eq ys) xs
|
|
108
|
+
intersect :: (Eq a) => [a] -> [a] -> [a]
|
|
109
|
+
intersect xs ys = intersectBy (==) xs ys
|
|
110
|
+
intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
|
|
111
|
+
intersectBy eq xs ys = [x | x <- xs, any (eq x) ys]
|
|
112
|
+
elem :: (Eq a) => a -> [a] -> Bool
|
|
113
|
+
notElem :: (Eq a) => a -> [a] -> Bool
|
|
114
|
+
elem x xs = any (\\y -> y == x) xs
|
|
115
|
+
notElem x xs = all (\\y -> y /= x) xs
|
|
116
|
+
maximum :: (Ord a) => [a] -> a
|
|
117
|
+
minimum :: (Ord a) => [a] -> a
|
|
118
|
+
maximum [] = error "Prelude.maximum: empty list"
|
|
119
|
+
maximum xs = foldl1 max xs
|
|
120
|
+
minimum [] = error "Prelude.minimum: empty list"
|
|
121
|
+
minimum xs = foldl1 min xs
|
|
122
|
+
sum :: (Num a) => [a] -> a
|
|
123
|
+
product :: (Num a) => [a] -> a
|
|
124
|
+
sum xs = foldl (+) 0 xs
|
|
125
|
+
product xs = foldl (*) 1 xs
|
|
126
|
+
concat :: [[a]] -> [a]
|
|
127
|
+
concat xss = foldr (++) [] xss
|
|
128
|
+
concatMap :: (a -> [b]) -> [a] -> [b]
|
|
129
|
+
concatMap f xs = (concat . map) f xs
|
|
130
|
+
take :: Int -> [a] -> [a]
|
|
131
|
+
take n _ | n <= 0 = []
|
|
132
|
+
take _ [] = []
|
|
133
|
+
take n (x:xs) = x : take (n - 1) xs
|
|
134
|
+
drop :: Int -> [a] -> [a]
|
|
135
|
+
drop n xs | n <= 0 = xs
|
|
136
|
+
drop _ [] = []
|
|
137
|
+
drop n (_:xs) = drop (n - 1) xs
|
|
138
|
+
head :: [a] -> a
|
|
139
|
+
head (x:_) = x
|
|
140
|
+
head [] = error "Prelude.head: empty list"
|
|
141
|
+
tail :: [a] -> [a]
|
|
142
|
+
tail (_:xs) = xs
|
|
143
|
+
tail [] = error "Prelude.tail: empty list"
|
|
144
|
+
last :: [a] -> a
|
|
145
|
+
last [x] = x
|
|
146
|
+
last (_:xs) = last xs
|
|
147
|
+
last [] = error "Prelude.last: empty list"
|
|
148
|
+
init :: [a] -> [a]
|
|
149
|
+
init [x] = []
|
|
150
|
+
init (x:xs) = x : init xs
|
|
151
|
+
init [] = error "Prelude.init: empty list"
|
|
152
|
+
zip :: [a] -> [b] -> [(a, b)]
|
|
153
|
+
zip xs ys = zipWith (,) xs ys
|
|
154
|
+
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
|
|
155
|
+
zipWith z (a:as) (b:bs) = z a b : zipWith z as bs
|
|
156
|
+
zipWith _ _ _ = []
|
|
157
|
+
reverse :: [a] -> [a]
|
|
158
|
+
reverse xs = foldl (flip (:)) [] xs
|
|
159
|
+
filter :: (a -> Bool) -> [a] -> [a]
|
|
160
|
+
filter p [] = []
|
|
161
|
+
filter p (x:xs) | p x = x : filter p xs | otherwise = filter p xs
|
|
162
|
+
map :: (a -> b) -> [a] -> [b]
|
|
163
|
+
map f [] = []
|
|
164
|
+
map f (x:xs) = f x : map f xs
|
|
165
|
+
any :: (a -> Bool) -> [a] -> Bool
|
|
166
|
+
all :: (a -> Bool) -> [a] -> Bool
|
|
167
|
+
any f (x:xs) = f x || any f xs
|
|
168
|
+
all f (x:xs) = f x && all f xs
|
|
169
|
+
foldl :: (a -> b -> a) -> a -> [b] -> a
|
|
170
|
+
foldl f z [] = z
|
|
171
|
+
foldl f z (x:xs) = foldl f (f z x) xs
|
|
172
|
+
foldl1 :: (a -> a -> a) -> [a] -> a
|
|
173
|
+
foldl1 f (x:xs) = foldl f x xs
|
|
174
|
+
foldl1 _ [] = error "Prelude.foldl1: empty list"
|
|
175
|
+
foldr :: (a -> b -> b) -> b -> [a] -> b
|
|
176
|
+
foldr f z [] = z
|
|
177
|
+
foldr f z (x:xs) = f x (foldr f z xs)
|
|
178
|
+
foldr1 :: (a -> a -> a) -> [a] -> a
|
|
179
|
+
foldr1 f [x] = x
|
|
180
|
+
foldr1 f (x:xs) = f x (foldr1 f xs)
|
|
181
|
+
foldr1 _ [] = error "Prelude.foldr1: empty list"
|
|
182
|
+
find :: Ord a => (a -> Bool) -> [a] -> Maybe a
|
|
183
|
+
find _ [] = Nothing
|
|
184
|
+
find f (x:xs) | f x = Just x | otherwise = find f xs
|
|
185
|
+
sort :: (Ord a) => [a] -> [a]
|
|
186
|
+
sort xs = sortBy compare xs
|
|
187
|
+
sortBy :: (a -> a -> Ordering) -> [a] -> [a]
|
|
188
|
+
sortBy cmp xs = foldr (insertBy cmp) [] xs
|
|
189
|
+
compare :: a -> a -> Ordering
|
|
190
|
+
compare x y | x == y = EQ | x <= y = LT | otherwise = GT
|
|
191
|
+
insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]
|
|
192
|
+
insertBy cmp x [] = [x]
|
|
193
|
+
insertBy cmp x ys@(y:ys') = case cmp x y of { GT -> y : insertBy cmp x ys'; _ -> x : ys }
|
|
194
|
+
flip :: (a -> b -> c) -> b -> a -> c
|
|
195
|
+
flip f x y = f y x
|
|
196
|
+
repeat :: a -> [a]
|
|
197
|
+
repeat x = x : (repeat x)
|
|
198
|
+
iterate :: (a -> a) -> a -> [a]
|
|
199
|
+
iterate f x = x : iterate f (f x)
|
|
200
|
+
replicate :: Int -> a -> [a]
|
|
201
|
+
replicate n x = take n (repeat x)
|
|
202
|
+
cycle :: [a] -> [a]
|
|
203
|
+
cycle [] = error "Prelude.cycle: empty list"
|
|
204
|
+
cycle xs = xs ++ (cycle xs)`;
|
|
205
|
+
//# sourceMappingURL=prelude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../src/prelude.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA2MC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ASTNode, Record, TypeAlias, TypeSignature, Visitor } from "@yukigo/ast";
|
|
2
|
+
import { Type, TypeScheme } from "./checker.js";
|
|
3
|
+
import { CoreHM } from "./core.js";
|
|
4
|
+
export declare class DeclarationCollectorVisitor implements Visitor<void> {
|
|
5
|
+
private errors;
|
|
6
|
+
private typeAliasMap;
|
|
7
|
+
private recordMap;
|
|
8
|
+
private signatureMap;
|
|
9
|
+
private coreHM;
|
|
10
|
+
constructor(errors: string[], typeAliasMap: Map<string, Type>, recordMap: Map<string, Type>, signatureMap: Map<string, TypeScheme>, coreHM: CoreHM);
|
|
11
|
+
visitTypeAlias(node: TypeAlias): void;
|
|
12
|
+
visitRecord(node: Record): void;
|
|
13
|
+
visitTypeSignature(node: TypeSignature): void;
|
|
14
|
+
visit(node: ASTNode): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { functionType, } from "./checker.js";
|
|
2
|
+
import { CoreHM } from "./core.js";
|
|
3
|
+
import { TypeBuilder } from "./TypeBuilder.js";
|
|
4
|
+
const builder = new TypeBuilder(new CoreHM());
|
|
5
|
+
export class DeclarationCollectorVisitor {
|
|
6
|
+
errors;
|
|
7
|
+
typeAliasMap;
|
|
8
|
+
recordMap;
|
|
9
|
+
signatureMap;
|
|
10
|
+
coreHM;
|
|
11
|
+
constructor(errors, typeAliasMap, recordMap, signatureMap, coreHM) {
|
|
12
|
+
this.errors = errors;
|
|
13
|
+
this.typeAliasMap = typeAliasMap;
|
|
14
|
+
this.recordMap = recordMap;
|
|
15
|
+
this.signatureMap = signatureMap;
|
|
16
|
+
this.coreHM = coreHM;
|
|
17
|
+
}
|
|
18
|
+
visitTypeAlias(node) {
|
|
19
|
+
const typeAliasIdentifier = node.identifier.value;
|
|
20
|
+
if (this.typeAliasMap.has(typeAliasIdentifier) ||
|
|
21
|
+
this.recordMap.has(typeAliasIdentifier)) {
|
|
22
|
+
this.errors.push(`Multiple declaration of '${typeAliasIdentifier}'.`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const { type, constraints } = builder.build(node.value);
|
|
26
|
+
this.typeAliasMap.set(typeAliasIdentifier, type);
|
|
27
|
+
}
|
|
28
|
+
visitRecord(node) {
|
|
29
|
+
const recordIdentifier = node.name.value;
|
|
30
|
+
if (this.typeAliasMap.has(recordIdentifier) ||
|
|
31
|
+
this.recordMap.has(recordIdentifier)) {
|
|
32
|
+
this.errors.push(`Multiple declaration of '${recordIdentifier}'.`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Save the record type itself
|
|
36
|
+
const recordType = {
|
|
37
|
+
type: "TypeConstructor",
|
|
38
|
+
name: recordIdentifier,
|
|
39
|
+
args: [],
|
|
40
|
+
};
|
|
41
|
+
this.recordMap.set(recordIdentifier, recordType);
|
|
42
|
+
// Add constructors to signature map as type schemes
|
|
43
|
+
for (const cons of node.contents) {
|
|
44
|
+
if (this.signatureMap.has(cons.name.value)) {
|
|
45
|
+
this.errors.push(`Constructor '${cons.name}' is already defined`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const paramTypes = cons.fields.map((field) => builder.build(field.value));
|
|
49
|
+
const returnType = {
|
|
50
|
+
type: "TypeConstructor",
|
|
51
|
+
name: recordIdentifier,
|
|
52
|
+
args: paramTypes.map(() => this.coreHM.freshVar()),
|
|
53
|
+
};
|
|
54
|
+
const funcType = paramTypes.reduceRight((acc, param) => functionType(param.type, acc), returnType);
|
|
55
|
+
// Generalize all free variables in the constructor type
|
|
56
|
+
const scheme = this.coreHM.generalize(new Map(), funcType);
|
|
57
|
+
this.signatureMap.set(cons.name.value, scheme);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
visitTypeSignature(node) {
|
|
61
|
+
const functionName = node.identifier.value;
|
|
62
|
+
if (this.signatureMap.has(functionName)) {
|
|
63
|
+
this.errors.push(`Function '${functionName}' has multiple type signatures`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const typeVarMap = new Map();
|
|
67
|
+
const { type, constraints } = builder.build(node.body, typeVarMap);
|
|
68
|
+
const quantifiers = Array.from(typeVarMap.values()).map((tv) => tv.id);
|
|
69
|
+
this.signatureMap.set(functionName, {
|
|
70
|
+
type: "TypeScheme",
|
|
71
|
+
quantifiers,
|
|
72
|
+
body: type,
|
|
73
|
+
constraints,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
visit(node) {
|
|
77
|
+
node.accept(this);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=DeclarationCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeclarationCollector.js","sourceRoot":"","sources":["../../src/typechecker/DeclarationCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Type as YukigoType } from "@yukigo/ast";
|
|
2
|
+
import { CoreHM } from "./core.js";
|
|
3
|
+
import { Type, TypeVar } from "./checker.js";
|
|
4
|
+
export declare class TypeBuilder {
|
|
5
|
+
private coreHM;
|
|
6
|
+
constructor(coreHM: CoreHM);
|
|
7
|
+
build(node: YukigoType, typeVarMap?: Map<string, TypeVar>): {
|
|
8
|
+
type: Type;
|
|
9
|
+
constraints: Map<number, string[]>;
|
|
10
|
+
};
|
|
11
|
+
private processConstraint;
|
|
12
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { SimpleType, TypeVar as ASTTypeVar, } from "@yukigo/ast";
|
|
2
|
+
import { typeMappings } from "../utils/types.js";
|
|
3
|
+
import { functionType } from "./checker.js";
|
|
4
|
+
export class TypeBuilder {
|
|
5
|
+
coreHM;
|
|
6
|
+
constructor(coreHM) {
|
|
7
|
+
this.coreHM = coreHM;
|
|
8
|
+
}
|
|
9
|
+
build(node, typeVarMap = new Map()) {
|
|
10
|
+
const constraintsMap = new Map();
|
|
11
|
+
// Local visitor to walk Yukigo type AST
|
|
12
|
+
const visitor = {
|
|
13
|
+
visitSimpleType: (n) => {
|
|
14
|
+
if (/^[a-z]/.test(n.value)) {
|
|
15
|
+
// Lowercase = type variable
|
|
16
|
+
if (!typeVarMap.has(n.value)) {
|
|
17
|
+
typeVarMap.set(n.value, {
|
|
18
|
+
type: "TypeVar",
|
|
19
|
+
...this.coreHM.freshVar(),
|
|
20
|
+
name: n.value,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// Collect constraints on this type var
|
|
24
|
+
for (const constraint of n.constraints) {
|
|
25
|
+
this.processConstraint(constraint, typeVarMap, constraintsMap);
|
|
26
|
+
}
|
|
27
|
+
return typeVarMap.get(n.value);
|
|
28
|
+
}
|
|
29
|
+
// Uppercase = type constructor (e.g., Int, Bool, List)
|
|
30
|
+
const primitive = typeMappings[n.value] || n.value;
|
|
31
|
+
return {
|
|
32
|
+
type: "TypeConstructor",
|
|
33
|
+
name: primitive,
|
|
34
|
+
args: [],
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
visitTypeVar: (n) => {
|
|
38
|
+
// Same as SimpleType for type variables
|
|
39
|
+
if (!typeVarMap.has(n.value)) {
|
|
40
|
+
typeVarMap.set(n.value, {
|
|
41
|
+
type: "TypeVar",
|
|
42
|
+
...this.coreHM.freshVar(),
|
|
43
|
+
name: n.value,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
for (const constraint of n.constraints) {
|
|
47
|
+
this.processConstraint(constraint, typeVarMap, constraintsMap);
|
|
48
|
+
}
|
|
49
|
+
return typeVarMap.get(n.value);
|
|
50
|
+
},
|
|
51
|
+
visitListType: (n) => {
|
|
52
|
+
const elementType = n.values.accept(visitor);
|
|
53
|
+
return {
|
|
54
|
+
type: "TypeConstructor",
|
|
55
|
+
name: "List",
|
|
56
|
+
args: [elementType],
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
visitTupleType: (n) => {
|
|
60
|
+
const elementTypes = n.values.map((v) => v.accept(visitor));
|
|
61
|
+
return {
|
|
62
|
+
type: "TypeConstructor",
|
|
63
|
+
name: "Tuple",
|
|
64
|
+
args: elementTypes,
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
visitTypeApplication: (n) => {
|
|
68
|
+
return this.coreHM.freshVar();
|
|
69
|
+
},
|
|
70
|
+
visitParameterizedType: (n) => {
|
|
71
|
+
// This represents function types with constraints, e.g.:
|
|
72
|
+
// (a, b) => c with Eq a
|
|
73
|
+
const returnType = n.returnType.accept(visitor);
|
|
74
|
+
const paramTypes = n.inputs.map((input) => input.accept(visitor));
|
|
75
|
+
// Build function type: a -> b -> c
|
|
76
|
+
const funcType = paramTypes.reduceRight((acc, param) => functionType(param, acc), returnType);
|
|
77
|
+
// Process constraints
|
|
78
|
+
for (const constraint of n.constraints) {
|
|
79
|
+
this.processConstraint(constraint, typeVarMap, constraintsMap);
|
|
80
|
+
}
|
|
81
|
+
return funcType;
|
|
82
|
+
},
|
|
83
|
+
visitConstrainedType: (n) => {
|
|
84
|
+
// This is unusual at top level; usually constraints appear on type vars or signatures
|
|
85
|
+
// For now, ignore or throw
|
|
86
|
+
throw new Error("ConstrainedType not expected in this context");
|
|
87
|
+
},
|
|
88
|
+
visit(node) {
|
|
89
|
+
return node.accept(visitor);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
const type = node.accept(visitor);
|
|
93
|
+
return { type, constraints: constraintsMap };
|
|
94
|
+
}
|
|
95
|
+
processConstraint(constraint, typeVarMap, constraintsMap) {
|
|
96
|
+
// Assume constraint is of form `Eq a`, so first param is a type var
|
|
97
|
+
if (constraint.parameters.length === 0)
|
|
98
|
+
return;
|
|
99
|
+
const firstParam = constraint.parameters[0];
|
|
100
|
+
// Only handle if it's a type variable
|
|
101
|
+
if ((firstParam instanceof SimpleType || firstParam instanceof ASTTypeVar) &&
|
|
102
|
+
/^[a-z]/.test(firstParam.value)) {
|
|
103
|
+
const tv = typeVarMap.get(firstParam.value);
|
|
104
|
+
if (tv) {
|
|
105
|
+
if (!constraintsMap.has(tv.id)) {
|
|
106
|
+
constraintsMap.set(tv.id, []);
|
|
107
|
+
}
|
|
108
|
+
constraintsMap.get(tv.id).push(constraint.name);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=TypeBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeBuilder.js","sourceRoot":"","sources":["../../src/typechecker/TypeBuilder.ts"],"names":[],"mappings":"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"}
|