@mrnafisia/type-query 4.0.6 → 4.0.7

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.
Files changed (46) hide show
  1. package/package.json +1 -1
  2. package/dist/prd.tsconfig.tsbuildinfo +0 -1
  3. package/dist/src/Table.d.ts +0 -158
  4. package/dist/src/Table.d.ts.map +0 -1
  5. package/dist/src/Table.js +0 -6
  6. package/dist/src/Table.js.map +0 -1
  7. package/dist/src/context.d.ts +0 -90
  8. package/dist/src/context.d.ts.map +0 -1
  9. package/dist/src/context.js +0 -84
  10. package/dist/src/context.js.map +0 -1
  11. package/dist/src/createModelParser.d.ts +0 -47
  12. package/dist/src/createModelParser.d.ts.map +0 -1
  13. package/dist/src/createModelParser.js +0 -339
  14. package/dist/src/createModelParser.js.map +0 -1
  15. package/dist/src/ddl.d.ts +0 -22
  16. package/dist/src/ddl.d.ts.map +0 -1
  17. package/dist/src/ddl.js +0 -92
  18. package/dist/src/ddl.js.map +0 -1
  19. package/dist/src/entity.d.ts +0 -114
  20. package/dist/src/entity.d.ts.map +0 -1
  21. package/dist/src/entity.js +0 -543
  22. package/dist/src/entity.js.map +0 -1
  23. package/dist/src/index.d.ts +0 -10
  24. package/dist/src/index.d.ts.map +0 -1
  25. package/dist/src/index.js +0 -70
  26. package/dist/src/index.js.map +0 -1
  27. package/dist/src/keywords.d.ts +0 -158
  28. package/dist/src/keywords.d.ts.map +0 -1
  29. package/dist/src/keywords.js +0 -187
  30. package/dist/src/keywords.js.map +0 -1
  31. package/dist/src/resolve.d.ts +0 -15
  32. package/dist/src/resolve.d.ts.map +0 -1
  33. package/dist/src/resolve.js +0 -599
  34. package/dist/src/resolve.js.map +0 -1
  35. package/dist/src/testTransaction.d.ts +0 -23
  36. package/dist/src/testTransaction.d.ts.map +0 -1
  37. package/dist/src/testTransaction.js +0 -115
  38. package/dist/src/testTransaction.js.map +0 -1
  39. package/dist/src/transaction.d.ts +0 -6
  40. package/dist/src/transaction.d.ts.map +0 -1
  41. package/dist/src/transaction.js +0 -28
  42. package/dist/src/transaction.js.map +0 -1
  43. package/dist/src/utils.d.ts +0 -62
  44. package/dist/src/utils.d.ts.map +0 -1
  45. package/dist/src/utils.js +0 -86
  46. package/dist/src/utils.js.map +0 -1
