@opensip-cli/checks-universal 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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +31 -0
- package/dist/__tests__/all-checks-execute.test.d.ts +17 -0
- package/dist/__tests__/all-checks-execute.test.d.ts.map +1 -0
- package/dist/__tests__/all-checks-execute.test.js +452 -0
- package/dist/__tests__/all-checks-execute.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-10.test.d.ts +8 -0
- package/dist/__tests__/behavior-fixtures-10.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-10.test.js +200 -0
- package/dist/__tests__/behavior-fixtures-10.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-11.test.d.ts +8 -0
- package/dist/__tests__/behavior-fixtures-11.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-11.test.js +120 -0
- package/dist/__tests__/behavior-fixtures-11.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-12.test.d.ts +8 -0
- package/dist/__tests__/behavior-fixtures-12.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-12.test.js +157 -0
- package/dist/__tests__/behavior-fixtures-12.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-2.test.d.ts +8 -0
- package/dist/__tests__/behavior-fixtures-2.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-2.test.js +785 -0
- package/dist/__tests__/behavior-fixtures-2.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-3.test.d.ts +6 -0
- package/dist/__tests__/behavior-fixtures-3.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-3.test.js +663 -0
- package/dist/__tests__/behavior-fixtures-3.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-4.test.d.ts +5 -0
- package/dist/__tests__/behavior-fixtures-4.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-4.test.js +612 -0
- package/dist/__tests__/behavior-fixtures-4.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-5.test.d.ts +5 -0
- package/dist/__tests__/behavior-fixtures-5.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-5.test.js +469 -0
- package/dist/__tests__/behavior-fixtures-5.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-6.test.d.ts +8 -0
- package/dist/__tests__/behavior-fixtures-6.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-6.test.js +591 -0
- package/dist/__tests__/behavior-fixtures-6.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-7.test.d.ts +5 -0
- package/dist/__tests__/behavior-fixtures-7.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-7.test.js +662 -0
- package/dist/__tests__/behavior-fixtures-7.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-8.test.d.ts +11 -0
- package/dist/__tests__/behavior-fixtures-8.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-8.test.js +634 -0
- package/dist/__tests__/behavior-fixtures-8.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures-9.test.d.ts +11 -0
- package/dist/__tests__/behavior-fixtures-9.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures-9.test.js +271 -0
- package/dist/__tests__/behavior-fixtures-9.test.js.map +1 -0
- package/dist/__tests__/behavior-fixtures.test.d.ts +14 -0
- package/dist/__tests__/behavior-fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/behavior-fixtures.test.js +1423 -0
- package/dist/__tests__/behavior-fixtures.test.js.map +1 -0
- package/dist/__tests__/checks.test.d.ts +2 -0
- package/dist/__tests__/checks.test.d.ts.map +1 -0
- package/dist/__tests__/checks.test.js +61 -0
- package/dist/__tests__/checks.test.js.map +1 -0
- package/dist/__tests__/env-var-validation.test.d.ts +14 -0
- package/dist/__tests__/env-var-validation.test.d.ts.map +1 -0
- package/dist/__tests__/env-var-validation.test.js +53 -0
- package/dist/__tests__/env-var-validation.test.js.map +1 -0
- package/dist/__tests__/file-length-limit.test.d.ts +2 -0
- package/dist/__tests__/file-length-limit.test.d.ts.map +1 -0
- package/dist/__tests__/file-length-limit.test.js +29 -0
- package/dist/__tests__/file-length-limit.test.js.map +1 -0
- package/dist/__tests__/fixture-coverage.allowlist.d.ts +18 -0
- package/dist/__tests__/fixture-coverage.allowlist.d.ts.map +1 -0
- package/dist/__tests__/fixture-coverage.allowlist.js +35 -0
- package/dist/__tests__/fixture-coverage.allowlist.js.map +1 -0
- package/dist/__tests__/fixture-coverage.test.d.ts +13 -0
- package/dist/__tests__/fixture-coverage.test.d.ts.map +1 -0
- package/dist/__tests__/fixture-coverage.test.js +57 -0
- package/dist/__tests__/fixture-coverage.test.js.map +1 -0
- package/dist/__tests__/iic.test.d.ts +15 -0
- package/dist/__tests__/iic.test.d.ts.map +1 -0
- package/dist/__tests__/iic.test.js +316 -0
- package/dist/__tests__/iic.test.js.map +1 -0
- package/dist/__tests__/no-skipped-tests.test.d.ts +14 -0
- package/dist/__tests__/no-skipped-tests.test.d.ts.map +1 -0
- package/dist/__tests__/no-skipped-tests.test.js +144 -0
- package/dist/__tests__/no-skipped-tests.test.js.map +1 -0
- package/dist/__tests__/no-todo-comments.test.d.ts +2 -0
- package/dist/__tests__/no-todo-comments.test.d.ts.map +1 -0
- package/dist/__tests__/no-todo-comments.test.js +31 -0
- package/dist/__tests__/no-todo-comments.test.js.map +1 -0
- package/dist/__tests__/no-unimplemented-markers.test.d.ts +2 -0
- package/dist/__tests__/no-unimplemented-markers.test.d.ts.map +1 -0
- package/dist/__tests__/no-unimplemented-markers.test.js +140 -0
- package/dist/__tests__/no-unimplemented-markers.test.js.map +1 -0
- package/dist/__tests__/public-api-jsdoc-scope.test.d.ts +10 -0
- package/dist/__tests__/public-api-jsdoc-scope.test.d.ts.map +1 -0
- package/dist/__tests__/public-api-jsdoc-scope.test.js +176 -0
- package/dist/__tests__/public-api-jsdoc-scope.test.js.map +1 -0
- package/dist/__tests__/resilience-fp.test.d.ts +14 -0
- package/dist/__tests__/resilience-fp.test.d.ts.map +1 -0
- package/dist/__tests__/resilience-fp.test.js +110 -0
- package/dist/__tests__/resilience-fp.test.js.map +1 -0
- package/dist/checks/architecture/__tests__/no-kebab-option-indexing.test.d.ts +2 -0
- package/dist/checks/architecture/__tests__/no-kebab-option-indexing.test.d.ts.map +1 -0
- package/dist/checks/architecture/__tests__/no-kebab-option-indexing.test.js +32 -0
- package/dist/checks/architecture/__tests__/no-kebab-option-indexing.test.js.map +1 -0
- package/dist/checks/architecture/__tests__/tool-has-manifest.test.d.ts +2 -0
- package/dist/checks/architecture/__tests__/tool-has-manifest.test.d.ts.map +1 -0
- package/dist/checks/architecture/__tests__/tool-has-manifest.test.js +152 -0
- package/dist/checks/architecture/__tests__/tool-has-manifest.test.js.map +1 -0
- package/dist/checks/architecture/__tests__/vitest-config-required-with-tests.test.d.ts +2 -0
- package/dist/checks/architecture/__tests__/vitest-config-required-with-tests.test.d.ts.map +1 -0
- package/dist/checks/architecture/__tests__/vitest-config-required-with-tests.test.js +129 -0
- package/dist/checks/architecture/__tests__/vitest-config-required-with-tests.test.js.map +1 -0
- package/dist/checks/architecture/_yaml-doc-bindings.d.ts +23 -0
- package/dist/checks/architecture/_yaml-doc-bindings.d.ts.map +1 -0
- package/dist/checks/architecture/_yaml-doc-bindings.js +29 -0
- package/dist/checks/architecture/_yaml-doc-bindings.js.map +1 -0
- package/dist/checks/architecture/dependencies/index.d.ts +2 -0
- package/dist/checks/architecture/dependencies/index.d.ts.map +1 -0
- package/dist/checks/architecture/dependencies/index.js +2 -0
- package/dist/checks/architecture/dependencies/index.js.map +1 -0
- package/dist/checks/architecture/dependencies/no-duplicate-packages.d.ts +11 -0
- package/dist/checks/architecture/dependencies/no-duplicate-packages.d.ts.map +1 -0
- package/dist/checks/architecture/dependencies/no-duplicate-packages.js +171 -0
- package/dist/checks/architecture/dependencies/no-duplicate-packages.js.map +1 -0
- package/dist/checks/architecture/docker-best-practices.d.ts +23 -0
- package/dist/checks/architecture/docker-best-practices.d.ts.map +1 -0
- package/dist/checks/architecture/docker-best-practices.js +427 -0
- package/dist/checks/architecture/docker-best-practices.js.map +1 -0
- package/dist/checks/architecture/docker-ignore-validation.d.ts +18 -0
- package/dist/checks/architecture/docker-ignore-validation.d.ts.map +1 -0
- package/dist/checks/architecture/docker-ignore-validation.js +117 -0
- package/dist/checks/architecture/docker-ignore-validation.js.map +1 -0
- package/dist/checks/architecture/docker-version-sync.d.ts +16 -0
- package/dist/checks/architecture/docker-version-sync.d.ts.map +1 -0
- package/dist/checks/architecture/docker-version-sync.js +193 -0
- package/dist/checks/architecture/docker-version-sync.js.map +1 -0
- package/dist/checks/architecture/env-var-validation.d.ts +14 -0
- package/dist/checks/architecture/env-var-validation.d.ts.map +1 -0
- package/dist/checks/architecture/env-var-validation.js +289 -0
- package/dist/checks/architecture/env-var-validation.js.map +1 -0
- package/dist/checks/architecture/heavy-import-detection.d.ts +11 -0
- package/dist/checks/architecture/heavy-import-detection.d.ts.map +1 -0
- package/dist/checks/architecture/heavy-import-detection.js +91 -0
- package/dist/checks/architecture/heavy-import-detection.js.map +1 -0
- package/dist/checks/architecture/index.d.ts +16 -0
- package/dist/checks/architecture/index.d.ts.map +1 -0
- package/dist/checks/architecture/index.js +16 -0
- package/dist/checks/architecture/index.js.map +1 -0
- package/dist/checks/architecture/modules/empty-package-detection.d.ts +11 -0
- package/dist/checks/architecture/modules/empty-package-detection.d.ts.map +1 -0
- package/dist/checks/architecture/modules/empty-package-detection.js +277 -0
- package/dist/checks/architecture/modules/empty-package-detection.js.map +1 -0
- package/dist/checks/architecture/modules/index.d.ts +3 -0
- package/dist/checks/architecture/modules/index.d.ts.map +1 -0
- package/dist/checks/architecture/modules/index.js +3 -0
- package/dist/checks/architecture/modules/index.js.map +1 -0
- package/dist/checks/architecture/modules/interface-implementation-consistency.d.ts +12 -0
- package/dist/checks/architecture/modules/interface-implementation-consistency.d.ts.map +1 -0
- package/dist/checks/architecture/modules/interface-implementation-consistency.js +555 -0
- package/dist/checks/architecture/modules/interface-implementation-consistency.js.map +1 -0
- package/dist/checks/architecture/no-custom-event-emitter.d.ts +11 -0
- package/dist/checks/architecture/no-custom-event-emitter.d.ts.map +1 -0
- package/dist/checks/architecture/no-custom-event-emitter.js +123 -0
- package/dist/checks/architecture/no-custom-event-emitter.js.map +1 -0
- package/dist/checks/architecture/no-kebab-option-indexing.d.ts +33 -0
- package/dist/checks/architecture/no-kebab-option-indexing.d.ts.map +1 -0
- package/dist/checks/architecture/no-kebab-option-indexing.js +81 -0
- package/dist/checks/architecture/no-kebab-option-indexing.js.map +1 -0
- package/dist/checks/architecture/node-version-consistency.d.ts +22 -0
- package/dist/checks/architecture/node-version-consistency.d.ts.map +1 -0
- package/dist/checks/architecture/node-version-consistency.js +225 -0
- package/dist/checks/architecture/node-version-consistency.js.map +1 -0
- package/dist/checks/architecture/project-readme-existence.d.ts +13 -0
- package/dist/checks/architecture/project-readme-existence.d.ts.map +1 -0
- package/dist/checks/architecture/project-readme-existence.js +55 -0
- package/dist/checks/architecture/project-readme-existence.js.map +1 -0
- package/dist/checks/architecture/stale-build-artifacts.d.ts +10 -0
- package/dist/checks/architecture/stale-build-artifacts.d.ts.map +1 -0
- package/dist/checks/architecture/stale-build-artifacts.js +55 -0
- package/dist/checks/architecture/stale-build-artifacts.js.map +1 -0
- package/dist/checks/architecture/tool-has-manifest.d.ts +27 -0
- package/dist/checks/architecture/tool-has-manifest.d.ts.map +1 -0
- package/dist/checks/architecture/tool-has-manifest.js +135 -0
- package/dist/checks/architecture/tool-has-manifest.js.map +1 -0
- package/dist/checks/architecture/vitest-config-extends-base.d.ts +15 -0
- package/dist/checks/architecture/vitest-config-extends-base.d.ts.map +1 -0
- package/dist/checks/architecture/vitest-config-extends-base.js +104 -0
- package/dist/checks/architecture/vitest-config-extends-base.js.map +1 -0
- package/dist/checks/architecture/vitest-config-required-with-tests.d.ts +49 -0
- package/dist/checks/architecture/vitest-config-required-with-tests.d.ts.map +1 -0
- package/dist/checks/architecture/vitest-config-required-with-tests.js +199 -0
- package/dist/checks/architecture/vitest-config-required-with-tests.js.map +1 -0
- package/dist/checks/documentation/_directives/eslint.d.ts +9 -0
- package/dist/checks/documentation/_directives/eslint.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/eslint.js +168 -0
- package/dist/checks/documentation/_directives/eslint.js.map +1 -0
- package/dist/checks/documentation/_directives/fitness.d.ts +9 -0
- package/dist/checks/documentation/_directives/fitness.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/fitness.js +64 -0
- package/dist/checks/documentation/_directives/fitness.js.map +1 -0
- package/dist/checks/documentation/_directives/graph.d.ts +10 -0
- package/dist/checks/documentation/_directives/graph.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/graph.js +65 -0
- package/dist/checks/documentation/_directives/graph.js.map +1 -0
- package/dist/checks/documentation/_directives/graph.test.d.ts +2 -0
- package/dist/checks/documentation/_directives/graph.test.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/graph.test.js +54 -0
- package/dist/checks/documentation/_directives/graph.test.js.map +1 -0
- package/dist/checks/documentation/_directives/semgrep.d.ts +8 -0
- package/dist/checks/documentation/_directives/semgrep.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/semgrep.js +72 -0
- package/dist/checks/documentation/_directives/semgrep.js.map +1 -0
- package/dist/checks/documentation/_directives/types.d.ts +21 -0
- package/dist/checks/documentation/_directives/types.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/types.js +9 -0
- package/dist/checks/documentation/_directives/types.js.map +1 -0
- package/dist/checks/documentation/_directives/typescript.d.ts +10 -0
- package/dist/checks/documentation/_directives/typescript.d.ts.map +1 -0
- package/dist/checks/documentation/_directives/typescript.js +54 -0
- package/dist/checks/documentation/_directives/typescript.js.map +1 -0
- package/dist/checks/documentation/_public-api-graph.d.ts +30 -0
- package/dist/checks/documentation/_public-api-graph.d.ts.map +1 -0
- package/dist/checks/documentation/_public-api-graph.js +304 -0
- package/dist/checks/documentation/_public-api-graph.js.map +1 -0
- package/dist/checks/documentation/directive-audit.d.ts +26 -0
- package/dist/checks/documentation/directive-audit.d.ts.map +1 -0
- package/dist/checks/documentation/directive-audit.js +144 -0
- package/dist/checks/documentation/directive-audit.js.map +1 -0
- package/dist/checks/documentation/index.d.ts +3 -0
- package/dist/checks/documentation/index.d.ts.map +1 -0
- package/dist/checks/documentation/index.js +3 -0
- package/dist/checks/documentation/index.js.map +1 -0
- package/dist/checks/documentation/public-api-jsdoc.d.ts +10 -0
- package/dist/checks/documentation/public-api-jsdoc.d.ts.map +1 -0
- package/dist/checks/documentation/public-api-jsdoc.js +131 -0
- package/dist/checks/documentation/public-api-jsdoc.js.map +1 -0
- package/dist/checks/file-length-limit.d.ts +16 -0
- package/dist/checks/file-length-limit.d.ts.map +1 -0
- package/dist/checks/file-length-limit.js +47 -0
- package/dist/checks/file-length-limit.js.map +1 -0
- package/dist/checks/index.d.ts +16 -0
- package/dist/checks/index.d.ts.map +1 -0
- package/dist/checks/index.js +16 -0
- package/dist/checks/index.js.map +1 -0
- package/dist/checks/no-todo-comments.d.ts +18 -0
- package/dist/checks/no-todo-comments.d.ts.map +1 -0
- package/dist/checks/no-todo-comments.js +79 -0
- package/dist/checks/no-todo-comments.js.map +1 -0
- package/dist/checks/no-unimplemented-markers.d.ts +24 -0
- package/dist/checks/no-unimplemented-markers.d.ts.map +1 -0
- package/dist/checks/no-unimplemented-markers.js +198 -0
- package/dist/checks/no-unimplemented-markers.js.map +1 -0
- package/dist/checks/quality/api/graphql-offset-pagination.d.ts +9 -0
- package/dist/checks/quality/api/graphql-offset-pagination.d.ts.map +1 -0
- package/dist/checks/quality/api/graphql-offset-pagination.js +63 -0
- package/dist/checks/quality/api/graphql-offset-pagination.js.map +1 -0
- package/dist/checks/quality/api/index.d.ts +3 -0
- package/dist/checks/quality/api/index.d.ts.map +1 -0
- package/dist/checks/quality/api/index.js +3 -0
- package/dist/checks/quality/api/index.js.map +1 -0
- package/dist/checks/quality/api/zod-openapi-sync.d.ts +13 -0
- package/dist/checks/quality/api/zod-openapi-sync.d.ts.map +1 -0
- package/dist/checks/quality/api/zod-openapi-sync.js +88 -0
- package/dist/checks/quality/api/zod-openapi-sync.js.map +1 -0
- package/dist/checks/quality/code-structure/dead-code.d.ts +12 -0
- package/dist/checks/quality/code-structure/dead-code.d.ts.map +1 -0
- package/dist/checks/quality/code-structure/dead-code.js +238 -0
- package/dist/checks/quality/code-structure/dead-code.js.map +1 -0
- package/dist/checks/quality/code-structure/index.d.ts +5 -0
- package/dist/checks/quality/code-structure/index.d.ts.map +1 -0
- package/dist/checks/quality/code-structure/index.js +5 -0
- package/dist/checks/quality/code-structure/index.js.map +1 -0
- package/dist/checks/quality/code-structure/no-ai-attribution.d.ts +25 -0
- package/dist/checks/quality/code-structure/no-ai-attribution.d.ts.map +1 -0
- package/dist/checks/quality/code-structure/no-ai-attribution.js +76 -0
- package/dist/checks/quality/code-structure/no-ai-attribution.js.map +1 -0
- package/dist/checks/quality/code-structure/no-console-log.d.ts +17 -0
- package/dist/checks/quality/code-structure/no-console-log.d.ts.map +1 -0
- package/dist/checks/quality/code-structure/no-console-log.js +106 -0
- package/dist/checks/quality/code-structure/no-console-log.js.map +1 -0
- package/dist/checks/quality/code-structure/no-process-artifacts.d.ts +25 -0
- package/dist/checks/quality/code-structure/no-process-artifacts.d.ts.map +1 -0
- package/dist/checks/quality/code-structure/no-process-artifacts.js +104 -0
- package/dist/checks/quality/code-structure/no-process-artifacts.js.map +1 -0
- package/dist/checks/quality/dependency-version-consistency.d.ts +20 -0
- package/dist/checks/quality/dependency-version-consistency.d.ts.map +1 -0
- package/dist/checks/quality/dependency-version-consistency.js +266 -0
- package/dist/checks/quality/dependency-version-consistency.js.map +1 -0
- package/dist/checks/quality/fitness-ignore-hygiene.d.ts +10 -0
- package/dist/checks/quality/fitness-ignore-hygiene.d.ts.map +1 -0
- package/dist/checks/quality/fitness-ignore-hygiene.js +93 -0
- package/dist/checks/quality/fitness-ignore-hygiene.js.map +1 -0
- package/dist/checks/quality/frontend/expo-vector-icons.d.ts +13 -0
- package/dist/checks/quality/frontend/expo-vector-icons.d.ts.map +1 -0
- package/dist/checks/quality/frontend/expo-vector-icons.js +80 -0
- package/dist/checks/quality/frontend/expo-vector-icons.js.map +1 -0
- package/dist/checks/quality/frontend/image-optimization.d.ts +13 -0
- package/dist/checks/quality/frontend/image-optimization.d.ts.map +1 -0
- package/dist/checks/quality/frontend/image-optimization.js +166 -0
- package/dist/checks/quality/frontend/image-optimization.js.map +1 -0
- package/dist/checks/quality/frontend/index.d.ts +4 -0
- package/dist/checks/quality/frontend/index.d.ts.map +1 -0
- package/dist/checks/quality/frontend/index.js +4 -0
- package/dist/checks/quality/frontend/index.js.map +1 -0
- package/dist/checks/quality/frontend/navigation-typing.d.ts +12 -0
- package/dist/checks/quality/frontend/navigation-typing.d.ts.map +1 -0
- package/dist/checks/quality/frontend/navigation-typing.js +77 -0
- package/dist/checks/quality/frontend/navigation-typing.js.map +1 -0
- package/dist/checks/quality/graph-ignore-hygiene.d.ts +10 -0
- package/dist/checks/quality/graph-ignore-hygiene.d.ts.map +1 -0
- package/dist/checks/quality/graph-ignore-hygiene.js +95 -0
- package/dist/checks/quality/graph-ignore-hygiene.js.map +1 -0
- package/dist/checks/quality/graph-ignore-hygiene.test.d.ts +14 -0
- package/dist/checks/quality/graph-ignore-hygiene.test.d.ts.map +1 -0
- package/dist/checks/quality/graph-ignore-hygiene.test.js +58 -0
- package/dist/checks/quality/graph-ignore-hygiene.test.js.map +1 -0
- package/dist/checks/quality/index.d.ts +16 -0
- package/dist/checks/quality/index.d.ts.map +1 -0
- package/dist/checks/quality/index.js +16 -0
- package/dist/checks/quality/index.js.map +1 -0
- package/dist/checks/quality/linting/eslint-justifications.d.ts +12 -0
- package/dist/checks/quality/linting/eslint-justifications.d.ts.map +1 -0
- package/dist/checks/quality/linting/eslint-justifications.js +328 -0
- package/dist/checks/quality/linting/eslint-justifications.js.map +1 -0
- package/dist/checks/quality/linting/index.d.ts +4 -0
- package/dist/checks/quality/linting/index.d.ts.map +1 -0
- package/dist/checks/quality/linting/index.js +4 -0
- package/dist/checks/quality/linting/index.js.map +1 -0
- package/dist/checks/quality/linting/semgrep-justifications.d.ts +16 -0
- package/dist/checks/quality/linting/semgrep-justifications.d.ts.map +1 -0
- package/dist/checks/quality/linting/semgrep-justifications.js +229 -0
- package/dist/checks/quality/linting/semgrep-justifications.js.map +1 -0
- package/dist/checks/quality/linting/typescript-directive-hygiene.d.ts +12 -0
- package/dist/checks/quality/linting/typescript-directive-hygiene.d.ts.map +1 -0
- package/dist/checks/quality/linting/typescript-directive-hygiene.js +142 -0
- package/dist/checks/quality/linting/typescript-directive-hygiene.js.map +1 -0
- package/dist/checks/quality/no-compatibility-layer-names.d.ts +13 -0
- package/dist/checks/quality/no-compatibility-layer-names.d.ts.map +1 -0
- package/dist/checks/quality/no-compatibility-layer-names.js +100 -0
- package/dist/checks/quality/no-compatibility-layer-names.js.map +1 -0
- package/dist/checks/quality/no-deprecated-tags.d.ts +11 -0
- package/dist/checks/quality/no-deprecated-tags.d.ts.map +1 -0
- package/dist/checks/quality/no-deprecated-tags.js +76 -0
- package/dist/checks/quality/no-deprecated-tags.js.map +1 -0
- package/dist/checks/quality/no-markdown-references.d.ts +16 -0
- package/dist/checks/quality/no-markdown-references.d.ts.map +1 -0
- package/dist/checks/quality/no-markdown-references.js +145 -0
- package/dist/checks/quality/no-markdown-references.js.map +1 -0
- package/dist/checks/quality/no-raw-regex-on-code.d.ts +9 -0
- package/dist/checks/quality/no-raw-regex-on-code.d.ts.map +1 -0
- package/dist/checks/quality/no-raw-regex-on-code.js +61 -0
- package/dist/checks/quality/no-raw-regex-on-code.js.map +1 -0
- package/dist/checks/quality/no-temporary-workarounds.d.ts +11 -0
- package/dist/checks/quality/no-temporary-workarounds.d.ts.map +1 -0
- package/dist/checks/quality/no-temporary-workarounds.js +69 -0
- package/dist/checks/quality/no-temporary-workarounds.js.map +1 -0
- package/dist/checks/quality/no-window-alert.d.ts +19 -0
- package/dist/checks/quality/no-window-alert.d.ts.map +1 -0
- package/dist/checks/quality/no-window-alert.js +74 -0
- package/dist/checks/quality/no-window-alert.js.map +1 -0
- package/dist/checks/quality/observability/index.d.ts +2 -0
- package/dist/checks/quality/observability/index.d.ts.map +1 -0
- package/dist/checks/quality/observability/index.js +2 -0
- package/dist/checks/quality/observability/index.js.map +1 -0
- package/dist/checks/quality/observability/pino-serializer-coverage.d.ts +15 -0
- package/dist/checks/quality/observability/pino-serializer-coverage.d.ts.map +1 -0
- package/dist/checks/quality/observability/pino-serializer-coverage.js +209 -0
- package/dist/checks/quality/observability/pino-serializer-coverage.js.map +1 -0
- package/dist/checks/quality/patterns/async-state-pattern.d.ts +14 -0
- package/dist/checks/quality/patterns/async-state-pattern.d.ts.map +1 -0
- package/dist/checks/quality/patterns/async-state-pattern.js +80 -0
- package/dist/checks/quality/patterns/async-state-pattern.js.map +1 -0
- package/dist/checks/quality/patterns/index.d.ts +4 -0
- package/dist/checks/quality/patterns/index.d.ts.map +1 -0
- package/dist/checks/quality/patterns/index.js +4 -0
- package/dist/checks/quality/patterns/index.js.map +1 -0
- package/dist/checks/quality/patterns/no-non-null-assertions.d.ts +10 -0
- package/dist/checks/quality/patterns/no-non-null-assertions.d.ts.map +1 -0
- package/dist/checks/quality/patterns/no-non-null-assertions.js +97 -0
- package/dist/checks/quality/patterns/no-non-null-assertions.js.map +1 -0
- package/dist/checks/quality/patterns/performance-anti-patterns.d.ts +16 -0
- package/dist/checks/quality/patterns/performance-anti-patterns.d.ts.map +1 -0
- package/dist/checks/quality/patterns/performance-anti-patterns.js +239 -0
- package/dist/checks/quality/patterns/performance-anti-patterns.js.map +1 -0
- package/dist/checks/resilience/_helpers/config-validation.d.ts +27 -0
- package/dist/checks/resilience/_helpers/config-validation.d.ts.map +1 -0
- package/dist/checks/resilience/_helpers/config-validation.js +61 -0
- package/dist/checks/resilience/_helpers/config-validation.js.map +1 -0
- package/dist/checks/resilience/batch-operations.d.ts +22 -0
- package/dist/checks/resilience/batch-operations.d.ts.map +1 -0
- package/dist/checks/resilience/batch-operations.js +422 -0
- package/dist/checks/resilience/batch-operations.js.map +1 -0
- package/dist/checks/resilience/cache-ttl-validation.d.ts +13 -0
- package/dist/checks/resilience/cache-ttl-validation.d.ts.map +1 -0
- package/dist/checks/resilience/cache-ttl-validation.js +222 -0
- package/dist/checks/resilience/cache-ttl-validation.js.map +1 -0
- package/dist/checks/resilience/catch-clause-safety.d.ts +12 -0
- package/dist/checks/resilience/catch-clause-safety.d.ts.map +1 -0
- package/dist/checks/resilience/catch-clause-safety.js +110 -0
- package/dist/checks/resilience/catch-clause-safety.js.map +1 -0
- package/dist/checks/resilience/dangerous-config-defaults.d.ts +11 -0
- package/dist/checks/resilience/dangerous-config-defaults.d.ts.map +1 -0
- package/dist/checks/resilience/dangerous-config-defaults.js +304 -0
- package/dist/checks/resilience/dangerous-config-defaults.js.map +1 -0
- package/dist/checks/resilience/error-code-registration.d.ts +11 -0
- package/dist/checks/resilience/error-code-registration.d.ts.map +1 -0
- package/dist/checks/resilience/error-code-registration.js +88 -0
- package/dist/checks/resilience/error-code-registration.js.map +1 -0
- package/dist/checks/resilience/event-patterns.d.ts +21 -0
- package/dist/checks/resilience/event-patterns.d.ts.map +1 -0
- package/dist/checks/resilience/event-patterns.js +232 -0
- package/dist/checks/resilience/event-patterns.js.map +1 -0
- package/dist/checks/resilience/exit-code-correctness.d.ts +12 -0
- package/dist/checks/resilience/exit-code-correctness.d.ts.map +1 -0
- package/dist/checks/resilience/exit-code-correctness.js +107 -0
- package/dist/checks/resilience/exit-code-correctness.js.map +1 -0
- package/dist/checks/resilience/index.d.ts +18 -0
- package/dist/checks/resilience/index.d.ts.map +1 -0
- package/dist/checks/resilience/index.js +18 -0
- package/dist/checks/resilience/index.js.map +1 -0
- package/dist/checks/resilience/no-hardcoded-timeouts.d.ts +10 -0
- package/dist/checks/resilience/no-hardcoded-timeouts.d.ts.map +1 -0
- package/dist/checks/resilience/no-hardcoded-timeouts.js +291 -0
- package/dist/checks/resilience/no-hardcoded-timeouts.js.map +1 -0
- package/dist/checks/resilience/no-process-exit-in-finally.d.ts +11 -0
- package/dist/checks/resilience/no-process-exit-in-finally.d.ts.map +1 -0
- package/dist/checks/resilience/no-process-exit-in-finally.js +89 -0
- package/dist/checks/resilience/no-process-exit-in-finally.js.map +1 -0
- package/dist/checks/resilience/readline-cleanup.d.ts +11 -0
- package/dist/checks/resilience/readline-cleanup.d.ts.map +1 -0
- package/dist/checks/resilience/readline-cleanup.js +107 -0
- package/dist/checks/resilience/readline-cleanup.js.map +1 -0
- package/dist/checks/resilience/recovery-patterns.d.ts +25 -0
- package/dist/checks/resilience/recovery-patterns.d.ts.map +1 -0
- package/dist/checks/resilience/recovery-patterns.js +273 -0
- package/dist/checks/resilience/recovery-patterns.js.map +1 -0
- package/dist/checks/resilience/reentrancy-guard.d.ts +12 -0
- package/dist/checks/resilience/reentrancy-guard.d.ts.map +1 -0
- package/dist/checks/resilience/reentrancy-guard.js +86 -0
- package/dist/checks/resilience/reentrancy-guard.js.map +1 -0
- package/dist/checks/resilience/retry-config-validation.d.ts +13 -0
- package/dist/checks/resilience/retry-config-validation.d.ts.map +1 -0
- package/dist/checks/resilience/retry-config-validation.js +159 -0
- package/dist/checks/resilience/retry-config-validation.js.map +1 -0
- package/dist/checks/resilience/sentry/_helpers/sentry.d.ts +25 -0
- package/dist/checks/resilience/sentry/_helpers/sentry.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/_helpers/sentry.js +68 -0
- package/dist/checks/resilience/sentry/_helpers/sentry.js.map +1 -0
- package/dist/checks/resilience/sentry/index.d.ts +8 -0
- package/dist/checks/resilience/sentry/index.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/index.js +8 -0
- package/dist/checks/resilience/sentry/index.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-dsn-configured.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-dsn-configured.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-dsn-configured.js +55 -0
- package/dist/checks/resilience/sentry/sentry-dsn-configured.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-environment-set.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-environment-set.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-environment-set.js +51 -0
- package/dist/checks/resilience/sentry/sentry-environment-set.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-error-boundary.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-error-boundary.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-error-boundary.js +75 -0
- package/dist/checks/resilience/sentry/sentry-error-boundary.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-pii-scrubbing.d.ts +13 -0
- package/dist/checks/resilience/sentry/sentry-pii-scrubbing.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-pii-scrubbing.js +125 -0
- package/dist/checks/resilience/sentry/sentry-pii-scrubbing.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-release-set.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-release-set.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-release-set.js +51 -0
- package/dist/checks/resilience/sentry/sentry-release-set.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-sample-rate.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-sample-rate.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-sample-rate.js +78 -0
- package/dist/checks/resilience/sentry/sentry-sample-rate.js.map +1 -0
- package/dist/checks/resilience/sentry/sentry-source-maps.d.ts +12 -0
- package/dist/checks/resilience/sentry/sentry-source-maps.d.ts.map +1 -0
- package/dist/checks/resilience/sentry/sentry-source-maps.js +83 -0
- package/dist/checks/resilience/sentry/sentry-source-maps.js.map +1 -0
- package/dist/checks/resilience/service-patterns.d.ts +18 -0
- package/dist/checks/resilience/service-patterns.d.ts.map +1 -0
- package/dist/checks/resilience/service-patterns.js +230 -0
- package/dist/checks/resilience/service-patterns.js.map +1 -0
- package/dist/checks/resilience/timer-lifecycle.d.ts +10 -0
- package/dist/checks/resilience/timer-lifecycle.d.ts.map +1 -0
- package/dist/checks/resilience/timer-lifecycle.js +78 -0
- package/dist/checks/resilience/timer-lifecycle.js.map +1 -0
- package/dist/checks/resilience/transaction-patterns.d.ts +21 -0
- package/dist/checks/resilience/transaction-patterns.d.ts.map +1 -0
- package/dist/checks/resilience/transaction-patterns.js +258 -0
- package/dist/checks/resilience/transaction-patterns.js.map +1 -0
- package/dist/checks/security/__tests__/no-hardcoded-secrets.test.d.ts +9 -0
- package/dist/checks/security/__tests__/no-hardcoded-secrets.test.d.ts.map +1 -0
- package/dist/checks/security/__tests__/no-hardcoded-secrets.test.js +37 -0
- package/dist/checks/security/__tests__/no-hardcoded-secrets.test.js.map +1 -0
- package/dist/checks/security/__tests__/package-supply-chain-policy.test.d.ts +2 -0
- package/dist/checks/security/__tests__/package-supply-chain-policy.test.d.ts.map +1 -0
- package/dist/checks/security/__tests__/package-supply-chain-policy.test.js +128 -0
- package/dist/checks/security/__tests__/package-supply-chain-policy.test.js.map +1 -0
- package/dist/checks/security/api-key-rotation.d.ts +10 -0
- package/dist/checks/security/api-key-rotation.d.ts.map +1 -0
- package/dist/checks/security/api-key-rotation.js +186 -0
- package/dist/checks/security/api-key-rotation.js.map +1 -0
- package/dist/checks/security/auth-middleware-coverage.d.ts +11 -0
- package/dist/checks/security/auth-middleware-coverage.d.ts.map +1 -0
- package/dist/checks/security/auth-middleware-coverage.js +210 -0
- package/dist/checks/security/auth-middleware-coverage.js.map +1 -0
- package/dist/checks/security/auth-route-guard.d.ts +12 -0
- package/dist/checks/security/auth-route-guard.d.ts.map +1 -0
- package/dist/checks/security/auth-route-guard.js +70 -0
- package/dist/checks/security/auth-route-guard.js.map +1 -0
- package/dist/checks/security/cors-configuration.d.ts +11 -0
- package/dist/checks/security/cors-configuration.d.ts.map +1 -0
- package/dist/checks/security/cors-configuration.js +126 -0
- package/dist/checks/security/cors-configuration.js.map +1 -0
- package/dist/checks/security/csp-headers.d.ts +11 -0
- package/dist/checks/security/csp-headers.d.ts.map +1 -0
- package/dist/checks/security/csp-headers.js +192 -0
- package/dist/checks/security/csp-headers.js.map +1 -0
- package/dist/checks/security/dependency-vulnerability-audit.d.ts +15 -0
- package/dist/checks/security/dependency-vulnerability-audit.d.ts.map +1 -0
- package/dist/checks/security/dependency-vulnerability-audit.js +184 -0
- package/dist/checks/security/dependency-vulnerability-audit.js.map +1 -0
- package/dist/checks/security/env-secret-exposure.d.ts +11 -0
- package/dist/checks/security/env-secret-exposure.d.ts.map +1 -0
- package/dist/checks/security/env-secret-exposure.js +127 -0
- package/dist/checks/security/env-secret-exposure.js.map +1 -0
- package/dist/checks/security/hasura-production-config.d.ts +11 -0
- package/dist/checks/security/hasura-production-config.d.ts.map +1 -0
- package/dist/checks/security/hasura-production-config.js +122 -0
- package/dist/checks/security/hasura-production-config.js.map +1 -0
- package/dist/checks/security/index.d.ts +17 -0
- package/dist/checks/security/index.d.ts.map +1 -0
- package/dist/checks/security/index.js +17 -0
- package/dist/checks/security/index.js.map +1 -0
- package/dist/checks/security/jwt-validation.d.ts +11 -0
- package/dist/checks/security/jwt-validation.d.ts.map +1 -0
- package/dist/checks/security/jwt-validation.js +294 -0
- package/dist/checks/security/jwt-validation.js.map +1 -0
- package/dist/checks/security/no-eval.d.ts +16 -0
- package/dist/checks/security/no-eval.d.ts.map +1 -0
- package/dist/checks/security/no-eval.js +83 -0
- package/dist/checks/security/no-eval.js.map +1 -0
- package/dist/checks/security/no-hardcoded-secrets.d.ts +28 -0
- package/dist/checks/security/no-hardcoded-secrets.d.ts.map +1 -0
- package/dist/checks/security/no-hardcoded-secrets.js +209 -0
- package/dist/checks/security/no-hardcoded-secrets.js.map +1 -0
- package/dist/checks/security/package-supply-chain-policy.d.ts +12 -0
- package/dist/checks/security/package-supply-chain-policy.d.ts.map +1 -0
- package/dist/checks/security/package-supply-chain-policy.js +534 -0
- package/dist/checks/security/package-supply-chain-policy.js.map +1 -0
- package/dist/checks/security/rate-limit-coverage.d.ts +10 -0
- package/dist/checks/security/rate-limit-coverage.d.ts.map +1 -0
- package/dist/checks/security/rate-limit-coverage.js +143 -0
- package/dist/checks/security/rate-limit-coverage.js.map +1 -0
- package/dist/checks/security/semgrep-scan.d.ts +13 -0
- package/dist/checks/security/semgrep-scan.d.ts.map +1 -0
- package/dist/checks/security/semgrep-scan.js +86 -0
- package/dist/checks/security/semgrep-scan.js.map +1 -0
- package/dist/checks/security/use-centralized-crypto.d.ts +11 -0
- package/dist/checks/security/use-centralized-crypto.d.ts.map +1 -0
- package/dist/checks/security/use-centralized-crypto.js +129 -0
- package/dist/checks/security/use-centralized-crypto.js.map +1 -0
- package/dist/checks/security/webhook-signature-verification.d.ts +10 -0
- package/dist/checks/security/webhook-signature-verification.d.ts.map +1 -0
- package/dist/checks/security/webhook-signature-verification.js +183 -0
- package/dist/checks/security/webhook-signature-verification.js.map +1 -0
- package/dist/checks/testing/index.d.ts +6 -0
- package/dist/checks/testing/index.d.ts.map +1 -0
- package/dist/checks/testing/index.js +6 -0
- package/dist/checks/testing/index.js.map +1 -0
- package/dist/checks/testing/no-skipped-tests.d.ts +40 -0
- package/dist/checks/testing/no-skipped-tests.d.ts.map +1 -0
- package/dist/checks/testing/no-skipped-tests.js +174 -0
- package/dist/checks/testing/no-skipped-tests.js.map +1 -0
- package/dist/checks/testing/no-stub-tests.d.ts +11 -0
- package/dist/checks/testing/no-stub-tests.d.ts.map +1 -0
- package/dist/checks/testing/no-stub-tests.js +103 -0
- package/dist/checks/testing/no-stub-tests.js.map +1 -0
- package/dist/checks/testing/test-convention-consistency.d.ts +14 -0
- package/dist/checks/testing/test-convention-consistency.d.ts.map +1 -0
- package/dist/checks/testing/test-convention-consistency.js +93 -0
- package/dist/checks/testing/test-convention-consistency.js.map +1 -0
- package/dist/checks/testing/test-file-naming.d.ts +13 -0
- package/dist/checks/testing/test-file-naming.d.ts.map +1 -0
- package/dist/checks/testing/test-file-naming.js +218 -0
- package/dist/checks/testing/test-file-naming.js.map +1 -0
- package/dist/checks/testing/test-file-pairing.d.ts +13 -0
- package/dist/checks/testing/test-file-pairing.d.ts.map +1 -0
- package/dist/checks/testing/test-file-pairing.js +274 -0
- package/dist/checks/testing/test-file-pairing.js.map +1 -0
- package/dist/display/architecture.d.ts +9 -0
- package/dist/display/architecture.d.ts.map +1 -0
- package/dist/display/architecture.js +29 -0
- package/dist/display/architecture.js.map +1 -0
- package/dist/display/index.d.ts +20 -0
- package/dist/display/index.d.ts.map +1 -0
- package/dist/display/index.js +30 -0
- package/dist/display/index.js.map +1 -0
- package/dist/display/quality.d.ts +7 -0
- package/dist/display/quality.d.ts.map +1 -0
- package/dist/display/quality.js +34 -0
- package/dist/display/quality.js.map +1 -0
- package/dist/display/resilience.d.ts +7 -0
- package/dist/display/resilience.d.ts.map +1 -0
- package/dist/display/resilience.js +36 -0
- package/dist/display/resilience.js.map +1 -0
- package/dist/display/security-testing.d.ts +9 -0
- package/dist/display/security-testing.d.ts.map +1 -0
- package/dist/display/security-testing.js +31 -0
- package/dist/display/security-testing.js.map +1 -0
- package/dist/display/types.d.ts +6 -0
- package/dist/display/types.d.ts.map +1 -0
- package/dist/display/types.js +6 -0
- package/dist/display/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-fixtures.test.js","sourceRoot":"","sources":["../../src/__tests__/behavior-fixtures.test.ts"],"names":[],"mappings":"AAAA,+IAA+I;AAC/I;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW,EAAE,OAAe;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,6DAA6D;IAC7D,4BAA4B;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAEhF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,GAAW,CAAC;IAChB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,2CAA2C;YAC3C,gCAAgC;YAChC,qCAAqC;YACrC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,yBAAyB,EACzB;YACE,2CAA2C;YAC3C,gCAAgC;YAChC,gEAAgE;YAChE,sCAAsC;YACtC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,mDAAmD;YACnD,gCAAgC;YAChC,8CAA8C;YAC9C,qCAAqC;YACrC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC7F,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,yDAAyD;YACzD,mDAAmD;YACnD,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACzE,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACzE,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACzE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACzE,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,GAAW,CAAC;IAChB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,kDAAkD;YAClD,yCAAyC;YACzC,+BAA+B;YAC/B,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB;YACE,kDAAkD;YAClD,qCAAqC;YACrC,yCAAyC;YACzC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAC9D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,GAAW,CAAC;IAChB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,eAAe,EACf;YACE,4BAA4B;YAC5B,iCAAiC;YACjC,8BAA8B;YAC9B,yBAAyB;YACzB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,EAC1D,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,kDAAkD;YAClD,+BAA+B;YAC/B,kEAAkE;YAClE,iDAAiD;YACjD,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB;YACE,+BAA+B;YAC/B,kEAAkE;YAClE,+DAA+D;YAC/D,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,+BAA+B;YAC/B,4CAA4C;YAC5C,eAAe;YACf,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB,CAAC,mEAAmE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3F,EACD,YAAY,CACV,GAAG,EACH,aAAa,EACb,CAAC,8BAA8B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3F,EACD,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACjE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACjE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;SACxC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACjE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,eAAe,EACf;YACE,0DAA0D;YAC1D,6BAA6B;YAC7B,4BAA4B;YAC5B,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,sBAAsB,EACtB;YACE,qCAAqC;YACrC,oCAAoC;YACpC,iCAAiC;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,uCAAuC;YACvC,iDAAiD;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B,CAAC,wCAAwC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,oEAAoE;QACpE,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,6EAA6E;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAClF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,aAAa,EACb;YACE,0CAA0C;YAC1C,4BAA4B;YAC5B,0CAA0C;YAC1C,yBAAyB;YACzB,8BAA8B;YAC9B,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB;YACE,0CAA0C;YAC1C,4BAA4B;YAC5B,yBAAyB;YACzB,mGAAmG;YACnG,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB;YACE,yCAAyC;YACzC,uEAAuE;SACxE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB,CAAC,4BAA4B,EAAE,mDAAmD,CAAC,CAAC,IAAI,CACtF,IAAI,CACL,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;SACxC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,sBAAsB,EACtB;YACE,yCAAyC;YACzC,eAAe;YACf,2BAA2B;YAC3B,0BAA0B;YAC1B,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB;YACE,yCAAyC;YACzC,iDAAiD;YACjD,eAAe;YACf,2BAA2B;YAC3B,sCAAsC;YACtC,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,yCAAyC;YACzC,eAAe;YACf,2BAA2B;YAC3B,0BAA0B;YAC1B,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,yCAAyC;YACzC,eAAe;YACf,0BAA0B;YAC1B,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,sBAAsB,EACtB;YACE,yCAAyC;YACzC,eAAe;YACf,gCAAgC;YAChC,0BAA0B;YAC1B,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,aAAa,EACb;YACE,2DAA2D;YAC3D,kDAAkD;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB,CAAC,0CAA0C,EAAE,sCAAsC,CAAC,CAAC,IAAI,CACvF,IAAI,CACL,CACF,EACD,YAAY,CACV,GAAG,EACH,cAAc,EACd;YACE,gDAAgD;YAChD,oDAAoD;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,wEAAwE;QACxE,qEAAqE;QACrE,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SACtE,CAAC,CAAC;QACH,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B;YACE,mDAAmD;YACnD,gCAAgC;YAChC,gGAAgG;YAChG,iEAAiE;YACjE,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B;YACE,mDAAmD;YACnD,8DAA8D;YAC9D,0BAA0B;YAC1B,oEAAoE;YACpE,6FAA6F;YAC7F,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,2BAA2B,EAC3B;YACE,mDAAmD;YACnD,iFAAiF;SAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,sCAAsC,EACtC;YACE,qDAAqD;YACrD,sCAAsC;YACtC,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,aAAa;YACb,8BAA8B;YAC9B,0DAA0D;YAC1D,gBAAgB;YAChB,MAAM;YACN,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kCAAkC,EAClC;YACE,qDAAqD;YACrD,sCAAsC;YACtC,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,aAAa;YACb,yBAAyB;YACzB,8BAA8B;YAC9B,0DAA0D;YAC1D,gBAAgB;YAChB,MAAM;YACN,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,4CAA4C,EAC5C;YACE,qDAAqD;YACrD,sCAAsC;YACtC,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,aAAa;YACb,mCAAmC;YACnC,8BAA8B;YAC9B,0DAA0D;YAC1D,gBAAgB;YAChB,MAAM;YACN,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,gCAAgC,EAChC;YACE,qDAAqD;YACrD,sCAAsC;YACtC,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,aAAa;YACb,4CAA4C;YAC5C,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB,CAAC,yCAAyC,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,IAAI,CACpF,IAAI,CACL,CACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;SAC7D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,GAAW,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/B,YAAY,CACV,GAAG,EACH,0BAA0B,EAC1B;YACE,cAAc;YACd,WAAW;YACX,WAAW;YACX,qCAAqC;YACrC,kBAAkB;YAClB,6CAA6C;YAC7C,mDAAmD;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,YAAY,CACV,GAAG,EACH,iCAAiC,EACjC;YACE,cAAc;YACd,WAAW;YACX,WAAW;YACX,qCAAqC;YACrC,kBAAkB;YAClB,oDAAoD;YACpD,+CAA+C;YAC/C,wCAAwC;YACxC,8CAA8C;SAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,YAAY,CACV,GAAG,EACH,yBAAyB,EACzB;YACE,WAAW;YACX,WAAW;YACX,qCAAqC;YACrC,kBAAkB;YAClB,6CAA6C;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SAC3F,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,mGAAmG;QACnG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;SAC5D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB,CAAC,uDAAuD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrE,EACD,YAAY,CACV,GAAG,EACH,kCAAkC,EAClC;YACE,oCAAoC;YACpC,oCAAoC;YACpC,0CAA0C;YAC1C,mEAAmE;YACnE,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,0BAA0B,EAC1B,CAAC,uDAAuD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrE,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;SAC7D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,uBAAuB,EACvB;YACE,qDAAqD;YACrD,+CAA+C;YAC/C,qBAAqB;SACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB;YACE,4BAA4B;YAC5B,iCAAiC;YACjC,qBAAqB;SACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,+EAA+E;AAC/E,gEAAgE;AAChE,gFAAgF;AAEhF,QAAQ,CAAC,sEAAsE,EAAE,GAAG,EAAE;IACpF,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,eAAe,EACf;YACE,KAAK;YACL,yCAAyC;YACzC,KAAK;YACL,0CAA0C;YAC1C,iCAAiC;YACjC,yDAAyD;YACzD,sDAAsD;SACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,qBAAqB,CAAC,EACxD,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B,CAAC,2BAA2B,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,gBAAgB,EAChB,CAAC,qBAAqB,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpE,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB,CAAC,6BAA6B,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,gEAAgE;YAChE,+BAA+B;SAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,aAAa,EACb;YACE,6EAA6E;YAC7E,+BAA+B;SAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,qBAAqB,CAAC,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;SACxC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACtE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,uCAAuC;YACvC,2BAA2B;YAC3B,4CAA4C;YAC5C,kDAAkD;YAClD,KAAK;YACL,IAAI;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB;YACE,uCAAuC;YACvC,2BAA2B;YAC3B,8CAA8C;YAC9C,gDAAgD;YAChD,KAAK;YACL,IAAI;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACnE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACnE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB,CAAC,wCAAwC,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E,EACD,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB,CAAC,iDAAiD,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtF,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qCAAqC;YACrC,qBAAqB;SACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,eAAe,EACf;YACE,6EAA6E;YAC7E,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB;YACE,mDAAmD;YACnD,oCAAoC;YACpC,0CAA0C;YAC1C,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,oDAAoD;YACpD,wBAAwB;YACxB,YAAY;YACZ,gDAAgD;YAChD,KAAK;YACL,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,mDAAmD;YACnD,oCAAoC;YACpC,gCAAgC;YAChC,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,uBAAuB,EACvB;YACE,0CAA0C;YAC1C,iEAAiE;YACjE,yDAAyD;YACzD,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,yBAAyB,EACzB;YACE,0CAA0C;YAC1C,4EAA4E;YAC5E,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,8BAA8B,EAC9B;YACE,oCAAoC;YACpC,gEAAgE;YAChE,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,2BAA2B,EAC3B,CAAC,2BAA2B,EAAE,0CAA0C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrF,EACD,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB,CAAC,sCAAsC,EAAE,uCAAuC,EAAE,GAAG,CAAC,CAAC,IAAI,CACzF,IAAI,CACL,CACF,EACD,YAAY,CACV,GAAG,EACH,0BAA0B,EAC1B,CAAC,sCAAsC,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3E,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB;YACE,gGAAgG;YAChG,oEAAoE;SACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,wCAAwC;YACxC,8CAA8C;YAC9C,6DAA6D;YAC7D,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,kBAAkB,EAClB;YACE,gCAAgC;YAChC,2DAA2D;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,gEAAgE;QAChE,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB,CAAC,0BAA0B,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF,EACD,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,0BAA0B;YAC1B,4DAA4D;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,oBAAoB,EACpB,CAAC,0BAA0B,EAAE,0CAA0C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpF,EACD,YAAY,CACV,GAAG,EACH,aAAa,EACb;YACE,0BAA0B;YAC1B,oFAAoF;SACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB;YACE,wCAAwC;YACxC,uCAAuC;YACvC,mEAAmE;YACnE,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,gCAAgC,EAChC;YACE,8BAA8B;YAC9B,wDAAwD;SACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,4BAA4B,EAC5B;YACE,wCAAwC;YACxC,2FAA2F;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,gBAAgB,EAChB;YACE,+BAA+B;YAC/B,2BAA2B;YAC3B,iDAAiD;YACjD,GAAG;YACH,sBAAsB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,+BAA+B;YAC/B,2BAA2B;YAC3B,4DAA4D;YAC5D,GAAG;YACH,sBAAsB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,mBAAmB,EACnB;YACE,+BAA+B;YAC/B,2BAA2B;YAC3B,iDAAiD;YACjD,GAAG;YACH,sBAAsB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAEhF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB;YACE,0EAA0E;YAC1E,uDAAuD;YACvD,wBAAwB;YACxB,aAAa;YACb,0DAA0D;YAC1D,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB;YACE,sDAAsD;YACtD,8CAA8C;SAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,GAAW,CAAC;IAChB,oHAAoH;IACpH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,wBAAwB,EACxB;YACE,6BAA6B;YAC7B,iBAAiB;YACjB,8BAA8B;YAC9B,0CAA0C;YAC1C,KAAK;YACL,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,qBAAqB,EACrB;YACE,6BAA6B;YAC7B,iBAAiB;YACjB,8BAA8B;YAC9B,6DAA6D;YAC7D,0CAA0C;YAC1C,KAAK;YACL,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,iBAAiB,EACjB,CAAC,mEAAmE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACnE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACnE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YACnE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,GAAW,CAAC;IAChB,6HAA6H;IAC7H,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,YAAY,CACV,GAAG,EACH,yBAAyB,EACzB;YACE,6DAA6D;YAC7D,4BAA4B;YAC5B,0CAA0C;YAC1C,qCAAqC;YACrC,gBAAgB;YAChB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CACV,GAAG,EACH,uBAAuB,EACvB;YACE,qDAAqD;YACrD,4BAA4B;YAC5B,0DAA0D;YAC1D,gBAAgB;YAChB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,EACD,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,8DAA8D;AAC9D,gFAAgF;AAEhF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClF,MAAM,CAAC,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/checks.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
5
|
+
import { checks } from '../index.js';
|
|
6
|
+
describe('checks-universal', () => {
|
|
7
|
+
it('exports a non-empty array of checks', () => {
|
|
8
|
+
expect(checks.length).toBeGreaterThan(0);
|
|
9
|
+
});
|
|
10
|
+
it('all checks have required fields', () => {
|
|
11
|
+
for (const check of checks) {
|
|
12
|
+
expect(check.config.id).toBeDefined();
|
|
13
|
+
expect(check.config.slug).toBeDefined();
|
|
14
|
+
expect(check.config.description).toBeDefined();
|
|
15
|
+
expect(check.config.tags).toBeDefined();
|
|
16
|
+
expect(check.config.tags.length).toBeGreaterThan(0);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
it('all check slugs are unique', () => {
|
|
20
|
+
const slugs = checks.map((c) => c.config.slug);
|
|
21
|
+
const duplicates = slugs.filter((s, i) => slugs.indexOf(s) !== i);
|
|
22
|
+
expect(duplicates).toEqual([]);
|
|
23
|
+
expect(new Set(slugs).size).toBe(slugs.length);
|
|
24
|
+
});
|
|
25
|
+
it('all check IDs are unique', () => {
|
|
26
|
+
const ids = checks.map((c) => c.config.id);
|
|
27
|
+
const duplicates = ids.filter((id, i) => ids.indexOf(id) !== i);
|
|
28
|
+
expect(duplicates).toEqual([]);
|
|
29
|
+
expect(new Set(ids).size).toBe(ids.length);
|
|
30
|
+
});
|
|
31
|
+
it('all checks have a valid analysisMode', () => {
|
|
32
|
+
for (const check of checks) {
|
|
33
|
+
expect(['analyze', 'analyzeAll', 'command']).toContain(check.config.analysisMode);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
it('all checks have a run function', () => {
|
|
37
|
+
for (const check of checks) {
|
|
38
|
+
expect(typeof check.run).toBe('function');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('no-console-log check', () => {
|
|
43
|
+
const check = checks.find((c) => c.config.slug === 'no-console-log');
|
|
44
|
+
let tmpDir;
|
|
45
|
+
let violatingFile;
|
|
46
|
+
let cleanFile;
|
|
47
|
+
beforeAll(() => {
|
|
48
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'checks-universal-test-'));
|
|
49
|
+
violatingFile = path.join(tmpDir, 'violating.ts');
|
|
50
|
+
cleanFile = path.join(tmpDir, 'clean.ts');
|
|
51
|
+
fs.writeFileSync(violatingFile, 'const x = 1;\nconsole.log("hello");\nconst y = 2;\n');
|
|
52
|
+
fs.writeFileSync(cleanFile, 'const x = 1;\nconst y = 2;\n');
|
|
53
|
+
});
|
|
54
|
+
afterAll(() => {
|
|
55
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
56
|
+
});
|
|
57
|
+
it('exists', () => {
|
|
58
|
+
expect(check).toBeDefined();
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=checks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.test.js","sourceRoot":"","sources":["../../src/__tests__/checks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Accuracy regression tests for env-var-validation's null-safe
|
|
3
|
+
* recognition — the fix that cleared its false-positive flood on this repo's
|
|
4
|
+
* runtime/CLI edge reads. Idiomatic safe forms must NOT be flagged: truthy `if`
|
|
5
|
+
* guards, `!!` / `Boolean()` coercion, `===`/`!==` comparisons, and
|
|
6
|
+
* capture-then-guard.
|
|
7
|
+
*
|
|
8
|
+
* (The complementary fix — `process.env.X` inside string/template literals and
|
|
9
|
+
* comments is not a real access — lives in the engine's `contentFilter`
|
|
10
|
+
* dispatch, exercised by the engine content-filter tests and the dogfood gate,
|
|
11
|
+
* not here: this harness runs the check's own logic on raw source.)
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=env-var-validation.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-var-validation.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/env-var-validation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Accuracy regression tests for env-var-validation's null-safe
|
|
3
|
+
* recognition — the fix that cleared its false-positive flood on this repo's
|
|
4
|
+
* runtime/CLI edge reads. Idiomatic safe forms must NOT be flagged: truthy `if`
|
|
5
|
+
* guards, `!!` / `Boolean()` coercion, `===`/`!==` comparisons, and
|
|
6
|
+
* capture-then-guard.
|
|
7
|
+
*
|
|
8
|
+
* (The complementary fix — `process.env.X` inside string/template literals and
|
|
9
|
+
* comments is not a real access — lives in the engine's `contentFilter`
|
|
10
|
+
* dispatch, exercised by the engine content-filter tests and the dogfood gate,
|
|
11
|
+
* not here: this harness runs the check's own logic on raw source.)
|
|
12
|
+
*/
|
|
13
|
+
import { runCheckOnFixture } from '@opensip-cli/test-support';
|
|
14
|
+
import { describe, expect, it } from 'vitest';
|
|
15
|
+
import { checks } from '../index.js';
|
|
16
|
+
function check() {
|
|
17
|
+
const c = checks.find((x) => x.config.slug === 'env-var-validation');
|
|
18
|
+
if (!c)
|
|
19
|
+
throw new Error('check not found: env-var-validation');
|
|
20
|
+
return c;
|
|
21
|
+
}
|
|
22
|
+
async function findings(content) {
|
|
23
|
+
const run = await runCheckOnFixture(check(), { files: [{ path: 'a.ts', content }] });
|
|
24
|
+
return run.findings.length;
|
|
25
|
+
}
|
|
26
|
+
describe('env-var-validation · null-safe forms', () => {
|
|
27
|
+
it('still flags a real unguarded access', async () => {
|
|
28
|
+
expect(await findings(`export const secret = process.env.API_SECRET`)).toBeGreaterThanOrEqual(1);
|
|
29
|
+
});
|
|
30
|
+
it('recognises a truthy if-guard', async () => {
|
|
31
|
+
expect(await findings(`export function f() { if (process.env.NO_COLOR) return false; return true }`)).toBe(0);
|
|
32
|
+
});
|
|
33
|
+
it('recognises a negated if-guard', async () => {
|
|
34
|
+
expect(await findings(`export function f() { if (!process.env.FORCE_COLOR) return false; return true }`)).toBe(0);
|
|
35
|
+
});
|
|
36
|
+
it('recognises !! / Boolean() coercion', async () => {
|
|
37
|
+
expect(await findings(`export const a = !!process.env.NO_COLOR\nexport const b = Boolean(process.env.CI)`)).toBe(0);
|
|
38
|
+
});
|
|
39
|
+
it('recognises an equality comparison', async () => {
|
|
40
|
+
expect(await findings(`export const disabled = process.env.OPENSIP_HEAP_NO_MONITOR === '1'`)).toBe(0);
|
|
41
|
+
});
|
|
42
|
+
it('recognises capture-then-guard across following lines', async () => {
|
|
43
|
+
const src = [
|
|
44
|
+
'export function init() {',
|
|
45
|
+
' const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT',
|
|
46
|
+
' if (!endpoint) return',
|
|
47
|
+
' use(endpoint)',
|
|
48
|
+
'}',
|
|
49
|
+
].join('\n');
|
|
50
|
+
expect(await findings(src)).toBe(0);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=env-var-validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-var-validation.test.js","sourceRoot":"","sources":["../../src/__tests__/env-var-validation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,KAAK;IACZ,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAe;IACrC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,CAAC,MAAM,QAAQ,CAAC,8CAA8C,CAAC,CAAC,CAAC,sBAAsB,CAC3F,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,CACJ,MAAM,QAAQ,CAAC,6EAA6E,CAAC,CAC9F,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,CACJ,MAAM,QAAQ,CACZ,iFAAiF,CAClF,CACF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CACJ,MAAM,QAAQ,CACZ,mFAAmF,CACpF,CACF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,CACJ,MAAM,QAAQ,CAAC,qEAAqE,CAAC,CACtF,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,GAAG,GAAG;YACV,0BAA0B;YAC1B,4DAA4D;YAC5D,yBAAyB;YACzB,iBAAiB;YACjB,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-length-limit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/file-length-limit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { analyzeFileLength } from '../checks/file-length-limit.js';
|
|
3
|
+
function buildLines(n) {
|
|
4
|
+
const out = [];
|
|
5
|
+
for (let i = 0; i < n; i++)
|
|
6
|
+
out.push(`line ${i + 1}`);
|
|
7
|
+
return out.join('\n');
|
|
8
|
+
}
|
|
9
|
+
describe('analyzeFileLength', () => {
|
|
10
|
+
it('passes for small files', () => {
|
|
11
|
+
expect(analyzeFileLength(buildLines(50))).toHaveLength(0);
|
|
12
|
+
});
|
|
13
|
+
it('warns at the soft limit boundary', () => {
|
|
14
|
+
const violations = analyzeFileLength(buildLines(401));
|
|
15
|
+
expect(violations).toHaveLength(1);
|
|
16
|
+
expect(violations[0]?.severity).toBe('warning');
|
|
17
|
+
});
|
|
18
|
+
it('errors past the hard limit', () => {
|
|
19
|
+
const violations = analyzeFileLength(buildLines(900));
|
|
20
|
+
expect(violations).toHaveLength(1);
|
|
21
|
+
expect(violations[0]?.severity).toBe('error');
|
|
22
|
+
});
|
|
23
|
+
it('counts only non-empty lines', () => {
|
|
24
|
+
// 200 real lines, 200 blank — should fall under soft limit
|
|
25
|
+
const padded = buildLines(200) + '\n' + '\n'.repeat(200);
|
|
26
|
+
expect(analyzeFileLength(padded)).toHaveLength(0);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=file-length-limit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-length-limit.test.js","sourceRoot":"","sources":["../../src/__tests__/file-length-limit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,SAAS,UAAU,CAAC,CAAS;IAC3B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-check fixture-coverage allowlist for checks-universal (testing gap P0).
|
|
3
|
+
*
|
|
4
|
+
* `ALLOWLIST` (migration-only) is `[]` — every shipped, fixture-exercisable
|
|
5
|
+
* check has clean+violation fixtures, so the ratchet is fully live.
|
|
6
|
+
*
|
|
7
|
+
* `COMMAND_EXEMPTIONS` are `analysisMode:'command'` checks that shell out to
|
|
8
|
+
* external tools and cannot be exercised by writing a fixture file (covered by
|
|
9
|
+
* the failure-mode / packed-smoke lanes). `KNOWN_UNFIXTURABLE` are non-command
|
|
10
|
+
* checks that fixture-coverage surfaced as structurally un-exercisable
|
|
11
|
+
* pre-existing defects — documented, permanent until the check is fixed.
|
|
12
|
+
*/
|
|
13
|
+
import type { CommandExemptions, CoverageAllowlist, FilenameOverrides } from '@opensip-cli/test-support';
|
|
14
|
+
export declare const ALLOWLIST: CoverageAllowlist;
|
|
15
|
+
export declare const COMMAND_EXEMPTIONS: CommandExemptions;
|
|
16
|
+
export declare const KNOWN_UNFIXTURABLE: CommandExemptions;
|
|
17
|
+
export declare const FILENAME_OVERRIDES: FilenameOverrides;
|
|
18
|
+
//# sourceMappingURL=fixture-coverage.allowlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-coverage.allowlist.d.ts","sourceRoot":"","sources":["../../src/__tests__/fixture-coverage.allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,iBAAsB,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,iBAKhC,CAAC;AAYF,eAAO,MAAM,kBAAkB,EAAE,iBAAsB,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,iBAIhC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-check fixture-coverage allowlist for checks-universal (testing gap P0).
|
|
3
|
+
*
|
|
4
|
+
* `ALLOWLIST` (migration-only) is `[]` — every shipped, fixture-exercisable
|
|
5
|
+
* check has clean+violation fixtures, so the ratchet is fully live.
|
|
6
|
+
*
|
|
7
|
+
* `COMMAND_EXEMPTIONS` are `analysisMode:'command'` checks that shell out to
|
|
8
|
+
* external tools and cannot be exercised by writing a fixture file (covered by
|
|
9
|
+
* the failure-mode / packed-smoke lanes). `KNOWN_UNFIXTURABLE` are non-command
|
|
10
|
+
* checks that fixture-coverage surfaced as structurally un-exercisable
|
|
11
|
+
* pre-existing defects — documented, permanent until the check is fixed.
|
|
12
|
+
*/
|
|
13
|
+
export const ALLOWLIST = [];
|
|
14
|
+
export const COMMAND_EXEMPTIONS = {
|
|
15
|
+
'dead-code': "analysisMode:'command' — runs knip; covered by failure-mode + packed-smoke lanes",
|
|
16
|
+
'dependency-vulnerability-audit': "analysisMode:'command' — runs the package-manager audit; covered by packed-smoke",
|
|
17
|
+
'semgrep-scan': "analysisMode:'command' — shells to semgrep; covered by packed-smoke",
|
|
18
|
+
};
|
|
19
|
+
// Non-command checks that cannot be exercised by an on-disk fixture. Empty:
|
|
20
|
+
// every defect fixture-coverage surfaced in this pack (auth-middleware-coverage,
|
|
21
|
+
// dependency-version-consistency, env-var-validation) has been FIXED and now
|
|
22
|
+
// carries real clean+violation fixtures. phantom-dependency-detection — whose
|
|
23
|
+
// regex/text extractor could not distinguish a real import from import-like text
|
|
24
|
+
// inside a string literal — was moved to checks-typescript and rewritten on the
|
|
25
|
+
// TypeScript AST (a string literal is never an ImportDeclaration), where it is
|
|
26
|
+
// fully fixtured. docs-teach-blessed-seam was relocated to a project-local .mjs
|
|
27
|
+
// dogfood self-check (it encodes opensip-cli local facts; see the placement sweep
|
|
28
|
+
// + shipped-checks-must-be-generic), so it is no longer a shipped check here.
|
|
29
|
+
export const KNOWN_UNFIXTURABLE = {};
|
|
30
|
+
export const FILENAME_OVERRIDES = {
|
|
31
|
+
// env-secret-exposure declares languages [json, typescript, yaml] but fileTypes
|
|
32
|
+
// ['ts'] — only a .ts fixture is actually analysed, so pin a single ts pair.
|
|
33
|
+
'env-secret-exposure': 'ts',
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=fixture-coverage.allowlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-coverage.allowlist.js","sourceRoot":"","sources":["../../src/__tests__/fixture-coverage.allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,CAAC,MAAM,SAAS,GAAsB,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,WAAW,EAAE,kFAAkF;IAC/F,gCAAgC,EAC9B,kFAAkF;IACpF,cAAc,EAAE,qEAAqE;CACtF,CAAC;AAEF,4EAA4E;AAC5E,iFAAiF;AACjF,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAsB,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,gFAAgF;IAChF,6EAA6E;IAC7E,qBAAqB,EAAE,IAAI;CAC5B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-check pass/fail fixture coverage for checks-universal (testing gap P0).
|
|
3
|
+
*
|
|
4
|
+
* Every shipped, non-command, fixture-exercisable check must have a clean
|
|
5
|
+
* fixture (0 findings) and a violation fixture (>=1) under a co-located
|
|
6
|
+
* `__fixtures__/<slug>/` directory next to the check's source. The ALLOWLIST is
|
|
7
|
+
* empty, so the ratchet is live: a new uncovered check fails this test. Command
|
|
8
|
+
* checks live in COMMAND_EXEMPTIONS; structurally un-exercisable checks live in
|
|
9
|
+
* KNOWN_UNFIXTURABLE. The harness runs each check in-process via the engine's
|
|
10
|
+
* internal coverage helpers.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=fixture-coverage.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-coverage.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fixture-coverage.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-check pass/fail fixture coverage for checks-universal (testing gap P0).
|
|
3
|
+
*
|
|
4
|
+
* Every shipped, non-command, fixture-exercisable check must have a clean
|
|
5
|
+
* fixture (0 findings) and a violation fixture (>=1) under a co-located
|
|
6
|
+
* `__fixtures__/<slug>/` directory next to the check's source. The ALLOWLIST is
|
|
7
|
+
* empty, so the ratchet is live: a new uncovered check fails this test. Command
|
|
8
|
+
* checks live in COMMAND_EXEMPTIONS; structurally un-exercisable checks live in
|
|
9
|
+
* KNOWN_UNFIXTURABLE. The harness runs each check in-process via the engine's
|
|
10
|
+
* internal coverage helpers.
|
|
11
|
+
*/
|
|
12
|
+
import { dirname, join } from 'node:path';
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
import { planCoverageCases, runCheckOnFixture, validateBookkeeping, } from '@opensip-cli/test-support';
|
|
15
|
+
import { describe, expect, it } from 'vitest';
|
|
16
|
+
import { checks } from '../index.js';
|
|
17
|
+
import { ALLOWLIST, COMMAND_EXEMPTIONS, FILENAME_OVERRIDES, KNOWN_UNFIXTURABLE, } from './fixture-coverage.allowlist.js';
|
|
18
|
+
const PACK_SRC = join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
19
|
+
const config = {
|
|
20
|
+
packName: 'checks-universal',
|
|
21
|
+
checks,
|
|
22
|
+
allowlist: ALLOWLIST,
|
|
23
|
+
commandExemptions: COMMAND_EXEMPTIONS,
|
|
24
|
+
knownUnfixturable: KNOWN_UNFIXTURABLE,
|
|
25
|
+
filenameOverrides: FILENAME_OVERRIDES,
|
|
26
|
+
};
|
|
27
|
+
const cases = await planCoverageCases(config, PACK_SRC);
|
|
28
|
+
describe('checks-universal · fixture-coverage bookkeeping', () => {
|
|
29
|
+
it('config is self-consistent (allowlist empty, exemptions valid)', () => {
|
|
30
|
+
expect(validateBookkeeping(config)).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('checks-universal · fixture-coverage', () => {
|
|
34
|
+
if (cases.length === 0) {
|
|
35
|
+
// No fixturable checks (e.g. an all-command pack): assert every shipped
|
|
36
|
+
// check is accounted for by an exemption rather than silently uncovered.
|
|
37
|
+
it('every shipped check is exempted or allowlisted', () => {
|
|
38
|
+
const accounted = ALLOWLIST.length +
|
|
39
|
+
Object.keys(COMMAND_EXEMPTIONS).length +
|
|
40
|
+
Object.keys(KNOWN_UNFIXTURABLE).length;
|
|
41
|
+
expect(accounted).toBeGreaterThan(0);
|
|
42
|
+
});
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
it.each(cases)('$label', async (testCase) => {
|
|
46
|
+
if (!testCase.fixture)
|
|
47
|
+
expect.fail(testCase.missingHint);
|
|
48
|
+
const run = await runCheckOnFixture(testCase.check, testCase.fixture);
|
|
49
|
+
if (testCase.variant === 'clean') {
|
|
50
|
+
expect(run.findings, `clean fixture for '${testCase.slug}' must produce 0 findings`).toHaveLength(0);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
expect(run.findings.length, `violation fixture for '${testCase.slug}' must produce >=1 finding`).toBeGreaterThanOrEqual(1);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=fixture-coverage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-coverage.test.js","sourceRoot":"","sources":["../../src/__tests__/fixture-coverage.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GAEpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,MAAM,GAAmB;IAC7B,QAAQ,EAAE,kBAAkB;IAC5B,MAAM;IACN,SAAS,EAAE,SAAS;IACpB,iBAAiB,EAAE,kBAAkB;IACrC,iBAAiB,EAAE,kBAAkB;IACrC,iBAAiB,EAAE,kBAAkB;CACtC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAExD,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,wEAAwE;QACxE,yEAAyE;QACzE,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GACb,SAAS,CAAC,MAAM;gBAChB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM;gBACtC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CACJ,GAAG,CAAC,QAAQ,EACZ,sBAAsB,QAAQ,CAAC,IAAI,2BAA2B,CAC/D,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,EACnB,0BAA0B,QAAQ,CAAC,IAAI,4BAA4B,CACpE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Comprehensive tests for interface-implementation-consistency.
|
|
3
|
+
*
|
|
4
|
+
* The check parses interfaces (including multi-line `extends` clauses,
|
|
5
|
+
* generic params, and inheritance chains) and classes that `implements`
|
|
6
|
+
* them, then flags class methods that are absent from the interface.
|
|
7
|
+
* It also has a curated allowlist of utility methods (toJSON, init, etc.)
|
|
8
|
+
* and skips test-double class names (Fake*, Mock*, Stub*, Spy*).
|
|
9
|
+
*
|
|
10
|
+
* These fixtures drive the parser through its main code paths so the
|
|
11
|
+
* parsing helpers (parseInterfaces / parseClasses / inheritance
|
|
12
|
+
* resolution / generic stripping) get statement coverage.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=iic.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iic.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/iic.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|