typesql-cli 0.16.5 → 0.17.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/dialects/postgres.d.ts.map +1 -1
- package/dialects/postgres.js +4 -0
- package/dialects/postgres.js.map +1 -1
- package/drivers/postgres.d.ts +15 -0
- package/drivers/postgres.d.ts.map +1 -1
- package/drivers/postgres.js +61 -1
- package/drivers/postgres.js.map +1 -1
- package/drivers/types.d.ts +9 -0
- package/drivers/types.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.js +3 -0
- package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
- package/package.json +1 -1
- package/postgres-query-analyzer/describe.d.ts.map +1 -1
- package/postgres-query-analyzer/describe.js +50 -26
- package/postgres-query-analyzer/describe.js.map +1 -1
- package/postgres-query-analyzer/enum-parser.d.ts +2 -0
- package/postgres-query-analyzer/enum-parser.d.ts.map +1 -0
- package/postgres-query-analyzer/enum-parser.js +19 -0
- package/postgres-query-analyzer/enum-parser.js.map +1 -0
- package/postgres-query-analyzer/enum_parser.d.ts +2 -0
- package/postgres-query-analyzer/enum_parser.d.ts.map +1 -0
- package/postgres-query-analyzer/enum_parser.js +17 -0
- package/postgres-query-analyzer/enum_parser.js.map +1 -0
- package/postgres-query-analyzer/parser.d.ts +3 -2
- package/postgres-query-analyzer/parser.d.ts.map +1 -1
- package/postgres-query-analyzer/parser.js +4 -4
- package/postgres-query-analyzer/parser.js.map +1 -1
- package/postgres-query-analyzer/traverse.d.ts +8 -2
- package/postgres-query-analyzer/traverse.d.ts.map +1 -1
- package/postgres-query-analyzer/traverse.js +58 -12
- package/postgres-query-analyzer/traverse.js.map +1 -1
- package/util.d.ts +1 -0
- package/util.d.ts.map +1 -1
- package/util.js +10 -1
- package/util.js.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,eAAO,MAAM,aAAa,EAuCrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,eAAO,MAAM,aAAa,EAuCrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAiGhE"}
|
package/dialects/postgres.js
CHANGED
@@ -43,6 +43,10 @@ exports.postgresTypes = {
|
|
43
43
|
2951: '_uuid'
|
44
44
|
};
|
45
45
|
function mapColumnType(postgresType) {
|
46
|
+
if (postgresType.startsWith('enum(')) {
|
47
|
+
const enumValues = postgresType.substring(postgresType.indexOf('(') + 1, postgresType.indexOf(')'));
|
48
|
+
return enumValues.split(',').join(' | ');
|
49
|
+
}
|
46
50
|
switch (postgresType) {
|
47
51
|
case 'bool':
|
48
52
|
return 'boolean';
|
package/dialects/postgres.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":";;;AA6CA,
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"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"}
|
package/drivers/postgres.d.ts
CHANGED
@@ -5,6 +5,21 @@ import { Result, ResultAsync } from 'neverthrow';
|
|
5
5
|
import { ColumnSchema } from '../mysql-query-analyzer/types';
|
6
6
|
import { ForeignKeyInfo } from '../sqlite-query-analyzer/query-executor';
|
7
7
|
export declare function loadDbSchema(sql: Sql): ResultAsync<PostgresColumnSchema[], TypeSqlError>;
|
8
|
+
export type EnumMap = Map<number, EnumResult[]>;
|
9
|
+
export declare function loadEnums(sql: Sql): ResultAsync<EnumMap, TypeSqlError>;
|
10
|
+
export type EnumResult = {
|
11
|
+
type_oid: number;
|
12
|
+
enumlabel: string;
|
13
|
+
};
|
14
|
+
export type CheckConstraintResult = Record<string, string>;
|
15
|
+
export declare function loadCheckConstraints(sql: Sql): ResultAsync<CheckConstraintResult, TypeSqlError>;
|
16
|
+
export type CheckConstraintType = {
|
17
|
+
schema_name: string;
|
18
|
+
table_name: string;
|
19
|
+
column_name: string;
|
20
|
+
constraint_name: string;
|
21
|
+
constraint_definition: string;
|
22
|
+
};
|
8
23
|
export declare function mapToColumnSchema(col: PostgresColumnSchema): ColumnSchema;
|
9
24
|
export declare const postgresDescribe: (sql: Sql, sqlQuery: string) => ResultAsync<PostgresDescribe, TypeSqlError>;
|
10
25
|
export declare function createPostgresClient(databaseUri: string): Result<DatabaseClient, TypeSqlError>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAuB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAM,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAuB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAM,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,CA0DxF;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAE/C,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAKtE;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB,CAAA;AAcD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC1D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAY/F;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC9B,CAAA;AAwBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,YAAY,CAYzE;AAED,eAAO,MAAM,gBAAgB,QAAS,GAAG,YAAY,MAAM,KAAG,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAkBvG,CAAA;AAWD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAM9F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CA8BrF"}
|
package/drivers/postgres.js
CHANGED
@@ -14,12 +14,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
15
|
exports.postgresDescribe = void 0;
|
16
16
|
exports.loadDbSchema = loadDbSchema;
|
17
|
+
exports.loadEnums = loadEnums;
|
18
|
+
exports.loadCheckConstraints = loadCheckConstraints;
|
17
19
|
exports.mapToColumnSchema = mapToColumnSchema;
|
18
20
|
exports.createPostgresClient = createPostgresClient;
|
19
21
|
exports.loadForeignKeys = loadForeignKeys;
|
20
22
|
const postgres_1 = __importDefault(require("postgres"));
|
21
23
|
const neverthrow_1 = require("neverthrow");
|
22
24
|
const postgres_2 = require("../dialects/postgres");
|
25
|
+
const util_1 = require("../util");
|
26
|
+
const enum_parser_1 = require("../postgres-query-analyzer/enum-parser");
|
23
27
|
function loadDbSchema(sql) {
|
24
28
|
return neverthrow_1.ResultAsync.fromThrowable(() => __awaiter(this, void 0, void 0, function* () {
|
25
29
|
const result = yield sql `
|
@@ -54,7 +58,7 @@ function loadDbSchema(sql) {
|
|
54
58
|
ON t.table_name = col.table_name
|
55
59
|
AND t.table_schema = col.table_schema
|
56
60
|
JOIN
|
57
|
-
pg_catalog.pg_type ty on
|
61
|
+
pg_catalog.pg_type ty on ty.typname = col.udt_name
|
58
62
|
LEFT JOIN
|
59
63
|
pg_constraint con ON con.conrelid = c.oid
|
60
64
|
AND col.ordinal_position = ANY (con.conkey)
|
@@ -75,6 +79,62 @@ function loadDbSchema(sql) {
|
|
75
79
|
}));
|
76
80
|
}), err => convertPostgresErrorToTypeSQLError(err))();
|
77
81
|
}
|
82
|
+
function loadEnums(sql) {
|
83
|
+
return (neverthrow_1.ResultAsync.fromThrowable(() => _loadEnums(sql), err => convertPostgresErrorToTypeSQLError(err))()).map(enumResult => {
|
84
|
+
const enumMap = (0, util_1.groupBy)(enumResult, (e) => e.type_oid);
|
85
|
+
return enumMap;
|
86
|
+
});
|
87
|
+
}
|
88
|
+
function _loadEnums(sql) {
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
90
|
+
const result = yield sql `
|
91
|
+
SELECT
|
92
|
+
t.oid AS type_oid,
|
93
|
+
e.enumlabel
|
94
|
+
FROM pg_type t
|
95
|
+
JOIN pg_enum e ON t.oid = e.enumtypid
|
96
|
+
WHERE t.typname = 'sizes_enum'
|
97
|
+
ORDER BY e.enumsortorder`;
|
98
|
+
return result;
|
99
|
+
});
|
100
|
+
}
|
101
|
+
function loadCheckConstraints(sql) {
|
102
|
+
return (neverthrow_1.ResultAsync.fromThrowable(() => _loadCheckConstraints(sql), err => convertPostgresErrorToTypeSQLError(err))()).map(enumResult => {
|
103
|
+
const checkConstraintResult = {};
|
104
|
+
for (const enumColumn of enumResult) {
|
105
|
+
const key = `[${enumColumn.schema_name}][${enumColumn.table_name}][${enumColumn.column_name}]`;
|
106
|
+
const value = (0, enum_parser_1.transformCheckToEnum)(enumColumn.constraint_definition);
|
107
|
+
if (value) {
|
108
|
+
checkConstraintResult[key] = value;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
return checkConstraintResult;
|
112
|
+
});
|
113
|
+
}
|
114
|
+
function _loadCheckConstraints(sql) {
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
116
|
+
const result = yield sql `
|
117
|
+
SELECT
|
118
|
+
n.nspname AS schema_name,
|
119
|
+
t.relname AS table_name,
|
120
|
+
c.conname AS constraint_name,
|
121
|
+
pg_get_constraintdef(c.oid) AS constraint_definition,
|
122
|
+
a.attname AS column_name
|
123
|
+
FROM
|
124
|
+
pg_constraint c
|
125
|
+
JOIN
|
126
|
+
pg_class t ON c.conrelid = t.oid
|
127
|
+
JOIN
|
128
|
+
pg_namespace n ON t.relnamespace = n.oid
|
129
|
+
LEFT JOIN
|
130
|
+
unnest(c.conkey) AS ck(attnum) ON TRUE
|
131
|
+
LEFT JOIN
|
132
|
+
pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ck.attnum
|
133
|
+
WHERE
|
134
|
+
c.contype = 'c'`;
|
135
|
+
return result;
|
136
|
+
});
|
137
|
+
}
|
78
138
|
function mapToColumnSchema(col) {
|
79
139
|
const columnSchema = {
|
80
140
|
column: col.column_name,
|
package/drivers/postgres.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"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"}
|
package/drivers/types.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { TaskEither } from 'fp-ts/lib/TaskEither';
|
2
|
+
import { CheckConstraintResult, EnumMap } from './postgres';
|
2
3
|
export type PostgresColumnSchema = {
|
3
4
|
oid: number;
|
4
5
|
table_schema: string;
|
@@ -14,6 +15,14 @@ export type DescribeQueryColumn = {
|
|
14
15
|
tableId: number;
|
15
16
|
typeId: number;
|
16
17
|
};
|
18
|
+
export type DescribeParameters = {
|
19
|
+
sql: string;
|
20
|
+
postgresDescribeResult: PostgresDescribe;
|
21
|
+
dbSchema: PostgresColumnSchema[];
|
22
|
+
enumsTypes: EnumMap;
|
23
|
+
checkConstraints: CheckConstraintResult;
|
24
|
+
namedParameters: string[];
|
25
|
+
};
|
17
26
|
export type PostgresDescribe = {
|
18
27
|
parameters: number[];
|
19
28
|
columns: DescribeQueryColumn[];
|
package/drivers/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAEf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB,EAAE,gBAAgB,CAAC;IACzC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACpD,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,MAAM,CAAC,UAAU,IAAI;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;CAC/E,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EAEzB,KAAK,WAAW,EA4BhB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASlE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,2BAQzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;
|
1
|
+
{"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EAEzB,KAAK,WAAW,EA4BhB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASlE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,2BAQzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;AAmSD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAuDhF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;AAmF1D,MAAM,MAAM,kBAAkB,GAAG;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAoCF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAgBzH"}
|
@@ -10,11 +10,11 @@ const sqlite_describe_nested_query_1 = require("../sqlite-query-analyzer/sqlite-
|
|
10
10
|
const Either_1 = require("fp-ts/lib/Either");
|
11
11
|
const describe_query_1 = require("../describe-query");
|
12
12
|
const describe_dynamic_query_1 = require("../describe-dynamic-query");
|
13
|
-
function describeQueryRefine(
|
14
|
-
|
13
|
+
function describeQueryRefine(describeParameters) {
|
14
|
+
const { sql, dbSchema, postgresDescribeResult, enumsTypes, checkConstraints, namedParameters } = describeParameters;
|
15
15
|
const generateNestedInfo = (0, describe_query_1.hasAnnotation)(sql, '@nested');
|
16
16
|
const generateDynamicQueryInfo = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
|
17
|
-
const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
|
17
|
+
const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, checkConstraints, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
|
18
18
|
if (parseResult.isErr()) {
|
19
19
|
return (0, neverthrow_1.err)({
|
20
20
|
name: 'ParserError',
|
@@ -22,21 +22,20 @@ function describeQueryRefine(sql, postgresDescribeResult, dbSchema, namedParamet
|
|
22
22
|
});
|
23
23
|
}
|
24
24
|
const traverseResult = parseResult.value;
|
25
|
-
const
|
26
|
-
const paramNames = namedParameters.length > 0 ? namedParameters : Array.from({ length: totalNumberOfParameters }).map((_, index) => `param${index + 1}`);
|
25
|
+
const paramNames = namedParameters.length > 0 ? namedParameters : Array.from({ length: traverseResult.parameterList.length }).map((_, index) => `param${index + 1}`);
|
27
26
|
//replace list parameters
|
28
27
|
const newSql = (0, replace_list_params_1.replacePostgresParams)(sql, traverseResult.parameterList, paramNames);
|
29
28
|
const descResult = {
|
30
29
|
sql: newSql,
|
31
30
|
queryType: traverseResult.queryType,
|
32
31
|
multipleRowsResult: traverseResult.multipleRowsResult,
|
33
|
-
columns: getColumnsForQuery(traverseResult, postgresDescribeResult),
|
32
|
+
columns: getColumnsForQuery(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints),
|
34
33
|
parameters: traverseResult.queryType === 'Update'
|
35
|
-
? getParamtersForWhere(traverseResult, postgresDescribeResult, paramNames)
|
36
|
-
: getParamtersForQuery(traverseResult, postgresDescribeResult, paramNames)
|
34
|
+
? getParamtersForWhere(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints, paramNames)
|
35
|
+
: getParamtersForQuery(traverseResult, postgresDescribeResult, enumsTypes, paramNames)
|
37
36
|
};
|
38
37
|
if (traverseResult.queryType === 'Update') {
|
39
|
-
descResult.data = getDataForQuery(traverseResult, postgresDescribeResult, paramNames);
|
38
|
+
descResult.data = getDataForQuery(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints, paramNames);
|
40
39
|
}
|
41
40
|
if (traverseResult.returning) {
|
42
41
|
descResult.returning = traverseResult.returning;
|
@@ -77,45 +76,70 @@ function transformToMap(dbSchema) {
|
|
77
76
|
}, {});
|
78
77
|
return hash;
|
79
78
|
}
|
80
|
-
function mapToColumnInfo(col, posgresTypes, colInfo) {
|
79
|
+
function mapToColumnInfo(col, posgresTypes, enumTypes, checkConstraints, colInfo) {
|
81
80
|
var _a;
|
81
|
+
const constraintKey = `[${colInfo.table_schema}][${colInfo.table_name}][${colInfo.column_name}]`;
|
82
82
|
return {
|
83
83
|
columnName: col.name,
|
84
84
|
notNull: !colInfo.is_nullable,
|
85
|
-
type: (_a = posgresTypes
|
85
|
+
type: (_a = createType(col.typeId, posgresTypes, enumTypes.get(col.typeId), checkConstraints[constraintKey])) !== null && _a !== void 0 ? _a : '?',
|
86
86
|
table: colInfo.table_name
|
87
87
|
};
|
88
88
|
}
|
89
|
-
function
|
89
|
+
function createType(typeId, postgresTypes, enumType, checkConstraint) {
|
90
|
+
if (enumType) {
|
91
|
+
return createEnumType(enumType);
|
92
|
+
}
|
93
|
+
if (checkConstraint) {
|
94
|
+
return checkConstraint;
|
95
|
+
}
|
96
|
+
return postgresTypes[typeId];
|
97
|
+
}
|
98
|
+
function createEnumType(enumList) {
|
99
|
+
const enumListStr = enumList.map(col => `'${col.enumlabel}'`).join(',');
|
100
|
+
return `enum(${enumListStr})`;
|
101
|
+
}
|
102
|
+
function mapToParamDef(postgresTypes, enumTypes, paramName, paramType, checkConstraint, notNull, isList) {
|
90
103
|
const arrayType = isList ? '[]' : '';
|
91
104
|
return {
|
92
105
|
name: paramName,
|
93
106
|
notNull,
|
94
|
-
columnType: `${
|
107
|
+
columnType: `${createType(paramType, postgresTypes, enumTypes.get(paramType), checkConstraint)}${arrayType}`
|
95
108
|
};
|
96
109
|
}
|
97
110
|
function describeQuery(postgres, sql, namedParameters) {
|
98
|
-
return (0, postgres_1.loadDbSchema)(postgres)
|
99
|
-
.andThen(dbSchema => {
|
111
|
+
return neverthrow_1.ResultAsync.combine([(0, postgres_1.loadDbSchema)(postgres), (0, postgres_1.loadEnums)(postgres), (0, postgres_1.loadCheckConstraints)(postgres)])
|
112
|
+
.andThen(([dbSchema, enumsTypes, checkConstraints]) => {
|
100
113
|
return (0, postgres_1.postgresDescribe)(postgres, sql)
|
101
|
-
.andThen(analyzeResult =>
|
114
|
+
.andThen(analyzeResult => {
|
115
|
+
const describeParameters = {
|
116
|
+
sql,
|
117
|
+
postgresDescribeResult: analyzeResult,
|
118
|
+
dbSchema,
|
119
|
+
enumsTypes,
|
120
|
+
checkConstraints,
|
121
|
+
namedParameters
|
122
|
+
};
|
123
|
+
return describeQueryRefine(describeParameters);
|
124
|
+
});
|
102
125
|
});
|
103
126
|
}
|
104
|
-
function getColumnsForQuery(traverseResult, postgresDescribeResult) {
|
105
|
-
return postgresDescribeResult.columns.map((col, index) => mapToColumnInfo(col, postgres_2.postgresTypes, traverseResult.columns[index]));
|
127
|
+
function getColumnsForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints) {
|
128
|
+
return postgresDescribeResult.columns.map((col, index) => mapToColumnInfo(col, postgres_2.postgresTypes, enumTypes, checkConstraints, traverseResult.columns[index]));
|
106
129
|
}
|
107
|
-
function getParamtersForQuery(traverseResult, postgresDescribeResult, paramNames) {
|
130
|
+
function getParamtersForQuery(traverseResult, postgresDescribeResult, enumTypes, paramNames) {
|
108
131
|
const namedParametersIndexes = createIndexToNameMap(paramNames);
|
109
132
|
if (traverseResult.queryType === 'Copy') {
|
110
133
|
return getColumnsForCopyStmt(traverseResult);
|
111
134
|
}
|
112
135
|
return postgresDescribeResult.parameters
|
113
|
-
.map((
|
136
|
+
.map((paramType, index) => {
|
114
137
|
const paramName = namedParametersIndexes.get(index);
|
115
138
|
const indexes = paramNames.flatMap((name, index) => name === paramName ? [index] : []);
|
116
|
-
const notNull = indexes.every(index => traverseResult.parametersNullability[index]);
|
139
|
+
const notNull = indexes.every(index => traverseResult.parametersNullability[index].isNotNull);
|
117
140
|
const paramList = indexes.every(index => traverseResult.parameterList[index]);
|
118
|
-
const
|
141
|
+
const paramCheckConstraint = indexes.map(i => { var _a; return (_a = traverseResult.parametersNullability[i]) === null || _a === void 0 ? void 0 : _a.checkConstraint; }).find(Boolean) || null;
|
142
|
+
const paramResult = mapToParamDef(postgres_2.postgresTypes, enumTypes, paramName, paramType, paramCheckConstraint, notNull, paramList);
|
119
143
|
return paramResult;
|
120
144
|
});
|
121
145
|
}
|
@@ -130,13 +154,13 @@ function getColumnsForCopyStmt(traverseResult) {
|
|
130
154
|
return result;
|
131
155
|
});
|
132
156
|
}
|
133
|
-
function getParamtersForWhere(traverseResult, postgresDescribeResult, paramNames) {
|
157
|
+
function getParamtersForWhere(traverseResult, postgresDescribeResult, enumTypes, checkConstraints, paramNames) {
|
134
158
|
const indexOffset = traverseResult.parametersNullability.length;
|
135
159
|
return postgresDescribeResult.parameters.slice(indexOffset)
|
136
|
-
.map((
|
160
|
+
.map((paramType, index) => { var _a, _b; return mapToParamDef(postgres_2.postgresTypes, enumTypes, paramNames[index + indexOffset], paramType, checkConstraints[index + indexOffset], (_b = (_a = traverseResult.whereParamtersNullability) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : true, traverseResult.parameterList[index + indexOffset]); });
|
137
161
|
}
|
138
|
-
function getDataForQuery(traverseResult, postgresDescribeResult, paramNames) {
|
162
|
+
function getDataForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints, paramNames) {
|
139
163
|
return postgresDescribeResult.parameters.slice(0, traverseResult.parametersNullability.length)
|
140
|
-
.map((
|
164
|
+
.map((paramType, index) => { var _a; return mapToParamDef(postgres_2.postgresTypes, enumTypes, paramNames[index], paramType, checkConstraints[index], (_a = traverseResult.parametersNullability[index].isNotNull) !== null && _a !== void 0 ? _a : true, traverseResult.parameterList[index]); });
|
141
165
|
}
|
142
166
|
//# sourceMappingURL=describe.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enum-parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.transformCheckToEnum = transformCheckToEnum;
|
4
|
+
function transformCheckToEnum(checkStr) {
|
5
|
+
const regex = /ARRAY\[(.*?)\]/;
|
6
|
+
const match = checkStr.match(regex);
|
7
|
+
if (!match || match.length < 2) {
|
8
|
+
return null; // Not a match or bad format
|
9
|
+
}
|
10
|
+
// Extract the array contents
|
11
|
+
const arrayContent = match[1];
|
12
|
+
// Split by commas that are not inside quotes (basic case)
|
13
|
+
const values = arrayContent
|
14
|
+
.split(',')
|
15
|
+
.map(s => s.trim().replace(/::text$/, '').replace(/^'(.*)'$/, '$1')) // Remove ::text and surrounding single quotes
|
16
|
+
.map(s => `'${s}'`); // Re-wrap clean value in single quotes
|
17
|
+
return `enum(${values.join(',')})`;
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=enum-parser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enum-parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":";;AAAA,oDAkBC;AAlBD,SAAgB,oBAAoB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAG,gBAAgB,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC1C,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAG,YAAY;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAE,8CAA8C;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAE7D,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enum_parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum_parser.ts"],"names":[],"mappings":"AAAA,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB7D"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
function transformCheckToEnum(checkStr) {
|
3
|
+
const regex = /ARRAY\[(.*?)\]/;
|
4
|
+
const match = checkStr.match(regex);
|
5
|
+
if (!match || match.length < 2) {
|
6
|
+
return null; // Not a match or bad format
|
7
|
+
}
|
8
|
+
// Extract the array contents
|
9
|
+
const arrayContent = match[1];
|
10
|
+
// Split by commas that are not inside quotes (basic case)
|
11
|
+
const values = arrayContent
|
12
|
+
.split(',')
|
13
|
+
.map(s => s.trim().replace(/::text$/, '').replace(/^'(.*)'$/, '$1')) // Remove ::text and surrounding single quotes
|
14
|
+
.map(s => `'${s}'`); // Re-wrap clean value in single quotes
|
15
|
+
return `enum(${values.join(', ')})`;
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=enum_parser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enum_parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum_parser.ts"],"names":[],"mappings":";AAAA,SAAS,oBAAoB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC1C,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAG,YAAY;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAE,8CAA8C;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAE7D,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { PostgresTraverseResult } from './traverse';
|
2
2
|
import { PostgresColumnSchema } from '../drivers/types';
|
3
3
|
import { Result } from 'neverthrow';
|
4
|
-
|
5
|
-
export declare function
|
4
|
+
import { CheckConstraintResult } from '../drivers/postgres';
|
5
|
+
export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): PostgresTraverseResult;
|
6
|
+
export declare function safeParseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): Result<PostgresTraverseResult, string>;
|
6
7
|
//# sourceMappingURL=parser.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,sBAAsB,CAMnK;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CASvL"}
|
@@ -5,14 +5,14 @@ exports.safeParseSql = safeParseSql;
|
|
5
5
|
const postgres_1 = require("@wsporto/typesql-parser/postgres");
|
6
6
|
const traverse_1 = require("./traverse");
|
7
7
|
const neverthrow_1 = require("neverthrow");
|
8
|
-
function parseSql(sql, dbSchema, options = (0, traverse_1.defaultOptions)()) {
|
8
|
+
function parseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
|
9
9
|
const parser = (0, postgres_1.parseSql)(sql);
|
10
|
-
const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, options);
|
10
|
+
const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, checkConstraints, options);
|
11
11
|
return traverseResult;
|
12
12
|
}
|
13
|
-
function safeParseSql(sql, dbSchema, options = (0, traverse_1.defaultOptions)()) {
|
13
|
+
function safeParseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
|
14
14
|
try {
|
15
|
-
const result = parseSql(sql, dbSchema, options);
|
15
|
+
const result = parseSql(sql, dbSchema, checkConstraints, options);
|
16
16
|
return (0, neverthrow_1.ok)(result);
|
17
17
|
}
|
18
18
|
catch (e) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;AAMA,4BAMC;AAED,oCASC;AAvBD,+DAAyE;AACzE,yCAAiF;AAEjF,2CAA6C;AAG7C,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC1I,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEvF,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC9I,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,IAAA,eAAE,EAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC"}
|
@@ -3,6 +3,7 @@ import { PostgresColumnSchema } from '../drivers/types';
|
|
3
3
|
import { DynamicSqlInfo2 } from '../mysql-query-analyzer/types';
|
4
4
|
import { QueryType } from '../types';
|
5
5
|
import { Relation2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
|
6
|
+
import { CheckConstraintResult } from '../drivers/postgres';
|
6
7
|
export type NotNullInfo = {
|
7
8
|
table_schema: string;
|
8
9
|
table_name: string;
|
@@ -14,7 +15,7 @@ export type PostgresTraverseResult = {
|
|
14
15
|
queryType: QueryType;
|
15
16
|
multipleRowsResult: boolean;
|
16
17
|
columns: NotNullInfo[];
|
17
|
-
parametersNullability:
|
18
|
+
parametersNullability: ParamInfo[];
|
18
19
|
whereParamtersNullability?: boolean[];
|
19
20
|
parameterList: boolean[];
|
20
21
|
limit?: number;
|
@@ -22,6 +23,10 @@ export type PostgresTraverseResult = {
|
|
22
23
|
relations?: Relation2[];
|
23
24
|
dynamicQueryInfo?: DynamicSqlInfo2;
|
24
25
|
};
|
26
|
+
type ParamInfo = {
|
27
|
+
isNotNull: boolean;
|
28
|
+
checkConstraint?: string;
|
29
|
+
};
|
25
30
|
export type Relation3 = {
|
26
31
|
name: string;
|
27
32
|
alias: string;
|
@@ -33,5 +38,6 @@ export type TraverseOptions = {
|
|
33
38
|
collectDynamicQueryInfo?: boolean;
|
34
39
|
};
|
35
40
|
export declare function defaultOptions(): TraverseOptions;
|
36
|
-
export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], options: TraverseOptions): PostgresTraverseResult;
|
41
|
+
export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options: TraverseOptions): PostgresTraverseResult;
|
42
|
+
export {};
|
37
43
|
//# sourceMappingURL=traverse.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkqC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAE16C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkqC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAE16C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC;IACtC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACnC,CAAA;AAED,KAAK,SAAS,GAAG;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAuBD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED,wBAAgB,cAAc,IAAI,eAAe,CAKhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAiD1K"}
|
@@ -11,7 +11,7 @@ function defaultOptions() {
|
|
11
11
|
collectDynamicQueryInfo: false
|
12
12
|
};
|
13
13
|
}
|
14
|
-
function traverseSmt(stmt, dbSchema, options) {
|
14
|
+
function traverseSmt(stmt, dbSchema, checkConstraints, options) {
|
15
15
|
const { collectNestedInfo = false, collectDynamicQueryInfo = false } = options;
|
16
16
|
const traverseResult = {
|
17
17
|
columnsNullability: [],
|
@@ -34,7 +34,8 @@ function traverseSmt(stmt, dbSchema, options) {
|
|
34
34
|
dbSchema,
|
35
35
|
collectNestedInfo,
|
36
36
|
collectDynamicQueryInfo,
|
37
|
-
fromColumns: []
|
37
|
+
fromColumns: [],
|
38
|
+
checkConstraints
|
38
39
|
};
|
39
40
|
const selectstmt = stmt.selectstmt();
|
40
41
|
if (selectstmt) {
|
@@ -88,7 +89,7 @@ function traverseSelectstmt(selectstmt, context, traverseResult) {
|
|
88
89
|
queryType: 'Select',
|
89
90
|
multipleRowsResult,
|
90
91
|
columns,
|
91
|
-
parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
|
92
|
+
parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
|
92
93
|
parameterList: paramIsListResult,
|
93
94
|
limit
|
94
95
|
};
|
@@ -475,6 +476,10 @@ function checkParamterNullability(column, traverseResult) {
|
|
475
476
|
}
|
476
477
|
}
|
477
478
|
}
|
479
|
+
function getCheckConstraint(col, checkConstraints) {
|
480
|
+
const key = `[${col.table_schema}][${col.table_name}][${col.column_name}]`;
|
481
|
+
return checkConstraints[key];
|
482
|
+
}
|
478
483
|
function traverse_expr_compare(a_expr_compare, context, traverseResult) {
|
479
484
|
const a_expr_like_list = a_expr_compare.a_expr_like_list();
|
480
485
|
const result = a_expr_like_list.map(a_expr_like => traverse_expr_like(a_expr_like, context, traverseResult));
|
@@ -482,6 +487,16 @@ function traverse_expr_compare(a_expr_compare, context, traverseResult) {
|
|
482
487
|
if (a_expr_like_list.length === 1) {
|
483
488
|
return result[0];
|
484
489
|
}
|
490
|
+
if (a_expr_like_list.length === 2) {
|
491
|
+
const constraintLeft = getCheckConstraint(result[0], context.checkConstraints);
|
492
|
+
const constraintRight = getCheckConstraint(result[1], context.checkConstraints);
|
493
|
+
if (isParameter(result[0].column_name) && constraintRight) {
|
494
|
+
traverseResult.parameters.at(-1).checkConstraint = constraintRight;
|
495
|
+
}
|
496
|
+
if (isParameter(result[1].column_name) && constraintLeft) {
|
497
|
+
traverseResult.parameters.at(-1).checkConstraint = constraintLeft;
|
498
|
+
}
|
499
|
+
}
|
485
500
|
return {
|
486
501
|
column_name: '?column?',
|
487
502
|
is_nullable: result.some(col => col.is_nullable),
|
@@ -797,6 +812,19 @@ function traversefunc_application(func_application, context, traverseResult) {
|
|
797
812
|
if (functionName === 'generate_series') {
|
798
813
|
return true;
|
799
814
|
}
|
815
|
+
if (functionName === 'row_number'
|
816
|
+
|| functionName === 'rank'
|
817
|
+
|| functionName === 'dense_rank'
|
818
|
+
|| functionName === 'percent_rank'
|
819
|
+
|| functionName === 'cume_dist') {
|
820
|
+
return true;
|
821
|
+
}
|
822
|
+
if (functionName === 'first_value'
|
823
|
+
|| functionName === 'last_value'
|
824
|
+
|| functionName === 'ntile') {
|
825
|
+
const firstArg = argsResult[0];
|
826
|
+
return firstArg;
|
827
|
+
}
|
800
828
|
return false;
|
801
829
|
}
|
802
830
|
function traversefunc_expr_common_subexpr(func_expr_common_subexpr, context, traverseResult) {
|
@@ -1064,6 +1092,7 @@ function traverseInsertstmt(insertstmt, dbSchema) {
|
|
1064
1092
|
const context = {
|
1065
1093
|
dbSchema,
|
1066
1094
|
fromColumns: insertColumns,
|
1095
|
+
checkConstraints: {},
|
1067
1096
|
collectNestedInfo: false,
|
1068
1097
|
collectDynamicQueryInfo: false
|
1069
1098
|
};
|
@@ -1076,12 +1105,13 @@ function traverseInsertstmt(insertstmt, dbSchema) {
|
|
1076
1105
|
}
|
1077
1106
|
const returning_clause = insertstmt.returning_clause();
|
1078
1107
|
const returninColumns = returning_clause ? traverse_target_list(returning_clause.target_list(), context, traverseResult) : [];
|
1108
|
+
const paramIsListResult = getInParameterList(insertstmt);
|
1079
1109
|
const result = {
|
1080
1110
|
queryType: 'Insert',
|
1081
1111
|
multipleRowsResult: false,
|
1082
|
-
parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
|
1112
|
+
parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
|
1083
1113
|
columns: returninColumns,
|
1084
|
-
parameterList:
|
1114
|
+
parameterList: paramIsListResult
|
1085
1115
|
};
|
1086
1116
|
if (returning_clause) {
|
1087
1117
|
result.returning = true;
|
@@ -1098,6 +1128,7 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
|
|
1098
1128
|
const context = {
|
1099
1129
|
dbSchema,
|
1100
1130
|
fromColumns: deleteColumns,
|
1131
|
+
checkConstraints: {},
|
1101
1132
|
collectNestedInfo: false,
|
1102
1133
|
collectDynamicQueryInfo: false
|
1103
1134
|
};
|
@@ -1109,7 +1140,7 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
|
|
1109
1140
|
const result = {
|
1110
1141
|
queryType: 'Delete',
|
1111
1142
|
multipleRowsResult: false,
|
1112
|
-
parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
|
1143
|
+
parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
|
1113
1144
|
columns: returninColumns,
|
1114
1145
|
parameterList: paramIsListResult
|
1115
1146
|
};
|
@@ -1118,33 +1149,43 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
|
|
1118
1149
|
}
|
1119
1150
|
return result;
|
1120
1151
|
}
|
1152
|
+
function addConstraintIfNotNull(checkConstraint) {
|
1153
|
+
return checkConstraint !== undefined ? { checkConstraint } : {};
|
1154
|
+
}
|
1121
1155
|
function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
|
1156
|
+
var _a;
|
1122
1157
|
const relation_expr_opt_alias = updatestmt.relation_expr_opt_alias();
|
1123
|
-
const tableName = relation_expr_opt_alias.getText();
|
1124
|
-
const
|
1158
|
+
const tableName = relation_expr_opt_alias.relation_expr().getText();
|
1159
|
+
const tableAlias = ((_a = relation_expr_opt_alias.colid()) === null || _a === void 0 ? void 0 : _a.getText()) || '';
|
1160
|
+
const updateColumns = dbSchema.filter(col => col.table_name.toLowerCase() === tableName.toLowerCase())
|
1161
|
+
.map(col => (Object.assign(Object.assign({}, col), { table_name: tableAlias || col.table_name })));
|
1125
1162
|
const context = {
|
1126
1163
|
dbSchema,
|
1127
1164
|
fromColumns: updateColumns,
|
1165
|
+
checkConstraints: {},
|
1128
1166
|
collectNestedInfo: false,
|
1129
1167
|
collectDynamicQueryInfo: false
|
1130
1168
|
};
|
1131
1169
|
updatestmt.set_clause_list().set_clause_list()
|
1132
1170
|
.forEach(set_clause => traverse_set_clause(set_clause, context, traverseResult));
|
1171
|
+
const from_clause = updatestmt.from_clause();
|
1172
|
+
const fromColumns = from_clause ? traverse_from_clause(from_clause, context, traverseResult) : [];
|
1133
1173
|
const parametersBefore = traverseResult.parameters.length;
|
1134
1174
|
const where_clause = updatestmt.where_or_current_clause();
|
1135
1175
|
if (where_clause) {
|
1136
1176
|
const a_expr = where_clause.a_expr();
|
1137
|
-
traverse_a_expr(a_expr, context, traverseResult);
|
1177
|
+
traverse_a_expr(a_expr, Object.assign(Object.assign({}, context), { fromColumns: updateColumns.concat(fromColumns) }), traverseResult);
|
1138
1178
|
}
|
1139
1179
|
const whereParameters = traverseResult.parameters.slice(parametersBefore);
|
1140
1180
|
const returning_clause = updatestmt.returning_clause();
|
1141
1181
|
const returninColumns = returning_clause ? traverse_target_list(returning_clause.target_list(), context, traverseResult) : [];
|
1182
|
+
const paramIsListResult = getInParameterList(updatestmt);
|
1142
1183
|
const result = {
|
1143
1184
|
queryType: 'Update',
|
1144
1185
|
multipleRowsResult: false,
|
1145
|
-
parametersNullability: traverseResult.parameters.slice(0, parametersBefore).map(param => param.isNotNull),
|
1186
|
+
parametersNullability: traverseResult.parameters.slice(0, parametersBefore).map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
|
1146
1187
|
columns: returninColumns,
|
1147
|
-
parameterList:
|
1188
|
+
parameterList: paramIsListResult,
|
1148
1189
|
whereParamtersNullability: whereParameters.map(param => param.isNotNull)
|
1149
1190
|
};
|
1150
1191
|
if (returning_clause) {
|
@@ -1488,7 +1529,9 @@ const aggregateFunctions = new Set([
|
|
1488
1529
|
function isAggregateFunction_c_expr(func_expr) {
|
1489
1530
|
var _a, _b, _c;
|
1490
1531
|
const funcName = (_c = (_b = (_a = func_expr === null || func_expr === void 0 ? void 0 : func_expr.func_application()) === null || _a === void 0 ? void 0 : _a.func_name()) === null || _b === void 0 ? void 0 : _b.getText()) === null || _c === void 0 ? void 0 : _c.toLowerCase();
|
1491
|
-
|
1532
|
+
// RANK(), DENSE_RANK(), PERCENT_RANK() - they are window functions, not aggregate functions,
|
1533
|
+
// even though your query is returning them from a join involving pg_aggregate.
|
1534
|
+
return !func_expr.over_clause() && aggregateFunctions.has(funcName);
|
1492
1535
|
}
|
1493
1536
|
function isSetReturningFunction_target_el(target_el) {
|
1494
1537
|
if (target_el instanceof PostgreSQLParser_1.Target_labelContext) {
|
@@ -1505,6 +1548,9 @@ function isSetReturningFunction_c_expr(func_expr) {
|
|
1505
1548
|
}
|
1506
1549
|
function isSingleRowResult_where(a_expr, uniqueKeys) {
|
1507
1550
|
var _a, _b;
|
1551
|
+
if (uniqueKeys.length === 0) {
|
1552
|
+
return false;
|
1553
|
+
}
|
1508
1554
|
const a_expr_or_list = ((_b = (_a = a_expr.a_expr_qual()) === null || _a === void 0 ? void 0 : _a.a_expr_lessless()) === null || _b === void 0 ? void 0 : _b.a_expr_or_list()) || [];
|
1509
1555
|
if (a_expr_or_list.length > 1 || a_expr_or_list[0].OR_list().length > 0) {
|
1510
1556
|
return false;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":";;AA8DA,wCAKC;AAED,kCAgDC;AArHD,wFAA06C;AAC16C,4DAA4D;AAE5D,2EAAuF;AA2DvF,SAAgB,cAAc;IAC7B,OAAO;QACN,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;KAC9B,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,IAAiB,EAAE,QAAgC,EAAE,OAAwB;IACxG,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,uBAAuB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE/E,MAAM,cAAc,GAAmB;QACtC,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,KAAK;KAChB,CAAA;IACD,IAAI,iBAAiB,EAAE,CAAC;QACvB,cAAc,CAAC,SAAS,GAAG,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,uBAAuB,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAoB;YACzC,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACT,CAAA;QACD,cAAc,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IACpD,CAAC;IACD,MAAM,eAAe,GAAoB;QACxC,QAAQ;QACR,iBAAiB;QACjB,uBAAuB;QACvB,WAAW,EAAE,EAAE;KACf,CAAA;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAsB,EAAE,UAAe;;IACrE,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,MAAA,GAAG,CAAC,QAAQ,0CAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7B,IAAI,KAAK,YAAY,kCAAiB,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAsB;IACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,qCAAkB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAE,MAAc,CAAC,KAAK,EAAE,CAAC,CAAC;IACxG,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA6B,EAAE,OAAwB,EAAE,cAA8B;IAElH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACzE,sDAAsD;IACtD,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE1F,MAAM,kBAAkB,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,sBAAsB,GAA2B;QACtD,SAAS,EAAE,QAAQ;QACnB,kBAAkB;QAClB,OAAO;QACP,qBAAqB,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9E,aAAa,EAAE,iBAAiB;QAChC,KAAK;KACL,CAAC;IACF,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9B,sBAAsB,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;IAC7D,CAAC;IACD,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACrC,sBAAsB,CAAC,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAC;IAC3E,CAAC;IACD,OAAO,sBAAsB,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA6B,EAAE,OAAwB,EAAE,cAA8B;IACnH,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,yBAAyB,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAyC,EAAE,OAAwB,EAAE,cAA8B;IACrI,IAAI,WAAW,GAAkB,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;IAClD,IAAI,WAAW,EAAE,CAAC;QACjB,WAAW,CAAC,QAAQ,EAAE,CAAC,sBAAsB,EAAE;aAC7C,OAAO,CAAC,iBAAiB,CAAC,EAAE;YAC5B,MAAM,UAAU,mCAAyB,OAAO,KAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAE,CAAC;YACzG,MAAM,UAAU,GAAG,0BAA0B,CAAC,iBAAiB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YAC7F,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACvD,MAAM,UAAU,mCAAQ,OAAO,KAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAE,CAAC;IACxF,MAAM,YAAY,GAAG,sBAAsB,CAAC,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACrD,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QACzD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC;QAChE,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBACrC,QAAQ,IAAI,IAAA,mCAAkB,EAAC,YAAY,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QACnD,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,CAAC;YACnE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBACrC,QAAQ,IAAI,GAAG,GAAG,IAAA,mCAAkB,EAAC,aAAa,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;YAC/G,cAAc,CAAC,gBAAiB,CAAC,WAAW,GAAG;gBAC9C,QAAQ;gBACR,UAAU;aACV,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,SAAS,0BAA0B,CAAC,iBAA2C,EAAE,OAAwB,EAAE,cAA8B;;IACxI,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;IACpE,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,kCAAO,OAAO,KAAE,uBAAuB,EAAE,KAAK,KAAI,cAAc,CAAC,CAAC;IACjH,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,iCAAM,GAAG,KAAE,UAAU,EAAE,SAAS,IAAG,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;QAC/G,MAAA,cAAc,CAAC,gBAAgB,0CAAE,IAAI,CAAC,IAAI,CAAC;YAC1C,QAAQ,EAAE,IAAA,mCAAkB,EAAC,iBAAiB,CAAC;YAC/C,YAAY,EAAE,SAAS;YACvB,UAAU;SACV,CAAC,CAAA;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAAC,aAAmC,EAAE,OAAwB,EAAE,cAA8B;IAC5H,MAAM,4BAA4B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAAC;IAClF,IAAI,aAAa,GAAkB,EAAE,CAAC;IACtC,IAAI,4BAA4B,EAAE,CAAC;QAClC,aAAa,GAAG,gCAAgC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO;IACP,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,4BAA4B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1E,MAAM,YAAY,GAAG,gCAAgC,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACpH,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACxD,MAAM,GAAG,GAAgB;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,WAAW;gBACvE,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,gCAAgC,CAAC,uBAAuD,EAAE,OAAwB,EAAE,cAA8B;IAC1J,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,IAAI,qBAAqB,EAAE,CAAC;QAC3B,OAAO,8BAA8B,CAAC,qBAAqB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,8BAA8B,CAAC,qBAAmD,EAAE,OAAwB,EAAE,cAA8B;;IACpJ,MAAM,WAAW,GAAkB,EAAE,CAAC;IAEtC,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAChH,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,EAAE,CAAC;IAC5D,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,sBAAsB,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACrF,OAAO,aAAa,CAAC;IACtB,CAAC;IACD,MAAM,YAAY,GAAG,MAAA,qBAAqB,CAAC,YAAY,EAAE,0CAAE,MAAM,EAAE,CAAC;IACpE,4BAA4B;IAC5B,MAAM,UAAU,mCAAQ,OAAO,KAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAE,CAAC;IACxF,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QACzD,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAA,cAAc,CAAC,gBAAgB,0CAAE,KAAK,CAAC,IAAI,CAAC;gBAC3C,QAAQ,EAAE,OAAO,IAAA,mCAAkB,EAAC,YAAY,CAAC,EAAE;gBACnD,UAAU;gBACV,iBAAiB,EAAE,SAAS;aAC5B,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IACD,MAAA,MAAA,qBAAqB,CAAC,YAAY,EAAE,0CAAE,aAAa,EAAE,0CAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC9F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACZ,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACrD,CAAC;IACF,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAA,qBAAqB,CAAC,aAAa,EAAE,0CAAE,MAAM,EAAE,CAAC;IACpE,IAAI,WAAW,EAAE,CAAC;QACjB,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,eAAe,GAAG,mCAAmC,CAAC,qBAAqB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/G,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAqB;IAC9C,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,mCAAgB,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,UAAU;SAC1B,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,UAA8B,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;IACJ,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAChF,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,sBAAsB,CAAC,aAAmC,EAAE,OAAwB,EAAE,cAA8B;IAC5H,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IACtD,OAAO,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;IAChH,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QACvF,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,mCAAmC,CAAC,qBAAmD,EAAE,OAAwB,EAAE,cAA8B;IACzJ,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YACjB,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IACD,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;IACtH,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzE,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBACrC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;oBACrB,MAAA,cAAc,CAAC,gBAAgB,0CAAE,MAAM,CAAC,IAAI,CAAC;wBAC5C,QAAQ,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE;wBAChD,mBAAmB,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE;wBAC3D,iBAAiB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;wBACnC,UAAU,EAAE,EAAE;qBACd,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAA;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;;IAChH,IAAI,SAAS,YAAY,sCAAmB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,IAAI,KAAK,EAAE,CAAC;YACX,MAAA,cAAc,CAAC,SAAS,0CAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC;uBACrF,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;oBACpD,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACF,CAAC,CAAC,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;YAC/G,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,MAAA,cAAc,CAAC,gBAAgB,0CAAE,MAAM,CAAC,IAAI,CAAC;gBAC5C,QAAQ,EAAE,IAAA,mCAAkB,EAAC,SAAS,CAAC;gBACvC,mBAAmB,EAAE,IAAA,mCAAkB,EAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC3D,iBAAiB,EAAE,SAAS;gBAC5B,UAAU;aACV,CAAC,CAAA;QACH,CAAC;QACD,OAAO;YACN,WAAW,EAAE,KAAK,IAAI,UAAU,CAAC,WAAW;YAC5C,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,YAAY,EAAE,UAAU,CAAC,YAAY;SACrC,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB,EAAE,OAAwB,EAAE,cAA8B;IACvG,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,OAAO;QACN,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KAChB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;IACtH,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IACtD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,wBAAwB,CAAC,eAAe,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,CAAC,uCAAuC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,wBAAwB,CAAC,eAAuC,EAAE,OAAwB,EAAE,cAA8B;IAClI,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,CAAC,2CAA2C,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;IAC9G,iBAAiB;IACjB,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACrH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO;QACN,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;QAChD,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KACM,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA6B,EAAE,OAAwB,EAAE,cAA8B;IACjH,MAAM,MAAM,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACtI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO;QACN,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;QAChD,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KACM,CAAC;AACzB,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAqC,EAAE,OAAwB,EAAE,cAA8B;IAC7H,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC/C,OAAO;QACN,WAAW,EAAE,cAAc,CAAC,OAAO,EAAE;QACrC,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KAChB,CAAA;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;IAC9G,MAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;IAClD,IAAI,cAAc,GAAG,SAAS,CAAC;IAC/B,IAAI,YAAY,EAAE,CAAC;QAClB,cAAc,GAAG,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACb,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAChD,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,OAAO;QACN,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE;QAChC,oCAAoC;QACpC,oDAAoD;QACpD,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAe,CAAC,WAAW;QAClE,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;KACM,CAAA;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAuB,EAAE,OAAwB,EAAE,cAA8B;IAC1G,IAAI,OAAO,YAAY,wCAAqB,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxD,2BAA2B,CAAC,kBAAkB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,YAAY,sCAAmB,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAqC,EAAE,OAAwB,EAAE,cAA8B;IAC3H,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;IACnD,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,CAAC,sCAAsC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAmC,EAAE,OAAwB,EAAE,cAA8B;IAC1H,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,CAAC,uCAAuC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAmC,EAAE,OAAwB,EAAE,cAA8B;IAC1H,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IACtD,IAAI,cAAc,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9E,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,KAAK,CAAC,uCAAuC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAmB,EAAE,cAA8B;IACpF,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAqC,EAAE,OAAwB,EAAE,cAA8B;IAC7H,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7G,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAChD,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;IACF,CAAC;IACD,MAAM,kBAAkB,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAC/D,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,2BAA2B,CAAC,kBAAkB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACxF,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAChD,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;IACF,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAChE,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;IACF,CAAC;IACD,MAAM,KAAK,CAAC,wCAAwC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;IACpH,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;IAC9D,IAAI,mBAAmB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACzH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAChD,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SACM,CAAA;IACxB,CAAC;IACD,MAAM,KAAK,CAAC,qCAAqC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAqC,EAAE,OAAwB,EAAE,cAA8B;IAC7H,MAAM,mBAAmB,GAAG,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,0BAA0B,CAAC,mBAAmB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,KAAK,CAAC,wCAAwC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,0BAA0B,CAAC,mBAA+C,EAAE,OAAwB,EAAE,cAA8B;IAC5I,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC;IACpD,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1H,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,MAAM,GAAgB;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YACpD,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,KAAK,CAAC,6CAA6C,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA6B,EAAE,OAAwB,EAAE,cAA8B;IACjH,MAAM,eAAe,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;IACvD,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACnI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,MAAM,GAAgB;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;YACrE,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAiC,EAAE,OAAwB,EAAE,cAA8B;IACvH,MAAM,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,EAAE,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,EAAE;aACvD,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACjG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,MAAM,GAAgB;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;YACrE,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,KAAK,CAAC,sCAAsC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,wBAAwB,CAAC,iBAA2C,EAAE,OAAwB,EAAE,cAA8B;IACtI,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IACpE,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,0BAA0B,CAAC,mBAAmB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,KAAK,CAAC,2CAA2C,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,0BAA0B,CAAC,mBAA+C,EAAE,OAAwB,EAAE,cAA8B;IAC5I,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC;IAC5D,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,CAAC,6CAA6C,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAqC,EAAE,OAAwB,EAAE,cAA8B;IAC7H,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;IACzD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,sBAAsB,CAAC,eAAe,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,KAAK,CAAC,wCAAwC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,sBAAsB,CAAC,eAAuC,EAAE,OAAwB,EAAE,cAA8B;IAChI,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,CAAC,yCAAyC,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA2B,EAAE,WAA0B;IACjF,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB,EAAE,OAAwB,EAAE,cAA8B;;IACtG,IAAI,MAAM,YAAY,qCAAkB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC;YAChD,OAAO;gBACN,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE;gBACjC,WAAW;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC9B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;gBAC9B,SAAS,EAAE,CAAC,OAAO,CAAC,cAAc;aAClC,CAAC,CAAC;YACH,OAAO;gBACN,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;gBACrC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;gBACrC,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAA,MAAM,CAAC,SAAS,EAAE,0CAAE,gBAAgB,EAAE,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,wBAAwB,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACtF,OAAO;gBACN,WAAW,EAAE,CAAA,MAAA,gBAAgB,CAAC,SAAS,EAAE,0CAAE,OAAO,EAAE,KAAI,gBAAgB,CAAC,OAAO,EAAE;gBAClF,WAAW,EAAE,CAAC,SAAS;gBACvB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,MAAM,wBAAwB,GAAG,MAAA,MAAM,CAAC,SAAS,EAAE,0CAAE,wBAAwB,EAAE,CAAC;QAChF,IAAI,wBAAwB,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,gCAAgC,CAAC,wBAAwB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACtG,OAAO;gBACN,WAAW,EAAE,CAAA,MAAA,MAAA,wBAAwB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,0CAAE,IAAI,EAAE,KAAI,wBAAwB,CAAC,OAAO,EAAE;gBAC7G,WAAW,EAAE,CAAC,SAAS;gBACvB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,kBAAkB,EAAE,CAAC;YACxB,2BAA2B,CAAC,kBAAkB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACzE,OAAO;gBACN,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,gBAAgB,EAAE,CAAC;YACtB,OAAO,eAAe,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE;iBACtD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YAClE,OAAO;gBACN,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;gBACnD,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;iBACpF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YAClE,OAAO;gBACN,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;gBACnD,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aAChB,CAAA;QACF,CAAC;IACF,CAAC;IACD,IAAI,MAAM,YAAY,qCAAkB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACvE,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,CAAC,SAAS;YACvB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;IACF,CAAC;IACD,IAAI,MAAM,YAAY,uCAAoB,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACvD,2BAA2B,CAAC,kBAAkB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACzE,OAAO;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;SAChB,CAAA;IACF,CAAC;IACD,MAAM,KAAK,CAAC,iCAAiC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,WAA0B,EAAE,SAAoB;IACtE,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,CAAC;WAC7F,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5E,MAAM,MAAM,GAAgB;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAA;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,WAA0B,EAAE,WAAwB;IAC3E,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,MAAM,CAAC;eACrG,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;;IACrH,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACjJ,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,YAAY,EAAE,0CAAE,MAAM,EAAE,CAAC;IACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IACzG,OAAO,aAAa,IAAI,aAAa,CAAC;AACvC,CAAC;AAED,SAAS,mBAAmB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;IACrH,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAExF,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC3D,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC1E,OAAO,cAAc,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAI,KAAU,EAAE,SAAqC;IACtE,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,CAAC,EAAS,EAAE,EAAS,CAAC,CACtB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,gBAAyC,EAAE,OAAwB,EAAE,cAA8B;;IACpI,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1E,MAAM,kBAAkB,GAAG,CAAA,MAAA,gBAAgB,CAAC,aAAa,EAAE,0CAAE,kBAAkB,EAAE,KAAI,EAAE,CAAC;IACxF,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;IACzH,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAC/D,IAAI,kBAAkB,EAAE,CAAC;YACxB,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,IAAI,YAAY,KAAK,iBAAiB,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,gCAAgC,CAAC,wBAAyD,EAAE,OAAwB,EAAE,cAA8B;IAC5J,IAAI,wBAAwB,CAAC,QAAQ,EAAE,IAAI,wBAAwB,CAAC,QAAQ,EAAE,IAAI,wBAAwB,CAAC,KAAK,EAAE,EAAE,CAAC;QACpH,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAChD,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,kCAAO,OAAO,KAAE,cAAc,EAAE,IAAI,KAAI,cAAc,CAAC,CAAC;YACzG,OAAO,WAAW,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,wBAAwB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,wBAAwB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAmC,EAAE,OAAwB,EAAE,cAA8B;IAC3H,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,WAAW,CAAC;AACtE,CAAC;AAGD,SAAS,UAAU,CAAC,SAAoB,EAAE,WAA0B;IACnE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAoB;IAC9C,OAAO,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3F,CAAC;AAED,SAAS,eAAe,CAAC,YAAiC,EAAE,KAAkB;IAC7E,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,GAAG,mCACL,KAAK,KACR,WAAW,EAAE,CAAC,eAAe,GAC7B,CAAA;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA+B,EAAE,OAAwB,EAAE,cAA8B;IACtH,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC1C,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;IAChH,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3H,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA2B,EAAE,OAAwB,EAAE,cAA8B;;IAChH,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1D,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;aACjI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,iCAAM,GAAG,KAAE,UAAU,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAG,CAAC,CAAC;QACzE,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAE/B,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,GAA4B,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC;YAEhG,MAAM,QAAQ,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE,KAAI,IAAI,CAAC;YAC3C,MAAM,QAAQ,GAAc;gBAC3B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,KAAK;gBACZ,QAAQ;gBACR,cAAc,EAAE,EAAE;gBAClB,UAAU,EAAE,CAAA,MAAA,GAAG,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,EAAE;gBACrC,WAAW,EAAE,KAAK;gBAClB,iBAAiB,EAAE,KAAK;aACxB,CAAA;YACD,MAAA,cAAc,CAAC,SAAS,0CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;QAElD,IAAI,OAAO,CAAC,uBAAuB,IAAI,cAAc,CAAC,gBAAiB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1F,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;gBACnE,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;gBACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;gBACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjD,MAAM,UAAU,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,CAAC;gBACpC,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC1F,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,iCAAM,GAAG,KAAE,WAAW,EAAE,IAAI,IAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBAEjH,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBAC/B,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC5D,CAAC;gBACD,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBACrC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;oBAC/G,+BAA+B,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC3G,CAAC;gBAED,OAAO,aAAa,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IACD,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC1D,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,2BAA2B,CAAC,kBAAkB,kCAAO,OAAO,KAAE,uBAAuB,EAAE,KAAK,KAAI,cAAc,CAAC,CAAC;QAChI,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,iCAAM,GAAG,KAAE,UAAU,EAAE,KAAK,IAAI,GAAG,CAAC,UAAU,IAAG,CAAC,CAAC;QACxF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CAAC,SAA2B,EAAE,QAAiC,EACtG,QAAiC,EAAE,OAAsB,EAAE,UAAoB,EAAE,cAA8B;;IAC/G,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAA,mCAAkB,EAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,SAAS,CAAC,aAAa,EAAE,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjG,MAAM,SAAS,GAAG,CAAA,MAAA,SAAS,CAAC,aAAa,EAAE,0CAAE,OAAO,EAAE,KAAI,KAAK,CAAC;IAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAA,mCAAkB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAA,mCAAkB,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhE,MAAM,YAAY,GAAG,GAAG,UAAU,IAAI,QAAQ,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAC3G,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAA,cAAc,CAAC,gBAAgB,0CAAE,IAAI,CAAC,IAAI,CAAC;QAC1C,QAAQ,EAAE,YAAY;QACtB,MAAM;QACN,UAAU;QACV,YAAY,EAAE,SAAS;QACvB,aAAa,EAAE,KAAK;QACpB,cAAc;KACd,CAAC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAA0B;IACjD,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,mCAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAqB,CAAC;QACxD,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,EAAE,mCAAgB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,0BAAS,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA0B,EAAE,aAA4B,EAAE,cAA8B;;IAElH,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,eAAe,GAAG,MAAA,cAAc,CAAC,SAAS,0CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC7B,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAyB,CAAC;YAC5G,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC;YAClG,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACzF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC;gBACtC,CAAC;YACF,CAAC;iBACI,CAAC;gBACL,eAAe,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;gBAChD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,eAAe,CAAC,iBAAiB,GAAG,MAAM,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA0B,EAAE,QAA0B;IACjF,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,0BAAS,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACjE,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,2BAA2B,CAAC,kBAA6C,EAAE,OAAwB,EAAE,cAA8B;IAC3I,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;IACpE,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,2BAA2B,CAAC,mBAAmB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;IAC/D,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,yBAAyB,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,sBAAsB,CAAC,aAAmC,EAAE,QAAuB;IAC3F,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,uBAAuB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,cAAqC,EAAE,QAAuB;;IAC9F,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,MAAM,mBAAmB,GAAG,MAAA,cAAc,CAAC,WAAW,EAAE,0CAAE,mBAAmB,EAAE,CAAC;IAChF,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO;YACN,IAAI,EAAE,CAAA,MAAA,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,0CAAE,OAAO,EAAE,KAAI,EAAE;YACzD,KAAK,EAAE,UAAU;SACjB,CAAA;IACF,CAAC;IACD,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,EAAE;KACT,CAAA;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB,EAAE,QAAuB;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACtD,IAAI,kBAAkB,EAAE,CAAC;QACxB,OAAO,2BAA2B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA6B,EAAE,QAAuB;IAClF,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;IACpD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,kBAA6C,EAAE,QAAuB;IAC1G,OAAO,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB;IAC7C,0DAA0D;IAC1D,+EAA+E;IAC/E,gGAAgG;IAChG,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,MAAM,cAAc,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,CAAC;IAClD,MAAM,mBAAmB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;IACtD,MAAM,iBAAiB,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,SAAS,CAAC;IACzD,MAAM,YAAY,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAC;IAC3C,MAAM,UAAU,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC;IACzC,MAAM,mBAAmB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC;IAClD,MAAM,cAAc,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,SAAS,CAAC;IACtD,MAAM,WAAW,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;IAC9C,MAAM,cAAc,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;IAC9C,MAAM,aAAa,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;IAChD,MAAM,aAAa,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAC;IAC/C,MAAM,gBAAgB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAC;IAClD,MAAM,SAAS,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,CAAC;IAC9C,MAAM,cAAc,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC;IAC5C,MAAM,UAAU,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;IAC7C,MAAM,SAAS,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC;IACxC,MAAM,eAAe,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC;IAC7C,MAAM,WAAW,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC;IACpC,MAAM,YAAY,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC;IAC1C,OAAO,YAAY,YAAY,sCAAmB,CAAC;AACpD,CAAC;AAGD,SAAS,kBAAkB,CAAC,UAA6B,EAAE,QAAgC;IAC1F,MAAM,cAAc,GAAmB;QACtC,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,KAAK;KAChB,CAAA;IACD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvG,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,EAAE;SACxD,uBAAuB,EAAE;SACzB,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,2BAA2B,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAoB;QAChC,QAAQ;QACR,WAAW,EAAE,aAAa;QAC1B,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;KAC9B,CAAA;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC5C,kBAAkB,CAAC,UAAU,kCAAO,OAAO,KAAE,WAAW,EAAE,iBAAiB,KAAI,cAAc,CAAC,CAAC;IAE/F,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC9E,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9H,MAAM,MAAM,GAA2B;QACtC,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,KAAK;QACzB,qBAAqB,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9E,OAAO,EAAE,eAAe;QACxB,aAAa,EAAE,EAAE;KACjB,CAAA;IACD,IAAI,gBAAgB,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA6B,EAAE,QAAgC,EAAE,cAA8B;;IAE1H,MAAM,aAAa,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC,aAAa,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvG,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,OAAO,GAAoB;QAChC,QAAQ;QACR,WAAW,EAAE,aAAa;QAC1B,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;KAC9B,CAAA;IACD,MAAM,SAAS,GAAG,MAAA,UAAU,CAAC,uBAAuB,EAAE,0CAAE,MAAM,EAAE,CAAC;IACjE,IAAI,SAAS,EAAE,CAAC;QACf,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9H,MAAM,MAAM,GAA2B;QACtC,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,KAAK;QACzB,qBAAqB,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9E,OAAO,EAAE,eAAe;QACxB,aAAa,EAAE,iBAAiB;KAChC,CAAA;IACD,IAAI,gBAAgB,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA6B,EAAE,QAAgC,EAAE,cAA8B;IAE1H,MAAM,uBAAuB,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACvG,MAAM,OAAO,GAAoB;QAChC,QAAQ;QACR,WAAW,EAAE,aAAa;QAC1B,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,KAAK;KAC9B,CAAA;IAED,UAAU,CAAC,eAAe,EAAE,CAAC,eAAe,EAAE;SAC5C,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAGlF,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IAC1D,MAAM,YAAY,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QACrC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE1E,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9H,MAAM,MAAM,GAA2B;QACtC,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,KAAK;QACzB,qBAAqB,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACzG,OAAO,EAAE,eAAe;QACxB,aAAa,EAAE,EAAE;QACjB,yBAAyB,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;KACxE,CAAA;IACD,IAAI,gBAAgB,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA6B,EAAE,OAAwB,EAAE,cAA8B;IACnH,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAA,0BAAS,EAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,UAAU,EAAE,UAAU,IAAyB,CAAC,CAAC;IACrH,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,kCAAO,OAAO,KAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,KAAI,cAAc,CAAC,CAAC;IACvI,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACjG,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B,CAAC,kBAA6C,EAAE,WAAmC;IACtH,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;IACzC,OAAO,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB,EAAE,QAAgC;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,UAAU,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB,EAAE,YAAiC;IAEvE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB,EAAE,MAAqB;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,WAA+B,EAAE,KAAkB;IACjF,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IACtD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,yBAAyB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,eAAuC,EAAE,KAAkB;IAC7F,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,sDAAsD;AACtD,qDAAqD;AACrD,SAAS,mBAAmB,CAAC,SAA2B,EAAE,KAAkB;IAC3E,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;IAC/C,IAAI,UAAU,EAAE,CAAC;QAChB,mBAAmB;QACnB,2BAA2B;QAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA6B,EAAE,KAAkB;IAC9E,MAAM,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;IAC7D,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,cAAqC,EAAE,KAAkB;IAC1F,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA2B,EAAE,KAAkB;IAC3E,MAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,0BAA0B,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CAAC,gBAAyC,EAAE,KAAkB;IAChG,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,aAAmC,EAAE,KAAkB;IACvF,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,aAAmC,EAAE,KAAkB;IACvF,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IACtD,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,aAAa,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;YACpG,MAAM,OAAO,GAAG,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC;QAEhB,CAAC;QACD,eAAe;QACf,yDAAyD;QACzD,OAAO,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,cAAqC,EAAE,KAAkB;IAC1F,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAA;IAC1D,IAAI,gBAAgB,EAAE,CAAC;QACtB,gCAAgC;QAChC,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,WAA+B,EAAE,KAAkB;IACjF,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;IAC9D,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IACpG,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,cAAqC,EAAE,KAAkB;IAC1F,MAAM,wBAAwB,GAAG,cAAc,CAAC,wBAAwB,EAAE,CAAC;IAC3E,IAAI,wBAAwB,EAAE,CAAC;QAC9B,OAAO,wBAAwB,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,4BAA4B,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAA;IACvH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,mBAA+C,EAAE,KAAkB;IACxG,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC;IACpD,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA6B,EAAE,KAAkB;IAC9E,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;IACrD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA6B,EAAE,KAAkB;IAC9E,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;IACzD,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAiC,EAAE,KAAkB;IACpF,MAAM,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,EAAE,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAA;IAChH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,iBAA2C,EAAE,KAAkB;IACnG,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IACpE,IAAI,mBAAmB,EAAE,CAAC;QACzB,OAAO,6BAA6B,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CAAC,mBAA+C,EAAE,KAAkB;IACzG,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC;IAC5D,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,cAAqC,EAAE,KAAkB;IAC1F,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;IACzD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,yBAAyB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,eAAuC,EAAE,KAAkB;IAC7F,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAqB,EAAE,KAAkB;IAClE,IAAI,MAAM,YAAY,qCAAkB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,gBAAyC;;IAC7E,MAAM,SAAS,GAAG,MAAA,MAAA,MAAA,gBAAgB,CAAC,YAAY,EAAE,0CAAE,YAAY,EAAE,0CAAE,kBAAkB,EAAE,0CAAE,OAAO,EAAE,CAAC;IACnG,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC;AAED,SAAS,6BAA6B,CAAC,kBAA6C;IACnF,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC/B,qFAAqF;IACrF,MAAM,YAAY,GAAG,uCAAuC,CAAC;IAC7D,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA6B,EAAE,QAAgC;;IAEzF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,0BAA0B,GAAG,MAAA,gBAAgB,CAAC,aAAa,EAAE;SACjE,4BAA4B,EAAE,0CAAG,CAAC,EAClC,0BAA0B,EAAE,CAAC;IAE/B,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;IACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,uBAAuB,GAAG,MAAA,qBAAqB,CAAC,YAAY,EAAE,0CAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpK,OAAO,CAAC,uBAAuB,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;QACtE,IAAI,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;IAChE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC;QAChG,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;eACnG,CAAC,GAAG,CAAC,UAAU,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC;aACzD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,OAAO,uBAAuB,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,qBAAmD;IAChF,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;IACxD,OAAO,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC;AACjG,CAAC;AAOD,SAAS,YAAY,CAAC,SAA2B;IAChD,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO;QACN,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;KACjB,CAAA;AACF,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA2B;IACjE,IAAI,SAAS,YAAY,sCAAmB,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,qBAAqB,CAAC,SAAS,EAAE,mCAAgB,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,0BAA0B,CAAmB,SAAS,CAAC,CAAC,CAAC;QAC5G,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,4BAA4B;AAC5B,uDAAuD;AACvD,gCAAgC;AAChC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAClC,WAAW;IACX,KAAK;IACL,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,OAAO;IACP,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,KAAK;IACL,KAAK;IACL,MAAM;IACN,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,SAAS;IACT,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,KAAK;IACL,SAAS;IACT,UAAU;IACV,UAAU;IACV,QAAQ;CACR,CAAC,CAAC;AAEH,SAAS,0BAA0B,CAAC,SAA2B;;IAC9D,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB,EAAE,0CAAE,SAAS,EAAE,0CAAE,OAAO,EAAE,0CAAE,WAAW,EAAE,CAAC;IACtF,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,gCAAgC,CAAC,SAA2B;IACpE,IAAI,SAAS,YAAY,sCAAmB,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,qBAAqB,CAAC,SAAS,EAAE,mCAAgB,CAAC,CAAC;QACvE,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,6BAA6B,CAAmB,SAAS,CAAC,CAAC,CAAC;QACvH,OAAO,oBAAoB,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA2B;;IACjE,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB,EAAE,0CAAE,SAAS,EAAE,0CAAE,OAAO,EAAE,0CAAE,WAAW,EAAE,CAAC;IACtF,OAAO,QAAQ,KAAK,iBAAiB,CAAC;AACvC,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAqB,EAAE,UAAoB;;IAE3E,MAAM,cAAc,GAAG,CAAA,MAAA,MAAA,MAAM,CAAC,WAAW,EAAE,0CAAE,eAAe,EAAE,0CAAE,cAAc,EAAE,KAAI,EAAE,CAAC;IACvF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAC7E,MAAM,CAAC,GAAG,4BAA4B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,4BAA4B,CAAC,UAA6B,EAAE,UAAoB;IACxF,MAAM,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAAC;IACjH,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvE,OAAO,WAAW,CAAC;AACpB,CAAC;AACD,SAAS,6BAA6B,CAAC,cAAqC;IAC3E,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACvE,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,SAA2B;;IAC3D,MAAM,cAAc,GAAG,MAAA,MAAA,MAAA,SAAS,CAAC,gBAAgB,EAAE,0CAAE,aAAa,EAAE,0CAAE,aAAa,EAAE,0CAAE,cAAc,EAAE,CAAC;IACxG,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC3D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE,CAAC;oBACV,OAAO,IAAI,CAAC;gBACb,CAAC;qBACI,IAAI,IAAI,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YAAA,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,eAAe;AACf,SAAS,sBAAsB,CAAC,WAA+B;;IAC9D,MAAM,MAAM,GAAG,MAAA,MAAA,WAAW,CAAC,mBAAmB,EAAE,0CAAG,CAAC,EAAE,wBAAwB,EAAE,0CAAG,CAAC,EAAE,UAAU,GAC9F,eAAe,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAE,sBAAsB,GAAG,CAAC,EAAE,mBAAmB,GAC3F,cAAc,GAAG,eAAe,GAAG,MAAM,EAAE,CAAC;IAC9C,IAAI,MAAM,YAAY,qCAAkB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,sDAAsD;YACtD,OAAO,SAAS,CAAC,IAAI,CAAC;QACvB,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,UAA6B;IAChD,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACxB,OAAO,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAyB,EAAE,QAAgC,EAAE,cAA8B;;IAEpH,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACrG,MAAM,UAAU,GAAG,MAAA,MAAA,QAAQ,CAAC,YAAY,EAAE,0CAAE,UAAU,EAAE,0CAAE,eAAe,GACvE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElF,OAAO;QACN,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,UAAU;QACnB,kBAAkB,EAAE,KAAK;QACzB,aAAa,EAAE,EAAE;QACjB,qBAAqB,EAAE,EAAE;KACzB,CAAA;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA6B,EAAE,WAAmC,EAAE,cAA8B;IAC9H,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,OAAO,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC"}
|
1
|
+
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|
package/util.d.ts
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
export declare const indexGroupBy: <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) => Map<Q, number[]>;
|
2
|
+
export declare const groupBy: <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) => Map<Q, T[]>;
|
2
3
|
//# sourceMappingURL=util.d.ts.map
|
package/util.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,qBAMnG,CAAC"}
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,qBAMnG,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,gBAM9F,CAAA"}
|
package/util.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.indexGroupBy = void 0;
|
3
|
+
exports.groupBy = exports.indexGroupBy = void 0;
|
4
4
|
const indexGroupBy = (array, predicate) => {
|
5
5
|
return array.reduce((map, value, index, array) => {
|
6
6
|
var _a, _b;
|
@@ -10,4 +10,13 @@ const indexGroupBy = (array, predicate) => {
|
|
10
10
|
}, new Map());
|
11
11
|
};
|
12
12
|
exports.indexGroupBy = indexGroupBy;
|
13
|
+
const groupBy = (array, predicate) => {
|
14
|
+
return array.reduce((map, value, index, array) => {
|
15
|
+
var _a, _b;
|
16
|
+
const key = predicate(value, index, array);
|
17
|
+
(_b = (_a = map.get(key)) === null || _a === void 0 ? void 0 : _a.push(value)) !== null && _b !== void 0 ? _b : map.set(key, [value]);
|
18
|
+
return map;
|
19
|
+
}, new Map());
|
20
|
+
};
|
21
|
+
exports.groupBy = groupBy;
|
13
22
|
//# sourceMappingURL=util.js.map
|
package/util.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IACvG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;AAC5B,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB"}
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IACvG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;AAC5B,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,MAAM,OAAO,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IAClG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;AACvB,CAAC,CAAA;AANY,QAAA,OAAO,WAMnB"}
|