typescript-language-server 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +6 -117
- package/lib/completion.d.ts +1 -1
- package/lib/completion.d.ts.map +1 -1
- package/lib/completion.js +18 -18
- package/lib/completion.js.map +1 -1
- package/lib/configuration-manager.js +2 -2
- package/lib/configuration-manager.js.map +1 -1
- package/lib/features/call-hierarchy.d.ts +7 -0
- package/lib/features/call-hierarchy.d.ts.map +1 -0
- package/lib/features/call-hierarchy.js +81 -0
- package/lib/features/call-hierarchy.js.map +1 -0
- package/lib/features/call-hierarchy.spec.d.ts +2 -0
- package/lib/features/call-hierarchy.spec.d.ts.map +1 -0
- package/lib/features/call-hierarchy.spec.js +107 -0
- package/lib/features/call-hierarchy.spec.js.map +1 -0
- package/lib/{semantic-tokens.d.ts → features/semantic-tokens.d.ts} +1 -1
- package/lib/features/semantic-tokens.d.ts.map +1 -0
- package/lib/{semantic-tokens.js → features/semantic-tokens.js} +0 -0
- package/lib/features/semantic-tokens.js.map +1 -0
- package/lib/lsp-connection.d.ts.map +1 -1
- package/lib/lsp-connection.js +6 -7
- package/lib/lsp-connection.js.map +1 -1
- package/lib/lsp-server.d.ts +4 -4
- package/lib/lsp-server.d.ts.map +1 -1
- package/lib/lsp-server.js +67 -74
- package/lib/lsp-server.js.map +1 -1
- package/lib/lsp-server.spec.js +2 -130
- package/lib/lsp-server.spec.js.map +1 -1
- package/lib/protocol-translation.d.ts +2 -1
- package/lib/protocol-translation.d.ts.map +1 -1
- package/lib/protocol-translation.js +6 -3
- package/lib/protocol-translation.js.map +1 -1
- package/lib/quickfix.js +1 -1
- package/lib/quickfix.js.map +1 -1
- package/lib/refactor.js +4 -4
- package/lib/refactor.js.map +1 -1
- package/lib/test-utils.d.ts +4 -0
- package/lib/test-utils.d.ts.map +1 -1
- package/lib/test-utils.js +9 -0
- package/lib/test-utils.js.map +1 -1
- package/lib/tsServer/requests.d.ts +4 -0
- package/lib/tsServer/requests.d.ts.map +1 -1
- package/lib/tsServer/serverProcess.js +1 -1
- package/lib/tsServer/serverProcess.js.map +1 -1
- package/lib/tsServer/spawner.js +3 -3
- package/lib/tsServer/spawner.js.map +1 -1
- package/lib/tsServer/versionProvider.js +1 -1
- package/lib/tsServer/versionProvider.js.map +1 -1
- package/lib/utils/logger.js +1 -3
- package/lib/utils/logger.js.map +1 -1
- package/package.json +7 -7
- package/lib/calls.d.ts +0 -8
- package/lib/calls.d.ts.map +0 -1
- package/lib/calls.js +0 -191
- package/lib/calls.js.map +0 -1
- package/lib/lsp-protocol.calls.proposed.d.ts +0 -119
- package/lib/lsp-protocol.calls.proposed.d.ts.map +0 -1
- package/lib/lsp-protocol.calls.proposed.js +0 -39
- package/lib/lsp-protocol.calls.proposed.js.map +0 -1
- package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -27
- package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +0 -1
- package/lib/lsp-protocol.inlayHints.proposed.js +0 -3
- package/lib/lsp-protocol.inlayHints.proposed.js.map +0 -1
- package/lib/semantic-tokens.d.ts.map +0 -1
- package/lib/semantic-tokens.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-connection.d.ts","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-connection.d.ts","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,+BAA+B,CAAC;AAIhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,gBAAgB,CAAC;IAC9C,gBAAgB,EAAE,GAAG,CAAC,WAAW,CAAC;CACrC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,GAAG,CAAC,UAAU,CA8CjF"}
|
package/lib/lsp-connection.js
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
6
|
*/
|
|
7
7
|
import lsp from 'vscode-languageserver/node.js';
|
|
8
|
-
import * as lspcalls from './lsp-protocol.calls.proposed.js';
|
|
9
|
-
import * as lspinlayHints from './lsp-protocol.inlayHints.proposed.js';
|
|
10
8
|
import { LspClientLogger } from './utils/logger.js';
|
|
11
9
|
import { LspServer } from './lsp-server.js';
|
|
12
10
|
import { LspClientImpl } from './lsp-client.js';
|
|
@@ -41,15 +39,16 @@ export function createLspConnection(options) {
|
|
|
41
39
|
connection.onReferences(server.references.bind(server));
|
|
42
40
|
connection.onRenameRequest(server.rename.bind(server));
|
|
43
41
|
connection.onPrepareRename(server.prepareRename.bind(server));
|
|
42
|
+
connection.onSelectionRanges(server.selectionRanges.bind(server));
|
|
44
43
|
connection.onSignatureHelp(server.signatureHelp.bind(server));
|
|
45
44
|
connection.onWorkspaceSymbol(server.workspaceSymbol.bind(server));
|
|
46
45
|
connection.onFoldingRanges(server.foldingRanges.bind(server));
|
|
46
|
+
connection.languages.callHierarchy.onPrepare(server.prepareCallHierarchy.bind(server));
|
|
47
|
+
connection.languages.callHierarchy.onIncomingCalls(server.callHierarchyIncomingCalls.bind(server));
|
|
48
|
+
connection.languages.callHierarchy.onOutgoingCalls(server.callHierarchyOutgoingCalls.bind(server));
|
|
47
49
|
connection.languages.inlayHint.on(server.inlayHints.bind(server));
|
|
48
|
-
|
|
49
|
-
connection.
|
|
50
|
-
connection.onRequest(lspinlayHints.type, server.inlayHintsLegacy.bind(server));
|
|
51
|
-
connection.onRequest(lsp.SemanticTokensRequest.type, server.semanticTokensFull.bind(server));
|
|
52
|
-
connection.onRequest(lsp.SemanticTokensRangeRequest.type, server.semanticTokensRange.bind(server));
|
|
50
|
+
connection.languages.semanticTokens.on(server.semanticTokensFull.bind(server));
|
|
51
|
+
connection.languages.semanticTokens.onRange(server.semanticTokensRange.bind(server));
|
|
53
52
|
return connection;
|
|
54
53
|
}
|
|
55
54
|
//# sourceMappingURL=lsp-connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-connection.js","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAAG,MAAM,+BAA+B,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"lsp-connection.js","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"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"}
|
package/lib/lsp-server.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as lsp from 'vscode-languageserver';
|
|
2
|
-
import * as lspcalls from './lsp-protocol.calls.proposed.js';
|
|
3
|
-
import * as lspinlayHints from './lsp-protocol.inlayHints.proposed.js';
|
|
4
2
|
import { LspDocument } from './document.js';
|
|
5
3
|
import { tsp, TypeScriptInitializeParams } from './ts-protocol.js';
|
|
6
4
|
import { TypeScriptServiceConfiguration } from './utils/configuration.js';
|
|
@@ -56,6 +54,7 @@ export declare class LspServer {
|
|
|
56
54
|
references(params: lsp.ReferenceParams): Promise<lsp.Location[]>;
|
|
57
55
|
documentFormatting(params: lsp.DocumentFormattingParams): Promise<lsp.TextEdit[]>;
|
|
58
56
|
documentRangeFormatting(params: lsp.DocumentRangeFormattingParams): Promise<lsp.TextEdit[]>;
|
|
57
|
+
selectionRanges(params: lsp.SelectionRangeParams): Promise<lsp.SelectionRange[] | null>;
|
|
59
58
|
signatureHelp(params: lsp.SignatureHelpParams): Promise<lsp.SignatureHelp | undefined>;
|
|
60
59
|
protected getSignatureHelp(file: string, params: lsp.SignatureHelpParams): Promise<tsp.SignatureHelpResponse | undefined>;
|
|
61
60
|
codeAction(params: lsp.CodeActionParams): Promise<lsp.CodeAction[]>;
|
|
@@ -76,9 +75,10 @@ export declare class LspServer {
|
|
|
76
75
|
protected asFoldingRange(span: tsp.OutliningSpan, document: LspDocument): lsp.FoldingRange | undefined;
|
|
77
76
|
protected asFoldingRangeKind(span: tsp.OutliningSpan): lsp.FoldingRangeKind | undefined;
|
|
78
77
|
protected onTsEvent(event: tsp.Event): Promise<void>;
|
|
79
|
-
|
|
78
|
+
prepareCallHierarchy(params: lsp.CallHierarchyPrepareParams): Promise<lsp.CallHierarchyItem[] | null>;
|
|
79
|
+
callHierarchyIncomingCalls(params: lsp.CallHierarchyIncomingCallsParams): Promise<lsp.CallHierarchyIncomingCall[] | null>;
|
|
80
|
+
callHierarchyOutgoingCalls(params: lsp.CallHierarchyOutgoingCallsParams): Promise<lsp.CallHierarchyOutgoingCall[] | null>;
|
|
80
81
|
inlayHints(params: lsp.InlayHintParams): Promise<lsp.InlayHint[] | undefined>;
|
|
81
|
-
inlayHintsLegacy(params: lspinlayHints.InlayHintsParams): Promise<lspinlayHints.InlayHintsResult>;
|
|
82
82
|
semanticTokensFull(params: lsp.SemanticTokensParams): Promise<lsp.SemanticTokens>;
|
|
83
83
|
semanticTokensRange(params: lsp.SemanticTokensRangeParams): Promise<lsp.SemanticTokens>;
|
|
84
84
|
getSemanticTokens(doc: LspDocument, file: string, startOffset: number, endOffset: number): Promise<lsp.SemanticTokens>;
|
package/lib/lsp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"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"}
|
package/lib/lsp-server.js
CHANGED
|
@@ -8,13 +8,11 @@ import * as path from 'node:path';
|
|
|
8
8
|
import fs from 'fs-extra';
|
|
9
9
|
import debounce from 'p-debounce';
|
|
10
10
|
import * as lsp from 'vscode-languageserver';
|
|
11
|
-
import * as lspcalls from './lsp-protocol.calls.proposed.js';
|
|
12
|
-
import * as lspsemanticTokens from './semantic-tokens.js';
|
|
13
11
|
import API from './utils/api.js';
|
|
14
12
|
import { LogLevel, PrefixingLogger } from './utils/logger.js';
|
|
15
13
|
import { TspClient } from './tsp-client.js';
|
|
16
14
|
import { DiagnosticEventQueue } from './diagnostic-queue.js';
|
|
17
|
-
import { toDocumentHighlight, uriToPath, toSymbolKind, toLocation, pathToUri, toTextEdit, normalizePath } from './protocol-translation.js';
|
|
15
|
+
import { toDocumentHighlight, uriToPath, toSymbolKind, toLocation, toSelectionRange, pathToUri, toTextEdit, normalizePath } from './protocol-translation.js';
|
|
18
16
|
import { LspDocuments } from './document.js';
|
|
19
17
|
import { asCompletionItem, asResolvedCompletionItem, getCompletionTriggerCharacter } from './completion.js';
|
|
20
18
|
import { asSignatureHelp, toTsTriggerReason } from './hover.js';
|
|
@@ -24,10 +22,11 @@ import { provideRefactors } from './refactor.js';
|
|
|
24
22
|
import { provideOrganizeImports } from './organize-imports.js';
|
|
25
23
|
import { tsp } from './ts-protocol.js';
|
|
26
24
|
import { collectDocumentSymbols, collectSymbolInformation } from './document-symbol.js';
|
|
27
|
-
import { computeCallers, computeCallees } from './calls.js';
|
|
28
25
|
import { TsServerLogLevel } from './utils/configuration.js';
|
|
26
|
+
import { fromProtocolCallHierarchyItem, fromProtocolCallHierarchyIncomingCall, fromProtocolCallHierarchyOutgoingCall } from './features/call-hierarchy.js';
|
|
29
27
|
import { TypeScriptAutoFixProvider } from './features/fix-all.js';
|
|
30
28
|
import { TypeScriptInlayHintsProvider } from './features/inlay-hints.js';
|
|
29
|
+
import * as SemanticTokens from './features/semantic-tokens.js';
|
|
31
30
|
import { SourceDefinitionCommand } from './features/source-definition.js';
|
|
32
31
|
import { LogDirectoryProvider } from './tsServer/logDirectoryProvider.js';
|
|
33
32
|
import { Trace } from './tsServer/tracer.js';
|
|
@@ -193,6 +192,7 @@ export class LspServer {
|
|
|
193
192
|
inlayHintProvider: true,
|
|
194
193
|
renameProvider: prepareSupport ? { prepareProvider: true } : true,
|
|
195
194
|
referencesProvider: true,
|
|
195
|
+
selectionRangeProvider: true,
|
|
196
196
|
signatureHelpProvider: {
|
|
197
197
|
triggerCharacters: ['(', ',', '<'],
|
|
198
198
|
retriggerCharacters: [')'],
|
|
@@ -234,7 +234,9 @@ export class LspServer {
|
|
|
234
234
|
},
|
|
235
235
|
},
|
|
236
236
|
};
|
|
237
|
-
|
|
237
|
+
if (textDocument?.callHierarchy && typescriptVersion.version?.gte(API.v380)) {
|
|
238
|
+
initializeResult.capabilities.callHierarchyProvider = true;
|
|
239
|
+
}
|
|
238
240
|
this.logger.log('onInitialize result', initializeResult);
|
|
239
241
|
return initializeResult;
|
|
240
242
|
}
|
|
@@ -257,7 +259,7 @@ export class LspServer {
|
|
|
257
259
|
}
|
|
258
260
|
// Bundled version
|
|
259
261
|
const bundledVersion = typescriptVersionProvider.bundledVersion();
|
|
260
|
-
if (bundledVersion
|
|
262
|
+
if (bundledVersion?.isValid) {
|
|
261
263
|
return bundledVersion;
|
|
262
264
|
}
|
|
263
265
|
return null;
|
|
@@ -388,8 +390,8 @@ export class LspServer {
|
|
|
388
390
|
}
|
|
389
391
|
const document = this.documents.get(file);
|
|
390
392
|
if (!document) {
|
|
391
|
-
this.logger.error(
|
|
392
|
-
throw new Error(
|
|
393
|
+
this.logger.error(`Received change on non-opened document ${textDocument.uri}`);
|
|
394
|
+
throw new Error(`Received change on non-opened document ${textDocument.uri}`);
|
|
393
395
|
}
|
|
394
396
|
if (textDocument.version === null) {
|
|
395
397
|
throw new Error(`Received document change event for ${textDocument.uri} without valid version identifier`);
|
|
@@ -498,7 +500,7 @@ export class LspServer {
|
|
|
498
500
|
file,
|
|
499
501
|
});
|
|
500
502
|
const tree = response.body;
|
|
501
|
-
if (!tree
|
|
503
|
+
if (!tree?.childItems) {
|
|
502
504
|
return [];
|
|
503
505
|
}
|
|
504
506
|
if (this.supportHierarchicalDocumentSymbol) {
|
|
@@ -516,7 +518,7 @@ export class LspServer {
|
|
|
516
518
|
}
|
|
517
519
|
get supportHierarchicalDocumentSymbol() {
|
|
518
520
|
const textDocument = this.initializeParams?.capabilities.textDocument;
|
|
519
|
-
const documentSymbol = textDocument
|
|
521
|
+
const documentSymbol = textDocument?.documentSymbol;
|
|
520
522
|
return !!documentSymbol && !!documentSymbol.hierarchicalDocumentSymbolSupport;
|
|
521
523
|
}
|
|
522
524
|
/*
|
|
@@ -531,7 +533,7 @@ export class LspServer {
|
|
|
531
533
|
}
|
|
532
534
|
const document = this.documents.get(file);
|
|
533
535
|
if (!document) {
|
|
534
|
-
throw new Error(
|
|
536
|
+
throw new Error(`The document should be opened for completion, file: ${file}`);
|
|
535
537
|
}
|
|
536
538
|
const completionOptions = this.configurationManager.workspaceConfiguration.completions || {};
|
|
537
539
|
try {
|
|
@@ -572,13 +574,14 @@ export class LspServer {
|
|
|
572
574
|
}
|
|
573
575
|
async completionResolve(item) {
|
|
574
576
|
this.logger.log('completion/resolve', item);
|
|
577
|
+
const document = item.data?.file ? this.documents.get(item.data.file) : undefined;
|
|
575
578
|
await this.configurationManager.configureGloballyFromDocument(item.data.file);
|
|
576
579
|
const { body } = await this.interuptDiagnostics(() => this.tspClient.request(CommandTypes.CompletionDetails, item.data));
|
|
577
|
-
const details = body
|
|
580
|
+
const details = body?.length && body[0];
|
|
578
581
|
if (!details) {
|
|
579
582
|
return item;
|
|
580
583
|
}
|
|
581
|
-
return asResolvedCompletionItem(item, details, this.tspClient, this.documents, this.configurationManager.workspaceConfiguration.completions || {}, this.features);
|
|
584
|
+
return asResolvedCompletionItem(item, details, document, this.tspClient, this.documents, this.configurationManager.workspaceConfiguration.completions || {}, this.features);
|
|
582
585
|
}
|
|
583
586
|
async hover(params) {
|
|
584
587
|
const file = uriToPath(params.textDocument.uri);
|
|
@@ -587,7 +590,7 @@ export class LspServer {
|
|
|
587
590
|
return { contents: [] };
|
|
588
591
|
}
|
|
589
592
|
const result = await this.interuptDiagnostics(() => this.getQuickInfo(file, params.position));
|
|
590
|
-
if (!result
|
|
593
|
+
if (!result?.body) {
|
|
591
594
|
return { contents: [] };
|
|
592
595
|
}
|
|
593
596
|
const contents = new MarkdownString();
|
|
@@ -635,7 +638,7 @@ export class LspServer {
|
|
|
635
638
|
return null;
|
|
636
639
|
}
|
|
637
640
|
const result = await this.tspClient.request(CommandTypes.Rename, Position.toFileLocationRequestArgs(file, params.position));
|
|
638
|
-
if (!result.body
|
|
641
|
+
if (!result.body?.info.canRename || result.body.locs.length === 0) {
|
|
639
642
|
return null;
|
|
640
643
|
}
|
|
641
644
|
const workspaceEdit = {};
|
|
@@ -718,6 +721,20 @@ export class LspServer {
|
|
|
718
721
|
}
|
|
719
722
|
return [];
|
|
720
723
|
}
|
|
724
|
+
async selectionRanges(params) {
|
|
725
|
+
const file = uriToPath(params.textDocument.uri);
|
|
726
|
+
if (!file) {
|
|
727
|
+
return null;
|
|
728
|
+
}
|
|
729
|
+
const response = await this.tspClient.request(CommandTypes.SelectionRange, {
|
|
730
|
+
file,
|
|
731
|
+
locations: params.positions.map(Position.toLocation),
|
|
732
|
+
});
|
|
733
|
+
if (response.type !== 'response' || !response.body) {
|
|
734
|
+
return null;
|
|
735
|
+
}
|
|
736
|
+
return response.body.map(toSelectionRange);
|
|
737
|
+
}
|
|
721
738
|
async signatureHelp(params) {
|
|
722
739
|
const file = uriToPath(params.textDocument.uri);
|
|
723
740
|
this.logger.log('signatureHelp', params, file);
|
|
@@ -725,7 +742,7 @@ export class LspServer {
|
|
|
725
742
|
return undefined;
|
|
726
743
|
}
|
|
727
744
|
const response = await this.interuptDiagnostics(() => this.getSignatureHelp(file, params));
|
|
728
|
-
if (!response
|
|
745
|
+
if (!response?.body) {
|
|
729
746
|
return undefined;
|
|
730
747
|
}
|
|
731
748
|
return asSignatureHelp(response.body, params.context, this.documents);
|
|
@@ -831,7 +848,7 @@ export class LspServer {
|
|
|
831
848
|
if (!await this.applyFileCodeEdits(codeAction.changes)) {
|
|
832
849
|
return;
|
|
833
850
|
}
|
|
834
|
-
if (codeAction.commands
|
|
851
|
+
if (codeAction.commands?.length) {
|
|
835
852
|
for (const command of codeAction.commands) {
|
|
836
853
|
await this.tspClient.request(CommandTypes.ApplyCodeActionCommand, { command });
|
|
837
854
|
}
|
|
@@ -840,7 +857,7 @@ export class LspServer {
|
|
|
840
857
|
else if (arg.command === Commands.APPLY_REFACTORING && arg.arguments) {
|
|
841
858
|
const args = arg.arguments[0];
|
|
842
859
|
const { body } = await this.tspClient.request(CommandTypes.GetEditsForRefactor, args);
|
|
843
|
-
if (!body
|
|
860
|
+
if (!body?.edits.length) {
|
|
844
861
|
return;
|
|
845
862
|
}
|
|
846
863
|
for (const edit of body.edits) {
|
|
@@ -889,7 +906,7 @@ export class LspServer {
|
|
|
889
906
|
const [_, codeActions] = arg.arguments;
|
|
890
907
|
for (const codeAction of codeActions) {
|
|
891
908
|
await this.applyFileCodeEdits(codeAction.changes);
|
|
892
|
-
if (codeAction.commands
|
|
909
|
+
if (codeAction.commands?.length) {
|
|
893
910
|
for (const command of codeAction.commands) {
|
|
894
911
|
await this.tspClient.request(CommandTypes.ApplyCodeActionCommand, { command });
|
|
895
912
|
}
|
|
@@ -1009,7 +1026,7 @@ export class LspServer {
|
|
|
1009
1026
|
}
|
|
1010
1027
|
const document = this.documents.get(file);
|
|
1011
1028
|
if (!document) {
|
|
1012
|
-
throw new Error(
|
|
1029
|
+
throw new Error(`The document should be opened for foldingRanges', file: ${file}`);
|
|
1013
1030
|
}
|
|
1014
1031
|
const { body } = await this.tspClient.request(CommandTypes.GetOutliningSpans, { file });
|
|
1015
1032
|
if (!body) {
|
|
@@ -1057,69 +1074,45 @@ export class LspServer {
|
|
|
1057
1074
|
this.diagnosticQueue?.updateDiagnostics(event.event, event);
|
|
1058
1075
|
}
|
|
1059
1076
|
}
|
|
1060
|
-
async
|
|
1061
|
-
let callsResult = { calls: [] };
|
|
1077
|
+
async prepareCallHierarchy(params) {
|
|
1062
1078
|
const file = uriToPath(params.textDocument.uri);
|
|
1063
|
-
this.logger.log('calls', params, file);
|
|
1064
1079
|
if (!file) {
|
|
1065
|
-
return
|
|
1066
|
-
}
|
|
1067
|
-
if (params.direction === lspcalls.CallDirection.Outgoing) {
|
|
1068
|
-
const documentProvider = (file) => this.documents.get(file);
|
|
1069
|
-
callsResult = await computeCallees(this.tspClient, params, documentProvider);
|
|
1080
|
+
return null;
|
|
1070
1081
|
}
|
|
1071
|
-
|
|
1072
|
-
|
|
1082
|
+
const args = Position.toFileLocationRequestArgs(file, params.position);
|
|
1083
|
+
const response = await this.tspClient.request(CommandTypes.PrepareCallHierarchy, args);
|
|
1084
|
+
if (response.type !== 'response' || !response.body) {
|
|
1085
|
+
return null;
|
|
1073
1086
|
}
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
async inlayHints(params) {
|
|
1077
|
-
return await TypeScriptInlayHintsProvider.provideInlayHints(params.textDocument.uri, params.range, this.documents, this.tspClient, this.options.lspClient, this.configurationManager);
|
|
1087
|
+
const items = Array.isArray(response.body) ? response.body : [response.body];
|
|
1088
|
+
return items.map(item => fromProtocolCallHierarchyItem(item, this.documents, this.workspaceRoot));
|
|
1078
1089
|
}
|
|
1079
|
-
async
|
|
1080
|
-
|
|
1081
|
-
message: 'Support for experimental "typescript/inlayHints" request is deprecated. Use spec-compliant "textDocument/inlayHint" instead.',
|
|
1082
|
-
type: lsp.MessageType.Warning,
|
|
1083
|
-
});
|
|
1084
|
-
const file = uriToPath(params.textDocument.uri);
|
|
1085
|
-
this.logger.log('inlayHints', params, file);
|
|
1090
|
+
async callHierarchyIncomingCalls(params) {
|
|
1091
|
+
const file = uriToPath(params.item.uri);
|
|
1086
1092
|
if (!file) {
|
|
1087
|
-
return
|
|
1093
|
+
return null;
|
|
1088
1094
|
}
|
|
1089
|
-
|
|
1090
|
-
const
|
|
1091
|
-
if (!
|
|
1092
|
-
return
|
|
1095
|
+
const args = Position.toFileLocationRequestArgs(file, params.item.selectionRange.start);
|
|
1096
|
+
const response = await this.tspClient.request(CommandTypes.ProvideCallHierarchyIncomingCalls, args);
|
|
1097
|
+
if (response.type !== 'response' || !response.body) {
|
|
1098
|
+
return null;
|
|
1093
1099
|
}
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
character: 0,
|
|
1101
|
-
});
|
|
1102
|
-
try {
|
|
1103
|
-
const result = await this.tspClient.request(CommandTypes.ProvideInlayHints, {
|
|
1104
|
-
file,
|
|
1105
|
-
start: start,
|
|
1106
|
-
length: end - start,
|
|
1107
|
-
});
|
|
1108
|
-
return {
|
|
1109
|
-
inlayHints: result.body?.map((item) => ({
|
|
1110
|
-
text: item.text,
|
|
1111
|
-
position: Position.fromLocation(item.position),
|
|
1112
|
-
whitespaceAfter: item.whitespaceAfter,
|
|
1113
|
-
whitespaceBefore: item.whitespaceBefore,
|
|
1114
|
-
kind: item.kind,
|
|
1115
|
-
})) ?? [],
|
|
1116
|
-
};
|
|
1100
|
+
return response.body.map(item => fromProtocolCallHierarchyIncomingCall(item, this.documents, this.workspaceRoot));
|
|
1101
|
+
}
|
|
1102
|
+
async callHierarchyOutgoingCalls(params) {
|
|
1103
|
+
const file = uriToPath(params.item.uri);
|
|
1104
|
+
if (!file) {
|
|
1105
|
+
return null;
|
|
1117
1106
|
}
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1107
|
+
const args = Position.toFileLocationRequestArgs(file, params.item.selectionRange.start);
|
|
1108
|
+
const response = await this.tspClient.request(CommandTypes.ProvideCallHierarchyOutgoingCalls, args);
|
|
1109
|
+
if (response.type !== 'response' || !response.body) {
|
|
1110
|
+
return null;
|
|
1122
1111
|
}
|
|
1112
|
+
return response.body.map(item => fromProtocolCallHierarchyOutgoingCall(item, this.documents, this.workspaceRoot));
|
|
1113
|
+
}
|
|
1114
|
+
async inlayHints(params) {
|
|
1115
|
+
return await TypeScriptInlayHintsProvider.provideInlayHints(params.textDocument.uri, params.range, this.documents, this.tspClient, this.options.lspClient, this.configurationManager);
|
|
1123
1116
|
}
|
|
1124
1117
|
async semanticTokensFull(params) {
|
|
1125
1118
|
const file = uriToPath(params.textDocument.uri);
|
|
@@ -1164,7 +1157,7 @@ export class LspServer {
|
|
|
1164
1157
|
format: '2020',
|
|
1165
1158
|
});
|
|
1166
1159
|
const spans = result.body?.spans ?? [];
|
|
1167
|
-
return { data:
|
|
1160
|
+
return { data: SemanticTokens.transformSpans(doc, spans) };
|
|
1168
1161
|
}
|
|
1169
1162
|
catch {
|
|
1170
1163
|
return { data: [] };
|
package/lib/lsp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-server.js","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lsp-server.js","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAU,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7J,OAAO,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAA8F,MAAM,kBAAkB,CAAC;AACnI,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAkC,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,qCAAqC,EAAE,MAAM,8BAA8B,CAAC;AAC3J,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAqB,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,IAAO,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AAEvC,MAAM,OAAO,SAAS;IAYlB,YAAoB,OAAuC;QAAvC,YAAO,GAAP,OAAO,CAAgC;QAXnD,eAAU,GAAqB,IAAI,CAAC;QACpC,qBAAgB,GAAsC,IAAI,CAAC;QAK3D,8BAAyB,GAAqC,IAAI,CAAC;QACnE,aAAQ,GAAsB,EAAE,CAAC;QAExB,cAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QAsRhD,4GAA4G;QAC5G,uBAAuB;QACvB,4BAAuB,GAAG,KAAK,CAAC;QAKvB,kCAA6B,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,CAAC,CAAC;QA1RtF,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ;QACJ,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC5B;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,IAAY,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC9F;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkC;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SAC1E;QACD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,SAAS,CAAC;QAE5I,MAAM,yBAAyB,GAAoC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACrH,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAyB,CAAC;QACpI,MAAM,EAAE,OAAO,EAAE,GAAoC;YACjD,OAAO,EAAE,yBAAyB,CAAC,OAAO,IAAI,EAAE;SACnD,CAAC;QAEF,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC9C;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,iBAAiB,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,iBAAiB,CAAC,MAAM,KAAK,iBAAiB,CAAC,aAAa,eAAe,iBAAiB,CAAC,YAAY,GAAG,CAAC,CAAC;SAC9L;aAAM;YACH,MAAM,KAAK,CAAC,qLAAqL,CAAC,CAAC;SACtM;QAED,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAE1F,4BAA4B;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;QAC5C,IAAI,YAAY,EAAE;YACd,MAAM,sBAAsB,GAAG,YAAY,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC;YACnF,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,YAAY,CAAC,UAAU,EAAE,WAAW,IAAI,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvH,IAAI,CAAC,QAAQ,CAAC,8BAA8B,GAAG,sBAAsB,EAAE,cAAc,EAAE,oBAAoB,CAAC;YAC5G,IAAI,sBAAsB,EAAE,cAAc,EAAE;gBACxC,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,kCAAkC;uBAC3E,sBAAsB,CAAC,cAAc,CAAC,mBAAmB;uBACzD,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACzC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBAC/C;gBACD,IAAI,sBAAsB,CAAC,cAAc,CAAC,cAAc,EAAE;oBACtD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;iBAC3C;gBACD,IAAI,YAAY,CAAC,kBAAkB,EAAE,UAAU,EAAE;oBAC7C,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC;iBAC9C;aACJ;SACJ;QAED,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;YACzC,kCAAkC,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB;SAC3E,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAC3C,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,EACrE,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CACd,CAAC;QACF,MAAM,oBAAoB,GAAG,QAAQ,EAAE,YAAY,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3G,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC;YACjD,iBAAiB;YACjB,oBAAoB,EAAE,IAAI,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YACnG,YAAY,EAAE,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB;YACvE,iCAAiC;YACjC,iBAAiB;YACjB,WAAW;YACX,MAAM;YACN,aAAa;YACb,oBAAoB;YACpB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,QAAQ,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,aAAa,MAAM,yBAAyB,CAAC,CAAC;iBACpH;YACL,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC5D;QACD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/E,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClG,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAE7C,MAAM,cAAc,GAAG,YAAY,EAAE,MAAM,EAAE,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvG,MAAM,gBAAgB,GAAyB;YAC3C,YAAY,EAAE;gBACV,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,CAAC,WAAW;gBACtD,kBAAkB,EAAE;oBAChB,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;oBAClD,eAAe,EAAE,IAAI;iBACxB;gBACD,kBAAkB,EAAE,kBAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,wBAAwB;oBACrF,CAAC,CAAC,EAAE,eAAe,EAAE;4BACjB,GAAG,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;4BAC1D,cAAc,CAAC,uBAAuB,CAAC,KAAK;4BAC5C,cAAc,CAAC,QAAQ,CAAC,KAAK;4BAC7B,cAAc,CAAC,QAAQ,CAAC,KAAK;yBAChC,EAAE,CAAC,CAAC,CAAC,IAAI;gBACd,kBAAkB,EAAE,IAAI;gBACxB,0BAA0B,EAAE,IAAI;gBAChC,+BAA+B,EAAE,IAAI;gBACrC,yBAAyB,EAAE,IAAI;gBAC/B,sBAAsB,EAAE,IAAI;gBAC5B,sBAAsB,EAAE;oBACpB,QAAQ,EAAE;wBACN,QAAQ,CAAC,oBAAoB;wBAC7B,QAAQ,CAAC,iBAAiB;wBAC1B,QAAQ,CAAC,iBAAiB;wBAC1B,QAAQ,CAAC,gBAAgB;wBACzB,QAAQ,CAAC,gBAAgB;wBACzB,QAAQ,CAAC,iBAAiB;wBAC1B,QAAQ,CAAC,iBAAiB;qBAC7B;iBACJ;gBACD,aAAa,EAAE,IAAI;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;gBACjE,kBAAkB,EAAE,IAAI;gBACxB,sBAAsB,EAAE,IAAI;gBAC5B,qBAAqB,EAAE;oBACnB,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;oBAClC,mBAAmB,EAAE,CAAC,GAAG,CAAC;iBAC7B;gBACD,uBAAuB,EAAE,IAAI;gBAC7B,sBAAsB,EAAE,IAAI;gBAC5B,sBAAsB,EAAE,IAAI;gBAC5B,oBAAoB,EAAE,IAAI;gBAC1B,sBAAsB,EAAE;oBACpB,gBAAgB,EAAE,IAAI;oBACtB,MAAM,EAAE;wBACJ,wGAAwG;wBACxG,UAAU,EAAE;4BACR,OAAO;4BACP,MAAM;4BACN,WAAW;4BACX,WAAW;4BACX,eAAe;4BACf,MAAM;4BACN,WAAW;4BACX,UAAU;4BACV,YAAY;4BACZ,UAAU;4BACV,UAAU;4BACV,QAAQ;yBACX;wBACD,mGAAmG;wBACnG,cAAc,EAAE;4BACZ,aAAa;4BACb,QAAQ;4BACR,OAAO;4BACP,UAAU;4BACV,gBAAgB;4BAChB,OAAO;yBACV;qBACJ;oBACD,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,IAAI;iBACd;aACJ;SACJ,CAAC;QACF,IAAI,YAAY,EAAE,aAAa,IAAI,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzE,gBAAgB,CAAC,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC;SAC9D;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,qBAAqB,CAAC,gBAAoC;QAC9D,MAAM,yBAAyB,GAAG,IAAI,yBAAyB,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5H,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,qBAAqB,EAAE,CAAC;QAC7E,IAAI,kBAAkB,EAAE;YACpB,IAAI,kBAAkB,CAAC,OAAO,EAAE;gBAC5B,OAAO,kBAAkB,CAAC;aAC7B;YACD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,0EAA0E,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;SAC5J;QACD,qBAAqB;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7F,IAAI,gBAAgB,EAAE;gBAClB,OAAO,gBAAgB,CAAC;aAC3B;SACJ;QACD,kBAAkB;QAClB,MAAM,cAAc,GAAG,yBAAyB,CAAC,cAAc,EAAE,CAAC;QAClE,IAAI,cAAc,EAAE,OAAO,EAAE;YACzB,OAAO,cAAc,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,mBAAmB,CAAC,qBAAsD;QAC9E,IAAI,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE;YAC9C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAChD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,qCAAqC;QACzC,MAAM,IAAI,GAAkD;YACxD,OAAO,EAAE;gBACL,GAAG,iCAAiC,CAAC,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,4BAA6B,CAAC;gBACpH,OAAO,EAAE,IAAI;gBACb,oBAAoB,EAAE,IAAI;gBAC1B,4BAA4B,EAAE,IAAI;gBAClC,iBAAiB,EAAE,IAAI;aAC1B;SACJ,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC,YAAY,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;IAC3G,CAAC;IAED,sBAAsB,CAAC,MAAwC;QAC3D,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAC7C,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,WAAW,EAAE,YAAY,IAAI,EAAE,CAAC;QAChH,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;IAC/E,CAAC;IAGS,mBAAmB,CAAI,CAAU;QACvC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC9B,OAAO,CAAC,EAAE,CAAC;SACd;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IAID,KAAK,CAAC,kBAAkB;QACpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAC5D,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC;QAEhD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACrG;gBAAS;YACN,IAAI,IAAI,CAAC,sBAAsB,KAAK,iBAAiB,EAAE;gBACnD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;aACxC;SACJ;IACL,CAAC;IACS,iBAAiB;QACvB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;SAC3C;IACL,CAAC;IAED,mBAAmB,CAAC,MAAqC;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;YAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;gBACrC,IAAI;gBACJ,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;gBACrC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;gBACtE,eAAe,EAAE,IAAI,CAAC,aAAa;aACtC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,qBAAqB,CAAC;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE;oBACZ;wBACI,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;qBACjC;iBACJ;aACJ,CAAC,CAAC;SACN;IACL,CAAC;IAES,iBAAiB,CAAC,UAAkB;QAC1C,QAAQ,UAAU,EAAE;YAChB,KAAK,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC;YAC/B,KAAK,iBAAiB,CAAC,CAAC,OAAO,KAAK,CAAC;YACrC,KAAK,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC;YAC/B,KAAK,iBAAiB,CAAC,CAAC,OAAO,KAAK,CAAC;SACxC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oBAAoB,CAAC,MAAsC;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACS,aAAa,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,wEAAwE;QACxE,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACtC,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,WAAW,EAAE,EAAE;SAClB,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,MAAuC;QACzD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;YAChF,MAAM,IAAI,KAAK,CAAC,0CAA0C,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;SACjF;QACD,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,CAAC,GAAG,mCAAmC,CAAC,CAAC;SAC9G;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;YACxC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,GAAG,CAAC,8BAA8B,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBAC1D,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACnC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBAC1C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;gBACpC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;aAC9C;iBAAM;gBACH,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC9D,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1B,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;gBACvC,IAAI;gBACJ,IAAI;gBACJ,MAAM;gBACN,OAAO;gBACP,SAAS;gBACT,YAAY,EAAE,MAAM,CAAC,IAAI;aAC5B,CAAC,CAAC;YACH,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,OAAsC;QACtD,aAAa;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA4B;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU;YACzG,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAsC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC;YAC3B,IAAI,EAAE,YAAY,CAAC,cAAc;YACjC,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAsC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC;YAC3B,IAAI,EAAE,YAAY,CAAC,cAAc;YACjC,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAGzC;QACG,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,IAAI,KAAK,YAAY,CAAC,sBAAsB,EAAE;YAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAChD,OAAO,SAAS,CAAC;aACpB;YACD,2FAA2F;YAC3F,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW;iBAC3B,GAAG,CAAC,CAAC,QAAQ,EAAsB,EAAE;gBAClC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU;oBAC5D,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;oBACjE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,OAAO;oBACH,oBAAoB,EAAE,IAAI;oBAC1B,WAAW;oBACX,SAAS,EAAE,MAAM,CAAC,GAAG;oBACrB,oBAAoB,EAAE,MAAM,CAAC,KAAK;iBACrC,CAAC;YACN,CAAC,CAAC,CAAC;SACV;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAG9C;QACG,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAgC;QACjD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE;YAChE,IAAI;SACP,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACnB,OAAO,EAAE,CAAC;SACb;QACD,IAAI,IAAI,CAAC,iCAAiC,EAAE;YACxC,MAAM,OAAO,GAAyB,EAAE,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;gBAChC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACzC;YACD,OAAO,OAAO,CAAC;SAClB;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACpE;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAc,iCAAiC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,YAAY,CAAC;QACtE,MAAM,cAAc,GAAG,YAAY,EAAE,cAAc,CAAC;QACpD,OAAO,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,CAAC,iCAAiC,CAAC;IAClF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,MAA4B;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACxC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;SAClF;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,WAAW,IAAI,EAAE,CAAC;QAE7F,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE;gBACpG,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;gBAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;gBACrC,gBAAgB,EAAE,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBACjF,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW;aAC3C,CAAC,CAAC,CAAC;YACJ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;aACtC;YACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC;YAChE,MAAM,WAAW,GAAyB,EAAE,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE,EAAE;gBAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,SAAS;iBACZ;gBACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvJ,IAAI,CAAC,UAAU,EAAE;oBACb,SAAS;iBACZ;gBACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC;YACD,OAAO,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;SAC/D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAK,KAAe,CAAC,OAAO,KAAK,uBAAuB,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,MAAM,KAAK,CAAC;aACf;SACJ;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAwB;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,IAAI,CAAC;SACf;QACD,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAsC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SAC3B;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;YACf,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;SAC3B;QACD,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3D,IAAI,aAAa,EAAE;YACf,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SACzD;QACD,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO;YACH,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE;YACpC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;SACzC,CAAC;IACN,CAAC;IACS,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAsB;QAC7D,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE;gBACxD,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;gBACvB,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;aACjC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA+B;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5H,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAwB;QACjC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/D,OAAO,IAAI,CAAC;SACf;QACD,MAAM,aAAa,GAAsB,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,IAAI;aACX,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACnB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBACxB,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;aAC9B;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAElF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChC,SAAS,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE;oBACpF,KAAK,EAAE;wBACH,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAC5C,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;qBAC3C;iBACJ,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEP,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA2B;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE;YACjE,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACd,OAAO,EAAE,CAAC;SACb;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI;aAClB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;aAC/E,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAoC;QACzD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE;YAC/D,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,MAAM,CAAC,gBAAgB;YAChC,SAAS,EAAE,MAAM,CAAC,gBAAgB;YAClC,OAAO,EAAE,aAAa;SACzB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,EAAE;YACf,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,MAAyC;QACnE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE;YAC/D,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;YACxC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC;YACzC,OAAO,EAAE,aAAa;SACzB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,EAAE;YACf,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAgC;QAClD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE;YACvE,IAAI;YACJ,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;SACvD,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA+B;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC;IACS,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,MAA+B;QAC1E,IAAI;YACA,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YACrC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE;gBAC5D,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;gBACvB,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;gBAC9B,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAClE,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA4B;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE;YACtE,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC5G;QACD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE;YACtE,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC3H;QAED,kGAAkG;QAClG,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,EAAE;YAC5E,kEAAkE;YAClE,uDAAuD;YACvD,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;YAC9D,iCAAiC;YACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAC9B,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;gBAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;gBAC5C,0BAA0B;aAC7B,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACrE;QAED,8GAA8G;QAC9G,0GAA0G;QAC1G,8DAA8D;QAC9D,+FAA+F;QAC/F,iEAAiE;QACjE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACxC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5E,IAAI,WAAW,CAAC,MAAM,EAAE;gBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,yBAA0B,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACvH;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IACS,KAAK,CAAC,YAAY,CAAC,aAAuC,EAAE,OAA8B;QAChG,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,GAA2B;YACjC,GAAG,aAAa;YAChB,UAAU;SACb,CAAC;QACF,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SACxE;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IACS,KAAK,CAAC,YAAY,CAAC,aAAuC,EAAE,OAA8B;QAChG,MAAM,IAAI,GAA0C;YAChD,GAAG,aAAa;YAChB,aAAa,EAAE,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAChG,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;QACF,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;SAClF;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IACS,KAAK,CAAC,kBAAkB,CAAC,IAAoC;QACnE,IAAI;YACA,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;SAC3E;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAA6B,EAAE,KAA6B,EAAE,gBAA+C;QAC9H,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,oBAAoB,IAAI,GAAG,CAAC,SAAS,EAAE;YAChE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAsB,CAAC;YACnD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SAC7D;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,SAAS,EAAE;YACpE,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAmB,CAAC;YACtD,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACpD,OAAO;aACV;YACD,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE;gBAC7B,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;oBACvC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;iBAClF;aACJ;SACJ;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,SAAS,EAAE;YACpE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAuC,CAAC;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YACtF,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;gBACrB,OAAO;aACV;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC3B,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;YACD,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC5C,OAAO;aACV;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,cAAc,EAAE;gBAChB,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;oBAChC,YAAY,EAAE;wBACV,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;qBAC5C;oBACD,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC;iBAClD,CAAC,CAAC;aACN;SACJ;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS,EAAE;YACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,GAAG,CAAC,SAA8B,CAAC;YAEvE,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1C,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC,YAAY,CAAC,eAAe,EAAE;oBAC1E,aAAa;oBACb,UAAU;iBACb,CAAC,CAAC;aACN;SACJ;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,gBAAgB,IAAI,GAAG,CAAC,SAAS,EAAE;YACnE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAW,CAAC;YACxC,MAAM,mBAAmB,GAA8C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9F,MAAM,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE;gBACxE,KAAK,EAAE;oBACH,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,EAAE,IAAI,EAAE;iBACjB;gBACD,0BAA0B,EAAE,mBAAmB,CAAC,0BAA0B;aAC7E,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACvC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,SAAS,EAAE;YACpE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAG/C,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAC9C;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,4BAA4B,IAAI,GAAG,CAAC,SAAS,EAAE;YAC/E,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,SAAuC,CAAC;YACrE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;gBAClC,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC7B,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;wBACvC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;qBAClF;iBACJ;gBACD,sCAAsC;gBACtC,MAAM;aACT;SACJ;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,iBAAiB,EAAE;YACnD,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAsC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC9F,OAAO,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC3H;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;SACxD;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,KAAuC;QACtE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QACD,MAAM,OAAO,GAAuC,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACxF;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;YAChE,IAAI,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,SAAiB;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACS,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;QACtE,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE;YAC9B,OAAO,EAAE,CAAC;SACb;QACD,IAAI;YACA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,EAAE;gBAC9E,WAAW;gBACX,WAAW;aACd,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAmC;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QACD,IAAI,QAAwC,CAAC;QAC7C,IAAI;YACA,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE;gBACrE,IAAI;gBACJ,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;gBAC3B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;gBAClC,aAAa,EAAE,CAAC,IAAI,CAAC;aACxB,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChB,OAAO,EAAE,CAAC;SACb;QACD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;YAC9B,uFAAuF;YACvF,8DAA8D;YAC9D,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;aAC9B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAiC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE;YAC5D,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE;YAC5B,WAAW,EAAE,MAAM,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACd,OAAO,EAAE,CAAC;SACb;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1B,OAA8B;gBAC1B,QAAQ,EAAE;oBACN,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACzC,KAAK,EAAE;wBACH,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;wBACxC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;qBACvC;iBACJ;gBACD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAA8B;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,2DAA2D,IAAI,EAAE,CAAC,CAAC;SACtF;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,aAAa,GAAuB,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,YAAY,EAAE;gBACd,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACpC;SACJ;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IACS,cAAc,CAAC,IAAuB,EAAE,QAAqB;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3C,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;gBACnC,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAEnC,kEAAkE;QAClE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CACxE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,EAC5D,KAAK,CAAC,GAAG,CACZ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAE7E,OAAO;YACH,SAAS;YACT,OAAO;YACP,IAAI;SACP,CAAC;IACN,CAAC;IACS,kBAAkB,CAAC,IAAuB;QAChD,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACpD,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAClD,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACpD,KAAK,MAAM,CAAC;YACZ,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;SAC7B;IACL,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAgB;QACtC,IAAI,KAAK,CAAC,KAAK,iDAA4B,IAAI,KAAK,CAAC,KAAK,6CAA0B,IAAI,KAAK,CAAC,KAAK,qDAA8B,EAAE;YAC/H,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAA4B,CAAC,CAAC;SACtF;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAsC;QAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACvF,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAA4C;QACzE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACpG,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qCAAqC,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAA4C;QACzE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACpG,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qCAAqC,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA2B;QACxC,OAAO,MAAM,4BAA4B,CAAC,iBAAiB,CACvD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClI,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAgC;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACvB;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACvB;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC;YACvB,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,CAAC;SACf,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,SAAS;YACnB,SAAS,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAqC;QAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACvB;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACvB;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAgB,EAAE,IAAY,EAAE,WAAmB,EAAE,SAAiB;QAC1F,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACvC,YAAY,CAAC,kCAAkC,EAC/C;gBACI,IAAI;gBACJ,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,SAAS,GAAG,WAAW;gBAC/B,MAAM,EAAE,MAAM;aACjB,CACJ,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;SAC9D;QAAC,MAAM;YACJ,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACvB;IACL,CAAC;CACJ"}
|