@memoarchitect/tools 0.6.6 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -11
- package/package.json +19 -7
- package/packages/tools/lib/analysis-starters.d.ts +4 -0
- package/packages/tools/lib/analysis-starters.d.ts.map +1 -0
- package/packages/tools/lib/analysis-starters.js +425 -0
- package/packages/tools/lib/analysis-starters.js.map +1 -0
- package/packages/tools/lib/bin/memo.js +161 -10
- package/packages/tools/lib/bin/memo.js.map +1 -1
- package/packages/tools/lib/browser/index.d.ts +1 -1
- package/packages/tools/lib/browser/index.d.ts.map +1 -1
- package/packages/tools/lib/browser/index.js +1 -1
- package/packages/tools/lib/browser/index.js.map +1 -1
- package/packages/tools/lib/commands/ask.js +1 -1
- package/packages/tools/lib/commands/ask.js.map +1 -1
- package/packages/tools/lib/commands/check.d.ts.map +1 -1
- package/packages/tools/lib/commands/check.js +3 -9
- package/packages/tools/lib/commands/check.js.map +1 -1
- package/packages/tools/lib/commands/conformance.d.ts +36 -0
- package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
- package/packages/tools/lib/commands/conformance.js +212 -0
- package/packages/tools/lib/commands/conformance.js.map +1 -0
- package/packages/tools/lib/commands/convert.d.ts +12 -0
- package/packages/tools/lib/commands/convert.d.ts.map +1 -0
- package/packages/tools/lib/commands/convert.js +103 -0
- package/packages/tools/lib/commands/convert.js.map +1 -0
- package/packages/tools/lib/commands/create-package.d.ts +1 -2
- package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
- package/packages/tools/lib/commands/create-package.js.map +1 -1
- package/packages/tools/lib/commands/dev.d.ts +13 -0
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +208 -74
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.js +1 -1
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.js +1 -1
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
- package/packages/tools/lib/commands/dhf.js +1 -1
- package/packages/tools/lib/commands/dhf.js.map +1 -1
- package/packages/tools/lib/commands/element.d.ts +34 -0
- package/packages/tools/lib/commands/element.d.ts.map +1 -0
- package/packages/tools/lib/commands/element.js +174 -0
- package/packages/tools/lib/commands/element.js.map +1 -0
- package/packages/tools/lib/commands/export.d.ts.map +1 -1
- package/packages/tools/lib/commands/export.js +39 -40
- package/packages/tools/lib/commands/export.js.map +1 -1
- package/packages/tools/lib/commands/generate.d.ts.map +1 -1
- package/packages/tools/lib/commands/generate.js +10 -7
- package/packages/tools/lib/commands/generate.js.map +1 -1
- package/packages/tools/lib/commands/import.d.ts.map +1 -1
- package/packages/tools/lib/commands/import.js +25 -12
- package/packages/tools/lib/commands/import.js.map +1 -1
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +37 -14
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/inspect.d.ts +5 -0
- package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
- package/packages/tools/lib/commands/inspect.js +56 -0
- package/packages/tools/lib/commands/inspect.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -1
- package/packages/tools/lib/commands/lock.js +7 -2
- package/packages/tools/lib/commands/lock.js.map +1 -1
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
- package/packages/tools/lib/commands/ontology.js +69 -116
- package/packages/tools/lib/commands/ontology.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +20 -75
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/commands/package.d.ts +10 -0
- package/packages/tools/lib/commands/package.d.ts.map +1 -0
- package/packages/tools/lib/commands/package.js +113 -0
- package/packages/tools/lib/commands/package.js.map +1 -0
- package/packages/tools/lib/commands/plugin.js +1 -1
- package/packages/tools/lib/commands/plugin.js.map +1 -1
- package/packages/tools/lib/commands/rules.d.ts.map +1 -1
- package/packages/tools/lib/commands/rules.js +120 -30
- package/packages/tools/lib/commands/rules.js.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.js +14 -16
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
- package/packages/tools/lib/commands/toolchain.d.ts +8 -0
- package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
- package/packages/tools/lib/commands/toolchain.js +64 -0
- package/packages/tools/lib/commands/toolchain.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +1 -1
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +183 -56
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/completeness/tracker.d.ts +10 -2
- package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
- package/packages/tools/lib/completeness/tracker.js +16 -21
- package/packages/tools/lib/completeness/tracker.js.map +1 -1
- package/packages/tools/lib/conformance/baseline.d.ts +26 -0
- package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
- package/packages/tools/lib/conformance/baseline.js +170 -0
- package/packages/tools/lib/conformance/baseline.js.map +1 -0
- package/packages/tools/lib/conformance/bnf.d.ts +84 -0
- package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
- package/packages/tools/lib/conformance/bnf.js +166 -0
- package/packages/tools/lib/conformance/bnf.js.map +1 -0
- package/packages/tools/lib/conformance/corpus.d.ts +125 -0
- package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
- package/packages/tools/lib/conformance/corpus.js +190 -0
- package/packages/tools/lib/conformance/corpus.js.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.js +276 -0
- package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
- package/packages/tools/lib/conformance/index.d.ts +7 -0
- package/packages/tools/lib/conformance/index.d.ts.map +1 -0
- package/packages/tools/lib/conformance/index.js +19 -0
- package/packages/tools/lib/conformance/index.js.map +1 -0
- package/packages/tools/lib/conformance/run.d.ts +117 -0
- package/packages/tools/lib/conformance/run.d.ts.map +1 -0
- package/packages/tools/lib/conformance/run.js +0 -0
- package/packages/tools/lib/conformance/run.js.map +1 -0
- package/packages/tools/lib/conformance/xmi.d.ts +45 -0
- package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/xmi.js +148 -0
- package/packages/tools/lib/conformance/xmi.js.map +1 -0
- package/packages/tools/lib/dhf/template-resolver.js +1 -1
- package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
- package/packages/tools/lib/import/column-mapper.d.ts +2 -2
- package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
- package/packages/tools/lib/import/column-mapper.js +3 -3
- package/packages/tools/lib/import/column-mapper.js.map +1 -1
- package/packages/tools/lib/index.d.ts +20 -3
- package/packages/tools/lib/index.d.ts.map +1 -1
- package/packages/tools/lib/index.js +19 -2
- package/packages/tools/lib/index.js.map +1 -1
- package/packages/tools/lib/language/generated/ast.d.ts +196 -51
- package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/ast.js +136 -15
- package/packages/tools/lib/language/generated/ast.js.map +1 -1
- package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/grammar.js +867 -295
- package/packages/tools/lib/language/generated/grammar.js.map +1 -1
- package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
- package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/chat-engine.js +15 -12
- package/packages/tools/lib/llm/chat-engine.js.map +1 -1
- package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
- package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/generate-engine.js +22 -4
- package/packages/tools/lib/llm/generate-engine.js.map +1 -1
- package/packages/tools/lib/llm/index.d.ts +1 -0
- package/packages/tools/lib/llm/index.d.ts.map +1 -1
- package/packages/tools/lib/llm/index.js +1 -0
- package/packages/tools/lib/llm/index.js.map +1 -1
- package/packages/tools/lib/llm/model-context.d.ts +2 -2
- package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
- package/packages/tools/lib/llm/model-context.js +7 -13
- package/packages/tools/lib/llm/model-context.js.map +1 -1
- package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
- package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
- package/packages/tools/lib/llm/sysml-guidance.js +28 -0
- package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
- package/packages/tools/lib/lock.d.ts +14 -8
- package/packages/tools/lib/lock.d.ts.map +1 -1
- package/packages/tools/lib/lock.js +97 -108
- package/packages/tools/lib/lock.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts +5 -1
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +16 -27
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/mcp/tools.d.ts +3 -0
- package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
- package/packages/tools/lib/mcp/tools.js +8 -9
- package/packages/tools/lib/mcp/tools.js.map +1 -1
- package/packages/tools/lib/model/activity-notation.d.ts +54 -0
- package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
- package/packages/tools/lib/model/activity-notation.js +208 -0
- package/packages/tools/lib/model/activity-notation.js.map +1 -0
- package/packages/tools/lib/model/builder.d.ts +3 -0
- package/packages/tools/lib/model/builder.d.ts.map +1 -1
- package/packages/tools/lib/model/builder.js +264 -26
- package/packages/tools/lib/model/builder.js.map +1 -1
- package/packages/tools/lib/model/config-loader.d.ts +19 -25
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/config-loader.js +51 -233
- package/packages/tools/lib/model/config-loader.js.map +1 -1
- package/packages/tools/lib/model/config.d.ts +42 -213
- package/packages/tools/lib/model/config.d.ts.map +1 -1
- package/packages/tools/lib/model/config.js +11 -9
- package/packages/tools/lib/model/config.js.map +1 -1
- package/packages/tools/lib/model/effective-scope.d.ts +74 -0
- package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
- package/packages/tools/lib/model/effective-scope.js +133 -0
- package/packages/tools/lib/model/effective-scope.js.map +1 -0
- package/packages/tools/lib/model/ir-identity.d.ts +94 -0
- package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
- package/packages/tools/lib/model/ir-identity.js +178 -0
- package/packages/tools/lib/model/ir-identity.js.map +1 -0
- package/packages/tools/lib/model/kind-registry.d.ts +114 -1
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/kind-registry.js +148 -4
- package/packages/tools/lib/model/kind-registry.js.map +1 -1
- package/packages/tools/lib/model/layer-resolver.js +1 -1
- package/packages/tools/lib/model/layer-resolver.js.map +1 -1
- package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-loader.js +179 -176
- package/packages/tools/lib/model/methodology-loader.js.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
- package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
- package/packages/tools/lib/model/methodology-resolver.js +317 -0
- package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
- package/packages/tools/lib/model/native-project.d.ts +130 -0
- package/packages/tools/lib/model/native-project.d.ts.map +1 -0
- package/packages/tools/lib/model/native-project.js +570 -0
- package/packages/tools/lib/model/native-project.js.map +1 -0
- package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/ontology-loader.js +340 -614
- package/packages/tools/lib/model/ontology-loader.js.map +1 -1
- package/packages/tools/lib/model/package-manifest.d.ts +37 -0
- package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
- package/packages/tools/lib/model/package-manifest.js +96 -0
- package/packages/tools/lib/model/package-manifest.js.map +1 -0
- package/packages/tools/lib/model/parser-utils.d.ts +31 -0
- package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
- package/packages/tools/lib/model/parser-utils.js +89 -1
- package/packages/tools/lib/model/parser-utils.js.map +1 -1
- package/packages/tools/lib/model/paths.d.ts +10 -4
- package/packages/tools/lib/model/paths.d.ts.map +1 -1
- package/packages/tools/lib/model/paths.js +10 -4
- package/packages/tools/lib/model/paths.js.map +1 -1
- package/packages/tools/lib/model/project-conversion.d.ts +226 -0
- package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
- package/packages/tools/lib/model/project-conversion.js +946 -0
- package/packages/tools/lib/model/project-conversion.js.map +1 -0
- package/packages/tools/lib/model/relationship-legality.d.ts +12 -0
- package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-legality.js.map +1 -1
- package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-registry.js.map +1 -1
- package/packages/tools/lib/model/semantic.d.ts +38 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js +3 -0
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
- package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
- package/packages/tools/lib/model/settings-boundary.js +118 -0
- package/packages/tools/lib/model/settings-boundary.js.map +1 -0
- package/packages/tools/lib/model/short-id.d.ts +8 -7
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +26 -17
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
- package/packages/tools/lib/model/source-graph.js +5 -1
- package/packages/tools/lib/model/source-graph.js.map +1 -1
- package/packages/tools/lib/model/source-provenance.d.ts +112 -0
- package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
- package/packages/tools/lib/model/source-provenance.js +169 -0
- package/packages/tools/lib/model/source-provenance.js.map +1 -0
- package/packages/tools/lib/model/sysml-files.d.ts +9 -0
- package/packages/tools/lib/model/sysml-files.d.ts.map +1 -1
- package/packages/tools/lib/model/sysml-files.js +20 -1
- package/packages/tools/lib/model/sysml-files.js.map +1 -1
- package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
- package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
- package/packages/tools/lib/model/sysml-ir.js +105 -0
- package/packages/tools/lib/model/sysml-ir.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +60 -6
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/model/view-kinds.d.ts +2 -0
- package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
- package/packages/tools/lib/model/view-kinds.js +11 -0
- package/packages/tools/lib/model/view-kinds.js.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js +12 -12
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
- package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/ai-authoring.js +77 -0
- package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
- package/packages/tools/lib/operations/authoring.d.ts +40 -0
- package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/authoring.js +56 -0
- package/packages/tools/lib/operations/authoring.js.map +1 -0
- package/packages/tools/lib/operations/index.d.ts +2 -0
- package/packages/tools/lib/operations/index.d.ts.map +1 -1
- package/packages/tools/lib/operations/index.js +2 -0
- package/packages/tools/lib/operations/index.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +79 -30
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +311 -11
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.js +11 -11
- package/packages/tools/lib/serializer/csv-io.js.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.js +34 -2
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
- package/packages/tools/lib/server/config-resolver.d.ts +8 -4
- package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
- package/packages/tools/lib/server/config-resolver.js +25 -44
- package/packages/tools/lib/server/config-resolver.js.map +1 -1
- package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
- package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
- package/packages/tools/lib/server/conflict-policy.js +94 -0
- package/packages/tools/lib/server/conflict-policy.js.map +1 -0
- package/packages/tools/lib/server/dev-server.d.ts +32 -2
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +721 -53
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/element-writer.d.ts +11 -0
- package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/element-writer.js +123 -0
- package/packages/tools/lib/server/element-writer.js.map +1 -0
- package/packages/tools/lib/server/file-watcher.d.ts +4 -1
- package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
- package/packages/tools/lib/server/file-watcher.js +17 -7
- package/packages/tools/lib/server/file-watcher.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
- package/packages/tools/lib/server/mutation-domain.js +87 -0
- package/packages/tools/lib/server/mutation-domain.js.map +1 -0
- package/packages/tools/lib/server/persistor.d.ts +63 -8
- package/packages/tools/lib/server/persistor.d.ts.map +1 -1
- package/packages/tools/lib/server/persistor.js +152 -44
- package/packages/tools/lib/server/persistor.js.map +1 -1
- package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +98 -9
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
- package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-policy-writer.js +124 -0
- package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
- package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
- package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
- package/packages/tools/lib/server/runtime-budget.js +15 -0
- package/packages/tools/lib/server/runtime-budget.js.map +1 -0
- package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
- package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
- package/packages/tools/lib/server/sysml-notation.js +87 -0
- package/packages/tools/lib/server/sysml-notation.js.map +1 -0
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +2 -0
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
- package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
- package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/index.js +3 -0
- package/packages/tools/lib/sysml-ir/index.js.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.js +2 -0
- package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
- package/packages/tools/lib/sysmlc/index.d.ts +2 -0
- package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/index.js +7 -0
- package/packages/tools/lib/sysmlc/index.js.map +1 -0
- package/packages/tools/lib/sysmlc/server.d.ts +29 -0
- package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/server.js +168 -0
- package/packages/tools/lib/sysmlc/server.js.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.js +28 -0
- package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.js +69 -0
- package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
- package/packages/tools/lib/toolchain/effective.d.ts +36 -0
- package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/effective.js +91 -0
- package/packages/tools/lib/toolchain/effective.js.map +1 -0
- package/packages/tools/lib/toolchain/index.d.ts +11 -0
- package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/index.js +21 -0
- package/packages/tools/lib/toolchain/index.js.map +1 -0
- package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
- package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/lowering.js +100 -0
- package/packages/tools/lib/toolchain/lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/operations.d.ts +87 -0
- package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/operations.js +111 -0
- package/packages/tools/lib/toolchain/operations.js.map +1 -0
- package/packages/tools/lib/toolchain/process.d.ts +45 -0
- package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/process.js +125 -0
- package/packages/tools/lib/toolchain/process.js.map +1 -0
- package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
- package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/protocol.js +74 -0
- package/packages/tools/lib/toolchain/protocol.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.js +286 -0
- package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
- package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.js +208 -0
- package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
- package/packages/tools/lib/toolchain/registry.d.ts +192 -0
- package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/registry.js +130 -0
- package/packages/tools/lib/toolchain/registry.js.map +1 -0
- package/packages/tools/lib/toolchain/schema.d.ts +30 -0
- package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/schema.js +112 -0
- package/packages/tools/lib/toolchain/schema.js.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts +17 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.js +101 -0
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -0
- package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
- package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
- package/packages/tools/lib/validator/builtin-rules.js +62 -0
- package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.js +62 -7
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.js +100 -27
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
- package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +57 -4
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
- package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
- package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
- package/packages/tools/lib/validator/sysml-constraints.js +251 -0
- package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +33 -0
- package/packages/tools/lib/validator/types.d.ts.map +1 -1
- package/packages/tools/lib/version.d.ts +2 -0
- package/packages/tools/lib/version.d.ts.map +1 -0
- package/packages/tools/lib/version.js +26 -0
- package/packages/tools/lib/version.js.map +1 -0
- package/packages/tools/src/grammar/memo-sysml.langium +104 -18
- package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
- package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
- package/packages/tools/lib/model/dimension-filter.js +0 -57
- package/packages/tools/lib/model/dimension-filter.js.map +0 -1
- package/packages/tools/lib/model/toolchain.d.ts +0 -12
- package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
- package/packages/tools/lib/model/toolchain.js +0 -92
- package/packages/tools/lib/model/toolchain.js.map +0 -1
|
@@ -14,6 +14,17 @@ export interface NativeConstraint {
|
|
|
14
14
|
expression: string;
|
|
15
15
|
/** Severity when the expression is false for a subject. */
|
|
16
16
|
severity: 'error' | 'warning' | 'info';
|
|
17
|
+
/** Named specialized evaluator selected by ontology metadata. */
|
|
18
|
+
evaluator?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The `constraint def` name. A rule's stable ID is its audit identity; the
|
|
21
|
+
* def name is what a `RulePolicy` references, so both travel together.
|
|
22
|
+
*/
|
|
23
|
+
typeName?: string;
|
|
24
|
+
/** Tailoring class from the rule's own `tailoring` attribute. */
|
|
25
|
+
tailoring?: 'invariant' | 'assurance' | 'methodology';
|
|
26
|
+
/** File the rule is declared in. */
|
|
27
|
+
sourceFile?: string;
|
|
17
28
|
}
|
|
18
29
|
/** Constraint metadata without the expression body — used by the AST entry point. */
|
|
19
30
|
export type ConstraintMeta = Omit<NativeConstraint, 'expression'>;
|
|
@@ -52,6 +63,9 @@ type Node = {
|
|
|
52
63
|
| {
|
|
53
64
|
kind: 'allOfKind';
|
|
54
65
|
kindName: string;
|
|
66
|
+
} | {
|
|
67
|
+
kind: 'acyclic';
|
|
68
|
+
relationshipType: string;
|
|
55
69
|
} | {
|
|
56
70
|
kind: 'method';
|
|
57
71
|
target: Node;
|
|
@@ -85,6 +99,7 @@ type Node = {
|
|
|
85
99
|
};
|
|
86
100
|
/** Public alias for the evaluator AST node (the compiled form of a constraint body). */
|
|
87
101
|
export type ConstraintNode = Node;
|
|
102
|
+
export declare function parseConstraintExpression(src: string): Node;
|
|
88
103
|
/** Map a Langium-parsed constraint expression to the evaluator AST. */
|
|
89
104
|
export declare function langiumExprToNode(expr: ConstraintExpr): Node;
|
|
90
105
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-eval.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint-eval.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
27
27
|
/** Evaluate one native constraint (expression as source string) against its subject kind. */
|
|
28
28
|
export function evaluateNativeConstraint(constraint, model, kindRegistry) {
|
|
29
|
-
const ast =
|
|
29
|
+
const ast = parseConstraintExpression(constraint.expression);
|
|
30
30
|
const { expression: _drop, ...meta } = constraint;
|
|
31
31
|
return evaluateConstraintNode(meta, ast, model, kindRegistry);
|
|
32
32
|
}
|
|
@@ -37,7 +37,7 @@ export function evaluateNativeConstraint(constraint, model, kindRegistry) {
|
|
|
37
37
|
*/
|
|
38
38
|
export function evaluateConstraintNode(meta, ast, model, kindRegistry) {
|
|
39
39
|
const evaluationModel = kindRegistry ? withSpecializationExtents(model, kindRegistry) : model;
|
|
40
|
-
const subjects =
|
|
40
|
+
const subjects = subjectsForScope(meta.appliesToKind, evaluationModel);
|
|
41
41
|
const violations = [];
|
|
42
42
|
for (const element of subjects) {
|
|
43
43
|
const ok = toBool(evalNode(ast, { root: element, current: element }, evaluationModel));
|
|
@@ -55,6 +55,23 @@ export function evaluateConstraintNode(meta, ast, model, kindRegistry) {
|
|
|
55
55
|
}
|
|
56
56
|
return violations;
|
|
57
57
|
}
|
|
58
|
+
/** Resolve `Kind` or `Kind[attribute=value]` scope declarations. */
|
|
59
|
+
function subjectsForScope(scope, model) {
|
|
60
|
+
if (scope === 'Model') {
|
|
61
|
+
return [{
|
|
62
|
+
id: '__model__', name: 'Model', kind: 'Model', construct: 'model',
|
|
63
|
+
layer: 'model', file: '', attributes: {},
|
|
64
|
+
}];
|
|
65
|
+
}
|
|
66
|
+
const match = /^([A-Za-z_]\w*)(?:\[([A-Za-z_]\w*)=([^\]]+)\])?$/.exec(scope);
|
|
67
|
+
if (!match)
|
|
68
|
+
return [];
|
|
69
|
+
const [, kind, attribute, expected] = match;
|
|
70
|
+
const extent = model.elementsByKind.get(kind) ?? [];
|
|
71
|
+
if (!attribute)
|
|
72
|
+
return extent;
|
|
73
|
+
return extent.filter(element => normalizeEnum(element.attributes[attribute] ?? '') === normalizeEnum(expected));
|
|
74
|
+
}
|
|
58
75
|
/**
|
|
59
76
|
* Add inherited kind extents for the duration of constraint evaluation. The
|
|
60
77
|
* canonical model keeps exact-kind indexes; the evaluator's type extent uses
|
|
@@ -84,7 +101,7 @@ function withSpecializationExtents(model, kindRegistry) {
|
|
|
84
101
|
const TYPED_FIELDS = new Set(['kind', 'layer', 'construct', 'allocatedTo', 'name', 'id', 'package', 'shortId']);
|
|
85
102
|
function tokenize(src) {
|
|
86
103
|
const tokens = [];
|
|
87
|
-
const re = /\s*(->|==|!=|>=|<=|"[^"]*"|[<>()[\].+\-*/]|[A-Za-z_][A-Za-z0-9_]*|\d+)/y;
|
|
104
|
+
const re = /\s*(->|==|!=|>=|<=|"[^"]*"|'[^']*'|[<>()[\].+\-*/]|[A-Za-z_][A-Za-z0-9_]*|\d+)/y;
|
|
88
105
|
let m;
|
|
89
106
|
let pos = 0;
|
|
90
107
|
while (pos < src.length) {
|
|
@@ -96,7 +113,7 @@ function tokenize(src) {
|
|
|
96
113
|
const raw = m[1];
|
|
97
114
|
if (/^\d+$/.test(raw))
|
|
98
115
|
tokens.push({ t: 'int', v: raw });
|
|
99
|
-
else if (raw[0] === '"')
|
|
116
|
+
else if (raw[0] === '"' || raw[0] === "'")
|
|
100
117
|
tokens.push({ t: 'str', v: raw.slice(1, -1) });
|
|
101
118
|
else if (/^[A-Za-z_]/.test(raw))
|
|
102
119
|
tokens.push({ t: 'ident', v: raw });
|
|
@@ -111,7 +128,7 @@ function tokenize(src) {
|
|
|
111
128
|
const KEYWORDS = new Set(['and', 'or', 'not', 'true', 'false']);
|
|
112
129
|
const COLLECTION_OPS = new Set(['size', 'notEmpty', 'isEmpty']);
|
|
113
130
|
const QUANTIFIER_OPS = new Set(['forAll', 'exists', 'select']);
|
|
114
|
-
function
|
|
131
|
+
export function parseConstraintExpression(src) {
|
|
115
132
|
const tokens = tokenize(src);
|
|
116
133
|
let i = 0;
|
|
117
134
|
const peek = () => tokens[i];
|
|
@@ -221,6 +238,13 @@ function parseExpression(src) {
|
|
|
221
238
|
expect(')');
|
|
222
239
|
return { kind: 'allOfKind', kindName: arg.v };
|
|
223
240
|
}
|
|
241
|
+
if (tok.v === 'acyclic') {
|
|
242
|
+
next();
|
|
243
|
+
expect('(');
|
|
244
|
+
const relationshipType = expect('ident').v;
|
|
245
|
+
expect(')');
|
|
246
|
+
return { kind: 'acyclic', relationshipType };
|
|
247
|
+
}
|
|
224
248
|
if (KEYWORDS.has(tok.v))
|
|
225
249
|
throw new Error(`Unexpected keyword '${tok.v}'`);
|
|
226
250
|
return parseFeature();
|
|
@@ -260,6 +284,7 @@ function evalNode(node, env, model) {
|
|
|
260
284
|
case 'str': return node.value;
|
|
261
285
|
case 'feature': return resolveFeature(node.root === 'subject' ? env.root : env.current, node.segments, model);
|
|
262
286
|
case 'allOfKind': return model.elementsByKind.get(node.kindName) ?? [];
|
|
287
|
+
case 'acyclic': return relationshipAcyclic(model, node.relationshipType);
|
|
263
288
|
case 'method': {
|
|
264
289
|
const len = lengthOf(evalNode(node.target, env, model));
|
|
265
290
|
if (node.name === 'size')
|
|
@@ -293,6 +318,30 @@ function evalNode(node, env, model) {
|
|
|
293
318
|
case 'not': return !toBool(evalNode(node.operand, env, model));
|
|
294
319
|
}
|
|
295
320
|
}
|
|
321
|
+
function relationshipAcyclic(model, relationshipType) {
|
|
322
|
+
const adjacency = new Map();
|
|
323
|
+
for (const relationship of model.relationships) {
|
|
324
|
+
if (relationship.type.toLowerCase() !== relationshipType.toLowerCase())
|
|
325
|
+
continue;
|
|
326
|
+
adjacency.set(relationship.sourceId, [...(adjacency.get(relationship.sourceId) ?? []), relationship.targetId]);
|
|
327
|
+
}
|
|
328
|
+
const visiting = new Set();
|
|
329
|
+
const visited = new Set();
|
|
330
|
+
const visit = (id) => {
|
|
331
|
+
if (visiting.has(id))
|
|
332
|
+
return false;
|
|
333
|
+
if (visited.has(id))
|
|
334
|
+
return true;
|
|
335
|
+
visiting.add(id);
|
|
336
|
+
for (const target of adjacency.get(id) ?? [])
|
|
337
|
+
if (!visit(target))
|
|
338
|
+
return false;
|
|
339
|
+
visiting.delete(id);
|
|
340
|
+
visited.add(id);
|
|
341
|
+
return true;
|
|
342
|
+
};
|
|
343
|
+
return [...adjacency.keys()].every(visit);
|
|
344
|
+
}
|
|
296
345
|
/** True if `seg` names a relationship type, compared case-insensitively (keys are camelCase). */
|
|
297
346
|
function isRelType(model, seg) {
|
|
298
347
|
if (model.relationshipsByType.has(seg))
|
|
@@ -380,8 +429,8 @@ function navigate(subject, relType, model) {
|
|
|
380
429
|
}
|
|
381
430
|
function compare(op, l, r) {
|
|
382
431
|
if (typeof l === 'string' || typeof r === 'string') {
|
|
383
|
-
const ls = toStringValue(l);
|
|
384
|
-
const rs = toStringValue(r);
|
|
432
|
+
const ls = normalizeEnum(toStringValue(l));
|
|
433
|
+
const rs = normalizeEnum(toStringValue(r));
|
|
385
434
|
switch (op) {
|
|
386
435
|
case '==': return ls === rs;
|
|
387
436
|
case '!=': return ls !== rs;
|
|
@@ -402,6 +451,12 @@ function compare(op, l, r) {
|
|
|
402
451
|
case '<': return ln < rn;
|
|
403
452
|
}
|
|
404
453
|
}
|
|
454
|
+
/** Compare enum values by literal, regardless of qualified storage form. */
|
|
455
|
+
function normalizeEnum(value) {
|
|
456
|
+
const trimmed = value.trim().replace(/^['"]|['"]$/g, '');
|
|
457
|
+
const separator = trimmed.lastIndexOf('::');
|
|
458
|
+
return separator >= 0 ? trimmed.slice(separator + 2) : trimmed;
|
|
459
|
+
}
|
|
405
460
|
function isElement(v) {
|
|
406
461
|
return typeof v === 'object' && !Array.isArray(v);
|
|
407
462
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-eval.js","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constraint-eval.js","sourceRoot":"","sources":["../../src/validator/constraint-eval.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,qFAAqF;AACrF,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,8DAA8D;AAC9D,mFAAmF;AACnF,kFAAkF;AAClF,wDAAwD;AACxD,iFAAiF;AACjF,mCAAmC;AACnC,gDAAgD;AAChD,oFAAoF;AACpF,2EAA2E;AAC3E,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,oCAAoC;AACpC,iFAAiF;AAyCjF,6FAA6F;AAC7F,MAAM,UAAU,wBAAwB,CACpC,UAA4B,EAC5B,KAAgB,EAChB,YAA2B;IAE3B,MAAM,GAAG,GAAG,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;IAClD,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAClC,IAAoB,EACpB,GAAmB,EACnB,KAAgB,EAChB,YAA2B;IAE3B,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACvE,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,UAAU,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,KAAK,EAAE,OAAO,CAAC,KAAK;aACvB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,KAAa,EAAE,KAAgB;IACrD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC;gBACJ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;gBACjE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;aAC3C,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,KAAgB,EAAE,YAA0B;IAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;AAqCD,8EAA8E;AAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAMhH,SAAS,QAAQ,CAAC,GAAW;IACzB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,iFAAiF,CAAC;IAC7F,IAAI,CAAyB,CAAC;IAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC;QACnB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5E,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aACpD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrF,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;;YAChE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,uFAAuF;AAEvF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,SAAS,OAAO;QACZ,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QAC7G,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QAC/G,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACvF,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAY,CAAC;YAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAY,CAAC;YAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,QAAQ;QACb,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;QAAC,CAAC;QACxG,OAAO,YAAY,EAAE,CAAC;IAC1B,CAAC;IACD,SAAS,YAAY;QACjB,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAuC,EAAE,CAAC;YAC3F,CAAC;iBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAsC,EAAE,IAAI,EAAE,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,KAAK,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,YAAY;QACjB,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;QACnB,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAAC,CAAC;QACrF,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC;QAAC,CAAC;QACvE,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAAC,CAAC;YACxG,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7F,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC;YACnD,CAAC;YACD,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3E,OAAO,YAAY,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,SAAS,YAAY;QACjB,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,CAAE,CAAC;QACxB,MAAM,IAAI,GAA0B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,QAAQ,GAAa,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,SAAS,CAAC;YACN,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC9E,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACzF,MAAM;QACV,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,SAAS,QAAQ,CAAC,IAAU,EAAE,GAAQ,EAAE,KAAgB;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC/B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC;QAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9G,KAAK,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvE,KAAK,SAAS,CAAC,CAAC,OAAO,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,GAAG,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,GAAG,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU;QAChC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACvH,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1G,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACrD,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;gBACd,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,KAAK,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACtG,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgB,EAAE,gBAAwB;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAAE,SAAS;QACjF,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAW,EAAE;QAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,iGAAiG;AACjG,SAAS,SAAS,CAAC,KAAgB,EAAE,GAAW;IAC5C,IAAI,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,yFAAyF;AACzF,SAAS,cAAc,CAAC,KAAkB,EAAE,QAAkB,EAAE,KAAgB;IAC5E,IAAI,GAAG,GAAU,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAC5F,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;iBAAM,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAI,GAAqD,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,2EAA2E,CAAC,CAAC;YACjI,CAAC;YACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,QAAQ,CAAC,OAAoB,EAAE,OAAe,EAAE,KAAgB;IACrE,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,2EAA2E;IAC3E,0EAA0E;IAC1E,yDAAyD;IACzD,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,EAAS,EAAE,CAAQ,EAAE,CAAQ;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,EAAE,EAAE,CAAC;YACT,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACzB,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,EAAE,CAAC;QACT,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7B,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,CAAQ;IACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,SAAS,YAAY,CAAC,CAAQ;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAClE,CAAC;AACD,6EAA6E;AAC7E,SAAS,QAAQ,CAAC,CAAQ;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AAC1F,CAAC;AACD,SAAS,MAAM,CAAC,CAAQ;IACpB,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,4CAA4C;IACvF,OAAO,IAAI,CAAC,CAAC,6BAA6B;AAC9C,CAAC;AACD,SAAS,QAAQ,CAAC,CAAQ;IACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,qCAAqC;IAC5E,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,aAAa,CAAC,CAAQ;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,EAAE,CAAC;AAChB,CAAC;AAED,iFAAiF;AACjF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAE9E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhD,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IAClD,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5F,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvD,CAAC;QACD,KAAK,cAAc;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,KAAK,cAAc,CAAC,CAAC,CAAC;YAClB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAqC,EAAE,CAAC;YACxH,CAAC;YACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,mCAAmC,CAAC,CAAC;gBACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAoC,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9J,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,WAAW;YACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxH,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtH,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAW,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3H,CAAC;YACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/H,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
import type { ParsedDocument } from '../model/parser-utils.js';
|
|
2
2
|
import type { CompiledConstraint } from './constraint-eval.js';
|
|
3
|
+
/** A rule that could not be loaded, or that conflicts with another rule. */
|
|
4
|
+
export interface ConstraintDiagnostic {
|
|
5
|
+
kind: 'compile-failed' | 'duplicate-id';
|
|
6
|
+
ruleId: string;
|
|
7
|
+
file: string;
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* Walk all parsed documents and compile every native constraint def found.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
12
|
+
*
|
|
13
|
+
* De-duplication by rule id is legitimate for the SAME rule seen twice: the
|
|
14
|
+
* same ontology file appears in both the ontology load and the project parse.
|
|
15
|
+
* Two DIFFERENT rules sharing an id is a defect, and is reported rather than
|
|
16
|
+
* silently resolved by document order.
|
|
17
|
+
*
|
|
18
|
+
* A rule whose predicate fails to compile is skipped and reported. It used to
|
|
19
|
+
* throw, which took down the entire command: one malformed
|
|
20
|
+
* `predicateExpression` anywhere in a resolved dependency meant `memo validate`
|
|
21
|
+
* exited with a stack trace and validated nothing. A broken rule must be loud,
|
|
22
|
+
* but it must not be fatal — the other rules still have work to do.
|
|
23
|
+
*
|
|
24
|
+
* Callers are expected to surface `diagnostics`; a skipped rule that nobody
|
|
25
|
+
* reports is a silently disabled check, which is worse than a crash.
|
|
8
26
|
*/
|
|
9
|
-
export declare function collectNativeConstraints(docs: ParsedDocument[]): CompiledConstraint[];
|
|
27
|
+
export declare function collectNativeConstraints(docs: ParsedDocument[], diagnostics?: ConstraintDiagnostic[]): CompiledConstraint[];
|
|
10
28
|
//# sourceMappingURL=constraint-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"constraint-loader.d.ts","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,cAAc,EAAE,EACtB,WAAW,CAAC,EAAE,oBAAoB,EAAE,GACrC,kBAAkB,EAAE,CA0BtB"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Discovers native `constraint def` / `requirement def` declarations from parsed
|
|
4
4
|
// SysML documents and compiles each `require`/`assert constraint { … }` body into
|
|
5
|
-
// an evaluator AST
|
|
6
|
-
//
|
|
7
|
-
//
|
|
5
|
+
// an evaluator AST. Rules can use a directly parseable KerML body, or keep a
|
|
6
|
+
// portable `true` body and provide `predicateExpression` for MEMO semantic-model
|
|
7
|
+
// navigation. Model-level coverage targets are compiled into extent predicates.
|
|
8
8
|
//
|
|
9
9
|
// Rule metadata travels as plain attribute members inside the def body:
|
|
10
10
|
// constraint def hazardNeedsMitigation {
|
|
@@ -12,69 +12,137 @@
|
|
|
12
12
|
// attribute appliesTo = "Hazard";
|
|
13
13
|
// attribute severity = RuleSeverityKind::error;
|
|
14
14
|
// attribute rationaleText = "ISO 14971 requires risk control for each hazard.";
|
|
15
|
-
// require constraint {
|
|
15
|
+
// require constraint { mitigatesHazard->size() >= 1 }
|
|
16
16
|
// }
|
|
17
17
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
18
|
-
import { langiumExprToNode } from './constraint-eval.js';
|
|
18
|
+
import { langiumExprToNode, parseConstraintExpression } from './constraint-eval.js';
|
|
19
19
|
/**
|
|
20
20
|
* Walk all parsed documents and compile every native constraint def found.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
*
|
|
22
|
+
* De-duplication by rule id is legitimate for the SAME rule seen twice: the
|
|
23
|
+
* same ontology file appears in both the ontology load and the project parse.
|
|
24
|
+
* Two DIFFERENT rules sharing an id is a defect, and is reported rather than
|
|
25
|
+
* silently resolved by document order.
|
|
26
|
+
*
|
|
27
|
+
* A rule whose predicate fails to compile is skipped and reported. It used to
|
|
28
|
+
* throw, which took down the entire command: one malformed
|
|
29
|
+
* `predicateExpression` anywhere in a resolved dependency meant `memo validate`
|
|
30
|
+
* exited with a stack trace and validated nothing. A broken rule must be loud,
|
|
31
|
+
* but it must not be fatal — the other rules still have work to do.
|
|
32
|
+
*
|
|
33
|
+
* Callers are expected to surface `diagnostics`; a skipped rule that nobody
|
|
34
|
+
* reports is a silently disabled check, which is worse than a crash.
|
|
24
35
|
*/
|
|
25
|
-
export function collectNativeConstraints(docs) {
|
|
36
|
+
export function collectNativeConstraints(docs, diagnostics) {
|
|
26
37
|
const byId = new Map();
|
|
38
|
+
const sourceById = new Map();
|
|
27
39
|
for (const doc of docs) {
|
|
28
40
|
const model = doc.document.parseResult?.value;
|
|
29
41
|
if (!model)
|
|
30
42
|
continue;
|
|
31
43
|
const found = [];
|
|
32
44
|
for (const member of model.members ?? []) {
|
|
33
|
-
walk(member, found);
|
|
45
|
+
walk(member, found, doc.filePath, diagnostics);
|
|
34
46
|
}
|
|
35
|
-
for (const c of found)
|
|
47
|
+
for (const c of found) {
|
|
48
|
+
const previous = sourceById.get(c.id);
|
|
49
|
+
if (previous !== undefined && previous !== doc.filePath) {
|
|
50
|
+
diagnostics?.push({
|
|
51
|
+
kind: 'duplicate-id',
|
|
52
|
+
ruleId: c.id,
|
|
53
|
+
file: doc.filePath,
|
|
54
|
+
message: `Rule id ${c.id} is declared in both ${previous} and ${doc.filePath}. `
|
|
55
|
+
+ `Rule ids must be unique; which definition wins currently depends on load order.`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
sourceById.set(c.id, doc.filePath);
|
|
36
59
|
byId.set(c.id, c);
|
|
60
|
+
}
|
|
37
61
|
}
|
|
38
62
|
return [...byId.values()];
|
|
39
63
|
}
|
|
40
|
-
function walk(node, out) {
|
|
64
|
+
function walk(node, out, file, diagnostics) {
|
|
41
65
|
if (!node)
|
|
42
66
|
return;
|
|
43
67
|
if (node.$type === 'PackageDeclaration') {
|
|
44
68
|
for (const member of node.members ?? [])
|
|
45
|
-
walk(member, out);
|
|
69
|
+
walk(member, out, file, diagnostics);
|
|
46
70
|
}
|
|
47
71
|
else if (node.$type === 'ConstraintDefinition' || node.$type === 'RequirementDefinition') {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
72
|
+
try {
|
|
73
|
+
const compiled = tryCompile(node, file);
|
|
74
|
+
if (compiled)
|
|
75
|
+
out.push(compiled);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
diagnostics?.push({
|
|
79
|
+
kind: 'compile-failed',
|
|
80
|
+
ruleId: extractAttributes(node.body ?? [])['id'] ?? '(unknown)',
|
|
81
|
+
file,
|
|
82
|
+
message: error instanceof Error ? error.message : String(error),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
51
85
|
}
|
|
52
86
|
}
|
|
53
|
-
function
|
|
87
|
+
function mapTailoring(raw) {
|
|
88
|
+
// A rule with no declared class is treated as `assurance`: tailorable with
|
|
89
|
+
// rationale. Defaulting to `invariant` would silently make every
|
|
90
|
+
// unclassified rule untailorable, which is the harder failure to notice.
|
|
91
|
+
return raw === 'invariant' || raw === 'methodology' ? raw : 'assurance';
|
|
92
|
+
}
|
|
93
|
+
function tryCompile(def, file) {
|
|
54
94
|
const body = def.body ?? [];
|
|
55
|
-
// The boolean body: first require/assert constraint member.
|
|
56
|
-
const requireMember = body.find(m => m.$type === 'RequireConstraintMember' && m.expression);
|
|
57
|
-
if (!requireMember)
|
|
58
|
-
return undefined;
|
|
59
95
|
const attrs = extractAttributes(body);
|
|
60
96
|
const id = attrs['id'];
|
|
61
97
|
if (!id)
|
|
62
|
-
return undefined;
|
|
98
|
+
return undefined;
|
|
99
|
+
// The boolean body: first require/assert constraint member.
|
|
100
|
+
const requireMember = body.find(m => m.$type === 'RequireConstraintMember' && m.expression);
|
|
63
101
|
let ast;
|
|
64
|
-
|
|
102
|
+
let appliesToKind = attrs['appliesTo'] ?? '';
|
|
103
|
+
if (requireMember) {
|
|
65
104
|
ast = langiumExprToNode(requireMember.expression);
|
|
105
|
+
if (ast.kind === 'bool' && ast.value && attrs['predicateExpression'] && attrs['evaluator'] !== 'architecture') {
|
|
106
|
+
// Portable constraint bodies remain `true` where SysML tools cannot
|
|
107
|
+
// resolve MEMO's semantic-model navigation. The executable predicate
|
|
108
|
+
// is still ontology-owned and is compiled here.
|
|
109
|
+
try {
|
|
110
|
+
ast = parseConstraintExpression(attrs['predicateExpression']);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
throw new Error(`Cannot compile predicateExpression for ${id} (${JSON.stringify(attrs['predicateExpression'])}): ${error instanceof Error ? error.message : String(error)}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
66
116
|
}
|
|
67
|
-
|
|
68
|
-
|
|
117
|
+
else if (attrs['coverageTarget']) {
|
|
118
|
+
const target = parseScope(attrs['coverageTarget']);
|
|
119
|
+
const filter = target.attribute
|
|
120
|
+
? `->exists(attributes.${target.attribute} == "${target.value}")`
|
|
121
|
+
: '->notEmpty()';
|
|
122
|
+
ast = parseConstraintExpression(`allOfKind("${target.kind}")${filter}`);
|
|
123
|
+
appliesToKind = 'Model';
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
return undefined;
|
|
69
127
|
}
|
|
70
128
|
return {
|
|
71
129
|
id,
|
|
72
130
|
description: attrs['description'] || attrs['rationaleText'] || id,
|
|
73
|
-
appliesToKind
|
|
131
|
+
appliesToKind,
|
|
74
132
|
severity: mapSeverity(attrs['severity']),
|
|
133
|
+
evaluator: attrs['evaluator'] || undefined,
|
|
134
|
+
typeName: def.name,
|
|
135
|
+
tailoring: mapTailoring(attrs['tailoring']),
|
|
136
|
+
sourceFile: file,
|
|
75
137
|
ast,
|
|
76
138
|
};
|
|
77
139
|
}
|
|
140
|
+
function parseScope(scope) {
|
|
141
|
+
const match = /^([A-Za-z_]\w*)(?:\[([A-Za-z_]\w*)=([^\]]+)\])?$/.exec(scope);
|
|
142
|
+
if (!match)
|
|
143
|
+
throw new Error(`Unsupported coverage target '${scope}'.`);
|
|
144
|
+
return { kind: match[1], attribute: match[2], value: match[3] };
|
|
145
|
+
}
|
|
78
146
|
function extractAttributes(body) {
|
|
79
147
|
const attrs = {};
|
|
80
148
|
for (const member of body) {
|
|
@@ -89,7 +157,12 @@ function extractValue(value) {
|
|
|
89
157
|
return '';
|
|
90
158
|
switch (value.$type) {
|
|
91
159
|
case 'StringValue':
|
|
92
|
-
|
|
160
|
+
try {
|
|
161
|
+
return JSON.parse(value.value ?? '""');
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return value.value?.replace(/^"|"$/g, '') ?? '';
|
|
165
|
+
}
|
|
93
166
|
case 'IntValue':
|
|
94
167
|
case 'RealValue':
|
|
95
168
|
return String(value.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-loader.js","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"constraint-loader.js","sourceRoot":"","sources":["../../src/validator/constraint-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MemoModel } from '../model/semantic.js';
|
|
2
2
|
import type { ValidationResult } from './types.js';
|
|
3
|
+
import type { EffectiveRule } from '../model/methodology-resolver.js';
|
|
3
4
|
import type { CompiledConstraint } from './constraint-eval.js';
|
|
4
5
|
import type { KindRegistry } from '../model/kind-registry.js';
|
|
5
6
|
/**
|
|
@@ -10,5 +11,5 @@ import type { KindRegistry } from '../model/kind-registry.js';
|
|
|
10
11
|
* (see collectNativeConstraints). Evaluated as native KerML
|
|
11
12
|
* expressions over each constraint's subject kind.
|
|
12
13
|
*/
|
|
13
|
-
export declare function validateModel(model: MemoModel, nativeConstraints?: CompiledConstraint[], kindRegistry?: KindRegistry): ValidationResult;
|
|
14
|
+
export declare function validateModel(model: MemoModel, nativeConstraints?: CompiledConstraint[], kindRegistry?: KindRegistry, effectiveRules?: EffectiveRule[]): ValidationResult;
|
|
14
15
|
//# sourceMappingURL=rule-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAa,gBAAgB,
|
|
1
|
+
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAa,gBAAgB,EAA2B,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,SAAS,EAChB,iBAAiB,GAAE,kBAAkB,EAAO,EAC5C,YAAY,CAAC,EAAE,YAAY,EAC3B,cAAc,CAAC,EAAE,aAAa,EAAE,GACjC,gBAAgB,CAwElB"}
|