@@ -1,599 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.resolveResult = exports.resolveReturning = exports.resolveColumn = exports.resolveExpression = exports.partialQuery = void 0;
40
- const U = __importStar(require("./utils"));
41
- const decimal_js_1 = __importDefault(require("decimal.js"));
42
- const never_catch_1 = require("never-catch");
43
- const keywords_1 = require("./keywords");
44
- const partialQuery = (text = '', params = []) => ({ text, params });
45
- exports.partialQuery = partialQuery;
46
- const resolveExpression = (expression, paramsStart, ignore = false) => {
47
- if (expression === undefined) {
48
- return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)('undefined');
49
- }
50
- if (expression === null ||
51
- typeof expression === 'boolean' ||
52
- decimal_js_1.default.isDecimal(expression) ||
53
- expression instanceof Date ||
54
- typeof expression === 'number' ||
55
- typeof expression === 'bigint') {
56
- return (0, never_catch_1.ok)(partialQuery(U.stringify(expression, true)));
57
- }
58
- if (typeof expression === 'string') {
59
- return (0, never_catch_1.ok)(partialQuery(`$${paramsStart++}`, [U.stringify(expression, false)]));
60
- }
61
- if (!Array.isArray(expression)) {
62
- return (0, never_catch_1.ok)(partialQuery(`$${paramsStart++}::JSONB`, [
63
- U.stringify(expression, false)
64
- ]));
65
- }
66
- const tokens = [];
67
- const operator = expression[0];
68
- if (operator === keywords_1.OperatorCode.Value) {
69
- if (expression[1] === undefined) {
70
- return ignore
71
- ? (0, never_catch_1.ok)(partialQuery())
72
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> undefined`);
73
- }
74
- return (0, never_catch_1.ok)(partialQuery(`$${paramsStart++}`, [
75
- U.stringify(expression[1], false)
76
- ]));
77
- }
78
- if (operator === keywords_1.OperatorCode.IsNull ||
79
- operator === keywords_1.OperatorCode.IsNotNull ||
80
- operator === keywords_1.OperatorCode.IsTrue ||
81
- operator === keywords_1.OperatorCode.IsFalse ||
82
- operator === keywords_1.OperatorCode.Not) {
83
- const expressionResult = resolveExpression(expression[1], paramsStart, ignore);
84
- if (!expressionResult.ok) {
85
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> ${expressionResult.error}`);
86
- }
87
- if (expressionResult.value.text === '') {
88
- return ignore
89
- ? (0, never_catch_1.ok)(partialQuery())
90
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> neutral`);
91
- }
92
- switch (operator) {
93
- case keywords_1.OperatorCode.IsNull:
94
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} IS NULL`, expressionResult.value.params));
95
- case keywords_1.OperatorCode.IsNotNull:
96
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} IS NOT NULL`, expressionResult.value.params));
97
- case keywords_1.OperatorCode.IsTrue:
98
- return (0, never_catch_1.ok)(partialQuery(expressionResult.value.text, expressionResult.value.params));
99
- case keywords_1.OperatorCode.IsFalse:
100
- case keywords_1.OperatorCode.Not:
101
- return (0, never_catch_1.ok)(partialQuery(`NOT ${expressionResult.value.text}`, expressionResult.value.params));
102
- }
103
- }
104
- if (operator === keywords_1.OperatorCode.Sum ||
105
- operator === keywords_1.OperatorCode.Subtract ||
106
- operator === keywords_1.OperatorCode.Multiply ||
107
- operator === keywords_1.OperatorCode.Divide ||
108
- operator === keywords_1.OperatorCode.Power ||
109
- operator === keywords_1.OperatorCode.Concat ||
110
- operator === keywords_1.OperatorCode.And ||
111
- operator === keywords_1.OperatorCode.Or) {
112
- const params = [];
113
- for (const item of expression[1]) {
114
- const itemResult = resolveExpression(item, paramsStart, ignore);
115
- if (!itemResult.ok) {
116
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> ${expression[1].indexOf(item)} -> ${itemResult.error}`);
117
- }
118
- if (itemResult.value.text === '') {
119
- if (ignore) {
120
- continue;
121
- }
122
- else {
123
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> ${expression[1].indexOf(item)} -> neutral`);
124
- }
125
- }
126
- params.push(...itemResult.value.params);
127
- paramsStart += itemResult.value.params.length;
128
- tokens.push(itemResult.value.text);
129
- }
130
- switch (tokens.length) {
131
- case 0:
132
- return ignore
133
- ? (0, never_catch_1.ok)(partialQuery())
134
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> no operands given`);
135
- case 1:
136
- return (0, never_catch_1.ok)(partialQuery(tokens[0], params));
137
- default:
138
- switch (operator) {
139
- case keywords_1.OperatorCode.Sum:
140
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' + ')})`, params));
141
- case keywords_1.OperatorCode.Subtract:
142
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' - ')})`, params));
143
- case keywords_1.OperatorCode.Multiply:
144
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' * ')})`, params));
145
- case keywords_1.OperatorCode.Divide:
146
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' / ')})`, params));
147
- case keywords_1.OperatorCode.Concat:
148
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' || ')})`, params));
149
- case keywords_1.OperatorCode.And:
150
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' AND ')})`, params));
151
- case keywords_1.OperatorCode.Or:
152
- return (0, never_catch_1.ok)(partialQuery(`(${tokens.join(' OR ')})`, params));
153
- }
154
- if (operator === keywords_1.OperatorCode.Power) {
155
- const tmp = tokens.pop();
156
- tokens.splice(0, 0, 'a');
157
- return (0, never_catch_1.ok)(partialQuery(tokens.join(', POWER(').substring(3) +
158
- ', ' +
159
- tmp +
160
- ')'.repeat(tokens.length - 1), params));
161
- }
162
- }
163
- }
164
- if (operator === keywords_1.OperatorCode.Function) {
165
- const params = [];
166
- for (const item of expression[2]) {
167
- const itemResult = resolveExpression(item, paramsStart, ignore);
168
- if (!itemResult.ok) {
169
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> parameters -> ${expression[2].indexOf(item)} -> ${itemResult.error}`);
170
- }
171
- if (itemResult.value.text === '') {
172
- return ignore
173
- ? (0, never_catch_1.ok)(partialQuery())
174
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> parameters -> ${expression[2].indexOf(item)} -> neutral`);
175
- }
176
- params.push(...itemResult.value.params);
177
- paramsStart += itemResult.value.params.length;
178
- tokens.push(itemResult.value.text);
179
- }
180
- return (0, never_catch_1.ok)(partialQuery(`${expression[1]}(${tokens.join(', ')})${expression[3]}`, params));
181
- }
182
- if (operator === keywords_1.OperatorCode.Constructor) {
183
- const params = [];
184
- for (const item of expression[2]) {
185
- const itemResult = resolveExpression(item, paramsStart, ignore);
186
- if (!itemResult.ok) {
187
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> parameters -> ${expression[2].indexOf(item)} -> ${itemResult.error}`);
188
- }
189
- if (itemResult.value.text === '') {
190
- return ignore
191
- ? (0, never_catch_1.ok)(partialQuery())
192
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> parameters -> ${expression[2].indexOf(item)} -> neutral`);
193
- }
194
- params.push(...itemResult.value.params);
195
- paramsStart += itemResult.value.params.length;
196
- tokens.push(itemResult.value.text);
197
- }
198
- return (0, never_catch_1.ok)(partialQuery(`${expression[1]}[${tokens.join(', ')}]${expression[3]}`, params));
199
- }
200
- if (operator === keywords_1.OperatorCode.SwitchCase) {
201
- const params = [];
202
- for (const item of expression[1]) {
203
- const whenResult = resolveExpression(item.when, paramsStart, ignore);
204
- if (!whenResult.ok) {
205
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> cases -> ${expression[1].indexOf(item)} -> when -> ${whenResult.error}`);
206
- }
207
- if (whenResult.value.text === '') {
208
- if (ignore) {
209
- continue;
210
- }
211
- else {
212
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> cases -> ${expression[1].indexOf(item)} -> when -> neutral`);
213
- }
214
- }
215
- params.push(...whenResult.value.params);
216
- paramsStart += whenResult.value.params.length;
217
- const thenResult = resolveExpression(item.then, paramsStart, ignore);
218
- if (!thenResult.ok) {
219
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> cases -> ${expression[1].indexOf(item)} -> then -> ${thenResult.error}`);
220
- }
221
- if (thenResult.value.text === '') {
222
- if (ignore) {
223
- continue;
224
- }
225
- else {
226
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> cases -> ${expression[1].indexOf(item)} -> then -> neutral`);
227
- }
228
- }
229
- params.push(...thenResult.value.params);
230
- paramsStart += thenResult.value.params.length;
231
- if (tokens.length === 0) {
232
- tokens.push('CASE');
233
- }
234
- tokens.push(`WHEN ${whenResult.value.text} THEN ${thenResult.value.text}`);
235
- }
236
- if (tokens.length === 0 && !ignore) {
237
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> cases -> empty`);
238
- }
239
- if (expression[2] === undefined && tokens.length !== 0) {
240
- tokens.push('END');
241
- return (0, never_catch_1.ok)(partialQuery(tokens.join(' '), params));
242
- }
243
- const otherwiseResult = resolveExpression(expression[2], paramsStart, ignore);
244
- if (!otherwiseResult.ok) {
245
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> otherwise -> ${otherwiseResult.error}`);
246
- }
247
- params.push(...otherwiseResult.value.params);
248
- if (otherwiseResult.value.text === '') {
249
- if (ignore) {
250
- if (tokens.length === 0) {
251
- return (0, never_catch_1.ok)(partialQuery());
252
- }
253
- else {
254
- tokens.push('END');
255
- }
256
- }
257
- else {
258
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> otherwise -> neutral`);
259
- }
260
- }
261
- else {
262
- if (tokens.length !== 0) {
263
- tokens.push('ELSE', otherwiseResult.value.text, 'END');
264
- }
265
- else {
266
- tokens.push(otherwiseResult.value.text);
267
- }
268
- }
269
- return (0, never_catch_1.ok)(partialQuery(tokens.join(' '), params));
270
- }
271
- if (operator === keywords_1.OperatorCode.Column) {
272
- return (0, never_catch_1.ok)(partialQuery(`${expression[1]}`));
273
- }
274
- if (operator === keywords_1.OperatorCode.Raw) {
275
- const rawExpression = typeof expression[1] === 'function'
276
- ? expression[1](paramsStart)
277
- : { expression: expression[1], params: [] };
278
- return (0, never_catch_1.ok)(partialQuery(rawExpression.expression, rawExpression.params));
279
- }
280
- if (operator === keywords_1.OperatorCode.Ignore) {
281
- const expressionResult = resolveExpression(expression[1], paramsStart, true);
282
- if (!expressionResult.ok) {
283
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> expression -> ${expressionResult.error}`);
284
- }
285
- if (expressionResult.value.text !== '') {
286
- return (0, never_catch_1.ok)(partialQuery(expressionResult.value.text, expressionResult.value.params));
287
- }
288
- const otherwiseResult = resolveExpression(expression[2], paramsStart, false);
289
- if (!otherwiseResult.ok) {
290
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> otherwise -> ${otherwiseResult.error}`);
291
- }
292
- if (otherwiseResult.value.text === '') {
293
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> otherwise -> neutral`);
294
- }
295
- return (0, never_catch_1.ok)(partialQuery(otherwiseResult.value.text, otherwiseResult.value.params));
296
- }
297
- if (operator === keywords_1.OperatorCode.InListSubQuery ||
298
- operator === keywords_1.OperatorCode.NotInListSubQuery) {
299
- const params = [];
300
- const expressionResult = resolveExpression(expression[1], paramsStart, ignore);
301
- if (!expressionResult.ok) {
302
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> ${expressionResult.error}`);
303
- }
304
- if (expressionResult.value.text === '') {
305
- return ignore
306
- ? (0, never_catch_1.ok)(partialQuery())
307
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> neutral`);
308
- }
309
- params.push(...expressionResult.value.params);
310
- paramsStart += expressionResult.value.params.length;
311
- const subQueryResult = expression[2].getData(Array(paramsStart - 1).fill(undefined));
312
- if (!subQueryResult.ok) {
313
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> ${subQueryResult.error}`);
314
- }
315
- switch (operator) {
316
- case keywords_1.OperatorCode.InListSubQuery:
317
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} IN (${subQueryResult.value.sql})`, subQueryResult.value.params.slice(paramsStart - 1)));
318
- case keywords_1.OperatorCode.NotInListSubQuery:
319
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} NOT IN (${subQueryResult.value.sql})`, subQueryResult.value.params.slice(paramsStart - 1)));
320
- }
321
- }
322
- if (operator === keywords_1.OperatorCode.IsEqual ||
323
- operator === keywords_1.OperatorCode.IsNotEqual ||
324
- operator === keywords_1.OperatorCode.IsGreater ||
325
- operator === keywords_1.OperatorCode.IsGreaterEqual ||
326
- operator === keywords_1.OperatorCode.IsLess ||
327
- operator === keywords_1.OperatorCode.IsLessEqual ||
328
- operator === keywords_1.OperatorCode.Like ||
329
- operator === keywords_1.OperatorCode.JsonExist ||
330
- operator === keywords_1.OperatorCode.JsonRightExist ||
331
- operator === keywords_1.OperatorCode.JsonLeftExist ||
332
- operator === keywords_1.OperatorCode.JsonRemove ||
333
- operator === keywords_1.OperatorCode.JsonIndex ||
334
- operator === keywords_1.OperatorCode.JsonIndexText) {
335
- const params = [];
336
- const expression1Result = resolveExpression(expression[1], paramsStart, ignore);
337
- if (!expression1Result.ok) {
338
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> ${expression1Result.error}`);
339
- }
340
- if (expression1Result.value.text === '') {
341
- return ignore
342
- ? (0, never_catch_1.ok)(partialQuery())
343
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> neutral`);
344
- }
345
- params.push(...expression1Result.value.params);
346
- paramsStart += expression1Result.value.params.length;
347
- const expression2Result = resolveExpression(expression[2], paramsStart, ignore);
348
- if (!expression2Result.ok) {
349
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> ${expression2Result.error}`);
350
- }
351
- if (expression2Result.value.text === '') {
352
- return ignore
353
- ? (0, never_catch_1.ok)(partialQuery())
354
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> neutral`);
355
- }
356
- params.push(...expression2Result.value.params);
357
- switch (operator) {
358
- case keywords_1.OperatorCode.IsEqual:
359
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} = ${expression2Result.value.text}`, params));
360
- case keywords_1.OperatorCode.IsNotEqual:
361
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} <> ${expression2Result.value.text}`, params));
362
- case keywords_1.OperatorCode.IsGreater:
363
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} > ${expression2Result.value.text}`, params));
364
- case keywords_1.OperatorCode.IsGreaterEqual:
365
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} >= ${expression2Result.value.text}`, params));
366
- case keywords_1.OperatorCode.IsLess:
367
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} < ${expression2Result.value.text}`, params));
368
- case keywords_1.OperatorCode.IsLessEqual:
369
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} <= ${expression2Result.value.text}`, params));
370
- case keywords_1.OperatorCode.Like:
371
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} LIKE ${expression2Result.value.text}`, params));
372
- case keywords_1.OperatorCode.JsonExist:
373
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} ? ${expression2Result.value.text}`, params));
374
- case keywords_1.OperatorCode.JsonRightExist:
375
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} @> ${expression2Result.value.text}`, params));
376
- case keywords_1.OperatorCode.JsonLeftExist:
377
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} <@ ${expression2Result.value.text}`, params));
378
- case keywords_1.OperatorCode.JsonRemove:
379
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} - ${expression2Result.value.text}`, params));
380
- case keywords_1.OperatorCode.JsonIndex:
381
- return (0, never_catch_1.ok)(partialQuery(`${expression1Result.value.text} -> ${expression2Result.value.text}`, params));
382
- case keywords_1.OperatorCode.JsonIndexText:
383
- return (0, never_catch_1.ok)(partialQuery(expression[3] === undefined
384
- ? `${expression1Result.value.text} ->> ${expression2Result.value.text}`
385
- : `(${expression1Result.value.text} ->> ${expression2Result.value.text})${expression[3]}`, params));
386
- }
387
- }
388
- if (operator === keywords_1.OperatorCode.InList ||
389
- operator === keywords_1.OperatorCode.NotInList ||
390
- operator === keywords_1.OperatorCode.LikeAll ||
391
- operator === keywords_1.OperatorCode.LikeSome ||
392
- operator === keywords_1.OperatorCode.JsonSomeExist ||
393
- operator === keywords_1.OperatorCode.JsonAllExist ||
394
- operator === keywords_1.OperatorCode.JsonRemoveAll ||
395
- operator === keywords_1.OperatorCode.JsonIndexChain) {
396
- const params = [];
397
- const expressionResult = resolveExpression(expression[1], paramsStart, ignore);
398
- if (!expressionResult.ok) {
399
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> ${expressionResult.error}`);
400
- }
401
- if (expressionResult.value.text === '') {
402
- return ignore
403
- ? (0, never_catch_1.ok)(partialQuery())
404
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> neutral`);
405
- }
406
- params.push(...expressionResult.value.params);
407
- paramsStart += expressionResult.value.params.length;
408
- for (const item of expression[2]) {
409
- const itemResult = resolveExpression(item, paramsStart, ignore);
410
- if (!itemResult.ok) {
411
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> ${expression[2].indexOf(item)} -> ${itemResult.error}`);
412
- }
413
- if (itemResult.value.text === '') {
414
- if (ignore) {
415
- continue;
416
- }
417
- else {
418
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> ${expression[1].indexOf(item)} -> neutral`);
419
- }
420
- }
421
- params.push(...itemResult.value.params);
422
- paramsStart += itemResult.value.params.length;
423
- tokens.push(itemResult.value.text);
424
- }
425
- switch (tokens.length) {
426
- case 0:
427
- return ignore
428
- ? (0, never_catch_1.ok)(partialQuery())
429
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> empty`);
430
- case 1:
431
- switch (operator) {
432
- case keywords_1.OperatorCode.InList:
433
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} = ${tokens[0]}`, params));
434
- case keywords_1.OperatorCode.NotInList:
435
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} <> ${tokens[0]}`, params));
436
- case keywords_1.OperatorCode.LikeAll:
437
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} LIKE ${tokens[0]}`, params));
438
- case keywords_1.OperatorCode.LikeSome:
439
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} LIKE ${tokens[0]}`, params));
440
- case keywords_1.OperatorCode.JsonSomeExist:
441
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} ? ${tokens[0]}`, params));
442
- case keywords_1.OperatorCode.JsonAllExist:
443
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} ? ${tokens[0]}`, params));
444
- case keywords_1.OperatorCode.JsonRemoveAll:
445
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} - ${tokens[0]}`, params));
446
- case keywords_1.OperatorCode.JsonIndexChain:
447
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} -> ${tokens[0]}`, params));
448
- }
449
- default:
450
- switch (operator) {
451
- case keywords_1.OperatorCode.InList:
452
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} IN (${tokens.join(', ')})`, params));
453
- case keywords_1.OperatorCode.NotInList:
454
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} NOT IN (${tokens.join(', ')})`, params));
455
- case keywords_1.OperatorCode.LikeAll:
456
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} LIKE ALL(ARRAY[${tokens.join(', ')}])`, params));
457
- case keywords_1.OperatorCode.LikeSome:
458
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} LIKE SOME(ARRAY[${tokens.join(', ')}])`, params));
459
- case keywords_1.OperatorCode.JsonSomeExist:
460
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} ?| ARRAY[${tokens.join(', ')}]`, params));
461
- case keywords_1.OperatorCode.JsonAllExist:
462
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} ?& ARRAY[${tokens.join(', ')}]`, params));
463
- case keywords_1.OperatorCode.JsonRemoveAll:
464
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} - ARRAY[${tokens.join(', ')}]`, params));
465
- case keywords_1.OperatorCode.JsonIndexChain:
466
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} ${tokens.map(token => `-> ${token}`).join(' ')}`, params));
467
- }
468
- }
469
- }
470
- if (operator === keywords_1.OperatorCode.Between) {
471
- const params = [];
472
- const expressionResult = resolveExpression(expression[1], paramsStart, ignore);
473
- if (!expressionResult.ok) {
474
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> ${expressionResult.error}`);
475
- }
476
- if (expressionResult.value.text === '') {
477
- return ignore
478
- ? (0, never_catch_1.ok)(partialQuery())
479
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> first operand -> neutral`);
480
- }
481
- params.push(...expressionResult.value.params);
482
- paramsStart += expressionResult.value.params.length;
483
- const startExpressionResult = resolveExpression(expression[2], paramsStart, ignore);
484
- if (!startExpressionResult.ok) {
485
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> ${startExpressionResult.error}`);
486
- }
487
- if (startExpressionResult.value.text === '') {
488
- return ignore
489
- ? (0, never_catch_1.ok)(partialQuery())
490
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> second operand -> neutral`);
491
- }
492
- params.push(...startExpressionResult.value.params);
493
- paramsStart += startExpressionResult.value.params.length;
494
- const endExpressionResult = resolveExpression(expression[3], paramsStart, ignore);
495
- if (!endExpressionResult.ok) {
496
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> third operand -> ${endExpressionResult.error}`);
497
- }
498
- if (endExpressionResult.value.text === '') {
499
- return ignore
500
- ? (0, never_catch_1.ok)(partialQuery())
501
- : (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> third operand -> neutral`);
502
- }
503
- params.push(...endExpressionResult.value.params);
504
- return (0, never_catch_1.ok)(partialQuery(`${expressionResult.value.text} BETWEEN ${startExpressionResult.value.text} AND ${endExpressionResult.value.text}`, params));
505
- }
506
- if (operator === keywords_1.OperatorCode.SubQuery ||
507
- operator === keywords_1.OperatorCode.SubQueryExist) {
508
- const subQueryResult = expression[1].getData(Array(paramsStart - 1).fill(undefined));
509
- if (!subQueryResult.ok) {
510
- return (0, never_catch_1.err)(`${keywords_1.Dictionary.OperatorDescriptions[operator]} -> ${subQueryResult.error}`);
511
- }
512
- switch (operator) {
513
- case keywords_1.OperatorCode.SubQuery:
514
- return (0, never_catch_1.ok)(partialQuery(`(${subQueryResult.value.sql})`, subQueryResult.value.params.slice(paramsStart - 1)));
515
- case keywords_1.OperatorCode.SubQueryExist:
516
- return (0, never_catch_1.ok)(partialQuery(`EXISTS(${subQueryResult.value.sql})`, subQueryResult.value.params.slice(paramsStart - 1)));
517
- }
518
- }
519
- return (0, never_catch_1.ok)(partialQuery(`$${paramsStart++}::JSONB`, [
520
- U.stringify(expression, false)
521
- ]));
522
- };
523
- exports.resolveExpression = resolveExpression;
524
- const resolveColumn = (table, column, full = true, alias) => {
525
- let prefix;
526
- if (full) {
527
- if (alias !== undefined) {
528
- prefix = `"${alias}".`;
529
- }
530
- else {
531
- prefix = `"${table.schemaName}"."${table.tableName}".`;
532
- }
533
- }
534
- else {
535
- prefix = '';
536
- }
537
- return prefix + `"${table.columns[column].title ?? column}"`;
538
- };
539
- exports.resolveColumn = resolveColumn;
540
- const resolveReturning = (getColumnTitleAndAlias, columns, paramsStart) => {
541
- const tokens = [];
542
- const params = [];
543
- for (const column of columns) {
544
- if (typeof column === 'object') {
545
- const resolvedExpResult = resolveExpression(column.expression, paramsStart, false);
546
- if (!resolvedExpResult.ok) {
547
- return (0, never_catch_1.err)(`returning -> ${column.name} -> ${resolvedExpResult.error}`);
548
- }
549
- if (resolvedExpResult.value.text === '') {
550
- return (0, never_catch_1.err)(`returning -> ${column.name} -> neutral`);
551
- }
552
- params.push(...resolvedExpResult.value.params);
553
- paramsStart += resolvedExpResult.value.params.length;
554
- tokens.push(`(${resolvedExpResult.value.text}) AS "${column.name}"`);
555
- }
556
- else {
557
- const [title, alias] = getColumnTitleAndAlias(column);
558
- if (title === undefined) {
559
- if (alias !== undefined) {
560
- tokens.push(`"${alias}".` +
561
- `"${column.substring((alias + '_').length)}"` +
562
- ` AS "${column}"`);
563
- }
564
- else {
565
- tokens.push(`"${column}"`);
566
- }
567
- }
568
- else {
569
- tokens.push((alias !== undefined ? `"${alias}".` : '') +
570
- `"${title}"` +
571
- ` AS "${column}"`);
572
- }
573
- }
574
- }
575
- if (tokens.length === 0) {
576
- return (0, never_catch_1.err)('returning -> empty');
577
- }
578
- return (0, never_catch_1.ok)(partialQuery(tokens.join(', '), params));
579
- };
580
- exports.resolveReturning = resolveReturning;
581
- const resolveResult = (rows, mode) => {
582
- if (mode[0] === 'count') {
583
- return rows.length === mode[1]
584
- ? (0, never_catch_1.ok)(undefined)
585
- : (0, never_catch_1.err)(false);
586
- }
587
- if (mode[0] === 'get' &&
588
- rows.length !== (mode[1] === 'one' ? 1 : mode[1])) {
589
- return (0, never_catch_1.err)(false);
590
- }
591
- if (mode[0] === 'get' && mode[1] === 'one') {
592
- return (0, never_catch_1.ok)(rows[0]);
593
- }
594
- else {
595
- return (0, never_catch_1.ok)(rows);
596
- }
597
- };
598
- exports.resolveResult = resolveResult;
599
- //# sourceMappingURL=resolve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,2CAA6B;AAC7B,4DAAiC;AAEjC,6CAA8C;AAC9C,yCAAsD;AAItD,MAAM,YAAY,GAAG,CACjB,OAAe,EAAE,EACjB,SAAmB,EAAE,EACT,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAm/BlC,oCAAY;AAt+BhB,MAAM,iBAAiB,GAAG,CACtB,UAAmB,EACnB,WAAmB,EACnB,SAAkB,KAAK,EACK,EAAE;IAE9B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAG,EAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IACD,IACI,UAAU,KAAK,IAAI;QACnB,OAAO,UAAU,KAAK,SAAS;QAC/B,oBAAO,CAAC,SAAS,CAAC,UAAU,CAAC;QAC7B,UAAU,YAAY,IAAI;QAC1B,OAAO,UAAU,KAAK,QAAQ;QAC9B,OAAO,UAAU,KAAK,QAAQ,EAChC,CAAC;QACC,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CACtE,CAAC;IACN,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,WAAW,EAAE,SAAS,EAAE;YACrC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;SACjC,CAAC,CACL,CAAC;IACN,CAAC;IAGD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAiB,CAAC;IAC/C,IAAI,QAAQ,KAAK,uBAAY,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAC9D,CAAC;QACZ,CAAC;QACD,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,WAAW,EAAE,EAAE,EAAE;YAC9B,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;SACpC,CAAC,CACL,CAAC;IACN,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,SAAS;QACnC,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,OAAO;QACjC,QAAQ,KAAK,uBAAY,CAAC,GAAG,EAC/B,CAAC;QACC,MAAM,gBAAgB,GAAG,iBAAiB,CACtC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAC9E,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAC5D,CAAC;QACZ,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,uBAAY,CAAC,MAAM;gBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,UAAU,EACxC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAChC,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,SAAS;gBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,cAAc,EAC5C,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAChC,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,MAAM;gBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAC3B,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAChC,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,OAAO,CAAC;YAC1B,KAAK,uBAAY,CAAC,GAAG;gBACjB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAChC,CACJ,CAAC;QACV,CAAC;IACL,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,GAAG;QAC7B,QAAQ,KAAK,uBAAY,CAAC,QAAQ;QAClC,QAAQ,KAAK,uBAAY,CAAC,QAAQ;QAClC,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,KAAK;QAC/B,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,GAAG;QAC7B,QAAQ,KAAK,uBAAY,CAAC,EAAE,EAC9B,CAAC;QACC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,EAAE,CAC1G,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,IAAI,MAAM,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAC9F,CAAC;gBACN,CAAC;YACL,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC;gBACF,OAAO,MAAM;oBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,uBAAuB,CACtE,CAAC;YACZ,KAAK,CAAC;gBACF,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C;gBACI,QAAQ,QAAQ,EAAE,CAAC;oBACf,KAAK,uBAAY,CAAC,GAAG;wBACjB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAClD,CAAC;oBACN,KAAK,uBAAY,CAAC,QAAQ;wBACtB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAClD,CAAC;oBACN,KAAK,uBAAY,CAAC,QAAQ;wBACtB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAClD,CAAC;oBACN,KAAK,uBAAY,CAAC,MAAM;wBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAClD,CAAC;oBACN,KAAK,uBAAY,CAAC,MAAM;wBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CACnD,CAAC;oBACN,KAAK,uBAAY,CAAC,GAAG;wBACjB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CACpD,CAAC;oBACN,KAAK,uBAAY,CAAC,EAAE;wBAChB,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CACnD,CAAC;gBACV,CAAC;gBACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,KAAK,EAAE,CAAC;oBAClC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBACzB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;wBAChC,IAAI;wBACJ,GAAG;wBACH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EACjC,MAAM,CACT,CACJ,CAAC;gBACN,CAAC;QACT,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,EAAE,CACxH,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,OAAO,MAAM;oBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAC5G,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EACxD,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,EAAE,CACxH,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,OAAO,MAAM;oBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAC5G,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EACxD,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAChC,IAAI,CAAC,IAAI,EACT,WAAW,EACX,MAAM,CACT,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eACnF,UAAU,CAAC,KACf,EAAE,CACL,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,IAAI,MAAM,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAC/G,CAAC;gBACN,CAAC;YACL,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAE9C,MAAM,UAAU,GAAG,iBAAiB,CAChC,IAAI,CAAC,IAAI,EACT,WAAW,EACX,MAAM,CACT,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eACnF,UAAU,CAAC,KACf,EAAE,CACL,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,IAAI,MAAM,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAC/G,CAAC;gBACN,CAAC;YACL,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAE9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,CAAC,IAAI,CACP,QAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAChE,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,oBAAoB,CACnE,CAAC;QACN,CAAC;QAED,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,eAAe,GAAG,iBAAiB,CACrC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,oBAAoB,eAAe,CAAC,KAAK,EAAE,CAC1F,CAAC;QACN,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,0BAA0B,CACzE,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,aAAa,GACf,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5B,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACpD,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,gBAAgB,GAAG,iBAAiB,CACtC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,IAAI,CACP,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,gBAAgB,CAAC,KAAK,EAAE,CAC5F,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAC3B,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAChC,CACJ,CAAC;QACN,CAAC;QAED,MAAM,eAAe,GAAG,iBAAiB,CACrC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,KAAK,CACR,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,oBAAoB,eAAe,CAAC,KAAK,EAAE,CAC1F,CAAC;QACN,CAAC;QACD,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACpC,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,0BAA0B,CACzE,CAAC;QACN,CAAC;QACD,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,eAAe,CAAC,KAAK,CAAC,IAAI,EAC1B,eAAe,CAAC,KAAK,CAAC,MAAM,CAC/B,CACJ,CAAC;IACN,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,cAAc;QACxC,QAAQ,KAAK,uBAAY,CAAC,iBAAiB,EAC7C,CAAC;QACC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,gBAAgB,GAAG,iBAAiB,CACtC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,wBAAwB,gBAAgB,CAAC,KAAK,EAAE,CAC/F,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAC7E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAEpD,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CACxC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,cAAc,CAAC,KAAK,EAAE,CAC5E,CAAC;QACN,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,uBAAY,CAAC,cAAc;gBAC5B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,QAAQ,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,EACjE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CACrD,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,iBAAiB;gBAC/B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,YAAY,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,EACrE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CACrD,CACJ,CAAC;QACV,CAAC;IACL,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,OAAO;QACjC,QAAQ,KAAK,uBAAY,CAAC,UAAU;QACpC,QAAQ,KAAK,uBAAY,CAAC,SAAS;QACnC,QAAQ,KAAK,uBAAY,CAAC,cAAc;QACxC,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,WAAW;QACrC,QAAQ,KAAK,uBAAY,CAAC,IAAI;QAC9B,QAAQ,KAAK,uBAAY,CAAC,SAAS;QACnC,QAAQ,KAAK,uBAAY,CAAC,cAAc;QACxC,QAAQ,KAAK,uBAAY,CAAC,aAAa;QACvC,QAAQ,KAAK,uBAAY,CAAC,UAAU;QACpC,QAAQ,KAAK,uBAAY,CAAC,SAAS;QACnC,QAAQ,KAAK,uBAAY,CAAC,aAAa,EACzC,CAAC;QACC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,iBAAiB,GAAG,iBAAiB,CACvC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;YACxB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,wBAAwB,iBAAiB,CAAC,KAAK,EAAE,CAChG,CAAC;QACN,CAAC;QACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACtC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAC7E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,WAAW,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAErD,MAAM,iBAAiB,GAAG,iBAAiB,CACvC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;YACxB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,yBAAyB,iBAAiB,CAAC,KAAK,EAAE,CACjG,CAAC;QACN,CAAC;QACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACtC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,+BAA+B,CAC9E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/C,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,uBAAY,CAAC,OAAO;gBACrB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACnE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,UAAU;gBACxB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,SAAS;gBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACnE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,cAAc;gBAC5B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,MAAM;gBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACnE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,WAAW;gBACzB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,IAAI;gBAClB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACtE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,SAAS;gBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACnE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,cAAc;gBAC5B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,aAAa;gBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,UAAU;gBACxB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACnE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,SAAS;gBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EACpE,MAAM,CACT,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,aAAa;gBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS;oBACvB,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,QAAQ,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE;oBACvE,CAAC,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,QAAQ,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAC7F,MAAM,CACT,CACJ,CAAC;QACV,CAAC;IACL,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,uBAAY,CAAC,SAAS;QACnC,QAAQ,KAAK,uBAAY,CAAC,OAAO;QACjC,QAAQ,KAAK,uBAAY,CAAC,QAAQ;QAClC,QAAQ,KAAK,uBAAY,CAAC,aAAa;QACvC,QAAQ,KAAK,uBAAY,CAAC,YAAY;QACtC,QAAQ,KAAK,uBAAY,CAAC,aAAa;QACvC,QAAQ,KAAK,uBAAY,CAAC,cAAc,EAC1C,CAAC;QACC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,gBAAgB,GAAG,iBAAiB,CACtC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,wBAAwB,gBAAgB,CAAC,KAAK,EAAE,CAC/F,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAC7E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAEpD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,yBAAyB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CACtF,IAAI,CACP,OAAO,UAAU,CAAC,KAAK,EAAE,CAC7B,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC/B,IAAI,MAAM,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,yBAAyB,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAChH,CAAC;gBACN,CAAC;YACL,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC;gBACF,OAAO,MAAM;oBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,6BAA6B,CAC5E,CAAC;YACZ,KAAK,CAAC;gBACF,QAAQ,QAAQ,EAAE,CAAC;oBACf,KAAK,uBAAY,CAAC,MAAM;wBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,EAC/C,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,SAAS;wBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAChD,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,OAAO;wBACrB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,EAClD,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,QAAQ;wBACtB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,EAClD,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,aAAa;wBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,EAC/C,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,YAAY;wBAC1B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,EAC/C,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,aAAa;wBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,EAC/C,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,cAAc;wBAC5B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAChD,MAAM,CACT,CACJ,CAAC;gBACV,CAAC;YACL;gBACI,QAAQ,QAAQ,EAAE,CAAC;oBACf,KAAK,uBAAY,CAAC,MAAM;wBACpB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC1D,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,SAAS;wBACvB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC9D,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,OAAO;wBACrB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,mBAAmB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACtE,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,QAAQ;wBACtB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACvE,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,aAAa;wBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC/D,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,YAAY;wBAC1B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC/D,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,aAAa;wBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC9D,MAAM,CACT,CACJ,CAAC;oBACN,KAAK,uBAAY,CAAC,cAAc;wBAC5B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAChF,MAAM,CACT,CACJ,CAAC;gBACV,CAAC;QACT,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAY,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,gBAAgB,GAAG,iBAAiB,CACtC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,wBAAwB,gBAAgB,CAAC,KAAK,EAAE,CAC/F,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAC7E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAEpD,MAAM,qBAAqB,GAAG,iBAAiB,CAC3C,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,yBAAyB,qBAAqB,CAAC,KAAK,EAAE,CACrG,CAAC;QACN,CAAC;QACD,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC1C,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,+BAA+B,CAC9E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,WAAW,IAAI,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAEzD,MAAM,mBAAmB,GAAG,iBAAiB,CACzC,UAAU,CAAC,CAAC,CAAC,EACb,WAAW,EACX,MAAM,CACT,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,wBAAwB,mBAAmB,CAAC,KAAK,EAAE,CAClG,CAAC;QACN,CAAC;QACD,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACxC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAA,gBAAE,EAAC,YAAY,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAA,iBAAG,EACC,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,8BAA8B,CAC7E,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,YAAY,qBAAqB,CAAC,KAAK,CAAC,IAAI,QAAQ,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,EAClH,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,IACI,QAAQ,KAAK,uBAAY,CAAC,QAAQ;QAClC,QAAQ,KAAK,uBAAY,CAAC,aAAa,EACzC,CAAC;QACC,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CACxC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CACzC,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,IAAA,iBAAG,EACN,GAAG,qBAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,cAAc,CAAC,KAAK,EAAE,CAC5E,CAAC;QACN,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,uBAAY,CAAC,QAAQ;gBACtB,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,EAC/B,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CACrD,CACJ,CAAC;YACN,KAAK,uBAAY,CAAC,aAAa;gBAC3B,OAAO,IAAA,gBAAE,EACL,YAAY,CACR,UAAU,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,EACrC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CACrD,CACJ,CAAC;QACV,CAAC;IACL,CAAC;IAED,OAAO,IAAA,gBAAE,EACL,YAAY,CAAC,IAAI,WAAW,EAAE,SAAS,EAAE;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;KACjC,CAAC,CACL,CAAC;AACN,CAAC,CAAC;AA4GE,8CAAiB;AA1GrB,MAAM,aAAa,GAAG,CAClB,KAAoB,EACpB,MAAc,EACd,OAAgB,IAAI,EACpB,KAAc,EAChB,EAAE;IACA,IAAI,MAAc,CAAC;IACnB,IAAI,IAAI,EAAE,CAAC;QACP,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,SAAS,IAAI,CAAC;QAC3D,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC;AACjE,CAAC,CAAC;AA0FE,sCAAa;AAxFjB,MAAM,gBAAgB,GAAG,CACrB,sBAE2D,EAC3D,OAAmD,EACnD,WAAmB,EACS,EAAE;IAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,iBAAiB,CACvC,MAAM,CAAC,UAAU,EACjB,WAAW,EACX,KAAK,CACR,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;gBACxB,OAAO,IAAA,iBAAG,EACN,gBAAgB,MAAM,CAAC,IAAI,OAAO,iBAAiB,CAAC,KAAK,EAAE,CAC9D,CAAC;YACN,CAAC;YACD,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBACtC,OAAO,IAAA,iBAAG,EAAC,gBAAgB,MAAM,CAAC,IAAI,aAAa,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,WAAW,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAErD,MAAM,CAAC,IAAI,CACP,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,GAAG,CAC1D,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACP,IAAI,KAAK,IAAI;wBACT,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG;wBAC7C,QAAQ,MAAM,GAAG,CACxB,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CACP,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,IAAI,KAAK,GAAG;oBACZ,QAAQ,MAAM,GAAG,CACxB,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAA,iBAAG,EAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,IAAA,gBAAE,EAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAkCE,4CAAgB;AAhCpB,MAAM,aAAa,GAAG,CAKlB,IAAe,EACf,IAAO,EAC4B,EAAE;IACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,IAAA,gBAAE,EAAC,SAAiC,CAAC;YACvC,CAAC,CAAC,IAAA,iBAAG,EAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,IACI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QACjB,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACnD,CAAC;QACC,OAAO,IAAA,iBAAG,EAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACzC,OAAO,IAAA,gBAAE,EAAC,IAAI,CAAC,CAAC,CAAyB,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACJ,OAAO,IAAA,gBAAE,EAAC,IAA4B,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC,CAAC;AAQE,sCAAa"}