@zzzen/pyright-internal 1.2.0-dev.20240721 → 1.2.0-dev.20240804
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/dist/analyzer/analyzerNodeInfo.js +2 -2
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +15 -12
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.js +3 -0
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +5 -3
- package/dist/analyzer/checker.js +238 -193
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +2 -2
- package/dist/analyzer/codeFlowEngine.js +53 -46
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js +1 -1
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolution.d.ts +21 -0
- package/dist/analyzer/constraintSolution.js +71 -0
- package/dist/analyzer/constraintSolution.js.map +1 -0
- package/dist/analyzer/constraintSolver.d.ts +10 -6
- package/dist/analyzer/constraintSolver.js +520 -462
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constraintTracker.d.ts +44 -0
- package/dist/analyzer/constraintTracker.js +230 -0
- package/dist/analyzer/constraintTracker.js.map +1 -0
- package/dist/analyzer/constructorTransform.d.ts +2 -2
- package/dist/analyzer/constructorTransform.js +25 -25
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +3 -3
- package/dist/analyzer/constructors.js +80 -64
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.d.ts +2 -2
- package/dist/analyzer/dataClasses.js +87 -61
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +9 -9
- package/dist/analyzer/declaration.js +9 -9
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +1 -1
- package/dist/analyzer/declarationUtils.js +6 -6
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +5 -5
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +2 -2
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.d.ts +2 -2
- package/dist/analyzer/enums.js +6 -6
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.d.ts +2 -2
- package/dist/analyzer/functionTransform.js +5 -5
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.js +5 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/namedTuples.d.ts +3 -3
- package/dist/analyzer/namedTuples.js +21 -22
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +1 -2
- package/dist/analyzer/operations.js +105 -82
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +16 -12
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +12 -12
- package/dist/analyzer/parameterUtils.js +67 -69
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +6 -6
- package/dist/analyzer/parseTreeUtils.js +22 -22
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +122 -101
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +11 -4
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.d.ts +3 -2
- package/dist/analyzer/properties.js +27 -27
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +3 -3
- package/dist/analyzer/protocols.js +58 -57
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +1 -1
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -7
- package/dist/analyzer/service.js +28 -30
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/serviceUtils.d.ts +8 -0
- package/dist/analyzer/serviceUtils.js +31 -0
- package/dist/analyzer/serviceUtils.js.map +1 -0
- package/dist/analyzer/sourceFile.js +5 -19
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +1 -1
- package/dist/analyzer/sourceMapper.js +4 -4
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +1 -1
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +4 -4
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/tuples.d.ts +9 -0
- package/dist/analyzer/tuples.js +253 -0
- package/dist/analyzer/tuples.js.map +1 -0
- package/dist/analyzer/typeComplexity.d.ts +2 -0
- package/dist/analyzer/typeComplexity.js +94 -0
- package/dist/analyzer/typeComplexity.js.map +1 -0
- package/dist/analyzer/typeEvaluator.js +1758 -1979
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +69 -45
- package/dist/analyzer/typeEvaluatorTypes.js +7 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +157 -121
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +64 -61
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.d.ts +3 -3
- package/dist/analyzer/typeStubWriter.js +15 -15
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +45 -41
- package/dist/analyzer/typeUtils.js +511 -748
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.js +4 -4
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +4 -4
- package/dist/analyzer/typedDicts.js +73 -77
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +97 -72
- package/dist/analyzer/types.js +217 -208
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +11 -11
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +5 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/diagnosticRules.d.ts +1 -0
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/fileSystem.d.ts +0 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/languageServerInterface.d.ts +13 -0
- package/dist/common/languageServerInterface.js +15 -1
- package/dist/common/languageServerInterface.js.map +1 -1
- package/dist/common/lspUtils.js +2 -2
- package/dist/common/memUtils.d.ts +4 -0
- package/dist/common/memUtils.js +33 -2
- package/dist/common/memUtils.js.map +1 -1
- package/dist/common/serviceKeys.d.ts +3 -0
- package/dist/common/serviceKeys.js +2 -0
- package/dist/common/serviceKeys.js.map +1 -1
- package/dist/common/serviceProviderExtensions.js +7 -0
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/languageServerBase.d.ts +5 -4
- package/dist/languageServerBase.js +19 -12
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -2
- package/dist/languageService/autoImporter.js +5 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +5 -3
- package/dist/languageService/completionProvider.js +39 -38
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +1 -1
- package/dist/languageService/completionProviderUtils.js +3 -3
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/fileWatcherDynamicFeature.js +2 -2
- package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
- package/dist/languageService/hoverProvider.js +3 -3
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.js +2 -2
- package/dist/languageService/signatureHelpProvider.js +1 -1
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +3 -3
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +5 -0
- package/dist/localization/localize.js +6 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +5 -1
- package/dist/localization/package.nls.de.json +5 -1
- package/dist/localization/package.nls.en-us.json +5 -0
- package/dist/localization/package.nls.es.json +5 -1
- package/dist/localization/package.nls.fr.json +5 -1
- package/dist/localization/package.nls.it.json +5 -1
- package/dist/localization/package.nls.ja.json +5 -1
- package/dist/localization/package.nls.ko.json +5 -1
- package/dist/localization/package.nls.pl.json +5 -1
- package/dist/localization/package.nls.pt-br.json +5 -1
- package/dist/localization/package.nls.qps-ploc.json +5 -1
- package/dist/localization/package.nls.ru.json +5 -1
- package/dist/localization/package.nls.tr.json +5 -1
- package/dist/localization/package.nls.zh-cn.json +5 -1
- package/dist/localization/package.nls.zh-tw.json +5 -1
- package/dist/parser/parseNodes.d.ts +9 -9
- package/dist/parser/parseNodes.js +20 -20
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js +30 -30
- package/dist/parser/parser.js.map +1 -1
- package/dist/tests/checker.test.js +12 -4
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js +4 -21
- package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js +2 -2
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +0 -1
- package/dist/tests/harness/vfs/filesystem.js +0 -4
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +62 -15
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.js +1 -1
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator2.test.js +12 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +9 -3
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +72 -60
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +6 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +4 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +13 -18
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +3 -2
- package/dist/workspaceFactory.js +15 -2
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
- package/dist/analyzer/typeVarContext.d.ts +0 -60
- package/dist/analyzer/typeVarContext.js +0 -392
- package/dist/analyzer/typeVarContext.js.map +0 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
import { ConsoleInterface } from '../common/console';
|
2
2
|
import { CodeFlowReferenceExpressionNode, FlowNode } from './codeFlowTypes';
|
3
3
|
import { SpeculativeTypeTracker } from './typeCacheUtils';
|
4
|
-
import { TypeEvaluator, TypeResult } from './typeEvaluatorTypes';
|
4
|
+
import { Reachability, TypeEvaluator, TypeResult } from './typeEvaluatorTypes';
|
5
5
|
import { Type, TypeVarType } from './types';
|
6
6
|
export interface FlowNodeTypeResult {
|
7
7
|
type: Type | undefined;
|
@@ -22,7 +22,7 @@ export interface CodeFlowAnalyzer {
|
|
22
22
|
}
|
23
23
|
export interface CodeFlowEngine {
|
24
24
|
createCodeFlowAnalyzer: () => CodeFlowAnalyzer;
|
25
|
-
|
25
|
+
getFlowNodeReachability: (flowNode: FlowNode, sourceFlowNode?: FlowNode, ignoreNoReturn?: boolean) => Reachability;
|
26
26
|
narrowConstrainedTypeVar: (flowNode: FlowNode, typeVar: TypeVarType) => Type | undefined;
|
27
27
|
printControlFlowGraph: (flowNode: FlowNode, reference: CodeFlowReferenceExpressionNode | undefined, callName: string, logger: ConsoleInterface) => void;
|
28
28
|
}
|
@@ -22,6 +22,7 @@ const constructors_1 = require("./constructors");
|
|
22
22
|
const parseTreeUtils_1 = require("./parseTreeUtils");
|
23
23
|
const patternMatching_1 = require("./patternMatching");
|
24
24
|
const typedDicts_1 = require("./typedDicts");
|
25
|
+
const typeEvaluatorTypes_1 = require("./typeEvaluatorTypes");
|
25
26
|
const typeGuards_1 = require("./typeGuards");
|
26
27
|
const types_1 = require("./types");
|
27
28
|
const typeUtils_1 = require("./typeUtils");
|
@@ -343,7 +344,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
343
344
|
targetNode.d.items.length === 1 &&
|
344
345
|
!targetNode.d.trailingComma &&
|
345
346
|
!targetNode.d.items[0].d.name &&
|
346
|
-
targetNode.d.items[0].d.argCategory === 0 /*
|
347
|
+
targetNode.d.items[0].d.argCategory === 0 /* ArgCategory.Simple */ &&
|
347
348
|
targetNode.d.items[0].d.valueExpr.nodeType === 48 /* ParseNodeType.StringList */ &&
|
348
349
|
targetNode.d.items[0].d.valueExpr.d.strings.length === 1 &&
|
349
350
|
targetNode.d.items[0].d.valueExpr.d.strings[0].nodeType === 49 /* ParseNodeType.String */) {
|
@@ -395,7 +396,8 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
395
396
|
subexpressionReferenceKeys = (0, codeFlowTypes_1.createKeysForReferenceSubexpressions)(reference);
|
396
397
|
}
|
397
398
|
if (!subexpressionReferenceKeys.some((key) => branchFlowNode.affectedExpressions.has(key)) &&
|
398
|
-
|
399
|
+
getFlowNodeReachability(curFlowNode, branchFlowNode.preBranchAntecedent) ===
|
400
|
+
typeEvaluatorTypes_1.Reachability.Reachable) {
|
399
401
|
curFlowNode = branchFlowNode.preBranchAntecedent;
|
400
402
|
continue;
|
401
403
|
}
|
@@ -818,37 +820,37 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
818
820
|
// control flow path within the execution context. If sourceFlowNode
|
819
821
|
// is specified, it returns true only if at least one control flow
|
820
822
|
// path passes through sourceFlowNode.
|
821
|
-
function
|
823
|
+
function getFlowNodeReachability(flowNode, sourceFlowNode, ignoreNoReturn = false) {
|
822
824
|
const visitedFlowNodeSet = new Set();
|
823
825
|
const closedFinallyGateSet = new Set();
|
824
826
|
if (enablePrintControlFlowGraph) {
|
825
|
-
printControlFlowGraph(flowNode, /* reference */ undefined, '
|
827
|
+
printControlFlowGraph(flowNode, /* reference */ undefined, 'getFlowNodeReachability');
|
826
828
|
}
|
827
|
-
function cacheReachabilityResult(
|
829
|
+
function cacheReachabilityResult(reachability) {
|
828
830
|
// If there is a finally gate set, we will not cache the results
|
829
831
|
// because this can affect the reachability.
|
830
832
|
if (closedFinallyGateSet.size > 0) {
|
831
|
-
return
|
833
|
+
return reachability;
|
832
834
|
}
|
833
835
|
let cacheEntry = reachabilityCache.get(flowNode.id);
|
834
836
|
if (!cacheEntry) {
|
835
|
-
cacheEntry = {
|
837
|
+
cacheEntry = { reachability: undefined, reachabilityFrom: new Map() };
|
836
838
|
reachabilityCache.set(flowNode.id, cacheEntry);
|
837
839
|
}
|
838
840
|
if (!sourceFlowNode) {
|
839
|
-
cacheEntry.
|
841
|
+
cacheEntry.reachability = reachability;
|
840
842
|
}
|
841
843
|
else {
|
842
|
-
cacheEntry.
|
844
|
+
cacheEntry.reachabilityFrom.set(sourceFlowNode.id, reachability);
|
843
845
|
}
|
844
|
-
return
|
846
|
+
return reachability;
|
845
847
|
}
|
846
|
-
function
|
848
|
+
function getFlowNodeReachabilityRecursive(flowNode, recursionCount = 0) {
|
847
849
|
var _a;
|
848
850
|
// Cut off the recursion at some point to prevent a stack overflow.
|
849
851
|
const maxFlowNodeReachableRecursionCount = 64;
|
850
852
|
if (recursionCount > maxFlowNodeReachableRecursionCount) {
|
851
|
-
return
|
853
|
+
return typeEvaluatorTypes_1.Reachability.Reachable;
|
852
854
|
}
|
853
855
|
recursionCount++;
|
854
856
|
let curFlowNode = flowNode;
|
@@ -857,29 +859,29 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
857
859
|
const cacheEntry = reachabilityCache.get(flowNode.id);
|
858
860
|
if (cacheEntry !== undefined && closedFinallyGateSet.size === 0) {
|
859
861
|
if (!sourceFlowNode) {
|
860
|
-
if (cacheEntry.
|
861
|
-
return cacheEntry.
|
862
|
+
if (cacheEntry.reachability !== undefined) {
|
863
|
+
return cacheEntry.reachability;
|
862
864
|
}
|
863
865
|
}
|
864
866
|
else {
|
865
|
-
const
|
866
|
-
if (
|
867
|
-
return
|
867
|
+
const reachabilityFrom = cacheEntry.reachabilityFrom.get(sourceFlowNode.id);
|
868
|
+
if (reachabilityFrom !== undefined) {
|
869
|
+
return reachabilityFrom;
|
868
870
|
}
|
869
871
|
}
|
870
872
|
}
|
871
873
|
// If we've already visited this node, we can assume
|
872
874
|
// it wasn't reachable.
|
873
875
|
if (visitedFlowNodeSet.has(curFlowNode.id)) {
|
874
|
-
return cacheReachabilityResult(
|
876
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableAlways);
|
875
877
|
}
|
876
878
|
// Note that we've been here before.
|
877
879
|
visitedFlowNodeSet.add(curFlowNode.id);
|
878
880
|
if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.Unreachable) {
|
879
|
-
return cacheReachabilityResult(
|
881
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableAlways);
|
880
882
|
}
|
881
883
|
if (curFlowNode === sourceFlowNode) {
|
882
|
-
return cacheReachabilityResult(
|
884
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.Reachable);
|
883
885
|
}
|
884
886
|
if (curFlowNode.flags &
|
885
887
|
(codeFlowTypes_1.FlowFlags.VariableAnnotation |
|
@@ -915,7 +917,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
915
917
|
}
|
916
918
|
}
|
917
919
|
if (isUnreachable) {
|
918
|
-
return cacheReachabilityResult(
|
920
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis);
|
919
921
|
}
|
920
922
|
}
|
921
923
|
}
|
@@ -928,7 +930,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
928
930
|
// it always raises an exception or otherwise doesn't return,
|
929
931
|
// so we can assume that the code before this is unreachable.
|
930
932
|
if (!ignoreNoReturn && isCallNoReturn(evaluator, callFlowNode)) {
|
931
|
-
return cacheReachabilityResult(
|
933
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis);
|
932
934
|
}
|
933
935
|
curFlowNode = callFlowNode.antecedent;
|
934
936
|
continue;
|
@@ -939,26 +941,31 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
939
941
|
// suppression. If not, none of its antecedents are reachable.
|
940
942
|
const contextMgrNode = curFlowNode;
|
941
943
|
if (!contextMgrNode.expressions.some((expr) => isExceptionContextManager(evaluator, expr, contextMgrNode.isAsync))) {
|
942
|
-
return cacheReachabilityResult(
|
944
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis);
|
943
945
|
}
|
944
946
|
}
|
945
947
|
const labelNode = curFlowNode;
|
948
|
+
let unreachableByType = false;
|
946
949
|
for (const antecedent of labelNode.antecedents) {
|
947
|
-
|
948
|
-
|
950
|
+
const reachability = getFlowNodeReachabilityRecursive(antecedent, recursionCount);
|
951
|
+
if (reachability === typeEvaluatorTypes_1.Reachability.Reachable) {
|
952
|
+
return cacheReachabilityResult(reachability);
|
953
|
+
}
|
954
|
+
else if (reachability === typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis) {
|
955
|
+
unreachableByType = true;
|
949
956
|
}
|
950
957
|
}
|
951
|
-
return cacheReachabilityResult(
|
958
|
+
return cacheReachabilityResult(unreachableByType ? typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis : typeEvaluatorTypes_1.Reachability.UnreachableAlways);
|
952
959
|
}
|
953
960
|
if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.Start) {
|
954
961
|
// If we hit the start but were looking for a particular source flow
|
955
962
|
// node, return false. Otherwise, the start is what we're looking for.
|
956
|
-
return cacheReachabilityResult(sourceFlowNode ?
|
963
|
+
return cacheReachabilityResult(sourceFlowNode ? typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis : typeEvaluatorTypes_1.Reachability.Reachable);
|
957
964
|
}
|
958
965
|
if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.PreFinallyGate) {
|
959
966
|
const preFinallyFlowNode = curFlowNode;
|
960
967
|
if (closedFinallyGateSet.has(preFinallyFlowNode.id)) {
|
961
|
-
return cacheReachabilityResult(
|
968
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis);
|
962
969
|
}
|
963
970
|
curFlowNode = preFinallyFlowNode.antecedent;
|
964
971
|
continue;
|
@@ -968,7 +975,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
968
975
|
const wasGateClosed = closedFinallyGateSet.has(postFinallyFlowNode.preFinallyGate.id);
|
969
976
|
try {
|
970
977
|
closedFinallyGateSet.add(postFinallyFlowNode.preFinallyGate.id);
|
971
|
-
return cacheReachabilityResult(
|
978
|
+
return cacheReachabilityResult(getFlowNodeReachabilityRecursive(postFinallyFlowNode.antecedent, recursionCount));
|
972
979
|
}
|
973
980
|
finally {
|
974
981
|
if (!wasGateClosed) {
|
@@ -978,16 +985,16 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
978
985
|
}
|
979
986
|
// We shouldn't get here.
|
980
987
|
(0, debug_1.fail)('Unexpected flow node flags');
|
981
|
-
return cacheReachabilityResult(
|
988
|
+
return cacheReachabilityResult(typeEvaluatorTypes_1.Reachability.Reachable);
|
982
989
|
}
|
983
990
|
}
|
984
991
|
// Protect against infinite recursion.
|
985
992
|
if (isReachableRecursionSet.has(flowNode.id)) {
|
986
|
-
return
|
993
|
+
return typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis;
|
987
994
|
}
|
988
995
|
isReachableRecursionSet.add(flowNode.id);
|
989
996
|
try {
|
990
|
-
return
|
997
|
+
return getFlowNodeReachabilityRecursive(flowNode);
|
991
998
|
}
|
992
999
|
finally {
|
993
1000
|
isReachableRecursionSet.delete(flowNode.id);
|
@@ -997,10 +1004,10 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
997
1004
|
// can be narrowed to one of its constrained types based on isinstance type
|
998
1005
|
// guard checks.
|
999
1006
|
function narrowConstrainedTypeVar(flowNode, typeVar) {
|
1000
|
-
(0, debug_1.assert)(!
|
1001
|
-
(0, debug_1.assert)(!
|
1002
|
-
(0, debug_1.assert)(!
|
1003
|
-
(0, debug_1.assert)(
|
1007
|
+
(0, debug_1.assert)(!(0, types_1.isParamSpec)(typeVar));
|
1008
|
+
(0, debug_1.assert)(!(0, types_1.isTypeVarTuple)(typeVar));
|
1009
|
+
(0, debug_1.assert)(!types_1.TypeVarType.hasBound(typeVar));
|
1010
|
+
(0, debug_1.assert)(types_1.TypeVarType.hasConstraints(typeVar));
|
1004
1011
|
const visitedFlowNodeMap = new Set();
|
1005
1012
|
const startingConstraints = [];
|
1006
1013
|
for (const constraint of typeVar.shared.constraints) {
|
@@ -1134,7 +1141,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1134
1141
|
}
|
1135
1142
|
}
|
1136
1143
|
else if ((_a = subtype.props) === null || _a === void 0 ? void 0 : _a.condition) {
|
1137
|
-
if (!subtype.props.condition.some((condition) => condition.typeVar
|
1144
|
+
if (!subtype.props.condition.some((condition) => types_1.TypeVarType.hasConstraints(condition.typeVar) &&
|
1138
1145
|
condition.typeVar.priv.nameWithScope === typeVar.priv.nameWithScope)) {
|
1139
1146
|
isCompatible = false;
|
1140
1147
|
}
|
@@ -1227,8 +1234,8 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1227
1234
|
else {
|
1228
1235
|
// Perform a more complete evaluation to determine whether
|
1229
1236
|
// the applicable overload returns a NoReturn.
|
1230
|
-
const callResult = evaluator.validateOverloadedArgTypes(node, node.d.args.map((arg) => (0, typeUtils_1.
|
1231
|
-
/*
|
1237
|
+
const callResult = evaluator.validateOverloadedArgTypes(node, node.d.args.map((arg) => (0, typeUtils_1.convertNodeToArg)(arg)), { type: callSubtype, isIncomplete: callTypeResult.isIncomplete },
|
1238
|
+
/* constraints */ undefined,
|
1232
1239
|
/* skipUnknownArgCheck */ false,
|
1233
1240
|
/* inferenceContext */ undefined);
|
1234
1241
|
if (callResult.returnType && (0, types_1.isNever)(callResult.returnType)) {
|
@@ -1256,9 +1263,9 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1256
1263
|
if (returnType) {
|
1257
1264
|
if ((0, types_1.isClassInstance)(returnType) &&
|
1258
1265
|
types_1.ClassType.isBuiltIn(returnType, 'Coroutine') &&
|
1259
|
-
returnType.priv.
|
1260
|
-
returnType.priv.
|
1261
|
-
if ((0, types_1.isNever)(returnType.priv.
|
1266
|
+
returnType.priv.typeArgs &&
|
1267
|
+
returnType.priv.typeArgs.length >= 3) {
|
1268
|
+
if ((0, types_1.isNever)(returnType.priv.typeArgs[2]) && isCallAwaited) {
|
1262
1269
|
return true;
|
1263
1270
|
}
|
1264
1271
|
}
|
@@ -1343,9 +1350,9 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1343
1350
|
if (isAsync) {
|
1344
1351
|
if ((0, types_1.isClassInstance)(returnType) &&
|
1345
1352
|
types_1.ClassType.isBuiltIn(returnType, 'Coroutine') &&
|
1346
|
-
returnType.priv.
|
1347
|
-
returnType.priv.
|
1348
|
-
returnType = returnType.priv.
|
1353
|
+
returnType.priv.typeArgs &&
|
1354
|
+
returnType.priv.typeArgs.length >= 3) {
|
1355
|
+
returnType = returnType.priv.typeArgs[2];
|
1349
1356
|
}
|
1350
1357
|
}
|
1351
1358
|
cmSwallowsExceptions = false;
|
@@ -1389,7 +1396,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1389
1396
|
}
|
1390
1397
|
return {
|
1391
1398
|
createCodeFlowAnalyzer,
|
1392
|
-
|
1399
|
+
getFlowNodeReachability,
|
1393
1400
|
narrowConstrainedTypeVar,
|
1394
1401
|
printControlFlowGraph,
|
1395
1402
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAGH,2CAA+C;AAC/C,2DAAkE;AAElE,yDAAgE;AAChE,mDAkByB;AACzB,mDAAyD;AACzD,iDAAuE;AACvE,qDAAsG;AACtG,uDAAuE;AAEvE,6CAAsD;AAEtD,6CAAwD;AACxD,mCAmBiB;AACjB,2CAQqB;AASrB,IAAiB,kBAAkB,CAclC;AAdD,WAAiB,kBAAkB;IAC/B,SAAgB,MAAM,CAClB,IAAsB,EACtB,YAAqB,EACrB,eAAwB,EACxB,kBAA4C;QAE5C,OAAO;YACH,IAAI;YACJ,YAAY;YACZ,eAAe;YACf,kBAAkB;SACrB,CAAC;IACN,CAAC;IAZe,yBAAM,SAYrB,CAAA;AACL,CAAC,EAdgB,kBAAkB,kCAAlB,kBAAkB,QAclC;AA6DD,wDAAwD;AACxD,SAAgB,gBAAgB,CAAC,UAAsB;IACnD,OAAO,CAAC,CAAE,UAA6B,CAAC,gBAAgB,CAAC;AAC7D,CAAC;AAFD,4CAEC;AAUD,0FAA0F;AAC1F,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,uEAAuE;AACvE,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,sDAAsD;AACtD,MAAM,oCAAoC,GAAG,KAAK,CAAC;AAEnD,iFAAiF;AACjF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,+EAA+E;AAC/E,8EAA8E;AAC9E,WAAW;AACX,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAE7C,SAAgB,iBAAiB,CAC7B,SAAwB,EACxB,sBAA8C;IAE9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACpE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvD,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAmB,CAAC;IAClE,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,2BAA2B,GAAG,CAAC,CAAC;IACpC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,wEAAwE;IACxE,0EAA0E;IAC1E,iEAAiE;IACjE,SAAS,sBAAsB;QAC3B,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA6B,CAAC;QAElE,SAAS,gCAAgC,CAAC,YAAoB;YAC1D,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,EAAE;gBACpB,iBAAiB,GAAG;oBAChB,KAAK,EAAE,IAAI,GAAG,EAAkC;oBAChD,YAAY,EAAE,IAAI,GAAG,EAAU;oBAC/B,sBAAsB,EAAE,IAAI,GAAG,EAAU;iBAC5C,CAAC;gBACF,oBAAoB,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;aAC7D;YAED,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QAED,kEAAkE;QAClE,8EAA8E;QAC9E,kEAAkE;QAClE,sEAAsE;QACtE,kEAAkE;QAClE,cAAc;QACd,SAAS,4BAA4B,CAAC,kBAAsC;YACxE,IAAI,CAAC,kBAAkB,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;YAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE;gBACvD,IAAI,GAAG,KAAK,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC3D,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,SAAS,mBAAmB,CACxB,QAAkB,EAClB,SAAsD,EACtD,OAA6B;;YAE7B,IAAI,2BAA2B,EAAE;gBAC7B,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;aACrE;YAED,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,0BAAgD,CAAC;YACrD,MAAM,wBAAwB,GAC1B,YAAY,KAAK,SAAS,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,MAAK,SAAS;gBAC/D,CAAC,CAAC,YAAY,GAAG,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAC,QAAQ,EAAE,EAAE;gBACzD,CAAC,CAAC,GAAG,CAAC;YACd,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;YAErF,kFAAkF;YAClF,SAAS,aAAa,CAClB,QAAkB,EAClB,IAAsB,EACtB,YAAqB;gBAErB,IAAI,CAAC,YAAY,EAAE;oBACf,wBAAwB,EAAE,CAAC;iBAC9B;qBAAM,IAAI,IAAI,EAAE;oBACb,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3D,IAAI,SAAS,EAAE;wBACX,MAAM,kBAAkB,GAAG,SAA2B,CAAC;wBAEvD,IACI,kBAAkB,CAAC,gBAAgB;4BACnC,kBAAkB,CAAC,IAAI;4BACvB,CAAC,IAAA,kBAAU,EAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAC5C;4BACE,wBAAwB,EAAE,CAAC;yBAC9B;qBACJ;iBACJ;gBAED,+DAA+D;gBAC/D,8DAA8D;gBAC9D,qBAAqB;gBACrB,MAAM,KAAK,GAA2B,YAAY;oBAC9C,CAAC,CAAC;wBACI,gBAAgB,EAAE,IAAI;wBACtB,IAAI;wBACJ,kBAAkB,EAAE,EAAE;wBACtB,eAAe,EAAE,wBAAwB;qBAC5C;oBACH,CAAC,CAAC,IAAI,CAAC;gBAEX,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChD,sBAAsB,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAExE,OAAO,kBAAkB,CAAC,MAAM,CAC5B,IAAI,EACJ,YAAY,EACZ,wBAAwB,EACxB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAChC,CAAC;YACN,CAAC;YAED,SAAS,oBAAoB,CACzB,QAAkB,EAClB,KAAa,EACb,IAAU,EACV,YAAqB,EACrB,SAAkB,EAClB,eAAuB;gBAEvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;oBAC7D,IAAA,YAAI,EACA,6EAA6E;wBACzE,sBAAsB,CAAC,WAAW,GAAG;wBACrC,SAAS,KAAK,GAAG;wBACjB,aAAa,SAAS,GAAG;wBACzB,mBAAmB,eAAe,EAAE,CAC3C,CAAC;iBACL;gBAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,CAAC;gBACzD,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE;oBAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,IAAA,kBAAU,EAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;wBAC5E,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;wBAC9E,wBAAwB,EAAE,CAAC;qBAC9B;yBAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;wBACzC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;qBACjF;iBACJ;qBAAM;oBACH,IAAA,cAAM,EAAC,iBAAiB,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;oBAC3C,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC3E,wBAAwB,EAAE,CAAC;iBAC9B;gBAED,IAAI,YAA8B,CAAC;gBACnC,IAAI,WAAW,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,8DAA8D;oBAC9D,kCAAkC;oBAClC,MAAM,cAAc,GAAW,EAAE,CAAC;oBAElC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzC,IAAI,CAAC,CAAC,IAAI,EAAE;4BACR,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAC/B;oBACL,CAAC,CAAC,CAAC;oBAEH,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvF;gBAED,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;gBAChC,WAAW,CAAC,eAAe,GAAG,wBAAwB,CAAC;gBAEvD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAED,gFAAgF;YAChF,2EAA2E;YAC3E,qDAAqD;YACrD,SAAS,aAAa,CAAC,QAAkB;gBACrC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;oBAC3C,OAAO,SAAS,CAAC;iBACpB;gBAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACpF;gBAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;oBAChC,OAAO,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBAC3E;gBAED,OAAO,kBAAkB,CAAC,MAAM,CAC5B,WAAW,CAAC,IAAI;gBAChB,kBAAkB,CAAC,IAAI,EACvB,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,kBAAkB,CACjC,CAAC;YACN,CAAC;YAED,SAAS,gBAAgB,CAAC,QAAkB;gBACxC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,SAAS,0BAA0B,CAAC,QAAwB;gBACxD,+DAA+D;gBAC/D,2EAA2E;gBAC3E,kDAAkD;gBAClD,IAAI,kBAAkB,GAAc,QAAQ,CAAC,IAAI,CAAC;gBAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxC,IAAI,UAAU,EAAE;oBACZ,IAAI,UAAU,CAAC,QAAQ,oCAA2B,IAAI,UAAU,CAAC,QAAQ,iCAAwB,EAAE;wBAC/F,kBAAkB,GAAG,UAAU,CAAC;qBACnC;iBACJ;gBAED,OAAO,SAAS,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC7D,SAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACP,CAAC;YAED,SAAS,gBAAgB,CAAI,QAAkB,EAAE,QAAiB;gBAC9D,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAEhD,IAAI;oBACA,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;oBAC1B,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACnD,OAAO,MAAM,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACR,2DAA2D;oBAC3D,gEAAgE;oBAChE,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACnD,MAAM,CAAC,CAAC;iBACX;YACL,CAAC;YAED,gFAAgF;YAChF,+EAA+E;YAC/E,YAAY;YACZ,SAAS,mBAAmB,CAAC,QAAkB;;gBAC3C,IAAI,WAAW,GAAG,QAAQ,CAAC;gBAE3B,oEAAoE;gBACpE,qEAAqE;gBACrE,gCAAgC;gBAChC,SAAS,CAAC,oBAAoB,EAAE,CAAC;gBAEjC,OAAO,IAAI,EAAE;oBACT,0DAA0D;oBAC1D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;oBAC/C,IAAI,WAAW,EAAE;wBACb,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;4BAC3B,OAAO,WAAW,CAAC;yBACtB;wBAED,mEAAmE;wBACnE,gFAAgF;wBAChF,IAAI,WAAW,CAAC,eAAe,KAAK,wBAAwB,EAAE;4BAC1D,OAAO,kBAAkB,CAAC,MAAM,CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kCAAsB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;4BACvE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;yBACL;qBACJ;oBAED,uBAAuB;oBACvB,IAAI,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;wBACpD,OAAO,kBAAkB,CAAC,MAAM,CAC5B,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,mCAAI,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;wBAChE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;qBACL;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,sEAAsE;wBACtE,kEAAkE;wBAClE,OAAO,aAAa,CAAC,WAAW,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACxF;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;wBAClD,MAAM,iBAAiB,GAAG,WAAqC,CAAC;wBAChE,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC;wBAC3C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,IAAI,EAAE;wBACpC,MAAM,YAAY,GAAG,WAAuB,CAAC;wBAE7C,yDAAyD;wBACzD,6DAA6D;wBAC7D,6DAA6D;wBAC7D,IAAI,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;4BACzC,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;yBACrF;wBAED,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;wBACtC,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,UAAU,EAAE;wBAC1C,MAAM,kBAAkB,GAAG,WAA6B,CAAC;wBACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC;wBAE3C,oFAAoF;wBACpF,gFAAgF;wBAChF,yCAAyC;wBACzC,IAAI,SAAS,EAAE;4BACX,IACI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,MAAK,kBAAkB,CAAC,cAAc;gCAC7D,IAAA,qCAAoB,EAAC,SAAS,EAAE,UAAU,CAAC,EAC7C;gCACE,gDAAgD;gCAChD,+DAA+D;gCAC/D,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,MAAM,EAAE;oCACtC,2EAA2E;oCAC3E,2EAA2E;oCAC3E,4EAA4E;oCAC5E,IAAI,SAAS,CAAC,QAAQ,iCAAwB,EAAE;wCAC5C,8BAA8B;wCAC9B,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qCAC1E;oCAED,gFAAgF;oCAChF,gFAAgF;oCAChF,+CAA+C;oCAC/C,IAAI,SAAS,CAAC,QAAQ,wCAA+B,EAAE;wCACnD,8BAA8B;wCAC9B,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qCAC1E;oCAED,OAAO,aAAa,CAAC,WAAW,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iCACrF;gCAED,IAAI,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,CACpD,0BAA0B,CAAC,kBAAkB,CAAC,CACjD,CAAC;gCAEF,IAAI,cAAc,EAAE;oCAChB,IAAI,IAAA,kCAAsB,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE;wCAC7C,kDAAkD;wCAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;qCAClF;yCAAM,IACH,SAAS,CAAC,QAAQ,wCAA+B;wCACjD,SAAS,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACtD;wCACE,cAAc,GAAG,SAAS,CAAC;qCAC9B;iCACJ;gCAED,OAAO,aAAa,CAAC,WAAW,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAA,CAAC,CAAC;6BAC3F;4BAED,sEAAsE;4BACtE,4EAA4E;4BAC5E,aAAa;4BACb,IACI,UAAU,CAAC,QAAQ,iCAAwB;gCAC3C,IAAA,qCAAoB,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EACxD;gCACE,IACI,CAAA,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,sCAA6B;oCACxD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oCAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;oCAC3B,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;oCAC7B,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,oCAA4B;oCAC/D,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,sCAA6B;oCACvE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oCACxD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,kCAAyB,EAClF;oCACE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oCACxE,MAAM,cAAc,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;wCAC7D,MAAM,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wCAE1E,IAAI,cAAc,CAAC,IAAI,EAAE;4CACrB,cAAc,CAAC,IAAI,GAAG,IAAA,uBAAW,EAAC,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gDAC/D,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;oDACzD,OAAO,IAAA,mCAAsB,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iDACpD;gDACD,OAAO,OAAO,CAAC;4CACnB,CAAC,CAAC,CAAC;yCACN;wCAED,OAAO,cAAc,CAAC;oCAC1B,CAAC,CAAC,CAAC;oCAEH,OAAO,aAAa,CAChB,WAAW,EACX,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EACpB,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAA,CACjC,CAAC;iCACL;6BACJ;4BAED,IAAI,IAAA,4CAA2B,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE;gCACpD,8EAA8E;gCAC9E,sEAAsE;gCACtE,aAAa;gCACb,eAAe;gCACf,aAAa;gCACb,+DAA+D;gCAC/D,OAAO,kBAAkB,CAAC,MAAM,CAC5B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CACvC,CAAC;6BACL;yBACJ;wBAED,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC;wBAC5C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,MAAM,cAAc,GAAG,WAA8B,CAAC;wBAEtD,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;4BAClD,kEAAkE;4BAClE,8DAA8D;4BAC9D,MAAM,cAAc,GAAG,WAA0C,CAAC;4BAClE,MAAM,gCAAgC,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9E,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CACrE,CAAC;4BAEF,IAAI,gCAAgC,KAAK,cAAc,CAAC,yBAAyB,EAAE;gCAC/E,wDAAwD;gCACxD,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;6BACrF;yBACJ;wBAED,4EAA4E;wBAC5E,8DAA8D;wBAC9D,IAAI,SAAS,IAAI,cAAc,CAAC,mBAAmB,IAAI,cAAc,CAAC,mBAAmB,EAAE;4BACvF,IAAI,CAAC,0BAA0B,EAAE;gCAC7B,0BAA0B,GAAG,IAAA,oDAAoC,EAAC,SAAS,CAAC,CAAC;6BAChF;4BAED,IACI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,cAAc,CAAC,mBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAC/C;gCACD,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,mBAAmB,CAAC,EACtE;gCACE,WAAW,GAAG,cAAc,CAAC,mBAAmB,CAAC;gCACjD,SAAS;6BACZ;yBACJ;wBAED,OAAO,yBAAyB,CAAC,WAAwB,CAAC,CAAC;qBAC9D;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,SAAS,EAAE;wBACzC,MAAM,QAAQ,GAAG,WAAwB,CAAC;wBAE1C,qFAAqF;wBACrF,uFAAuF;wBACvF,wBAAwB;wBACxB,IAAI,SAAS,EAAE;4BACX,IAAI,CAAC,0BAA0B,EAAE;gCAC7B,0BAA0B,GAAG,IAAA,oDAAoC,EAAC,SAAS,CAAC,CAAC;6BAChF;4BAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gCACnF,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gCACtC,SAAS;6BACZ;yBACJ;wBAED,OAAO,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;qBACzD;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,cAAc,CAAC,EAAE;wBAC1E,MAAM,mBAAmB,GAAG,WAA4B,CAAC;wBAEzD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CAAA,IAAI,SAAS,EAAE;4BACjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;gCACtD,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,SAAS,EACT,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CACE,mBAAmB,CAAC,KAAK;oCACzB,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAC3D,CACJ,CAAC;gCAEF,IAAI,qBAAqB,EAAE;oCACvB,MAAM,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;oCAC3E,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;oCACnC,IAAI,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;oCAE/C,IAAI,QAAQ,EAAE;wCACV,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wCAEvD,IAAI,cAAc,EAAE;4CAChB,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;4CAC/B,IAAI,cAAc,CAAC,YAAY,EAAE;gDAC7B,YAAY,GAAG,IAAI,CAAC;6CACvB;yCACJ;qCACJ;oCAED,OAAO,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;iCAC7D;gCAED,OAAO,SAAS,CAAC;4BACrB,CAAC,CAAC,CAAC;4BAEH,IAAI,cAAc,EAAE;gCAChB,OAAO,cAAc,CAAC;6BACzB;yBACJ;wBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;wBAC7C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,kBAAkB,GAAG,yBAAS,CAAC,mBAAmB,CAAC,EAAE;wBACpF,MAAM,mBAAmB,GAAG,WAA4B,CAAC;wBACzD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CAAA,IAAI,mBAAmB,CAAC,SAAS,EAAE;4BACrE,4EAA4E;4BAC5E,0EAA0E;4BAC1E,0BAA0B;4BAC1B,IAAI,IAAA,qCAAqB,EAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,YAAY,EAAE;gCACvE,4DAA4D;gCAC5D,8DAA8D;gCAC9D,iBAAiB;gCACjB,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CACnD,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gCACrC,mBAAmB,CAAC,KAAK,CAC5B,CAAC;gCAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE;oCAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;wCAC9C,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,mBAAmB,CAAC,SAAU,EAC9B,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CACE,mBAAmB,CAAC,KAAK;4CACzB,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAC3D,CACJ,CAAC;wCAEF,IAAI,qBAAqB,EAAE;4CACvB,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAC7C,mBAAmB,CAAC,SAAU,CACjC,CAAC;4CAEF,IAAI,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;4CACpC,IAAI,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;4CAE9C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4CACnE,IAAI,kBAAkB,EAAE;gDACpB,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;gDACvC,IAAI,kBAAkB,CAAC,YAAY,EAAE;oDACjC,YAAY,GAAG,IAAI,CAAC;iDACvB;6CACJ;4CAED,oEAAoE;4CACpE,IAAI,IAAA,eAAO,EAAC,YAAY,CAAC,EAAE;gDACvB,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;6CAC9D;yCACJ;wCAED,OAAO,SAAS,CAAC;oCACrB,CAAC,CAAC,CAAC;oCAEH,IAAI,MAAM,EAAE;wCACR,OAAO,MAAM,CAAC;qCACjB;iCACJ;6BACJ;yBACJ;wBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;wBAC7C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,MAAM,sBAAsB,GAAG,WAAiC,CAAC;wBACjE,MAAM,kBAAkB,GAAG,SAAS,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE;4BAC1F,SAAS,CAAC,8BAA8B,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;wBAC1E,CAAC,CAAC,CAAC;wBAEH,oEAAoE;wBACpE,IAAI,kBAAkB,EAAE;4BACpB,IAAI,IAAA,eAAO,EAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gCAClC,OAAO,aAAa,CAChB,WAAW,EACX,kBAAkB,CAAC,IAAI,EACvB,CAAC,CAAC,kBAAkB,CAAC,YAAY,CACpC,CAAC;6BACL;4BAED,IAAI,SAAS,EAAE;gCACX,yEAAyE;gCACzE,MAAM,qBAAqB,GAAG,IAAA,oDAAkC,EAC5D,SAAS,EACT,SAAS,EACT,sBAAsB,CAAC,iBAAiB,CAC3C,CAAC;gCAEF,IAAI,qBAAqB,EAAE;oCACvB,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oCAE/E,IAAI,uBAAuB,EAAE;wCACzB,OAAO,aAAa,CAChB,WAAW,EACX,uBAAuB,CAAC,IAAI,EAC5B,CAAC,CAAC,kBAAkB,CAAC,YAAY,IAAI,CAAC,CAAC,uBAAuB,CAAC,YAAY,CAC9E,CAAC;qCACL;iCACJ;6BACJ;yBACJ;wBAED,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;wBAChD,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,gBAAgB,EAAE;wBAChD,MAAM,eAAe,GAAG,WAAmC,CAAC;wBAC5D,IAAI,CAAC,SAAS,IAAI,IAAA,qCAAoB,EAAC,SAAS,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE;4BAClF,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;gCAChF,IAAI,eAAe,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;oCAC3D,SAAS,CAAC,6BAA6B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iCACtE;qCAAM;oCACH,SAAS,CAAC,8BAA8B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iCACvE;4BACL,CAAC,CAAC,CAAC;4BAEH,IAAI,UAAU,EAAE;gCACZ,IAAI,CAAC,SAAS,EAAE;oCACZ,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE;wCAC1B,OAAO,aAAa,CAChB,WAAW;wCACX,UAAU,CAAC,SAAS,EACpB,CAAC,CAAC,UAAU,CAAC,YAAY,CAC5B,CAAC;qCACL;iCACJ;qCAAM;oCACH,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iCACjF;6BACJ;yBACJ;6BAAM,IAAI,eAAe,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;4BAClE,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC;4BAEhD,yEAAyE;4BACzE,MAAM,qBAAqB,GAAG,IAAA,oDAAkC,EAC5D,SAAS,EACT,SAAS,EACT,eAAe,CAAC,iBAAiB,CACpC,CAAC;4BAEF,IAAI,qBAAqB,EAAE;gCACvB,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,aAAa,EAAE,GAAG,EAAE;oCACpE,SAAS,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;gCAC3D,CAAC,CAAC,CAAC;gCAEH,IAAI,UAAU,EAAE;oCACZ,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oCAElE,IAAI,kBAAkB,EAAE;wCACpB,OAAO,aAAa,CAChB,WAAW,EACX,kBAAkB,CAAC,IAAI,EACvB,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,kBAAkB,CAAC,YAAY,CACjE,CAAC;qCACL;iCACJ;6BACJ;yBACJ;wBACD,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC;wBACzC,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,OAAO,iCAAiC,CAAC,WAAiC,CAAC,CAAC;qBAC/E;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,OAAO,8BAA8B,CAAC,WAA8B,CAAC,CAAC;qBACzE;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,KAAK,EAAE;wBACrC,OAAO,aAAa,CAChB,WAAW,EACX,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CACvC,CAAC;qBACL;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,MAAM,sBAAsB,GAAG,WAAiC,CAAC;wBACjE,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,gCAAuB,EAAE;4BACxD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;4BACpC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;gCACjE,OAAO,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;oCACtC,MAAM,IAAI,GAAG,yBAAyB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;oCAC1E,OAAO,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;gCACtE,CAAC,CAAC,CAAC;6BACN;yBACJ;wBAED,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;wBAChD,SAAS;qBACZ;oBAED,yBAAyB;oBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;iBACtC;YACL,CAAC;YAED,SAAS,yBAAyB,CAAC,UAAqB;gBACpD,MAAM,cAAc,GAAW,EAAE,CAAC;gBAElC,IAAI,aAAa,GAAG,KAAK,CAAC;gBAE1B,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE;oBAC7C,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBAEvD,IAAI,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,IAAA,eAAO,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE;wBACjF,8DAA8D;wBAC9D,+DAA+D;wBAC/D,4DAA4D;wBAC5D,OAAO,aAAa,CAAC,UAAU,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACpF;oBAED,IAAI,cAAc,CAAC,YAAY,EAAE;wBAC7B,aAAa,GAAG,IAAI,CAAC;qBACxB;oBAED,IAAI,cAAc,CAAC,IAAI,EAAE;wBACrB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;qBAC5C;iBACJ;gBAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE3F,OAAO,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YACnE,CAAC;YAED,SAAS,uBAAuB,CAC5B,QAAmB,EACnB,UAA0C;;gBAE1C,6DAA6D;gBAC7D,uDAAuD;gBACvD,0BAA0B;gBAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;gBAEpD,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC1B,uEAAuE;oBACvE,UAAU,GAAG,aAAa,CACtB,QAAQ,EACR,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE;oBAC5C,kBAAkB,CAAC,IAAI,CAC1B,CAAC;iBACL;qBAAM,IACH,UAAU,CAAC,kBAAkB;oBAC7B,UAAU,CAAC,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAM;oBACpE,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EACpE;oBACE,+EAA+E;oBAC/E,2EAA2E;oBAC3E,8EAA8E;oBAC9E,OAAO,kBAAkB,CAAC,MAAM,CAC5B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kCAAsB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;iBACL;gBAED,IAAI,YAAY,GAAG,CAAC,CAAC;gBAErB,OAAO,IAAI,EAAE;oBACT,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;oBACvB,IAAI,iBAAiB,GACjB,SAAS,KAAK,SAAS;yBACvB,MAAA,UAAU,CAAC,kBAAkB,0CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA,CAAC;oBACjF,IAAI,+BAA+B,GAAG,KAAK,CAAC;oBAC5C,IAAI,4BAA4B,GAAG,KAAK,CAAC;oBAEzC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;;wBAC/C,qEAAqE;wBACrE,iCAAiC;wBACjC,IAAI,SAAS,KAAK,SAAS,IAAI,iBAAiB,EAAE;4BAC9C,OAAO;yBACV;wBAED,IAAI,4BAA4B,IAAI,KAAK,GAAG,CAAC,EAAE;4BAC3C,OAAO;yBACV;wBAED,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAE,CAAC;wBAEtC,oEAAoE;wBACpE,gEAAgE;wBAChE,qEAAqE;wBACrE,qCAAqC;wBACrC,IACI,UAAU,CAAC,kBAAkB;4BAC7B,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM;4BAC5C,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,EAChD;4BACE,kEAAkE;4BAClE,oEAAoE;4BACpE,qEAAqE;4BACrE,mEAAmE;4BACnE,0EAA0E;4BAC1E,qEAAqE;4BACrE,kEAAkE;4BAClE,sBAAsB;4BACtB,IAAI,KAAK,KAAK,CAAC,EAAE;gCACb,4BAA4B,GAAG,IAAI,CAAC;6BACvC;iCAAM;gCACH,aAAa,GAAG,IAAI,CAAC;gCACrB,UAAU,GAAG,IAAI,CAAC;gCAClB,OAAO;6BACV;yBACJ;wBAED,8DAA8D;wBAC9D,qEAAqE;wBACrE,8BAA8B;wBAC9B,MAAM,YAAY,GACd,UAAU,CAAC,kBAAkB,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM;4BACvF,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC;4BACtC,CAAC,CAAC,SAAS,CAAC;wBACpB,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAA,CAAC,EAAE;4BACxF,MAAM,oBAAoB,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;4BAE3F,oEAAoE;4BACpE,2CAA2C;4BAC3C,IAAI,oBAAoB,IAAI,0BAA0B,EAAE;gCACpD,sBAAsB;gCACtB,IAAI,CAAC,sBAAsB,IAAI,8BAA8B,EAAE;oCAC3D,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;iCACrE;gCACD,sBAAsB,GAAG,IAAI,CAAC;gCAC9B,OAAO;6BACV;4BAED,6DAA6D;4BAC7D,qCAAqC;4BACrC,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,mCAAI,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;4BACjE,kBAAkB,CAAC,IAAI;4BACvB,eAAe,CAAC,IAAI,EACpB,oBAAoB,CACvB,CAAC;4BAEF,IAAI;gCACA,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;gCAEvD,IAAI,cAAc,CAAC,YAAY,EAAE;oCAC7B,aAAa,GAAG,IAAI,CAAC;oCAErB,IAAI,KAAK,KAAK,CAAC,EAAE;wCACb,+BAA+B,GAAG,IAAI,CAAC;qCAC1C;iCACJ;gCAED,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,MAAA,cAAc,CAAC,IAAI,mCACf,CAAC,cAAc,CAAC,YAAY;oCACxB,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;oCAC7C,CAAC,CAAC,iBAAS,CAAC,WAAW,EAAE,CAAC,EAClC,cAAc,CAAC,YAAY;gCAC3B,eAAe,CAAC,4BAA4B,EAC5C,oBAAoB,GAAG,CAAC,CAC3B,CAAC;6BACL;4BAAC,OAAO,CAAC,EAAE;gCACR,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;gCAC3C,kBAAkB,CAAC,IAAI;gCACvB,eAAe,CAAC,4BAA4B,EAC5C,oBAAoB,GAAG,CAAC,CAC3B,CAAC;gCACF,MAAM,CAAC,CAAC;6BACX;yBACJ;wBAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,SAAS,EAAE;4BAC3D,iBAAiB,GAAG,IAAI,CAAC;yBAC5B;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,iBAAiB,EAAE;wBACnB,mEAAmE;wBACnE,oEAAoE;wBACpE,+DAA+D;wBAC/D,OAAO,UAAU;4BACb,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;4BAC3E,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACjF;oBAED,IAAI,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC;oBACpC,IAAI,aAAa,EAAE;wBACf,uEAAuE;wBACvE,gEAAgE;wBAChE,wCAAwC;wBACxC,IAAI,aAAa,EAAE;4BACf,MAAM,WAAW,GAAG,IAAA,kCAAsB,EAAC,aAAa,CAAC,CAAC;4BAC1D,IAAI,WAAW,KAAK,aAAa,EAAE;gCAC/B,aAAa,GAAG,WAAW,CAAC;6BAC/B;yBACJ;qBACJ;oBAED,IAAI,CAAC,aAAa,IAAI,YAAY,IAAI,eAAe,EAAE;wBACnD,mEAAmE;wBACnE,kEAAkE;wBAClE,+DAA+D;wBAC/D,qDAAqD;wBACrD,IAAI,gBAAgB,GAAG,aAAa,CAAC;wBACrC,IACI,aAAa;4BACb,CAAC,UAAU;4BACX,CAAC,4BAA4B,CAAC,wBAAwB,CAAC;4BACvD,aAAa;4BACb,CAAC,IAAA,+BAAmB,EAAC,aAAa,CAAC;4BACnC,CAAC,+BAA+B,EAClC;4BACE,gBAAgB,GAAG,KAAK,CAAC;yBAC5B;wBAED,oEAAoE;wBACpE,iEAAiE;wBACjE,IAAI,UAAU,IAAI,aAAa,EAAE;4BAC7B,IAAI,CAAC,gBAAgB,EAAE;gCACnB,2DAA2D;gCAC3D,0DAA0D;gCAC1D,wBAAwB,EAAE,CAAC;6BAC9B;4BAED,OAAO,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;yBACrE;wBAED,mEAAmE;wBACnE,0CAA0C;wBAC1C,IAAI,4BAA4B,EAAE;4BAC9B,OAAO,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;yBAC5E;wBAED,OAAO,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBAC3E;oBAED,YAAY,EAAE,CAAC;iBAClB;YACL,CAAC;YAED,SAAS,iCAAiC,CAAC,kBAAsC;gBAC7E,8BAA8B;gBAC9B,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;oBACrE,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACpF;gBAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE1E,6EAA6E;gBAC7E,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAErC,OAAO,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;YACvF,CAAC;YAED,SAAS,8BAA8B,CAAC,mBAAoC;gBACxE,MAAM,aAAa,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAC9D,mBAAmB,CAAC,cAAc,CAAC,EAAE,CACxC,CAAC;gBACF,IAAI;oBACA,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACpF,IAAI,cAA8C,CAAC;oBAEnD,8DAA8D;oBAC9D,iEAAiE;oBACjE,mCAAmC;oBACnC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE;wBAC/D,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBACzE,CAAC,CAAC,CAAC;oBAEH,4DAA4D;oBAC5D,OAAO,cAAe,CAAC,YAAY;wBAC/B,CAAC,CAAC,cAAe;wBACjB,CAAC,CAAC,aAAa,CAAC,mBAAmB,EAAE,cAAe,CAAC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBAC5F;wBAAS;oBACN,IAAI,CAAC,aAAa,EAAE;wBAChB,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;qBAC1F;iBACJ;YACL,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE;gBACX,0DAA0D;gBAC1D,uDAAuD;gBACvD,qDAAqD;gBACrD,qBAAqB;gBACrB,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CAAC,CAAC;aACtG;YAED,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACH,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,sCAAsC;IACtC,SAAS,mBAAmB,CAAC,QAAkB,EAAE,cAAyB,EAAE,cAAc,GAAG,KAAK;QAC9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/C,IAAI,2BAA2B,EAAE;YAC7B,qBAAqB,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;SACrF;QAED,SAAS,uBAAuB,CAAC,WAAoB;YACjD,gEAAgE;YAChE,4CAA4C;YAC5C,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE;gBAC/B,OAAO,WAAW,CAAC;aACtB;YAED,IAAI,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,GAAG,EAAmB,EAAE,CAAC;gBACrF,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;aAClD;YAED,IAAI,CAAC,cAAc,EAAE;gBACjB,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;aACxC;iBAAM;gBACH,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAClE;YAED,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,SAAS,4BAA4B,CAAC,QAAkB,EAAE,cAAc,GAAG,CAAC;;YACxE,mEAAmE;YACnE,MAAM,kCAAkC,GAAG,EAAE,CAAC;YAC9C,IAAI,cAAc,GAAG,kCAAkC,EAAE;gBACrD,OAAO,IAAI,CAAC;aACf;YACD,cAAc,EAAE,CAAC;YAEjB,IAAI,WAAW,GAAG,QAAQ,CAAC;YAE3B,OAAO,IAAI,EAAE;gBACT,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,UAAU,KAAK,SAAS,IAAI,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE;oBAC7D,IAAI,CAAC,cAAc,EAAE;wBACjB,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE;4BACtC,OAAO,UAAU,CAAC,WAAW,CAAC;yBACjC;qBACJ;yBAAM;wBACH,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAC1E,IAAI,eAAe,KAAK,SAAS,EAAE;4BAC/B,OAAO,eAAe,CAAC;yBAC1B;qBACJ;iBACJ;gBAED,oDAAoD;gBACpD,uBAAuB;gBACvB,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBACxC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;iBACzC;gBAED,oCAAoC;gBACpC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAEvC,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;oBAC3C,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;iBACzC;gBAED,IAAI,WAAW,KAAK,cAAc,EAAE;oBAChC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;iBACxC;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,kBAAkB;wBACzB,yBAAS,CAAC,UAAU;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,gBAAgB;wBAC1B,yBAAS,CAAC,cAAc,CAAC,EAC/B;oBACE,MAAM,aAAa,GAAG,WAIE,CAAC;oBACzB,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;oBACvC,SAAS;iBACZ;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,aAAa;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,kBAAkB;wBAC5B,yBAAS,CAAC,mBAAmB,CAAC,EACpC;oBACE,MAAM,mBAAmB,GAAG,WAA4B,CAAC;oBACzD,IAAI,mBAAmB,CAAC,SAAS,EAAE;wBAC/B,4DAA4D;wBAC5D,8DAA8D;wBAC9D,iBAAiB;wBACjB,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CACnD,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;wBACrC,mBAAmB,CAAC,KAAK,CAC5B,CAAC;wBAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE;4BAClE,IAAI,aAAa,GAAG,KAAK,CAAC;4BAE1B,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,mBAAmB,CAAC,SAAU,EAC9B,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAAC,CAC3F,CAAC;4BAEF,IAAI,qBAAqB,EAAE;gCACvB,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,SAAU,CAAC,CAAC;gCAElF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACnE,MAAM,YAAY,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,mCAAI,WAAW,CAAC,IAAI,CAAC;gCAElE,IAAI,IAAA,eAAO,EAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;oCACpD,aAAa,GAAG,IAAI,CAAC;iCACxB;6BACJ;4BAED,IAAI,aAAa,EAAE;gCACf,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;6BACzC;yBACJ;qBACJ;oBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;oBAC7C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,IAAI,EAAE;oBACpC,MAAM,YAAY,GAAG,WAAuB,CAAC;oBAE7C,yDAAyD;oBACzD,6DAA6D;oBAC7D,6DAA6D;oBAC7D,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;wBAC5D,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;qBACzC;oBAED,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;oBACtC,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,SAAS,CAAC,EAAE;oBACnE,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;wBAClD,kEAAkE;wBAClE,8DAA8D;wBAC9D,MAAM,cAAc,GAAG,WAA0C,CAAC;wBAClE,IACI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CACrE,EACH;4BACE,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;yBACzC;qBACJ;oBAED,MAAM,SAAS,GAAG,WAAwB,CAAC;oBAC3C,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE;wBAC5C,IAAI,4BAA4B,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE;4BAC1D,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;yBACxC;qBACJ;oBACD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;iBACzC;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,KAAK,EAAE;oBACrC,oEAAoE;oBACpE,sEAAsE;oBACtE,OAAO,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACjE;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;oBAC9C,MAAM,kBAAkB,GAAG,WAAiC,CAAC;oBAC7D,IAAI,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;wBACjD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;qBACzC;oBAED,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC;oBAC5C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;oBAC3C,MAAM,mBAAmB,GAAG,WAA8B,CAAC;oBAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAEtF,IAAI;wBACA,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAChE,OAAO,uBAAuB,CAC1B,4BAA4B,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAC/E,CAAC;qBACL;4BAAS;wBACN,IAAI,CAAC,aAAa,EAAE;4BAChB,oBAAoB,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;yBACtE;qBACJ;iBACJ;gBAED,yBAAyB;gBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;gBACnC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC;QAED,sCAAsC;QACtC,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SAChB;QACD,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI;YACA,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC;SACjD;gBAAS;YACN,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,gFAAgF;IAChF,2EAA2E;IAC3E,gBAAgB;IAChB,SAAS,wBAAwB,CAAC,QAAkB,EAAE,OAAoB;QACtE,IAAA,cAAM,EAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,IAAA,cAAM,EAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,IAAA,cAAM,EAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAA,cAAM,EAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,MAAM,mBAAmB,GAAgB,EAAE,CAAC;QAE5C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YACjD,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE;gBAC7B,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACxC;iBAAM;gBACH,kEAAkE;gBAClE,wBAAwB;gBACxB,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,SAAS,iCAAiC,CAAC,QAAkB,EAAE,OAAoB;YAC/E,IAAI,WAAW,GAAG,QAAQ,CAAC;YAE3B,OAAO,IAAI,EAAE;gBACT,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBACxC,OAAO,mBAAmB,CAAC;iBAC9B;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,KAAK,CAAC,EAAE;oBAC/D,OAAO,mBAAmB,CAAC;iBAC9B;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,kBAAkB;wBACzB,yBAAS,CAAC,UAAU;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,kBAAkB;wBAC5B,yBAAS,CAAC,mBAAmB;wBAC7B,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,WAAW;wBACrB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,IAAI,CAAC,EACrB;oBACE,MAAM,aAAa,GAAG,WAOR,CAAC;oBACf,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;oBACvC,SAAS;iBACZ;gBAED,gDAAgD;gBAChD,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,gBAAgB,EAAE;oBAChD,MAAM,wBAAwB,GAAG,WAAmC,CAAC;oBACrE,IAAI,wBAAwB,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;wBACpE,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAC7C,wBAAwB,CAAC,iBAAiB,CAC7C,CAAC,IAAI,CAAC;wBAEP,IAAI,kCAAkC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;4BAC1D,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;4BAEjE,IACI,WAAW,CAAC,QAAQ,qCAA4B;gCAChD,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gCACrC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,wCAA+B,EACrE;gCACE,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAErD,MAAM,SAAS,GAAG,SAAS,CAAC,mBAAmB,CAC3C,gBAAgB,CAAC,CAAC,CAAC,SAAS,qCAE/B,CAAC,IAAI,CAAC;gCAEP,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE;oCAChC,MAAM,yBAAyB,GAAG,iCAAiC,CAC/D,wBAAwB,CAAC,UAAU,EACnC,OAAO,CACV,CAAC;oCAEF,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,iBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CACnD,CAAC;iCACL;6BACJ;yBACJ;qBACJ;oBAED,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC;oBAClD,SAAS;iBACZ;gBAED,mCAAmC;gBACnC,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,cAAc,CAAC,EAAE;oBAC1E,MAAM,iBAAiB,GAAG,WAA4B,CAAC;oBACvD,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC;oBACpD,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAE3E,IACI,cAAc,CAAC,QAAQ,+BAAuB;wBAC9C,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,gCAAuB;wBACzD,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;wBAClD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EACpC;wBACE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAEtD,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;wBAE9D,IAAI,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;4BACvD,oEAAoE;4BACpE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BACvC,MAAM,yBAAyB,GAAG,iCAAiC,CAC/D,iBAAiB,CAAC,UAAU,EAC5B,OAAO,CACV,CAAC;4BACF,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAE1C,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAC1C,QAAQ,EACR;kEAC8B;8DACL;iEACG;0DACP;8DACK,CAC7B,CAAC,IAAI,CAAC;4BAEP,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;gCAC/B,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oCAChD,IAAI,iBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;wCACjD,OAAO,cAAc,CAAC;qCACzB;yCAAM;wCACH,OAAO,CAAC,cAAc,CAAC;qCAC1B;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;oBAED,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC;oBAC3C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,SAAS,CAAC,EAAE;oBACnE,MAAM,SAAS,GAAG,WAAwB,CAAC;oBAC3C,MAAM,cAAc,GAAgB,EAAE,CAAC;oBAEvC,oEAAoE;oBACpE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACvC,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE;wBAC5C,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBAEhF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE;4BACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;gCACxD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BACnC;yBACJ;qBACJ;oBACD,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAE1C,OAAO,cAAc,CAAC;iBACzB;gBAED,yBAAyB;gBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;gBACnC,OAAO,mBAAmB,CAAC;aAC9B;QACL,CAAC;QAED,MAAM,uBAAuB,GAAG,iCAAiC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErF,uDAAuD;QACvD,OAAO,uBAAuB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,aAAa;IACb,SAAS,kCAAkC,CAAC,IAAU,EAAE,OAAoB;QACxE,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;;YAC/B,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAA,kBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;oBAC/B,YAAY,GAAG,KAAK,CAAC;iBACxB;aACJ;iBAAM,IAAI,MAAA,OAAO,CAAC,KAAK,0CAAE,SAAS,EAAE;gBACjC,IACI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CACzB,CAAC,SAAS,EAAE,EAAE,CACV,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAC1E,EACH;oBACE,YAAY,GAAG,KAAK,CAAC;iBACxB;aACJ;iBAAM;gBACH,YAAY,GAAG,KAAK,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,8EAA8E;IAC9E,kEAAkE;IAClE,SAAS,cAAc,CAAC,SAAwB,EAAE,QAAkB;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,IAAI,uBAAuB,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,cAAc,qBAAqB,EAAE,CAAC,CAAC;SACnF;QAED,6CAA6C;QAC7C,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhD,IAAI,uBAAuB,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC;aAC5F;YAED,OAAO,MAAM,CAAC;SACjB;QAED,iDAAiD;QACjD,IAAI,qBAAqB,GAAG,6BAAqB,EAAE;YAC/C,OAAO,KAAK,CAAC;SAChB;QAED,4EAA4E;QAC5E,4BAA4B;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,kCAAyB,EAAE;YACnD,OAAO,KAAK,CAAC;SAChB;QAED,6CAA6C;QAC7C,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAExC,qBAAqB,EAAE,CAAC;QAExB,IAAI;YACA,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,+BAA+B;YAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,qCAA6B,CAAC;YAClG,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;YAErC,IAAA,4BAAgB,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;;gBACvC,+CAA+C;gBAC/C,YAAY,EAAE,CAAC;gBAEf,IAAI,IAAA,2BAAmB,EAAC,WAAW,CAAC,EAAE;oBAClC,8EAA8E;oBAC9E,4EAA4E;oBAC5E,gEAAgE;oBAChE,MAAM,mBAAmB,GAAG,IAAA,iCAAkB,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC7E,IAAI,mBAAmB,EAAE;wBACrB,OAAO;qBACV;oBAED,MAAM,eAAe,GAAG,IAAA,gCAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBACxE,IAAI,eAAe,EAAE;wBACjB,IAAI,IAAA,kBAAU,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAA,4BAAoB,EAAC,eAAe,CAAC,IAAI,CAAC,EAAE;4BAChF,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;yBACtC;qBACJ;iBACJ;qBAAM,IAAI,IAAA,uBAAe,EAAC,WAAW,CAAC,EAAE;oBACrC,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAE9E,IAAI,cAAc,EAAE;wBAChB,WAAW,GAAG,cAAc,CAAC;qBAChC;iBACJ;gBAED,MAAM,aAAa,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,iCAAwB,CAAC;gBACpE,IAAI,IAAA,kBAAU,EAAC,WAAW,CAAC,EAAE;oBACzB,IAAI,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;wBAChD,iBAAiB,EAAE,CAAC;qBACvB;iBACJ;qBAAM,IAAI,IAAA,4BAAoB,EAAC,WAAW,CAAC,EAAE;oBAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtB,IAAI,qBAAqB,GAAG,CAAC,CAAC;oBAE9B,8BAAsB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAClE,aAAa,EAAE,CAAC;wBAEhB,IAAI,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;4BAC7C,qBAAqB,EAAE,CAAC;yBAC3B;oBACL,CAAC,CAAC,CAAC;oBAEH,4DAA4D;oBAC5D,IAAI,qBAAqB,GAAG,CAAC,EAAE;wBAC3B,2CAA2C;wBAC3C,IAAI,qBAAqB,KAAK,aAAa,EAAE;4BACzC,iBAAiB,EAAE,CAAC;yBACvB;6BAAM;4BACH,0DAA0D;4BAC1D,8CAA8C;4BAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,0BAA0B,CACnD,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,iDAAqC,EAAC,GAAG,CAAC,CAAC,EACpE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE;4BAChE,oBAAoB,CAAC,SAAS;4BAC9B,yBAAyB,CAAC,KAAK;4BAC/B,sBAAsB,CAAC,SAAS,CACnC,CAAC;4BAEF,IAAI,UAAU,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gCACzD,iBAAiB,EAAE,CAAC;6BACvB;yBACJ;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,wEAAwE;YACxE,MAAM,cAAc,GAAG,YAAY,GAAG,CAAC,IAAI,iBAAiB,KAAK,YAAY,CAAC;YAE9E,iCAAiC;YACjC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAEjD,IAAI,uBAAuB,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,UAAU,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3F;YAED,OAAO,cAAc,CAAC;SACzB;gBAAS;YACN,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;IAED,SAAS,kBAAkB,CAAC,YAA0B,EAAE,aAAsB;QAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC1D,IAAI,UAAU,EAAE;YACZ,IACI,IAAA,uBAAe,EAAC,UAAU,CAAC;gBAC3B,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,aAAa;gBAC7B,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAC3C;gBACE,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE;oBAC5D,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,OAAO,IAAA,eAAO,EAAC,UAAU,CAAC,CAAC;SAC9B;aAAM,IAAI,CAAC,oCAAoC,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;aAAM,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE;YACxC,gEAAgE;YAChE,6DAA6D;YAC7D,qCAAqC;YACrC,IACI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;gBAC5C,CAAC,oBAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBAC5C,CAAC,oBAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBAC5C,CAAC,oBAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,EACjD;gBACE,iEAAiE;gBACjE,sEAAsE;gBACtE,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;gBAErF,IAAI,wBAAwB,GAAG,KAAK,CAAC;gBACrC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE;oBACxC,IAAI,SAAS,CAAC,QAAQ,yCAAgC,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3F,MAAM;qBACT;oBAED,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAClD,IAAI,eAAe,CAAC,QAAQ,sCAA6B,EAAE;wBACvD,SAAS;qBACZ;oBAED,IAAI,eAAe,CAAC,QAAQ,iCAAwB,IAAI,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE;wBACtF,wEAAwE;wBACxE,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;wBAE1E,IACI,aAAa;4BACb,IAAA,eAAO,EAAC,aAAa,CAAC;4BACtB,IAAA,kCAAsB,EAAC,aAAa,EAAE,qBAAqB,CAAC,EAC9D;4BACE,wBAAwB,GAAG,IAAI,CAAC;yBACnC;qBACJ;oBAED,MAAM;iBACT;gBAED,IAAI,CAAC,wBAAwB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;oBAC7E,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,oBAAoB,CAAC,SAAwB,EAAE,YAA0B;QAC9E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE;YAClC,OAAO,IAAI,CAAC;SACf;QAED,OAAO,SAAS,CAAC,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,kEAAkE;IAClE,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,SAAS,yBAAyB,CAAC,SAAwB,EAAE,IAAoB,EAAE,OAAgB;QAC/F,6CAA6C;QAC7C,IAAI,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7C,OAAO,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtD;QAED,sDAAsD;QACtD,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEnD,iDAAiD;QACjD,IAAI,2BAA2B,GAAG,6BAAqB,EAAE;YACrD,OAAO,KAAK,CAAC;SAChB;QAED,2BAA2B,EAAE,CAAC;QAC9B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,IAAI;YACA,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAExD,IAAI,MAAM,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAEvE,IAAI,QAAQ,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;oBACxE,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAEpD,yEAAyE;oBACzE,uEAAuE;oBACvE,iBAAiB;oBACjB,IAAI,OAAO,EAAE;wBACT,IACI,IAAA,uBAAe,EAAC,UAAU,CAAC;4BAC3B,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;4BAC5C,UAAU,CAAC,IAAI,CAAC,aAAa;4BAC7B,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAC3C;4BACE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;yBACjD;qBACJ;oBAED,oBAAoB,GAAG,KAAK,CAAC;oBAC7B,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;wBACxE,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;4BACrF,oBAAoB,GAAG,IAAI,CAAC;yBAC/B;qBACJ;iBACJ;aACJ;SACJ;gBAAS;YACN,2BAA2B,EAAE,CAAC;SACjC;QAED,iCAAiC;QACjC,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAElE,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,SAAS,yBAAyB,CAAC,QAA4B,EAAE,IAAY;QACzE,MAAM,UAAU,GAAG,IAAA,gCAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAA,cAAM,EAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAA,cAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAEzC,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxG,IAAA,cAAM,EAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,eAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC,4BAA4B,CAAC,eAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;IACjH,CAAC;IAED,SAAS,qBAAqB,CAC1B,QAAkB,EAClB,SAAsD,EACtD,QAAgB,EAChB,SAA2B,OAAO;QAElC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,EAAE;YACX,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAA,uCAAuB,EAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrE,aAAa,GAAG,GAAG,IAAA,gCAAe,EAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;SACzF;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,aAAa,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,IAAA,sCAAsB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACH,sBAAsB;QACtB,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;KACxB,CAAC;AACN,CAAC;AAtuDD,8CAsuDC"}
|
1
|
+
{"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAGH,2CAA+C;AAC/C,2DAAkE;AAElE,yDAAgE;AAChE,mDAkByB;AACzB,mDAAyD;AACzD,iDAAuE;AACvE,qDAAsG;AACtG,uDAAuE;AAEvE,6CAAsD;AACtD,6DAA0F;AAC1F,6CAAwD;AACxD,mCAqBiB;AACjB,2CAQqB;AASrB,IAAiB,kBAAkB,CAclC;AAdD,WAAiB,kBAAkB;IAC/B,SAAgB,MAAM,CAClB,IAAsB,EACtB,YAAqB,EACrB,eAAwB,EACxB,kBAA4C;QAE5C,OAAO;YACH,IAAI;YACJ,YAAY;YACZ,eAAe;YACf,kBAAkB;SACrB,CAAC;IACN,CAAC;IAZe,yBAAM,SAYrB,CAAA;AACL,CAAC,EAdgB,kBAAkB,kCAAlB,kBAAkB,QAclC;AA6DD,wDAAwD;AACxD,SAAgB,gBAAgB,CAAC,UAAsB;IACnD,OAAO,CAAC,CAAE,UAA6B,CAAC,gBAAgB,CAAC;AAC7D,CAAC;AAFD,4CAEC;AAUD,0FAA0F;AAC1F,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,uEAAuE;AACvE,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,sDAAsD;AACtD,MAAM,oCAAoC,GAAG,KAAK,CAAC;AAEnD,iFAAiF;AACjF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,+EAA+E;AAC/E,8EAA8E;AAC9E,WAAW;AACX,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAE7C,SAAgB,iBAAiB,CAC7B,SAAwB,EACxB,sBAA8C;IAE9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACpE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvD,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAmB,CAAC;IAClE,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,2BAA2B,GAAG,CAAC,CAAC;IACpC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,wEAAwE;IACxE,0EAA0E;IAC1E,iEAAiE;IACjE,SAAS,sBAAsB;QAC3B,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA6B,CAAC;QAElE,SAAS,gCAAgC,CAAC,YAAoB;YAC1D,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,EAAE;gBACpB,iBAAiB,GAAG;oBAChB,KAAK,EAAE,IAAI,GAAG,EAAkC;oBAChD,YAAY,EAAE,IAAI,GAAG,EAAU;oBAC/B,sBAAsB,EAAE,IAAI,GAAG,EAAU;iBAC5C,CAAC;gBACF,oBAAoB,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;aAC7D;YAED,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QAED,kEAAkE;QAClE,8EAA8E;QAC9E,kEAAkE;QAClE,sEAAsE;QACtE,kEAAkE;QAClE,cAAc;QACd,SAAS,4BAA4B,CAAC,kBAAsC;YACxE,IAAI,CAAC,kBAAkB,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;YAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE;gBACvD,IAAI,GAAG,KAAK,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC3D,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,SAAS,mBAAmB,CACxB,QAAkB,EAClB,SAAsD,EACtD,OAA6B;;YAE7B,IAAI,2BAA2B,EAAE;gBAC7B,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;aACrE;YAED,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,0BAAgD,CAAC;YACrD,MAAM,wBAAwB,GAC1B,YAAY,KAAK,SAAS,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,MAAK,SAAS;gBAC/D,CAAC,CAAC,YAAY,GAAG,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAC,QAAQ,EAAE,EAAE;gBACzD,CAAC,CAAC,GAAG,CAAC;YACd,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;YAErF,kFAAkF;YAClF,SAAS,aAAa,CAClB,QAAkB,EAClB,IAAsB,EACtB,YAAqB;gBAErB,IAAI,CAAC,YAAY,EAAE;oBACf,wBAAwB,EAAE,CAAC;iBAC9B;qBAAM,IAAI,IAAI,EAAE;oBACb,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3D,IAAI,SAAS,EAAE;wBACX,MAAM,kBAAkB,GAAG,SAA2B,CAAC;wBAEvD,IACI,kBAAkB,CAAC,gBAAgB;4BACnC,kBAAkB,CAAC,IAAI;4BACvB,CAAC,IAAA,kBAAU,EAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAC5C;4BACE,wBAAwB,EAAE,CAAC;yBAC9B;qBACJ;iBACJ;gBAED,+DAA+D;gBAC/D,8DAA8D;gBAC9D,qBAAqB;gBACrB,MAAM,KAAK,GAA2B,YAAY;oBAC9C,CAAC,CAAC;wBACI,gBAAgB,EAAE,IAAI;wBACtB,IAAI;wBACJ,kBAAkB,EAAE,EAAE;wBACtB,eAAe,EAAE,wBAAwB;qBAC5C;oBACH,CAAC,CAAC,IAAI,CAAC;gBAEX,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChD,sBAAsB,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAExE,OAAO,kBAAkB,CAAC,MAAM,CAC5B,IAAI,EACJ,YAAY,EACZ,wBAAwB,EACxB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAChC,CAAC;YACN,CAAC;YAED,SAAS,oBAAoB,CACzB,QAAkB,EAClB,KAAa,EACb,IAAU,EACV,YAAqB,EACrB,SAAkB,EAClB,eAAuB;gBAEvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;oBAC7D,IAAA,YAAI,EACA,6EAA6E;wBACzE,sBAAsB,CAAC,WAAW,GAAG;wBACrC,SAAS,KAAK,GAAG;wBACjB,aAAa,SAAS,GAAG;wBACzB,mBAAmB,eAAe,EAAE,CAC3C,CAAC;iBACL;gBAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,CAAC;gBACzD,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE;oBAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,IAAA,kBAAU,EAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;wBAC5E,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;wBAC9E,wBAAwB,EAAE,CAAC;qBAC9B;yBAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;wBACzC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;qBACjF;iBACJ;qBAAM;oBACH,IAAA,cAAM,EAAC,iBAAiB,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;oBAC3C,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC3E,wBAAwB,EAAE,CAAC;iBAC9B;gBAED,IAAI,YAA8B,CAAC;gBACnC,IAAI,WAAW,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,8DAA8D;oBAC9D,kCAAkC;oBAClC,MAAM,cAAc,GAAW,EAAE,CAAC;oBAElC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzC,IAAI,CAAC,CAAC,IAAI,EAAE;4BACR,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAC/B;oBACL,CAAC,CAAC,CAAC;oBAEH,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvF;gBAED,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;gBAChC,WAAW,CAAC,eAAe,GAAG,wBAAwB,CAAC;gBAEvD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAED,gFAAgF;YAChF,2EAA2E;YAC3E,qDAAqD;YACrD,SAAS,aAAa,CAAC,QAAkB;gBACrC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;oBAC3C,OAAO,SAAS,CAAC;iBACpB;gBAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACpF;gBAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;oBAChC,OAAO,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBAC3E;gBAED,OAAO,kBAAkB,CAAC,MAAM,CAC5B,WAAW,CAAC,IAAI;gBAChB,kBAAkB,CAAC,IAAI,EACvB,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,kBAAkB,CACjC,CAAC;YACN,CAAC;YAED,SAAS,gBAAgB,CAAC,QAAkB;gBACxC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,SAAS,0BAA0B,CAAC,QAAwB;gBACxD,+DAA+D;gBAC/D,2EAA2E;gBAC3E,kDAAkD;gBAClD,IAAI,kBAAkB,GAAc,QAAQ,CAAC,IAAI,CAAC;gBAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxC,IAAI,UAAU,EAAE;oBACZ,IAAI,UAAU,CAAC,QAAQ,oCAA2B,IAAI,UAAU,CAAC,QAAQ,iCAAwB,EAAE;wBAC/F,kBAAkB,GAAG,UAAU,CAAC;qBACnC;iBACJ;gBAED,OAAO,SAAS,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,GAAG,EAAE;oBAC7D,SAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACP,CAAC;YAED,SAAS,gBAAgB,CAAI,QAAkB,EAAE,QAAiB;gBAC9D,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAEhD,IAAI;oBACA,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;oBAC1B,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACnD,OAAO,MAAM,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACR,2DAA2D;oBAC3D,gEAAgE;oBAChE,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACnD,MAAM,CAAC,CAAC;iBACX;YACL,CAAC;YAED,gFAAgF;YAChF,+EAA+E;YAC/E,YAAY;YACZ,SAAS,mBAAmB,CAAC,QAAkB;;gBAC3C,IAAI,WAAW,GAAG,QAAQ,CAAC;gBAE3B,oEAAoE;gBACpE,qEAAqE;gBACrE,gCAAgC;gBAChC,SAAS,CAAC,oBAAoB,EAAE,CAAC;gBAEjC,OAAO,IAAI,EAAE;oBACT,0DAA0D;oBAC1D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;oBAC/C,IAAI,WAAW,EAAE;wBACb,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;4BAC3B,OAAO,WAAW,CAAC;yBACtB;wBAED,mEAAmE;wBACnE,gFAAgF;wBAChF,IAAI,WAAW,CAAC,eAAe,KAAK,wBAAwB,EAAE;4BAC1D,OAAO,kBAAkB,CAAC,MAAM,CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kCAAsB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;4BACvE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;yBACL;qBACJ;oBAED,uBAAuB;oBACvB,IAAI,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;wBACpD,OAAO,kBAAkB,CAAC,MAAM,CAC5B,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,mCAAI,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;wBAChE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;qBACL;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,sEAAsE;wBACtE,kEAAkE;wBAClE,OAAO,aAAa,CAAC,WAAW,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACxF;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;wBAClD,MAAM,iBAAiB,GAAG,WAAqC,CAAC;wBAChE,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC;wBAC3C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,IAAI,EAAE;wBACpC,MAAM,YAAY,GAAG,WAAuB,CAAC;wBAE7C,yDAAyD;wBACzD,6DAA6D;wBAC7D,6DAA6D;wBAC7D,IAAI,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;4BACzC,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;yBACrF;wBAED,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;wBACtC,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,UAAU,EAAE;wBAC1C,MAAM,kBAAkB,GAAG,WAA6B,CAAC;wBACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC;wBAE3C,oFAAoF;wBACpF,gFAAgF;wBAChF,yCAAyC;wBACzC,IAAI,SAAS,EAAE;4BACX,IACI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,MAAK,kBAAkB,CAAC,cAAc;gCAC7D,IAAA,qCAAoB,EAAC,SAAS,EAAE,UAAU,CAAC,EAC7C;gCACE,gDAAgD;gCAChD,+DAA+D;gCAC/D,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,MAAM,EAAE;oCACtC,2EAA2E;oCAC3E,2EAA2E;oCAC3E,4EAA4E;oCAC5E,IAAI,SAAS,CAAC,QAAQ,iCAAwB,EAAE;wCAC5C,8BAA8B;wCAC9B,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qCAC1E;oCAED,gFAAgF;oCAChF,gFAAgF;oCAChF,+CAA+C;oCAC/C,IAAI,SAAS,CAAC,QAAQ,wCAA+B,EAAE;wCACnD,8BAA8B;wCAC9B,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qCAC1E;oCAED,OAAO,aAAa,CAAC,WAAW,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iCACrF;gCAED,IAAI,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,CACpD,0BAA0B,CAAC,kBAAkB,CAAC,CACjD,CAAC;gCAEF,IAAI,cAAc,EAAE;oCAChB,IAAI,IAAA,kCAAsB,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE;wCAC7C,kDAAkD;wCAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;qCAClF;yCAAM,IACH,SAAS,CAAC,QAAQ,wCAA+B;wCACjD,SAAS,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACtD;wCACE,cAAc,GAAG,SAAS,CAAC;qCAC9B;iCACJ;gCAED,OAAO,aAAa,CAAC,WAAW,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAA,CAAC,CAAC;6BAC3F;4BAED,sEAAsE;4BACtE,4EAA4E;4BAC5E,aAAa;4BACb,IACI,UAAU,CAAC,QAAQ,iCAAwB;gCAC3C,IAAA,qCAAoB,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EACxD;gCACE,IACI,CAAA,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,sCAA6B;oCACxD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oCAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;oCAC3B,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;oCAC7B,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB;oCAC1D,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,sCAA6B;oCACvE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oCACxD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,kCAAyB,EAClF;oCACE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oCACxE,MAAM,cAAc,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;wCAC7D,MAAM,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wCAE1E,IAAI,cAAc,CAAC,IAAI,EAAE;4CACrB,cAAc,CAAC,IAAI,GAAG,IAAA,uBAAW,EAAC,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gDAC/D,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;oDACzD,OAAO,IAAA,mCAAsB,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iDACpD;gDACD,OAAO,OAAO,CAAC;4CACnB,CAAC,CAAC,CAAC;yCACN;wCAED,OAAO,cAAc,CAAC;oCAC1B,CAAC,CAAC,CAAC;oCAEH,OAAO,aAAa,CAChB,WAAW,EACX,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EACpB,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAA,CACjC,CAAC;iCACL;6BACJ;4BAED,IAAI,IAAA,4CAA2B,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE;gCACpD,8EAA8E;gCAC9E,sEAAsE;gCACtE,aAAa;gCACb,eAAe;gCACf,aAAa;gCACb,+DAA+D;gCAC/D,OAAO,kBAAkB,CAAC,MAAM,CAC5B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CACvC,CAAC;6BACL;yBACJ;wBAED,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC;wBAC5C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,MAAM,cAAc,GAAG,WAA8B,CAAC;wBAEtD,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;4BAClD,kEAAkE;4BAClE,8DAA8D;4BAC9D,MAAM,cAAc,GAAG,WAA0C,CAAC;4BAClE,MAAM,gCAAgC,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9E,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CACrE,CAAC;4BAEF,IAAI,gCAAgC,KAAK,cAAc,CAAC,yBAAyB,EAAE;gCAC/E,wDAAwD;gCACxD,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;6BACrF;yBACJ;wBAED,4EAA4E;wBAC5E,8DAA8D;wBAC9D,IAAI,SAAS,IAAI,cAAc,CAAC,mBAAmB,IAAI,cAAc,CAAC,mBAAmB,EAAE;4BACvF,IAAI,CAAC,0BAA0B,EAAE;gCAC7B,0BAA0B,GAAG,IAAA,oDAAoC,EAAC,SAAS,CAAC,CAAC;6BAChF;4BAED,IACI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,cAAc,CAAC,mBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAC/C;gCACD,uBAAuB,CAAC,WAAW,EAAE,cAAc,CAAC,mBAAmB,CAAC;oCACpE,iCAAY,CAAC,SAAS,EAC5B;gCACE,WAAW,GAAG,cAAc,CAAC,mBAAmB,CAAC;gCACjD,SAAS;6BACZ;yBACJ;wBAED,OAAO,yBAAyB,CAAC,WAAwB,CAAC,CAAC;qBAC9D;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,SAAS,EAAE;wBACzC,MAAM,QAAQ,GAAG,WAAwB,CAAC;wBAE1C,qFAAqF;wBACrF,uFAAuF;wBACvF,wBAAwB;wBACxB,IAAI,SAAS,EAAE;4BACX,IAAI,CAAC,0BAA0B,EAAE;gCAC7B,0BAA0B,GAAG,IAAA,oDAAoC,EAAC,SAAS,CAAC,CAAC;6BAChF;4BAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gCACnF,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gCACtC,SAAS;6BACZ;yBACJ;wBAED,OAAO,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;qBACzD;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,cAAc,CAAC,EAAE;wBAC1E,MAAM,mBAAmB,GAAG,WAA4B,CAAC;wBAEzD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CAAA,IAAI,SAAS,EAAE;4BACjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;gCACtD,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,SAAS,EACT,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CACE,mBAAmB,CAAC,KAAK;oCACzB,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAC3D,CACJ,CAAC;gCAEF,IAAI,qBAAqB,EAAE;oCACvB,MAAM,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;oCAC3E,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;oCACnC,IAAI,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;oCAE/C,IAAI,QAAQ,EAAE;wCACV,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wCAEvD,IAAI,cAAc,EAAE;4CAChB,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;4CAC/B,IAAI,cAAc,CAAC,YAAY,EAAE;gDAC7B,YAAY,GAAG,IAAI,CAAC;6CACvB;yCACJ;qCACJ;oCAED,OAAO,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;iCAC7D;gCAED,OAAO,SAAS,CAAC;4BACrB,CAAC,CAAC,CAAC;4BAEH,IAAI,cAAc,EAAE;gCAChB,OAAO,cAAc,CAAC;6BACzB;yBACJ;wBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;wBAC7C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,kBAAkB,GAAG,yBAAS,CAAC,mBAAmB,CAAC,EAAE;wBACpF,MAAM,mBAAmB,GAAG,WAA4B,CAAC;wBACzD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CAAA,IAAI,mBAAmB,CAAC,SAAS,EAAE;4BACrE,4EAA4E;4BAC5E,0EAA0E;4BAC1E,0BAA0B;4BAC1B,IAAI,IAAA,qCAAqB,EAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,YAAY,EAAE;gCACvE,4DAA4D;gCAC5D,8DAA8D;gCAC9D,iBAAiB;gCACjB,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CACnD,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gCACrC,mBAAmB,CAAC,KAAK,CAC5B,CAAC;gCAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE;oCAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;wCAC9C,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,mBAAmB,CAAC,SAAU,EAC9B,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CACE,mBAAmB,CAAC,KAAK;4CACzB,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAC3D,CACJ,CAAC;wCAEF,IAAI,qBAAqB,EAAE;4CACvB,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAC7C,mBAAmB,CAAC,SAAU,CACjC,CAAC;4CAEF,IAAI,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;4CACpC,IAAI,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;4CAE9C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4CACnE,IAAI,kBAAkB,EAAE;gDACpB,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;gDACvC,IAAI,kBAAkB,CAAC,YAAY,EAAE;oDACjC,YAAY,GAAG,IAAI,CAAC;iDACvB;6CACJ;4CAED,oEAAoE;4CACpE,IAAI,IAAA,eAAO,EAAC,YAAY,CAAC,EAAE;gDACvB,OAAO,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;6CAC9D;yCACJ;wCAED,OAAO,SAAS,CAAC;oCACrB,CAAC,CAAC,CAAC;oCAEH,IAAI,MAAM,EAAE;wCACR,OAAO,MAAM,CAAC;qCACjB;iCACJ;6BACJ;yBACJ;wBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;wBAC7C,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,MAAM,sBAAsB,GAAG,WAAiC,CAAC;wBACjE,MAAM,kBAAkB,GAAG,SAAS,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE;4BAC1F,SAAS,CAAC,8BAA8B,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;wBAC1E,CAAC,CAAC,CAAC;wBAEH,oEAAoE;wBACpE,IAAI,kBAAkB,EAAE;4BACpB,IAAI,IAAA,eAAO,EAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gCAClC,OAAO,aAAa,CAChB,WAAW,EACX,kBAAkB,CAAC,IAAI,EACvB,CAAC,CAAC,kBAAkB,CAAC,YAAY,CACpC,CAAC;6BACL;4BAED,IAAI,SAAS,EAAE;gCACX,yEAAyE;gCACzE,MAAM,qBAAqB,GAAG,IAAA,oDAAkC,EAC5D,SAAS,EACT,SAAS,EACT,sBAAsB,CAAC,iBAAiB,CAC3C,CAAC;gCAEF,IAAI,qBAAqB,EAAE;oCACvB,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oCAE/E,IAAI,uBAAuB,EAAE;wCACzB,OAAO,aAAa,CAChB,WAAW,EACX,uBAAuB,CAAC,IAAI,EAC5B,CAAC,CAAC,kBAAkB,CAAC,YAAY,IAAI,CAAC,CAAC,uBAAuB,CAAC,YAAY,CAC9E,CAAC;qCACL;iCACJ;6BACJ;yBACJ;wBAED,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;wBAChD,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,gBAAgB,EAAE;wBAChD,MAAM,eAAe,GAAG,WAAmC,CAAC;wBAC5D,IAAI,CAAC,SAAS,IAAI,IAAA,qCAAoB,EAAC,SAAS,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE;4BAClF,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE;gCAChF,IAAI,eAAe,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;oCAC3D,SAAS,CAAC,6BAA6B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iCACtE;qCAAM;oCACH,SAAS,CAAC,8BAA8B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iCACvE;4BACL,CAAC,CAAC,CAAC;4BAEH,IAAI,UAAU,EAAE;gCACZ,IAAI,CAAC,SAAS,EAAE;oCACZ,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE;wCAC1B,OAAO,aAAa,CAChB,WAAW;wCACX,UAAU,CAAC,SAAS,EACpB,CAAC,CAAC,UAAU,CAAC,YAAY,CAC5B,CAAC;qCACL;iCACJ;qCAAM;oCACH,OAAO,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iCACjF;6BACJ;yBACJ;6BAAM,IAAI,eAAe,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;4BAClE,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC;4BAEhD,yEAAyE;4BACzE,MAAM,qBAAqB,GAAG,IAAA,oDAAkC,EAC5D,SAAS,EACT,SAAS,EACT,eAAe,CAAC,iBAAiB,CACpC,CAAC;4BAEF,IAAI,qBAAqB,EAAE;gCACvB,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,aAAa,EAAE,GAAG,EAAE;oCACpE,SAAS,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;gCAC3D,CAAC,CAAC,CAAC;gCAEH,IAAI,UAAU,EAAE;oCACZ,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oCAElE,IAAI,kBAAkB,EAAE;wCACpB,OAAO,aAAa,CAChB,WAAW,EACX,kBAAkB,CAAC,IAAI,EACvB,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,kBAAkB,CAAC,YAAY,CACjE,CAAC;qCACL;iCACJ;6BACJ;yBACJ;wBACD,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC;wBACzC,SAAS;qBACZ;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,OAAO,iCAAiC,CAAC,WAAiC,CAAC,CAAC;qBAC/E;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;wBAC3C,OAAO,8BAA8B,CAAC,WAA8B,CAAC,CAAC;qBACzE;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,KAAK,EAAE;wBACrC,OAAO,aAAa,CAChB,WAAW,EACX,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CACvC,CAAC;qBACL;oBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;wBAC9C,MAAM,sBAAsB,GAAG,WAAiC,CAAC;wBACjE,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,gCAAuB,EAAE;4BACxD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;4BACpC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;gCACjE,OAAO,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;oCACtC,MAAM,IAAI,GAAG,yBAAyB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;oCAC1E,OAAO,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;gCACtE,CAAC,CAAC,CAAC;6BACN;yBACJ;wBAED,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;wBAChD,SAAS;qBACZ;oBAED,yBAAyB;oBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;iBACtC;YACL,CAAC;YAED,SAAS,yBAAyB,CAAC,UAAqB;gBACpD,MAAM,cAAc,GAAW,EAAE,CAAC;gBAElC,IAAI,aAAa,GAAG,KAAK,CAAC;gBAE1B,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE;oBAC7C,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBAEvD,IAAI,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,IAAA,eAAO,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE;wBACjF,8DAA8D;wBAC9D,+DAA+D;wBAC/D,4DAA4D;wBAC5D,OAAO,aAAa,CAAC,UAAU,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACpF;oBAED,IAAI,cAAc,CAAC,YAAY,EAAE;wBAC7B,aAAa,GAAG,IAAI,CAAC;qBACxB;oBAED,IAAI,cAAc,CAAC,IAAI,EAAE;wBACrB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;qBAC5C;iBACJ;gBAED,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE3F,OAAO,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YACnE,CAAC;YAED,SAAS,uBAAuB,CAC5B,QAAmB,EACnB,UAA0C;;gBAE1C,6DAA6D;gBAC7D,uDAAuD;gBACvD,0BAA0B;gBAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;gBAEpD,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC1B,uEAAuE;oBACvE,UAAU,GAAG,aAAa,CACtB,QAAQ,EACR,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE;oBAC5C,kBAAkB,CAAC,IAAI,CAC1B,CAAC;iBACL;qBAAM,IACH,UAAU,CAAC,kBAAkB;oBAC7B,UAAU,CAAC,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAM;oBACpE,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EACpE;oBACE,+EAA+E;oBAC/E,2EAA2E;oBAC3E,8EAA8E;oBAC9E,OAAO,kBAAkB,CAAC,MAAM,CAC5B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kCAAsB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrE,kBAAkB,CAAC,IAAI,CAC1B,CAAC;iBACL;gBAED,IAAI,YAAY,GAAG,CAAC,CAAC;gBAErB,OAAO,IAAI,EAAE;oBACT,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;oBACvB,IAAI,iBAAiB,GACjB,SAAS,KAAK,SAAS;yBACvB,MAAA,UAAU,CAAC,kBAAkB,0CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA,CAAC;oBACjF,IAAI,+BAA+B,GAAG,KAAK,CAAC;oBAC5C,IAAI,4BAA4B,GAAG,KAAK,CAAC;oBAEzC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;;wBAC/C,qEAAqE;wBACrE,iCAAiC;wBACjC,IAAI,SAAS,KAAK,SAAS,IAAI,iBAAiB,EAAE;4BAC9C,OAAO;yBACV;wBAED,IAAI,4BAA4B,IAAI,KAAK,GAAG,CAAC,EAAE;4BAC3C,OAAO;yBACV;wBAED,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAE,CAAC;wBAEtC,oEAAoE;wBACpE,gEAAgE;wBAChE,qEAAqE;wBACrE,qCAAqC;wBACrC,IACI,UAAU,CAAC,kBAAkB;4BAC7B,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM;4BAC5C,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,EAChD;4BACE,kEAAkE;4BAClE,oEAAoE;4BACpE,qEAAqE;4BACrE,mEAAmE;4BACnE,0EAA0E;4BAC1E,qEAAqE;4BACrE,kEAAkE;4BAClE,sBAAsB;4BACtB,IAAI,KAAK,KAAK,CAAC,EAAE;gCACb,4BAA4B,GAAG,IAAI,CAAC;6BACvC;iCAAM;gCACH,aAAa,GAAG,IAAI,CAAC;gCACrB,UAAU,GAAG,IAAI,CAAC;gCAClB,OAAO;6BACV;yBACJ;wBAED,8DAA8D;wBAC9D,qEAAqE;wBACrE,8BAA8B;wBAC9B,MAAM,YAAY,GACd,UAAU,CAAC,kBAAkB,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM;4BACvF,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC;4BACtC,CAAC,CAAC,SAAS,CAAC;wBACpB,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAA,CAAC,EAAE;4BACxF,MAAM,oBAAoB,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;4BAE3F,oEAAoE;4BACpE,2CAA2C;4BAC3C,IAAI,oBAAoB,IAAI,0BAA0B,EAAE;gCACpD,sBAAsB;gCACtB,IAAI,CAAC,sBAAsB,IAAI,8BAA8B,EAAE;oCAC3D,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;iCACrE;gCACD,sBAAsB,GAAG,IAAI,CAAC;gCAC9B,OAAO;6BACV;4BAED,6DAA6D;4BAC7D,qCAAqC;4BACrC,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,mCAAI,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;4BACjE,kBAAkB,CAAC,IAAI;4BACvB,eAAe,CAAC,IAAI,EACpB,oBAAoB,CACvB,CAAC;4BAEF,IAAI;gCACA,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;gCAEvD,IAAI,cAAc,CAAC,YAAY,EAAE;oCAC7B,aAAa,GAAG,IAAI,CAAC;oCAErB,IAAI,KAAK,KAAK,CAAC,EAAE;wCACb,+BAA+B,GAAG,IAAI,CAAC;qCAC1C;iCACJ;gCAED,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,MAAA,cAAc,CAAC,IAAI,mCACf,CAAC,cAAc,CAAC,YAAY;oCACxB,CAAC,CAAC,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;oCAC7C,CAAC,CAAC,iBAAS,CAAC,WAAW,EAAE,CAAC,EAClC,cAAc,CAAC,YAAY;gCAC3B,eAAe,CAAC,4BAA4B,EAC5C,oBAAoB,GAAG,CAAC,CAC3B,CAAC;6BACL;4BAAC,OAAO,CAAC,EAAE;gCACR,UAAU,GAAG,oBAAoB,CAC7B,QAAQ,EACR,KAAK,EACL,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;gCAC3C,kBAAkB,CAAC,IAAI;gCACvB,eAAe,CAAC,4BAA4B,EAC5C,oBAAoB,GAAG,CAAC,CAC3B,CAAC;gCACF,MAAM,CAAC,CAAC;6BACX;yBACJ;wBAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,SAAS,EAAE;4BAC3D,iBAAiB,GAAG,IAAI,CAAC;yBAC5B;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,iBAAiB,EAAE;wBACnB,mEAAmE;wBACnE,oEAAoE;wBACpE,+DAA+D;wBAC/D,OAAO,UAAU;4BACb,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;4BAC3E,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBACjF;oBAED,IAAI,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC;oBACpC,IAAI,aAAa,EAAE;wBACf,uEAAuE;wBACvE,gEAAgE;wBAChE,wCAAwC;wBACxC,IAAI,aAAa,EAAE;4BACf,MAAM,WAAW,GAAG,IAAA,kCAAsB,EAAC,aAAa,CAAC,CAAC;4BAC1D,IAAI,WAAW,KAAK,aAAa,EAAE;gCAC/B,aAAa,GAAG,WAAW,CAAC;6BAC/B;yBACJ;qBACJ;oBAED,IAAI,CAAC,aAAa,IAAI,YAAY,IAAI,eAAe,EAAE;wBACnD,mEAAmE;wBACnE,kEAAkE;wBAClE,+DAA+D;wBAC/D,qDAAqD;wBACrD,IAAI,gBAAgB,GAAG,aAAa,CAAC;wBACrC,IACI,aAAa;4BACb,CAAC,UAAU;4BACX,CAAC,4BAA4B,CAAC,wBAAwB,CAAC;4BACvD,aAAa;4BACb,CAAC,IAAA,+BAAmB,EAAC,aAAa,CAAC;4BACnC,CAAC,+BAA+B,EAClC;4BACE,gBAAgB,GAAG,KAAK,CAAC;yBAC5B;wBAED,oEAAoE;wBACpE,iEAAiE;wBACjE,IAAI,UAAU,IAAI,aAAa,EAAE;4BAC7B,IAAI,CAAC,gBAAgB,EAAE;gCACnB,2DAA2D;gCAC3D,0DAA0D;gCAC1D,wBAAwB,EAAE,CAAC;6BAC9B;4BAED,OAAO,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;yBACrE;wBAED,mEAAmE;wBACnE,0CAA0C;wBAC1C,IAAI,4BAA4B,EAAE;4BAC9B,OAAO,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;yBAC5E;wBAED,OAAO,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBAC3E;oBAED,YAAY,EAAE,CAAC;iBAClB;YACL,CAAC;YAED,SAAS,iCAAiC,CAAC,kBAAsC;gBAC7E,8BAA8B;gBAC9B,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;oBACrE,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACpF;gBAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE1E,6EAA6E;gBAC7E,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAErC,OAAO,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;YACvF,CAAC;YAED,SAAS,8BAA8B,CAAC,mBAAoC;gBACxE,MAAM,aAAa,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAC9D,mBAAmB,CAAC,cAAc,CAAC,EAAE,CACxC,CAAC;gBACF,IAAI;oBACA,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBACpF,IAAI,cAA8C,CAAC;oBAEnD,8DAA8D;oBAC9D,iEAAiE;oBACjE,mCAAmC;oBACnC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE;wBAC/D,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBACzE,CAAC,CAAC,CAAC;oBAEH,4DAA4D;oBAC5D,OAAO,cAAe,CAAC,YAAY;wBAC/B,CAAC,CAAC,cAAe;wBACjB,CAAC,CAAC,aAAa,CAAC,mBAAmB,EAAE,cAAe,CAAC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBAC5F;wBAAS;oBACN,IAAI,CAAC,aAAa,EAAE;wBAChB,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;qBAC1F;iBACJ;YACL,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE;gBACX,0DAA0D;gBAC1D,uDAAuD;gBACvD,qDAAqD;gBACrD,qBAAqB;gBACrB,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,YAAY,CAAA,CAAC,CAAC;aACtG;YAED,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACH,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,sCAAsC;IACtC,SAAS,uBAAuB,CAC5B,QAAkB,EAClB,cAAyB,EACzB,cAAc,GAAG,KAAK;QAEtB,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/C,IAAI,2BAA2B,EAAE;YAC7B,qBAAqB,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;SACzF;QAED,SAAS,uBAAuB,CAAC,YAA0B;YACvD,gEAAgE;YAChE,4CAA4C;YAC5C,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE;gBAC/B,OAAO,YAAY,CAAC;aACvB;YAED,IAAI,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,GAAG,EAAwB,EAAE,CAAC;gBAC5F,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;aAClD;YAED,IAAI,CAAC,cAAc,EAAE;gBACjB,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;aAC1C;iBAAM;gBACH,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;aACpE;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,SAAS,gCAAgC,CAAC,QAAkB,EAAE,cAAc,GAAG,CAAC;;YAC5E,mEAAmE;YACnE,MAAM,kCAAkC,GAAG,EAAE,CAAC;YAC9C,IAAI,cAAc,GAAG,kCAAkC,EAAE;gBACrD,OAAO,iCAAY,CAAC,SAAS,CAAC;aACjC;YACD,cAAc,EAAE,CAAC;YAEjB,IAAI,WAAW,GAAG,QAAQ,CAAC;YAE3B,OAAO,IAAI,EAAE;gBACT,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,UAAU,KAAK,SAAS,IAAI,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE;oBAC7D,IAAI,CAAC,cAAc,EAAE;wBACjB,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE;4BACvC,OAAO,UAAU,CAAC,YAAY,CAAC;yBAClC;qBACJ;yBAAM;wBACH,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAC5E,IAAI,gBAAgB,KAAK,SAAS,EAAE;4BAChC,OAAO,gBAAgB,CAAC;yBAC3B;qBACJ;iBACJ;gBAED,oDAAoD;gBACpD,uBAAuB;gBACvB,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBACxC,OAAO,uBAAuB,CAAC,iCAAY,CAAC,iBAAiB,CAAC,CAAC;iBAClE;gBAED,oCAAoC;gBACpC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAEvC,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;oBAC3C,OAAO,uBAAuB,CAAC,iCAAY,CAAC,iBAAiB,CAAC,CAAC;iBAClE;gBAED,IAAI,WAAW,KAAK,cAAc,EAAE;oBAChC,OAAO,uBAAuB,CAAC,iCAAY,CAAC,SAAS,CAAC,CAAC;iBAC1D;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,kBAAkB;wBACzB,yBAAS,CAAC,UAAU;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,gBAAgB;wBAC1B,yBAAS,CAAC,cAAc,CAAC,EAC/B;oBACE,MAAM,aAAa,GAAG,WAIE,CAAC;oBACzB,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;oBACvC,SAAS;iBACZ;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,aAAa;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,kBAAkB;wBAC5B,yBAAS,CAAC,mBAAmB,CAAC,EACpC;oBACE,MAAM,mBAAmB,GAAG,WAA4B,CAAC;oBACzD,IAAI,mBAAmB,CAAC,SAAS,EAAE;wBAC/B,4DAA4D;wBAC5D,8DAA8D;wBAC9D,iBAAiB;wBACjB,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CACnD,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;wBACrC,mBAAmB,CAAC,KAAK,CAC5B,CAAC;wBAEF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE;4BAClE,IAAI,aAAa,GAAG,KAAK,CAAC;4BAE1B,MAAM,qBAAqB,GAAG,IAAA,qCAAwB,EAClD,SAAS,EACT,mBAAmB,CAAC,SAAU,EAC9B,mBAAmB,CAAC,UAAU,EAC9B,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,kBAAkB,CAAC,CAAC,CAC3F,CAAC;4BAEF,IAAI,qBAAqB,EAAE;gCACvB,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,SAAU,CAAC,CAAC;gCAElF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACnE,MAAM,YAAY,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,mCAAI,WAAW,CAAC,IAAI,CAAC;gCAElE,IAAI,IAAA,eAAO,EAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;oCACpD,aAAa,GAAG,IAAI,CAAC;iCACxB;6BACJ;4BAED,IAAI,aAAa,EAAE;gCACf,OAAO,uBAAuB,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC;6BACtE;yBACJ;qBACJ;oBAED,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;oBAC7C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,IAAI,EAAE;oBACpC,MAAM,YAAY,GAAG,WAAuB,CAAC;oBAE7C,yDAAyD;oBACzD,6DAA6D;oBAC7D,6DAA6D;oBAC7D,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;wBAC5D,OAAO,uBAAuB,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC;qBACtE;oBAED,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;oBACtC,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,SAAS,CAAC,EAAE;oBACnE,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,kBAAkB,EAAE;wBAClD,kEAAkE;wBAClE,8DAA8D;wBAC9D,MAAM,cAAc,GAAG,WAA0C,CAAC;wBAClE,IACI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CACrE,EACH;4BACE,OAAO,uBAAuB,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC;yBACtE;qBACJ;oBAED,MAAM,SAAS,GAAG,WAAwB,CAAC;oBAC3C,IAAI,iBAAiB,GAAG,KAAK,CAAC;oBAC9B,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE;wBAC5C,MAAM,YAAY,GAAG,gCAAgC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;wBAClF,IAAI,YAAY,KAAK,iCAAY,CAAC,SAAS,EAAE;4BACzC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;yBAChD;6BAAM,IAAI,YAAY,KAAK,iCAAY,CAAC,qBAAqB,EAAE;4BAC5D,iBAAiB,GAAG,IAAI,CAAC;yBAC5B;qBACJ;oBACD,OAAO,uBAAuB,CAC1B,iBAAiB,CAAC,CAAC,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,iCAAY,CAAC,iBAAiB,CAC1F,CAAC;iBACL;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,KAAK,EAAE;oBACrC,oEAAoE;oBACpE,sEAAsE;oBACtE,OAAO,uBAAuB,CAC1B,cAAc,CAAC,CAAC,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,iCAAY,CAAC,SAAS,CAC/E,CAAC;iBACL;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,cAAc,EAAE;oBAC9C,MAAM,kBAAkB,GAAG,WAAiC,CAAC;oBAC7D,IAAI,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;wBACjD,OAAO,uBAAuB,CAAC,iCAAY,CAAC,qBAAqB,CAAC,CAAC;qBACtE;oBAED,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC;oBAC5C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,EAAE;oBAC3C,MAAM,mBAAmB,GAAG,WAA8B,CAAC;oBAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAEtF,IAAI;wBACA,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAChE,OAAO,uBAAuB,CAC1B,gCAAgC,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CACnF,CAAC;qBACL;4BAAS;wBACN,IAAI,CAAC,aAAa,EAAE;4BAChB,oBAAoB,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;yBACtE;qBACJ;iBACJ;gBAED,yBAAyB;gBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;gBACnC,OAAO,uBAAuB,CAAC,iCAAY,CAAC,SAAS,CAAC,CAAC;aAC1D;QACL,CAAC;QAED,sCAAsC;QACtC,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC1C,OAAO,iCAAY,CAAC,qBAAqB,CAAC;SAC7C;QACD,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI;YACA,OAAO,gCAAgC,CAAC,QAAQ,CAAC,CAAC;SACrD;gBAAS;YACN,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,gFAAgF;IAChF,2EAA2E;IAC3E,gBAAgB;IAChB,SAAS,wBAAwB,CAAC,QAAkB,EAAE,OAAoB;QACtE,IAAA,cAAM,EAAC,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,IAAA,cAAM,EAAC,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC;QACjC,IAAA,cAAM,EAAC,CAAC,mBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,IAAA,cAAM,EAAC,mBAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAE5C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,MAAM,mBAAmB,GAAgB,EAAE,CAAC;QAE5C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YACjD,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE;gBAC7B,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACxC;iBAAM;gBACH,kEAAkE;gBAClE,wBAAwB;gBACxB,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,SAAS,iCAAiC,CAAC,QAAkB,EAAE,OAAoB;YAC/E,IAAI,WAAW,GAAG,QAAQ,CAAC;YAE3B,OAAO,IAAI,EAAE;gBACT,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBACxC,OAAO,mBAAmB,CAAC;iBAC9B;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,KAAK,CAAC,EAAE;oBAC/D,OAAO,mBAAmB,CAAC;iBAC9B;gBAED,IACI,WAAW,CAAC,KAAK;oBACjB,CAAC,yBAAS,CAAC,kBAAkB;wBACzB,yBAAS,CAAC,UAAU;wBACpB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,kBAAkB;wBAC5B,yBAAS,CAAC,mBAAmB;wBAC7B,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,WAAW;wBACrB,yBAAS,CAAC,cAAc;wBACxB,yBAAS,CAAC,IAAI,CAAC,EACrB;oBACE,MAAM,aAAa,GAAG,WAOR,CAAC;oBACf,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;oBACvC,SAAS;iBACZ;gBAED,gDAAgD;gBAChD,IAAI,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,gBAAgB,EAAE;oBAChD,MAAM,wBAAwB,GAAG,WAAmC,CAAC;oBACrE,IAAI,wBAAwB,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE;wBACpE,MAAM,WAAW,GAAG,SAAS,CAAC,mBAAmB,CAC7C,wBAAwB,CAAC,iBAAiB,CAC7C,CAAC,IAAI,CAAC;wBAEP,IAAI,kCAAkC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;4BAC1D,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;4BAEjE,IACI,WAAW,CAAC,QAAQ,qCAA4B;gCAChD,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gCACrC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,wCAA+B,EACrE;gCACE,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAErD,MAAM,SAAS,GAAG,SAAS,CAAC,mBAAmB,CAC3C,gBAAgB,CAAC,CAAC,CAAC,SAAS,qCAE/B,CAAC,IAAI,CAAC;gCAEP,IAAI,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE;oCAChC,MAAM,yBAAyB,GAAG,iCAAiC,CAC/D,wBAAwB,CAAC,UAAU,EACnC,OAAO,CACV,CAAC;oCAEF,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,iBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CACnD,CAAC;iCACL;6BACJ;yBACJ;qBACJ;oBAED,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC;oBAClD,SAAS;iBACZ;gBAED,mCAAmC;gBACnC,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,aAAa,GAAG,yBAAS,CAAC,cAAc,CAAC,EAAE;oBAC1E,MAAM,iBAAiB,GAAG,WAA4B,CAAC;oBACvD,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC;oBACpD,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,yBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAE3E,IACI,cAAc,CAAC,QAAQ,+BAAuB;wBAC9C,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,gCAAuB;wBACzD,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;wBAClD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EACpC;wBACE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAEtD,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;wBAE9D,IAAI,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;4BACvD,oEAAoE;4BACpE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BACvC,MAAM,yBAAyB,GAAG,iCAAiC,CAC/D,iBAAiB,CAAC,UAAU,EAC5B,OAAO,CACV,CAAC;4BACF,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAE1C,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAC1C,QAAQ,EACR;kEAC8B;8DACL;iEACG;0DACP;8DACK,CAC7B,CAAC,IAAI,CAAC;4BAEP,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;gCAC/B,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oCAChD,IAAI,iBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;wCACjD,OAAO,cAAc,CAAC;qCACzB;yCAAM;wCACH,OAAO,CAAC,cAAc,CAAC;qCAC1B;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;oBAED,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC;oBAC3C,SAAS;iBACZ;gBAED,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,yBAAS,CAAC,WAAW,GAAG,yBAAS,CAAC,SAAS,CAAC,EAAE;oBACnE,MAAM,SAAS,GAAG,WAAwB,CAAC;oBAC3C,MAAM,cAAc,GAAgB,EAAE,CAAC;oBAEvC,oEAAoE;oBACpE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACvC,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE;wBAC5C,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBAEhF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE;4BACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;gCACxD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BACnC;yBACJ;qBACJ;oBACD,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBAE1C,OAAO,cAAc,CAAC;iBACzB;gBAED,yBAAyB;gBACzB,IAAA,YAAI,EAAC,4BAA4B,CAAC,CAAC;gBACnC,OAAO,mBAAmB,CAAC;aAC9B;QACL,CAAC;QAED,MAAM,uBAAuB,GAAG,iCAAiC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErF,uDAAuD;QACvD,OAAO,uBAAuB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,aAAa;IACb,SAAS,kCAAkC,CAAC,IAAU,EAAE,OAAoB;QACxE,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;;YAC/B,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAA,kBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;oBAC/B,YAAY,GAAG,KAAK,CAAC;iBACxB;aACJ;iBAAM,IAAI,MAAA,OAAO,CAAC,KAAK,0CAAE,SAAS,EAAE;gBACjC,IACI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CACzB,CAAC,SAAS,EAAE,EAAE,CACV,mBAAW,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC7C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAC1E,EACH;oBACE,YAAY,GAAG,KAAK,CAAC;iBACxB;aACJ;iBAAM;gBACH,YAAY,GAAG,KAAK,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,8EAA8E;IAC9E,kEAAkE;IAClE,SAAS,cAAc,CAAC,SAAwB,EAAE,QAAkB;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,IAAI,uBAAuB,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,cAAc,qBAAqB,EAAE,CAAC,CAAC;SACnF;QAED,6CAA6C;QAC7C,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhD,IAAI,uBAAuB,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC;aAC5F;YAED,OAAO,MAAM,CAAC;SACjB;QAED,iDAAiD;QACjD,IAAI,qBAAqB,GAAG,6BAAqB,EAAE;YAC/C,OAAO,KAAK,CAAC;SAChB;QAED,4EAA4E;QAC5E,4BAA4B;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,kCAAyB,EAAE;YACnD,OAAO,KAAK,CAAC;SAChB;QAED,6CAA6C;QAC7C,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAExC,qBAAqB,EAAE,CAAC;QAExB,IAAI;YACA,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,+BAA+B;YAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,qCAA6B,CAAC;YAClG,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;YAErC,IAAA,4BAAgB,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;;gBACvC,+CAA+C;gBAC/C,YAAY,EAAE,CAAC;gBAEf,IAAI,IAAA,2BAAmB,EAAC,WAAW,CAAC,EAAE;oBAClC,8EAA8E;oBAC9E,4EAA4E;oBAC5E,gEAAgE;oBAChE,MAAM,mBAAmB,GAAG,IAAA,iCAAkB,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC7E,IAAI,mBAAmB,EAAE;wBACrB,OAAO;qBACV;oBAED,MAAM,eAAe,GAAG,IAAA,gCAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBACxE,IAAI,eAAe,EAAE;wBACjB,IAAI,IAAA,kBAAU,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAA,4BAAoB,EAAC,eAAe,CAAC,IAAI,CAAC,EAAE;4BAChF,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;yBACtC;qBACJ;iBACJ;qBAAM,IAAI,IAAA,uBAAe,EAAC,WAAW,CAAC,EAAE;oBACrC,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAE9E,IAAI,cAAc,EAAE;wBAChB,WAAW,GAAG,cAAc,CAAC;qBAChC;iBACJ;gBAED,MAAM,aAAa,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,iCAAwB,CAAC;gBACpE,IAAI,IAAA,kBAAU,EAAC,WAAW,CAAC,EAAE;oBACzB,IAAI,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;wBAChD,iBAAiB,EAAE,CAAC;qBACvB;iBACJ;qBAAM,IAAI,IAAA,4BAAoB,EAAC,WAAW,CAAC,EAAE;oBAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtB,IAAI,qBAAqB,GAAG,CAAC,CAAC;oBAE9B,8BAAsB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAClE,aAAa,EAAE,CAAC;wBAEhB,IAAI,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;4BAC7C,qBAAqB,EAAE,CAAC;yBAC3B;oBACL,CAAC,CAAC,CAAC;oBAEH,4DAA4D;oBAC5D,IAAI,qBAAqB,GAAG,CAAC,EAAE;wBAC3B,2CAA2C;wBAC3C,IAAI,qBAAqB,KAAK,aAAa,EAAE;4BACzC,iBAAiB,EAAE,CAAC;yBACvB;6BAAM;4BACH,0DAA0D;4BAC1D,8CAA8C;4BAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,0BAA0B,CACnD,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,CAAC,EAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE;4BAChE,iBAAiB,CAAC,SAAS;4BAC3B,yBAAyB,CAAC,KAAK;4BAC/B,sBAAsB,CAAC,SAAS,CACnC,CAAC;4BAEF,IAAI,UAAU,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gCACzD,iBAAiB,EAAE,CAAC;6BACvB;yBACJ;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,wEAAwE;YACxE,MAAM,cAAc,GAAG,YAAY,GAAG,CAAC,IAAI,iBAAiB,KAAK,YAAY,CAAC;YAE9E,iCAAiC;YACjC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAEjD,IAAI,uBAAuB,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,EAAE,UAAU,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3F;YAED,OAAO,cAAc,CAAC;SACzB;gBAAS;YACN,qBAAqB,EAAE,CAAC;SAC3B;IACL,CAAC;IAED,SAAS,kBAAkB,CAAC,YAA0B,EAAE,aAAsB;QAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC1D,IAAI,UAAU,EAAE;YACZ,IACI,IAAA,uBAAe,EAAC,UAAU,CAAC;gBAC3B,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,QAAQ;gBACxB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EACtC;gBACE,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE;oBACvD,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,OAAO,IAAA,eAAO,EAAC,UAAU,CAAC,CAAC;SAC9B;aAAM,IAAI,CAAC,oCAAoC,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;aAAM,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE;YACxC,gEAAgE;YAChE,6DAA6D;YAC7D,qCAAqC;YACrC,IACI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;gBAC5C,CAAC,oBAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBAC5C,CAAC,oBAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBAC5C,CAAC,oBAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,EACjD;gBACE,iEAAiE;gBACjE,sEAAsE;gBACtE,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;gBAErF,IAAI,wBAAwB,GAAG,KAAK,CAAC;gBACrC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE;oBACxC,IAAI,SAAS,CAAC,QAAQ,yCAAgC,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3F,MAAM;qBACT;oBAED,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAClD,IAAI,eAAe,CAAC,QAAQ,sCAA6B,EAAE;wBACvD,SAAS;qBACZ;oBAED,IAAI,eAAe,CAAC,QAAQ,iCAAwB,IAAI,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE;wBACtF,wEAAwE;wBACxE,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;wBAE1E,IACI,aAAa;4BACb,IAAA,eAAO,EAAC,aAAa,CAAC;4BACtB,IAAA,kCAAsB,EAAC,aAAa,EAAE,qBAAqB,CAAC,EAC9D;4BACE,wBAAwB,GAAG,IAAI,CAAC;yBACnC;qBACJ;oBAED,MAAM;iBACT;gBAED,IAAI,CAAC,wBAAwB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;oBAC7E,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,oBAAoB,CAAC,SAAwB,EAAE,YAA0B;QAC9E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE;YAClC,OAAO,IAAI,CAAC;SACf;QAED,OAAO,SAAS,CAAC,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,kEAAkE;IAClE,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,SAAS,yBAAyB,CAAC,SAAwB,EAAE,IAAoB,EAAE,OAAgB;QAC/F,6CAA6C;QAC7C,IAAI,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC7C,OAAO,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtD;QAED,sDAAsD;QACtD,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEnD,iDAAiD;QACjD,IAAI,2BAA2B,GAAG,6BAAqB,EAAE;YACrD,OAAO,KAAK,CAAC;SAChB;QAED,2BAA2B,EAAE,CAAC;QAC9B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,IAAI;YACA,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAExD,IAAI,MAAM,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAEvE,IAAI,QAAQ,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;oBACxE,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAEpD,yEAAyE;oBACzE,uEAAuE;oBACvE,iBAAiB;oBACjB,IAAI,OAAO,EAAE;wBACT,IACI,IAAA,uBAAe,EAAC,UAAU,CAAC;4BAC3B,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;4BAC5C,UAAU,CAAC,IAAI,CAAC,QAAQ;4BACxB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EACtC;4BACE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBAC5C;qBACJ;oBAED,oBAAoB,GAAG,KAAK,CAAC;oBAC7B,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;wBACxE,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;4BACrF,oBAAoB,GAAG,IAAI,CAAC;yBAC/B;qBACJ;iBACJ;aACJ;SACJ;gBAAS;YACN,2BAA2B,EAAE,CAAC;SACjC;QAED,iCAAiC;QACjC,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAElE,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,SAAS,yBAAyB,CAAC,QAA4B,EAAE,IAAY;QACzE,MAAM,UAAU,GAAG,IAAA,gCAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAA,cAAM,EAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAA,cAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAEzC,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxG,IAAA,cAAM,EAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,eAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC,4BAA4B,CAAC,eAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;IACjH,CAAC;IAED,SAAS,qBAAqB,CAC1B,QAAkB,EAClB,SAAsD,EACtD,QAAgB,EAChB,SAA2B,OAAO;QAElC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,EAAE;YACX,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAA,uCAAuB,EAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrE,aAAa,GAAG,GAAG,IAAA,gCAAe,EAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;SACzF;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,aAAa,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,IAAA,sCAAsB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACH,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB;QACxB,qBAAqB;KACxB,CAAC;AACN,CAAC;AAnvDD,8CAmvDC"}
|
@@ -55,7 +55,7 @@ function isCodeFlowSupportedForReference(reference) {
|
|
55
55
|
if (reference.d.items.length !== 1 ||
|
56
56
|
reference.d.trailingComma ||
|
57
57
|
reference.d.items[0].d.name !== undefined ||
|
58
|
-
reference.d.items[0].d.argCategory !== 0 /*
|
58
|
+
reference.d.items[0].d.argCategory !== 0 /* ArgCategory.Simple */) {
|
59
59
|
return false;
|
60
60
|
}
|
61
61
|
const subscriptNode = reference.d.items[0].d.valueExpr;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeFlowTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/codeFlowTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,2CAA+C;AAkB/C,IAAY,SAmBX;AAnBD,WAAY,SAAS;IACjB,uDAAoB,CAAA;IACpB,2CAAc,CAAA;IACd,uDAAoB,CAAA;IACpB,mDAAkB,CAAA;IAClB,sDAAmB,CAAA;IACnB,8CAAe,CAAA;IACf,8DAAuB,CAAA;IACvB,6DAAsB,CAAA;IACtB,+DAAuB,CAAA;IACvB,4CAAc,CAAA;IACd,gEAAwB,CAAA;IACxB,0DAAqB,CAAA;IACrB,yEAA4B,CAAA;IAC5B,yEAA4B,CAAA;IAC5B,yEAA4B,CAAA;IAC5B,4EAA6B,CAAA;IAC7B,sEAA0B,CAAA;IAC1B,kEAAwB,CAAA;AAC5B,CAAC,EAnBW,SAAS,yBAAT,SAAS,QAmBpB;AAED,IAAI,eAAe,GAAG,CAAC,CAAC;AAIxB,SAAgB,mBAAmB;IAC/B,OAAO,eAAe,EAAE,CAAC;AAC7B,CAAC;AAFD,kDAEC;AA2GD,SAAgB,+BAA+B,CAC3C,SAAyB;IAEzB,IAAI,SAAS,CAAC,QAAQ,gCAAuB,EAAE;QAC3C,OAAO,IAAI,CAAC;KACf;IAED,IAAI,SAAS,CAAC,QAAQ,wCAA+B,EAAE;QACnD,OAAO,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAChE;IAED,IAAI,SAAS,CAAC,QAAQ,iCAAwB,EAAE;QAC5C,iEAAiE;QACjE,mCAAmC;QACnC,IACI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC9B,SAAS,CAAC,CAAC,CAAC,aAAa;YACzB,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;YACzC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,
|
1
|
+
{"version":3,"file":"codeFlowTypes.js","sourceRoot":"","sources":["../../../../../src/analyzer/codeFlowTypes.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { FunctionType, ParamSpecType, Type, TypeVarType } from './types';
|
2
|
+
export declare class ConstraintSolutionSet {
|
3
|
+
private _typeVarMap;
|
4
|
+
private _scopeIds;
|
5
|
+
constructor(scopeIds?: Set<string>);
|
6
|
+
isEmpty(): boolean;
|
7
|
+
getType(typeVar: ParamSpecType): FunctionType | undefined;
|
8
|
+
getType(typeVar: TypeVarType): Type | undefined;
|
9
|
+
setType(typeVar: TypeVarType, type: Type): Map<string, Type>;
|
10
|
+
doForEachTypeVar(callback: (type: Type, typeVarId: string) => void): void;
|
11
|
+
}
|
12
|
+
export declare class ConstraintSolution {
|
13
|
+
private _solutionSets;
|
14
|
+
constructor(solutionSets?: ConstraintSolutionSet[]);
|
15
|
+
isEmpty(): boolean;
|
16
|
+
setType(typeVar: TypeVarType, type: Type): void;
|
17
|
+
getMainSolutionSet(): ConstraintSolutionSet;
|
18
|
+
getSolutionSets(): ConstraintSolutionSet[];
|
19
|
+
doForEachSolutionSet(callback: (solutionSet: ConstraintSolutionSet, index: number) => void): void;
|
20
|
+
getSolutionSet(index: number): ConstraintSolutionSet;
|
21
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
/*
|
3
|
+
* constraintSolution.ts
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
5
|
+
* Licensed under the MIT license.
|
6
|
+
* Author: Eric Traut
|
7
|
+
*
|
8
|
+
* Data structure that holds one or more constraint solutions for a set
|
9
|
+
* of type variables.
|
10
|
+
*/
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.ConstraintSolution = exports.ConstraintSolutionSet = void 0;
|
13
|
+
const debug_1 = require("../common/debug");
|
14
|
+
const types_1 = require("./types");
|
15
|
+
// Records the types associated with a set of type variables.
|
16
|
+
class ConstraintSolutionSet {
|
17
|
+
constructor(scopeIds) {
|
18
|
+
this._typeVarMap = new Map();
|
19
|
+
if (scopeIds) {
|
20
|
+
this._scopeIds = new Set(scopeIds);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
isEmpty() {
|
24
|
+
return this._typeVarMap.size === 0;
|
25
|
+
}
|
26
|
+
getType(typeVar) {
|
27
|
+
const key = types_1.TypeVarType.getNameWithScope(typeVar);
|
28
|
+
return this._typeVarMap.get(key);
|
29
|
+
}
|
30
|
+
setType(typeVar, type) {
|
31
|
+
const key = types_1.TypeVarType.getNameWithScope(typeVar);
|
32
|
+
return this._typeVarMap.set(key, type);
|
33
|
+
}
|
34
|
+
doForEachTypeVar(callback) {
|
35
|
+
this._typeVarMap.forEach((type, key) => {
|
36
|
+
callback(type, key);
|
37
|
+
});
|
38
|
+
}
|
39
|
+
}
|
40
|
+
exports.ConstraintSolutionSet = ConstraintSolutionSet;
|
41
|
+
class ConstraintSolution {
|
42
|
+
constructor(solutionSets) {
|
43
|
+
this._solutionSets =
|
44
|
+
solutionSets && solutionSets.length > 0 ? [...solutionSets] : [new ConstraintSolutionSet()];
|
45
|
+
}
|
46
|
+
isEmpty() {
|
47
|
+
return this._solutionSets.every((set) => set.isEmpty());
|
48
|
+
}
|
49
|
+
setType(typeVar, type) {
|
50
|
+
return this._solutionSets.forEach((set) => {
|
51
|
+
set.setType(typeVar, type);
|
52
|
+
});
|
53
|
+
}
|
54
|
+
getMainSolutionSet() {
|
55
|
+
return this.getSolutionSet(0);
|
56
|
+
}
|
57
|
+
getSolutionSets() {
|
58
|
+
return this._solutionSets;
|
59
|
+
}
|
60
|
+
doForEachSolutionSet(callback) {
|
61
|
+
this.getSolutionSets().forEach((set, index) => {
|
62
|
+
callback(set, index);
|
63
|
+
});
|
64
|
+
}
|
65
|
+
getSolutionSet(index) {
|
66
|
+
(0, debug_1.assert)(index >= 0 && index < this._solutionSets.length);
|
67
|
+
return this._solutionSets[index];
|
68
|
+
}
|
69
|
+
}
|
70
|
+
exports.ConstraintSolution = ConstraintSolution;
|
71
|
+
//# sourceMappingURL=constraintSolution.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constraintSolution.js","sourceRoot":"","sources":["../../../../../src/analyzer/constraintSolution.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,2CAAyC;AACzC,mCAAyE;AAEzE,6DAA6D;AAC7D,MAAa,qBAAqB;IAQ9B,YAAY,QAAsB;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;QAE3C,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IACvC,CAAC;IAID,OAAO,CAAC,OAAoB;QACxB,MAAM,GAAG,GAAG,mBAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,IAAU;QACpC,MAAM,GAAG,GAAG,mBAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB,CAAC,QAAiD;QAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACnC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArCD,sDAqCC;AAED,MAAa,kBAAkB;IAG3B,YAAY,YAAsC;QAC9C,IAAI,CAAC,aAAa;YACd,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,IAAU;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,oBAAoB,CAAC,QAAqE;QACtF,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1C,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,KAAa;QACxB,IAAA,cAAM,EAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;CACJ;AApCD,gDAoCC"}
|