@nithin554/code-crawler 0.1.38 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +206 -33
- package/dist/crawler.d.ts +27 -1
- package/dist/crawler.js +360 -11
- package/dist/crawler.js.map +1 -1
- package/dist/graph/queries.d.ts +70 -4
- package/dist/graph/queries.js +125 -1
- package/dist/graph/queries.js.map +1 -1
- package/dist/graph/schema.d.ts +24 -2
- package/dist/graph/schema.js +9 -0
- package/dist/graph/schema.js.map +1 -1
- package/dist/parser/controlFlow.d.ts +27 -0
- package/dist/parser/controlFlow.js +82 -0
- package/dist/parser/controlFlow.js.map +1 -0
- package/dist/parser/language.d.ts +101 -2
- package/dist/parser/languages/index.js +4 -0
- package/dist/parser/languages/index.js.map +1 -1
- package/dist/parser/languages/java.js +160 -6
- package/dist/parser/languages/java.js.map +1 -1
- package/dist/parser/languages/python.d.ts +2 -0
- package/dist/parser/languages/python.js +956 -0
- package/dist/parser/languages/python.js.map +1 -0
- package/dist/parser/languages/typescript.d.ts +2 -0
- package/dist/parser/languages/typescript.js +1111 -0
- package/dist/parser/languages/typescript.js.map +1 -0
- package/dist/parser/moduleId.d.ts +35 -0
- package/dist/parser/moduleId.js +93 -0
- package/dist/parser/moduleId.js.map +1 -0
- package/dist/parser/treeSitter.d.ts +6 -0
- package/dist/parser/treeSitter.js +13 -2
- package/dist/parser/treeSitter.js.map +1 -1
- package/dist/resolver/common.d.ts +52 -0
- package/dist/resolver/common.js +624 -0
- package/dist/resolver/common.js.map +1 -0
- package/dist/resolver/dynamic.js +66 -1
- package/dist/resolver/dynamic.js.map +1 -1
- package/dist/resolver/genericResolver.d.ts +45 -0
- package/dist/resolver/genericResolver.js +235 -0
- package/dist/resolver/genericResolver.js.map +1 -0
- package/dist/resolver/types.d.ts +24 -1
- package/dist/resolver/types.js +50 -0
- package/dist/resolver/types.js.map +1 -1
- package/dist/server.js +108 -5
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,7 +9,14 @@
|
|
|
9
9
|
* The crawler then converts a `ParsedFile` into graph nodes/edges and feeds the
|
|
10
10
|
* raw call sites to the language-specific resolver.
|
|
11
11
|
*/
|
|
12
|
-
export type TypeKind = "class" | "interface" | "enum" | "annotation";
|
|
12
|
+
export type TypeKind = "class" | "interface" | "enum" | "annotation" | "module";
|
|
13
|
+
/** How a call site is nested: unconditional, or behind a guard. */
|
|
14
|
+
export type ControlFlowKind = "branch" | "loop" | "exception" | "predicate";
|
|
15
|
+
export interface ControlFlowInfo {
|
|
16
|
+
kinds: ControlFlowKind[];
|
|
17
|
+
/** Compact source text of the enclosing conditions (max 3). */
|
|
18
|
+
guards: string[];
|
|
19
|
+
}
|
|
13
20
|
/**
|
|
14
21
|
* An annotation (Java) or decorator (Python/TypeScript) applied to a symbol.
|
|
15
22
|
* Kept deliberately simple: the name plus raw argument expressions, so the
|
|
@@ -43,6 +50,56 @@ export interface TypeInfo {
|
|
|
43
50
|
annotations: AnnotationInfo[];
|
|
44
51
|
/** True when the type is an aspect (`@Aspect`). */
|
|
45
52
|
isAspect?: boolean;
|
|
53
|
+
/** Export visibility. Modules and members default to file-visible. */
|
|
54
|
+
exported?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A call site whose target is only known at run time
|
|
58
|
+
* (`Class.forName`, `getattr`, `require`, dynamic `import()`, ...).
|
|
59
|
+
*/
|
|
60
|
+
export interface ReflectiveRef {
|
|
61
|
+
/** Framework/API that performs the lookup, e.g. `Class.forName`, `getattr`. */
|
|
62
|
+
mechanism: string;
|
|
63
|
+
/** What the lookup produces. */
|
|
64
|
+
targetKind: "type" | "module" | "method";
|
|
65
|
+
/** Raw target text as written (quotes stripped when it is a string literal). */
|
|
66
|
+
target: string;
|
|
67
|
+
/** Receiver expression for member lookups, e.g. `this.registry`. */
|
|
68
|
+
receiver?: string;
|
|
69
|
+
enclosingTypeId: string;
|
|
70
|
+
enclosingMethodId: string;
|
|
71
|
+
line: number;
|
|
72
|
+
}
|
|
73
|
+
/** A dependency the framework supplies at run time rather than the call site. */
|
|
74
|
+
export interface InjectionPoint {
|
|
75
|
+
kind: "field" | "constructor-parameter" | "parameter" | "method";
|
|
76
|
+
/** Id of the type (or module) that owns the injection point. */
|
|
77
|
+
ownerId: string;
|
|
78
|
+
/** Field or parameter name. */
|
|
79
|
+
name: string;
|
|
80
|
+
/** Raw declared type text (empty when only a token/decorator was given). */
|
|
81
|
+
type: string;
|
|
82
|
+
/** Framework that performs the injection, e.g. `spring`, `nestjs`. */
|
|
83
|
+
framework: string;
|
|
84
|
+
line: number;
|
|
85
|
+
optional?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/** Why a method is a root even though nothing in the source calls it. */
|
|
88
|
+
export type EntryPointKind = "http" | "messaging" | "scheduler" | "event" | "cli" | "test" | "route";
|
|
89
|
+
export interface EntryPointInfo {
|
|
90
|
+
kind: EntryPointKind;
|
|
91
|
+
/** Framework detail, e.g. `GET /orders/{id}` or `@Scheduled`. */
|
|
92
|
+
detail?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Express-style route registration resolved to a handler by name. */
|
|
95
|
+
export interface RouteRegistration {
|
|
96
|
+
framework: string;
|
|
97
|
+
httpMethod: string;
|
|
98
|
+
path: string;
|
|
99
|
+
handlerName: string;
|
|
100
|
+
moduleId: string;
|
|
101
|
+
enclosingTypeId: string;
|
|
102
|
+
line: number;
|
|
46
103
|
}
|
|
47
104
|
export interface MethodInfo {
|
|
48
105
|
/** Node id, e.g. `com.acme.OrderService#place` (or `#<init>` for constructors). */
|
|
@@ -72,6 +129,8 @@ export interface MethodInfo {
|
|
|
72
129
|
adviceKind?: string;
|
|
73
130
|
/** AspectJ pointcut expression carried by advice/pointcut methods. */
|
|
74
131
|
pointcut?: string;
|
|
132
|
+
/** Why this method is an entry point (framework-invoked root). */
|
|
133
|
+
entryPoint?: EntryPointInfo;
|
|
75
134
|
}
|
|
76
135
|
export interface FieldInfo {
|
|
77
136
|
/** Node id, e.g. `com.acme.OrderService.repo`. */
|
|
@@ -91,6 +150,16 @@ export interface ImportInfo {
|
|
|
91
150
|
/** Short name used in source, e.g. `OrderService`. */
|
|
92
151
|
simpleName: string;
|
|
93
152
|
isStatic: boolean;
|
|
153
|
+
/** Imported module/specifier for Python/TypeScript imports. */
|
|
154
|
+
module?: string;
|
|
155
|
+
/** Imported symbol when the import names one (`from x import y`). */
|
|
156
|
+
importedName?: string;
|
|
157
|
+
/** True for `import * as ns` / `import x` (the name refers to a module). */
|
|
158
|
+
isNamespace?: boolean;
|
|
159
|
+
/** Local alias, when different from the imported name. */
|
|
160
|
+
alias?: string;
|
|
161
|
+
/** Known-external module (non-relative TS specifier). */
|
|
162
|
+
external?: boolean;
|
|
94
163
|
}
|
|
95
164
|
export interface CallSite {
|
|
96
165
|
/** 0-based row of the call. */
|
|
@@ -113,6 +182,8 @@ export interface CallSite {
|
|
|
113
182
|
isConstructorCall: boolean;
|
|
114
183
|
/** True when the receiver looks like a qualified type (e.g. `com.acme.Foo.bar`). */
|
|
115
184
|
qualifiedReceiver: boolean;
|
|
185
|
+
/** Enclosing branches/loops/handlers and their guard text. */
|
|
186
|
+
controlFlow?: ControlFlowInfo;
|
|
116
187
|
}
|
|
117
188
|
export interface ParsedFile {
|
|
118
189
|
filePath: string;
|
|
@@ -129,6 +200,34 @@ export interface ParsedFile {
|
|
|
129
200
|
* Used by the resolver for receiver-type inference.
|
|
130
201
|
*/
|
|
131
202
|
localsByMethod: Map<string, Map<string, string>>;
|
|
203
|
+
/** Module id for module-based languages (Python/TypeScript). */
|
|
204
|
+
moduleId?: string;
|
|
205
|
+
/**
|
|
206
|
+
* Local name -> candidate type id (`module.Symbol`), from imports or local
|
|
207
|
+
* declarations. Values may be unresolved guesses; the resolver validates.
|
|
208
|
+
*/
|
|
209
|
+
scopeTypes?: Map<string, string>;
|
|
210
|
+
/**
|
|
211
|
+
* Local name -> candidate module id (`app.services.order`). Values may not
|
|
212
|
+
* exist in the index; the resolver treats missing modules as external.
|
|
213
|
+
*/
|
|
214
|
+
scopeModules?: Map<string, string>;
|
|
215
|
+
/** Local name -> known-external package (non-relative imports). */
|
|
216
|
+
externalModules?: Map<string, string>;
|
|
217
|
+
/** Name exported by `export default` / `__all__`, when present. */
|
|
218
|
+
defaultExportName?: string;
|
|
219
|
+
/** Run-time-only targets (reflection, dynamic import, getattr). */
|
|
220
|
+
reflectiveRefs?: ReflectiveRef[];
|
|
221
|
+
/** Framework-injected dependencies declared by this file. */
|
|
222
|
+
injections?: InjectionPoint[];
|
|
223
|
+
/** Express/Fastify-style route registrations declared by this file. */
|
|
224
|
+
routes?: RouteRegistration[];
|
|
225
|
+
/** Entry point when the whole file is one (e.g. `__main__` script). */
|
|
226
|
+
entryPoint?: EntryPointInfo;
|
|
227
|
+
}
|
|
228
|
+
export interface ParseContext {
|
|
229
|
+
/** Project root, used to derive stable module ids. */
|
|
230
|
+
projectRoot?: string;
|
|
132
231
|
}
|
|
133
232
|
export interface LanguageConfig {
|
|
134
233
|
/** Registry key, e.g. "java". */
|
|
@@ -138,5 +237,5 @@ export interface LanguageConfig {
|
|
|
138
237
|
/** Load (once) and return the compiled tree-sitter grammar. */
|
|
139
238
|
loadGrammar(): Promise<unknown>;
|
|
140
239
|
/** Extract structural entities + raw call sites from source text. */
|
|
141
|
-
parseFile(source: string, filePath: string): Promise<ParsedFile>;
|
|
240
|
+
parseFile(source: string, filePath: string, context?: ParseContext): Promise<ParsedFile>;
|
|
142
241
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { javaConfig } from "./java.js";
|
|
2
|
+
import { pythonConfig } from "./python.js";
|
|
3
|
+
import { typescriptConfig } from "./typescript.js";
|
|
2
4
|
/**
|
|
3
5
|
* Registry of supported languages. Adding a language means:
|
|
4
6
|
* 1. implement a LanguageConfig in `./<lang>.ts`
|
|
@@ -7,6 +9,8 @@ import { javaConfig } from "./java.js";
|
|
|
7
9
|
*/
|
|
8
10
|
const registry = new Map([
|
|
9
11
|
["java", javaConfig],
|
|
12
|
+
["python", pythonConfig],
|
|
13
|
+
["typescript", typescriptConfig],
|
|
10
14
|
]);
|
|
11
15
|
export function getLanguageConfig(name) {
|
|
12
16
|
return registry.get(name.toLowerCase()) ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/languages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/languages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAyB;IAC/C,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,YAAY,EAAE,gBAAgB,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAkB;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { controlFlowOf } from "../controlFlow.js";
|
|
1
2
|
import { baseTypeName, childOfType, childrenOfType, createParser, fieldChild, loadGrammar, walk, } from "../treeSitter.js";
|
|
2
3
|
/**
|
|
3
4
|
* Java extraction via the tree-sitter-java grammar.
|
|
@@ -6,8 +7,8 @@ import { baseTypeName, childOfType, childrenOfType, createParser, fieldChild, lo
|
|
|
6
7
|
* imports) and raw call sites. The Java resolver consumes the call sites and
|
|
7
8
|
* the per-method local-variable tables to resolve call targets.
|
|
8
9
|
*/
|
|
9
|
-
const GRAMMAR_PACKAGE = "tree-sitter-
|
|
10
|
-
const GRAMMAR_WASM = "tree-sitter-java.wasm";
|
|
10
|
+
const GRAMMAR_PACKAGE = "@vscode/tree-sitter-wasm";
|
|
11
|
+
const GRAMMAR_WASM = "wasm/tree-sitter-java.wasm";
|
|
11
12
|
export const javaConfig = {
|
|
12
13
|
name: "java",
|
|
13
14
|
extensions: ["java"],
|
|
@@ -38,6 +39,85 @@ const ADVICE_ANNOTATIONS = {
|
|
|
38
39
|
AfterThrowing: "afterThrowing",
|
|
39
40
|
Pointcut: "pointcut",
|
|
40
41
|
};
|
|
42
|
+
/** Control-flow ancestors that make a call conditional in Java. */
|
|
43
|
+
const JAVA_FLOW = [
|
|
44
|
+
{ type: "if_statement", kind: "branch", guardField: "condition" },
|
|
45
|
+
{ type: "switch_expression", kind: "branch", guardField: "condition" },
|
|
46
|
+
{ type: "switch_statement", kind: "branch", guardField: "condition" },
|
|
47
|
+
{ type: "conditional_expression", kind: "branch" },
|
|
48
|
+
{ type: "for_statement", kind: "loop", guardField: "condition" },
|
|
49
|
+
{ type: "enhanced_for_statement", kind: "loop" },
|
|
50
|
+
{ type: "while_statement", kind: "loop", guardField: "condition" },
|
|
51
|
+
{ type: "do_statement", kind: "loop", guardField: "condition" },
|
|
52
|
+
{ type: "catch_clause", kind: "exception" },
|
|
53
|
+
];
|
|
54
|
+
/** HTTP mapping annotations and the verb they imply. */
|
|
55
|
+
const HTTP_MAPPINGS = {
|
|
56
|
+
GetMapping: "GET",
|
|
57
|
+
PostMapping: "POST",
|
|
58
|
+
PutMapping: "PUT",
|
|
59
|
+
DeleteMapping: "DELETE",
|
|
60
|
+
PatchMapping: "PATCH",
|
|
61
|
+
RequestMapping: "ANY",
|
|
62
|
+
};
|
|
63
|
+
/** Framework-supplied injection annotations. */
|
|
64
|
+
const INJECTION_ANNOTATIONS = {
|
|
65
|
+
Autowired: "spring",
|
|
66
|
+
Inject: "jakarta",
|
|
67
|
+
Resource: "jakarta",
|
|
68
|
+
Value: "spring",
|
|
69
|
+
Qualifier: "spring",
|
|
70
|
+
ManagedProperty: "jakarta",
|
|
71
|
+
};
|
|
72
|
+
/** Run-time lookup methods and the kind of target they produce. */
|
|
73
|
+
const REFLECTIVE_METHODS = {
|
|
74
|
+
forName: { targetKind: "type", mechanism: "Class.forName" },
|
|
75
|
+
loadClass: { targetKind: "type", mechanism: "ClassLoader.loadClass" },
|
|
76
|
+
getMethod: { targetKind: "method", mechanism: "Class.getMethod" },
|
|
77
|
+
getDeclaredMethod: { targetKind: "method", mechanism: "Class.getDeclaredMethod" },
|
|
78
|
+
getConstructor: { targetKind: "method", mechanism: "Class.getConstructor" },
|
|
79
|
+
getDeclaredConstructor: { targetKind: "method", mechanism: "Class.getDeclaredConstructor" },
|
|
80
|
+
getField: { targetKind: "method", mechanism: "Class.getField" },
|
|
81
|
+
getDeclaredField: { targetKind: "method", mechanism: "Class.getDeclaredField" },
|
|
82
|
+
};
|
|
83
|
+
/** Why a Java method is invoked by the framework rather than by source. */
|
|
84
|
+
function javaEntryPointOf(annotations, name, modifiers) {
|
|
85
|
+
for (const annotation of annotations) {
|
|
86
|
+
const simple = annotation.name;
|
|
87
|
+
const httpVerb = HTTP_MAPPINGS[simple];
|
|
88
|
+
if (httpVerb) {
|
|
89
|
+
const path = annotationValue(annotation) ?? "/";
|
|
90
|
+
return { kind: "http", detail: `${httpVerb} ${path}` };
|
|
91
|
+
}
|
|
92
|
+
if (simple === "KafkaListener" || simple === "RabbitListener" || simple === "JmsListener" || simple === "StreamListener" || simple === "SqsListener") {
|
|
93
|
+
const topic = annotationValue(annotation);
|
|
94
|
+
return { kind: "messaging", detail: topic ? `${simple}(${topic})` : simple };
|
|
95
|
+
}
|
|
96
|
+
if (simple === "Scheduled") {
|
|
97
|
+
const cron = annotation.arguments[0];
|
|
98
|
+
return { kind: "scheduler", detail: cron ? `@Scheduled(${cron})` : "@Scheduled" };
|
|
99
|
+
}
|
|
100
|
+
if (simple === "EventListener" || simple === "TransactionalEventListener") {
|
|
101
|
+
return { kind: "event", detail: simple };
|
|
102
|
+
}
|
|
103
|
+
if (simple === "Test" || simple === "ParameterizedTest" || simple === "RepeatedTest") {
|
|
104
|
+
return { kind: "test", detail: simple };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (name === "main" && modifiers.includes("static")) {
|
|
108
|
+
return { kind: "cli", detail: "main" };
|
|
109
|
+
}
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
/** Framework that injects the annotated symbol, if any. */
|
|
113
|
+
function injectionFrameworkOf(annotations) {
|
|
114
|
+
for (const annotation of annotations) {
|
|
115
|
+
const framework = INJECTION_ANNOTATIONS[annotation.name];
|
|
116
|
+
if (framework)
|
|
117
|
+
return framework;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
41
121
|
/** Extract simple/qualified type names from a `superclass`/`super_interfaces` node. */
|
|
42
122
|
function superTypes(node) {
|
|
43
123
|
const list = childOfType(node, "type_list");
|
|
@@ -79,6 +159,8 @@ export async function parseFile(source, filePath) {
|
|
|
79
159
|
const methods = [];
|
|
80
160
|
const fields = [];
|
|
81
161
|
const callSites = [];
|
|
162
|
+
const reflectiveRefs = [];
|
|
163
|
+
const injections = [];
|
|
82
164
|
const localsByMethod = new Map();
|
|
83
165
|
// === Pass A: structural extraction with nesting stack for type FQNs. ===
|
|
84
166
|
const nestingStack = [];
|
|
@@ -125,6 +207,8 @@ export async function parseFile(source, filePath) {
|
|
|
125
207
|
const id = `${typeId}#${name}`;
|
|
126
208
|
const annotations = extractAnnotations(node);
|
|
127
209
|
const advice = adviceOf(annotations);
|
|
210
|
+
const modifiers = extractModifiers(node);
|
|
211
|
+
const entryPoint = javaEntryPointOf(annotations, name, modifiers);
|
|
128
212
|
methods.push({
|
|
129
213
|
id,
|
|
130
214
|
typeId,
|
|
@@ -134,16 +218,43 @@ export async function parseFile(source, filePath) {
|
|
|
134
218
|
startLine: node.startPosition.row,
|
|
135
219
|
endLine: node.endPosition.row,
|
|
136
220
|
returnType: extractReturnType(node),
|
|
137
|
-
modifiers
|
|
221
|
+
modifiers,
|
|
138
222
|
annotations,
|
|
139
223
|
...advice,
|
|
224
|
+
...(entryPoint ? { entryPoint } : {}),
|
|
140
225
|
});
|
|
226
|
+
collectParamInjections(node, id, annotations);
|
|
141
227
|
const locals = collectLocals(node);
|
|
142
228
|
if (locals)
|
|
143
229
|
localsByMethod.set(id, locals);
|
|
144
230
|
}
|
|
231
|
+
/** Constructor parameter injections: Spring/Jakarta constructor injection. */
|
|
232
|
+
function collectParamInjections(node, typeId, memberAnnotations) {
|
|
233
|
+
const paramsNode = fieldChild(node, "parameters") ?? childOfType(node, "formal_parameters");
|
|
234
|
+
if (!paramsNode)
|
|
235
|
+
return;
|
|
236
|
+
const memberFramework = injectionFrameworkOf(memberAnnotations);
|
|
237
|
+
for (const fp of childrenOfType(paramsNode, "formal_parameter")) {
|
|
238
|
+
const framework = injectionFrameworkOf(extractAnnotations(fp));
|
|
239
|
+
if (!framework)
|
|
240
|
+
continue;
|
|
241
|
+
const name = childOfType(fp, "identifier")?.text ?? "";
|
|
242
|
+
if (!name)
|
|
243
|
+
continue;
|
|
244
|
+
const typeNode = typeNodeOf(fp);
|
|
245
|
+
injections.push({
|
|
246
|
+
kind: "constructor-parameter",
|
|
247
|
+
ownerId: typeId,
|
|
248
|
+
name,
|
|
249
|
+
type: typeNode ? baseTypeName(typeNode.text) : "",
|
|
250
|
+
framework: framework ?? memberFramework ?? "unknown",
|
|
251
|
+
line: fp.startPosition.row,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
145
255
|
function extractConstructor(node, typeId) {
|
|
146
256
|
const id = `${typeId}#<init>`;
|
|
257
|
+
const annotations = extractAnnotations(node);
|
|
147
258
|
methods.push({
|
|
148
259
|
id,
|
|
149
260
|
typeId,
|
|
@@ -154,8 +265,9 @@ export async function parseFile(source, filePath) {
|
|
|
154
265
|
endLine: node.endPosition.row,
|
|
155
266
|
returnType: "",
|
|
156
267
|
modifiers: extractModifiers(node),
|
|
157
|
-
annotations
|
|
268
|
+
annotations,
|
|
158
269
|
});
|
|
270
|
+
collectParamInjections(node, id, annotations);
|
|
159
271
|
const locals = collectLocals(node);
|
|
160
272
|
if (locals)
|
|
161
273
|
localsByMethod.set(id, locals);
|
|
@@ -164,6 +276,7 @@ export async function parseFile(source, filePath) {
|
|
|
164
276
|
const typeNode = typeNodeOf(node);
|
|
165
277
|
const type = typeNode ? baseTypeName(typeNode.text) : "";
|
|
166
278
|
const annotations = extractAnnotations(node);
|
|
279
|
+
const framework = injectionFrameworkOf(annotations);
|
|
167
280
|
for (const declarator of childrenOfType(node, "variable_declarator")) {
|
|
168
281
|
const name = childOfType(declarator, "identifier")?.text ?? "";
|
|
169
282
|
if (!name)
|
|
@@ -177,6 +290,16 @@ export async function parseFile(source, filePath) {
|
|
|
177
290
|
modifiers: extractModifiers(node),
|
|
178
291
|
annotations,
|
|
179
292
|
});
|
|
293
|
+
if (framework && !extractModifiers(node).includes("static")) {
|
|
294
|
+
injections.push({
|
|
295
|
+
kind: "field",
|
|
296
|
+
ownerId: typeId,
|
|
297
|
+
name,
|
|
298
|
+
type,
|
|
299
|
+
framework,
|
|
300
|
+
line: node.startPosition.row,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
180
303
|
}
|
|
181
304
|
}
|
|
182
305
|
for (const child of root.namedChildren) {
|
|
@@ -191,16 +314,22 @@ export async function parseFile(source, filePath) {
|
|
|
191
314
|
walk(root, (node) => {
|
|
192
315
|
if (node.type === "method_invocation") {
|
|
193
316
|
const info = invocationInfo(node);
|
|
317
|
+
const enclosingType = enclosingId(typeRanges, node.startPosition.row) ?? "";
|
|
318
|
+
const enclosingMethod = enclosingId(methodRanges, node.startPosition.row) ?? "";
|
|
194
319
|
callSites.push({
|
|
195
320
|
line: node.startPosition.row,
|
|
196
321
|
receiver: info.receiver,
|
|
197
322
|
name: info.name,
|
|
198
323
|
argumentTexts: info.args,
|
|
199
|
-
enclosingTypeId:
|
|
200
|
-
enclosingMethodId:
|
|
324
|
+
enclosingTypeId: enclosingType,
|
|
325
|
+
enclosingMethodId: enclosingMethod,
|
|
201
326
|
isConstructorCall: false,
|
|
202
327
|
qualifiedReceiver: info.qualified,
|
|
328
|
+
controlFlow: controlFlowOf(node, JAVA_FLOW),
|
|
203
329
|
});
|
|
330
|
+
const reflection = reflectionOf(info, enclosingType, enclosingMethod, node.startPosition.row);
|
|
331
|
+
if (reflection)
|
|
332
|
+
reflectiveRefs.push(reflection);
|
|
204
333
|
}
|
|
205
334
|
else if (node.type === "object_creation_expression") {
|
|
206
335
|
const typeNode = fieldChild(node, "type") ?? childOfType(node, "type_identifier");
|
|
@@ -214,6 +343,7 @@ export async function parseFile(source, filePath) {
|
|
|
214
343
|
enclosingMethodId: enclosingId(methodRanges, node.startPosition.row) ?? "",
|
|
215
344
|
isConstructorCall: true,
|
|
216
345
|
qualifiedReceiver: false,
|
|
346
|
+
controlFlow: controlFlowOf(node, JAVA_FLOW),
|
|
217
347
|
});
|
|
218
348
|
}
|
|
219
349
|
});
|
|
@@ -239,6 +369,9 @@ export async function parseFile(source, filePath) {
|
|
|
239
369
|
callSites,
|
|
240
370
|
localsByMethod,
|
|
241
371
|
typeByName,
|
|
372
|
+
scopeTypes: typeByName,
|
|
373
|
+
reflectiveRefs,
|
|
374
|
+
injections,
|
|
242
375
|
};
|
|
243
376
|
}
|
|
244
377
|
/** Innermost symbol whose line range contains the given 0-based line. */
|
|
@@ -419,4 +552,25 @@ function invocationInfo(node) {
|
|
|
419
552
|
function typeName(node) {
|
|
420
553
|
return fieldChild(node, "name")?.text ?? node.namedChild(0)?.text ?? "?";
|
|
421
554
|
}
|
|
555
|
+
/**
|
|
556
|
+
* Detect run-time lookups (`Class.forName`, `getDeclaredMethod`, ...). These
|
|
557
|
+
* have no static call target, so the resolver records them as REFLECTS edges.
|
|
558
|
+
*/
|
|
559
|
+
function reflectionOf(info, enclosingTypeId, enclosingMethodId, line) {
|
|
560
|
+
const base = { enclosingTypeId, enclosingMethodId, line };
|
|
561
|
+
if (info.name === "load" && info.receiver !== null && /ServiceLoader$/.test(info.receiver)) {
|
|
562
|
+
const target = unquote(info.args[0] ?? "");
|
|
563
|
+
return target ? { ...base, mechanism: "ServiceLoader.load", targetKind: "type", target } : null;
|
|
564
|
+
}
|
|
565
|
+
const spec = REFLECTIVE_METHODS[info.name];
|
|
566
|
+
if (!spec || info.receiver === null)
|
|
567
|
+
return null;
|
|
568
|
+
if (spec.mechanism.startsWith("Class.getConstructor") || spec.mechanism.startsWith("Class.getDeclaredConstructor")) {
|
|
569
|
+
return { ...base, mechanism: spec.mechanism, targetKind: "method", target: "<init>", receiver: info.receiver };
|
|
570
|
+
}
|
|
571
|
+
const target = unquote(info.args[0] ?? "");
|
|
572
|
+
if (!target)
|
|
573
|
+
return null;
|
|
574
|
+
return { ...base, mechanism: spec.mechanism, targetKind: spec.targetKind, target, receiver: info.receiver };
|
|
575
|
+
}
|
|
422
576
|
//# sourceMappingURL=java.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/parser/languages/java.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/parser/languages/java.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,IAAI,GAEL,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AAEH,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAUlD,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,YAAY,CAAC;IAC7D,SAAS;CACV,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,CACL,IAAI,KAAK,mBAAmB;QAC5B,IAAI,KAAK,uBAAuB;QAChC,IAAI,KAAK,kBAAkB;QAC3B,IAAI,KAAK,6BAA6B,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,WAAW,CAAC;IAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,6BAA6B;QAAE,OAAO,YAAY,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,mEAAmE;AACnE,MAAM,SAAS,GAAe;IAC5B,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACtE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACrE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAChE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAClE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;CAC5C,CAAC;AAEF,wDAAwD;AACxD,MAAM,aAAa,GAA2B;IAC5C,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,gDAAgD;AAChD,MAAM,qBAAqB,GAA2B;IACpD,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,QAAQ;IACnB,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,mEAAmE;AACnE,MAAM,kBAAkB,GAAmF;IACzG,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE;IAC3D,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE;IACrE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE;IACjE,iBAAiB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,yBAAyB,EAAE;IACjF,cAAc,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE;IAC3E,sBAAsB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,8BAA8B,EAAE;IAC3F,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAC/D,gBAAgB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE;CAChF,CAAC;AAEF,2EAA2E;AAC3E,SAAS,gBAAgB,CACvB,WAA6B,EAC7B,IAAY,EACZ,SAAmB;IAEnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;YAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YACrJ,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,4BAA4B,EAAE,CAAC;YAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,mBAAmB,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2DAA2D;AAC3D,SAAS,oBAAoB,CAAC,WAA6B;IACzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AACvF,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7D,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,0DAA0D;QAC1D,OAAO,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,QAAgB;IAC9D,MAAM,OAAO,GAAG,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAuC,CAAC;IACvF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE3B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE9D,0EAA0E;IAC1E,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,SAAS,SAAS,CAAC,IAAY;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5F,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC;YACT,EAAE;YACF,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAClC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,WAAW;YACX,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACxD,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBACzC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;oBACrD,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAC/C,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,MAAM;YACN,IAAI;YACJ,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,SAAS;YACT,WAAW;YACX,GAAG,MAAM;YACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAC;QACH,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,SAAS,sBAAsB,CAAC,IAAY,EAAE,MAAc,EAAE,iBAAmC;QAC/F,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAChE,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,MAAM;gBACf,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,SAAS,EAAE,SAAS,IAAI,eAAe,IAAI,SAAS;gBACpD,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,MAAc;QACtD,MAAM,EAAE,GAAG,GAAG,MAAM,SAAS,CAAC;QAC9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,MAAM;YACN,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;YACjC,WAAW;SACZ,CAAC,CAAC;QACH,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;gBACvB,MAAM;gBACN,IAAI;gBACJ,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBACjC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;gBACjC,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,MAAM;oBACf,IAAI;oBACJ,IAAI;oBACJ,SAAS;oBACT,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,4CAA4C;IAC5C,yEAAyE;IACzE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE5F,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,eAAe,EAAE,aAAa;gBAC9B,iBAAiB,EAAE,eAAe;gBAClC,iBAAiB,EAAE,KAAK;gBACxB,iBAAiB,EAAE,IAAI,CAAC,SAAS;gBACjC,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC9F,IAAI,UAAU;gBAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACrF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBAC5B,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxE,eAAe,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;gBACtE,iBAAiB,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC1E,iBAAiB,EAAE,IAAI;gBACvB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,MAAM;QAChB,WAAW;QACX,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,cAAc;QACd,UAAU;QACV,UAAU,EAAE,UAAU;QACtB,cAAc;QACd,UAAU;KACX,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAClB,MAAoD,EACpD,IAAY;IAEZ,IAAI,IAAI,GAAyC,IAAI,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;gBAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,CACL,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI;QAC3C,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI;QACpC,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,sEAAsE;IACtE,6DAA6D;IAC7D,OAAO,IAAI,CAAC,QAAQ;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,6EAA6E;AAC7E,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAS;QAChF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;YACtB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC1C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,SAAS,OAAO,CAAC,UAA0B,EAAE,MAAc;IACzD,OAAO,CACL,UAAU,CAAC,IAAI,KAAK,MAAM;QAC1B,UAAU,CAAC,GAAG,KAAK,MAAM;QACzB,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAS,eAAe,CAAC,UAA0B;IACjD,MAAM,GAAG,GACP,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,SAAS,QAAQ,CAAC,WAA6B;IAC7C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChE,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC7F,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC;gBACnD,IAAI,IAAI;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAMlC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAErF,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;QAC3B,4EAA4E;QAC5E,kEAAkE;QAClE,SAAS;YACP,UAAU,CAAC,IAAI,KAAK,mBAAmB;gBACvC,UAAU,CAAC,IAAI,KAAK,YAAY;gBAChC,UAAU,CAAC,IAAI,KAAK,iBAAiB;gBACrC,UAAU,CAAC,IAAI,KAAK,wBAAwB,CAAC;IACjD,CAAC;IAED,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,IAA+D,EAC/D,eAAuB,EACvB,iBAAyB,EACzB,IAAY;IAEZ,MAAM,IAAI,GAAG,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACnH,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjH,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9G,CAAC"}
|