on-zero 0.16.17 → 0.16.19

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 (110) hide show
  1. package/dist/cjs/createZeroClient.cjs +44 -11
  2. package/dist/cjs/createZeroClient.native.js +54 -17
  3. package/dist/cjs/createZeroClient.native.js.map +1 -1
  4. package/dist/cjs/createZeroClient.recovery.test.cjs +49 -0
  5. package/dist/cjs/createZeroClient.recovery.test.native.js +53 -0
  6. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  7. package/dist/cjs/generate-helpers.cjs +28 -0
  8. package/dist/cjs/generate-helpers.native.js +36 -0
  9. package/dist/cjs/generate-helpers.native.js.map +1 -1
  10. package/dist/cjs/generate-layout.cjs +62 -53
  11. package/dist/cjs/generate-layout.native.js +62 -54
  12. package/dist/cjs/generate-layout.native.js.map +1 -1
  13. package/dist/cjs/generate-lite.cjs +28 -0
  14. package/dist/cjs/generate-lite.native.js +89 -33
  15. package/dist/cjs/generate-lite.native.js.map +1 -1
  16. package/dist/cjs/generate-lite.test.cjs +46 -0
  17. package/dist/cjs/generate-lite.test.native.js +46 -0
  18. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  19. package/dist/cjs/generate.cjs +237 -243
  20. package/dist/cjs/generate.native.js +352 -353
  21. package/dist/cjs/generate.native.js.map +1 -1
  22. package/dist/cjs/generate.test.cjs +35 -0
  23. package/dist/cjs/generate.test.native.js +35 -0
  24. package/dist/cjs/generate.test.native.js.map +1 -1
  25. package/dist/cjs/helpers/createMutators.cjs +2 -1
  26. package/dist/cjs/helpers/createMutators.native.js +3 -1
  27. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  28. package/dist/cjs/helpers/recoverZeroClient.cjs +8 -2
  29. package/dist/cjs/helpers/recoverZeroClient.native.js +10 -2
  30. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  31. package/dist/cjs/helpers/recoverZeroClient.test.cjs +53 -0
  32. package/dist/cjs/helpers/recoverZeroClient.test.native.js +55 -0
  33. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  34. package/dist/cjs/native-typescript.cjs +190 -0
  35. package/dist/cjs/native-typescript.native.js +255 -0
  36. package/dist/cjs/native-typescript.native.js.map +1 -0
  37. package/dist/esm/createZeroClient.mjs +44 -11
  38. package/dist/esm/createZeroClient.mjs.map +1 -1
  39. package/dist/esm/createZeroClient.native.js +54 -17
  40. package/dist/esm/createZeroClient.native.js.map +1 -1
  41. package/dist/esm/createZeroClient.recovery.test.mjs +50 -1
  42. package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
  43. package/dist/esm/createZeroClient.recovery.test.native.js +54 -1
  44. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  45. package/dist/esm/generate-helpers.mjs +27 -1
  46. package/dist/esm/generate-helpers.mjs.map +1 -1
  47. package/dist/esm/generate-helpers.native.js +35 -1
  48. package/dist/esm/generate-helpers.native.js.map +1 -1
  49. package/dist/esm/generate-layout.mjs +52 -54
  50. package/dist/esm/generate-layout.mjs.map +1 -1
  51. package/dist/esm/generate-layout.native.js +52 -55
  52. package/dist/esm/generate-layout.native.js.map +1 -1
  53. package/dist/esm/generate-lite.mjs +29 -1
  54. package/dist/esm/generate-lite.mjs.map +1 -1
  55. package/dist/esm/generate-lite.native.js +90 -34
  56. package/dist/esm/generate-lite.native.js.map +1 -1
  57. package/dist/esm/generate-lite.test.mjs +46 -0
  58. package/dist/esm/generate-lite.test.mjs.map +1 -1
  59. package/dist/esm/generate-lite.test.native.js +46 -0
  60. package/dist/esm/generate-lite.test.native.js.map +1 -1
  61. package/dist/esm/generate.mjs +238 -244
  62. package/dist/esm/generate.mjs.map +1 -1
  63. package/dist/esm/generate.native.js +353 -354
  64. package/dist/esm/generate.native.js.map +1 -1
  65. package/dist/esm/generate.test.mjs +35 -0
  66. package/dist/esm/generate.test.mjs.map +1 -1
  67. package/dist/esm/generate.test.native.js +35 -0
  68. package/dist/esm/generate.test.native.js.map +1 -1
  69. package/dist/esm/helpers/createMutators.mjs +2 -1
  70. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  71. package/dist/esm/helpers/createMutators.native.js +3 -1
  72. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  73. package/dist/esm/helpers/recoverZeroClient.mjs +8 -2
  74. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  75. package/dist/esm/helpers/recoverZeroClient.native.js +10 -2
  76. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  77. package/dist/esm/helpers/recoverZeroClient.test.mjs +53 -0
  78. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  79. package/dist/esm/helpers/recoverZeroClient.test.native.js +55 -0
  80. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  81. package/dist/esm/index.native.js.map +1 -1
  82. package/dist/esm/native-typescript.mjs +164 -0
  83. package/dist/esm/native-typescript.mjs.map +1 -0
  84. package/dist/esm/native-typescript.native.js +226 -0
  85. package/dist/esm/native-typescript.native.js.map +1 -0
  86. package/package.json +4 -3
  87. package/src/createZeroClient.recovery.test.tsx +56 -1
  88. package/src/createZeroClient.tsx +54 -15
  89. package/src/generate-helpers.ts +79 -0
  90. package/src/generate-layout.ts +64 -108
  91. package/src/generate-lite.test.ts +49 -0
  92. package/src/generate-lite.ts +44 -0
  93. package/src/generate.test.ts +52 -0
  94. package/src/generate.ts +313 -366
  95. package/src/helpers/createMutators.ts +14 -3
  96. package/src/helpers/recoverZeroClient.test.ts +50 -0
  97. package/src/helpers/recoverZeroClient.ts +12 -2
  98. package/src/native-typescript.ts +176 -0
  99. package/types/createZeroClient.d.ts.map +1 -1
  100. package/types/generate-helpers.d.ts +13 -0
  101. package/types/generate-helpers.d.ts.map +1 -1
  102. package/types/generate-layout.d.ts +2 -1
  103. package/types/generate-layout.d.ts.map +1 -1
  104. package/types/generate-lite.d.ts +1 -0
  105. package/types/generate-lite.d.ts.map +1 -1
  106. package/types/generate.d.ts.map +1 -1
  107. package/types/helpers/createMutators.d.ts.map +1 -1
  108. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  109. package/types/native-typescript.d.ts +11 -0
  110. package/types/native-typescript.d.ts.map +1 -0
@@ -1,18 +1,19 @@
1
- import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
1
+ import { existsSync, readdirSync, statSync } from "node:fs";
2
2
  import { basename, dirname, relative, resolve, sep } from "node:path";
3
+ import * as ts from "typescript/unstable/ast";
3
4
  const isSourceFile = name => name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
4
5
  const toImportPath = (baseDir, path) => relative(baseDir, path).split(sep).join("/").replace(/\.ts$/, "");
5
6
  const isWithin = (root, path) => {
6
7
  const child = relative(root, path);
7
8
  return child === "" || child !== ".." && !child.startsWith(`..${sep}`);
8
9
  };
9
- function propertyName(ts, name) {
10
+ function propertyName(name) {
10
11
  if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {
11
12
  return name.text;
12
13
  }
13
14
  return null;
14
15
  }
15
- function readDataConfig(ts, baseDir, configPath) {
16
+ function readDataConfig(project, baseDir, configPath) {
16
17
  const path = configPath ? resolve(configPath) : resolve(baseDir, "on-zero.config.ts");
17
18
  if (!existsSync(path)) {
18
19
  if (configPath) throw new Error(`[on-zero] config file does not exist: ${path}`);
@@ -21,8 +22,8 @@ function readDataConfig(ts, baseDir, configPath) {
21
22
  if (dirname(path) !== baseDir) {
22
23
  throw new Error(`[on-zero] ${path} must be at the data root ${baseDir}`);
23
24
  }
24
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
25
- if (hasParseErrors(source)) throw new Error(`[on-zero] unable to parse ${path}`);
25
+ const source = project.sourceFile(path);
26
+ if (project.hasParseErrors(path)) throw new Error(`[on-zero] unable to parse ${path}`);
26
27
  let config = null;
27
28
  for (const statement of source.statements) {
28
29
  if (!ts.isExportAssignment(statement) || statement.isExportEquals) continue;
@@ -41,7 +42,7 @@ function readDataConfig(ts, baseDir, configPath) {
41
42
  if (!ts.isPropertyAssignment(option)) {
42
43
  throw new Error(`[on-zero] ${path} options must use explicit property assignments`);
43
44
  }
44
- const name = propertyName(ts, option.name);
45
+ const name = propertyName(option.name);
45
46
  if (!name) throw new Error(`[on-zero] ${path} has an unsupported option name`);
46
47
  if (rootOptions.has(name)) throw new Error(`[on-zero] ${path} repeats option '${name}'`);
47
48
  rootOptions.set(name, option.initializer);
@@ -58,7 +59,7 @@ function readDataConfig(ts, baseDir, configPath) {
58
59
  if (!ts.isPropertyAssignment(property)) {
59
60
  throw new Error(`[on-zero] ${path} instances must use explicit property assignments`);
60
61
  }
61
- const name = propertyName(ts, property.name);
62
+ const name = propertyName(property.name);
62
63
  if (!name) throw new Error(`[on-zero] ${path} has an unsupported instance name`);
63
64
  if (!ts.isObjectLiteralExpression(property.initializer)) {
64
65
  throw new Error(`[on-zero] instance '${name}' must be an object`);
@@ -74,7 +75,7 @@ function readDataConfig(ts, baseDir, configPath) {
74
75
  if (!ts.isPropertyAssignment(option)) {
75
76
  throw new Error(`[on-zero] instance '${name}' options must be assignments`);
76
77
  }
77
- const optionName = propertyName(ts, option.name);
78
+ const optionName = propertyName(option.name);
78
79
  if (!optionName) throw new Error(`[on-zero] instance '${name}' has an invalid option`);
79
80
  if (seen.has(optionName)) {
80
81
  throw new Error(`[on-zero] instance '${name}' repeats option '${optionName}'`);
@@ -141,16 +142,13 @@ function readDataConfig(ts, baseDir, configPath) {
141
142
  instances
142
143
  };
143
144
  }
144
- function hasParseErrors(source) {
145
- return Boolean(source.parseDiagnostics?.length);
146
- }
147
- function namespaceExportKinds(ts, baseDir, path) {
145
+ function namespaceExportKinds(project, baseDir, path) {
148
146
  const none = {
149
147
  model: false,
150
148
  query: false
151
149
  };
152
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
153
- if (hasParseErrors(source)) {
150
+ const source = project.sourceFile(path);
151
+ if (project.hasParseErrors(path)) {
154
152
  const displayPath = relative(dirname(baseDir), path).split(sep).join("/");
155
153
  console.warn(`[on-zero] ignoring ${displayPath}: no recognized data exports`);
156
154
  return none;
@@ -204,7 +202,7 @@ function namespaceExportKinds(ts, baseDir, path) {
204
202
  }
205
203
  }
206
204
  let found = false;
207
- ts.forEachChild(node, child => {
205
+ node.forEachChild(child => {
208
206
  if (!found && reachesQuery(child)) found = true;
209
207
  });
210
208
  return found;
@@ -215,8 +213,8 @@ function namespaceExportKinds(ts, baseDir, path) {
215
213
  query
216
214
  };
217
215
  }
218
- function mutationTable(ts, path, namespace) {
219
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
216
+ function mutationTable(project, path, namespace) {
217
+ const source = project.sourceFile(path);
220
218
  let schemaTable = null;
221
219
  for (const statement of source.statements) {
222
220
  if (!ts.isVariableStatement(statement)) continue;
@@ -227,24 +225,24 @@ function mutationTable(ts, path, namespace) {
227
225
  if (!ts.isIdentifier(declaration.name) || !declaration.initializer) continue;
228
226
  if (declaration.name.text === "mutate" && ts.isCallExpression(declaration.initializer)) {
229
227
  const firstArgument = declaration.initializer.arguments[0];
230
- if (firstArgument && ts.isStringLiteralLike(firstArgument)) {
228
+ if (firstArgument && ts.isStringLiteral(firstArgument)) {
231
229
  return firstArgument.text;
232
230
  }
233
231
  }
234
232
  if (declaration.name.text !== "schema") continue;
235
233
  const visit = node => {
236
- if (ts.isCallExpression(node) && node.expression.getText(source) === "table" && node.arguments[0] && ts.isStringLiteralLike(node.arguments[0])) {
234
+ if (ts.isCallExpression(node) && node.expression.getText(source) === "table" && node.arguments[0] && ts.isStringLiteral(node.arguments[0])) {
237
235
  schemaTable = node.arguments[0].text;
238
236
  return;
239
237
  }
240
- ts.forEachChild(node, visit);
238
+ node.forEachChild(visit);
241
239
  };
242
240
  visit(declaration.initializer);
243
241
  }
244
242
  }
245
243
  return schemaTable ?? namespace;
246
244
  }
247
- function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
245
+ function discoverNamespaces(project, baseDir, instance, instanceDirs) {
248
246
  const namespaces = [];
249
247
  for (const entry of readdirSync(instance.dir, {
250
248
  withFileTypes: true
@@ -252,7 +250,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
252
250
  if (entry.isFile()) {
253
251
  if (!isSourceFile(entry.name) || entry.name === "on-zero.config.ts") continue;
254
252
  const path = resolve(instance.dir, entry.name);
255
- const kinds = namespaceExportKinds(ts, baseDir, path);
253
+ const kinds = namespaceExportKinds(project, baseDir, path);
256
254
  if (!kinds.model && !kinds.query) continue;
257
255
  const name = basename(entry.name, ".ts");
258
256
  namespaces.push({
@@ -263,7 +261,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
263
261
  // missing mutations.ts leaves modelPath null
264
262
  modelPath: kinds.model ? path : null,
265
263
  aggregatePath: null,
266
- table: kinds.model ? mutationTable(ts, path, name) : null,
264
+ table: kinds.model ? mutationTable(project, path, name) : null,
267
265
  sourcePaths: [path]
268
266
  });
269
267
  continue;
@@ -289,7 +287,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
289
287
  queryPath: hasQueries ? queryPath : null,
290
288
  modelPath: hasMutations ? modelPath : null,
291
289
  aggregatePath: hasAggregates ? aggregatePath : null,
292
- table: hasMutations ? mutationTable(ts, modelPath, entry.name) : null,
290
+ table: hasMutations ? mutationTable(project, modelPath, entry.name) : null,
293
291
  sourcePaths: [hasQueries && queryPath, hasMutations && modelPath, hasAggregates && aggregatePath].filter(path => Boolean(path))
294
292
  });
295
293
  }
@@ -311,13 +309,13 @@ function metadataPaths(baseDir) {
311
309
  }
312
310
  return paths.sort();
313
311
  }
314
- function relationTargets(ts, paths) {
312
+ function relationTargets(project, paths) {
315
313
  const relations = /* @__PURE__ */new Map();
316
314
  for (const path of paths.filter(path2 => basename(path2) === "relations.ts")) {
317
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
315
+ const source = project.sourceFile(path);
318
316
  const visit = node => {
319
317
  if (!ts.isCallExpression(node) || node.expression.getText(source) !== "defineRelations") {
320
- ts.forEachChild(node, visit);
318
+ node.forEachChild(visit);
321
319
  return;
322
320
  }
323
321
  const factory = node.arguments[1];
@@ -346,21 +344,21 @@ function relationTargets(ts, paths) {
346
344
  }
347
345
  return relations;
348
346
  }
349
- function tableColumns(ts, paths, namespaces) {
347
+ function tableColumns(project, paths, namespaces) {
350
348
  const columns = /* @__PURE__ */new Map();
351
349
  const sources = /* @__PURE__ */new Set([...paths, ...namespaces.flatMap(namespace => namespace.sourcePaths)]);
352
350
  for (const path of sources) {
353
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
351
+ const source = project.sourceFile(path);
354
352
  const visit = node => {
355
353
  if (!ts.isVariableDeclaration(node) || !ts.isIdentifier(node.name) || !node.initializer) {
356
- ts.forEachChild(node, visit);
354
+ node.forEachChild(visit);
357
355
  return;
358
356
  }
359
357
  const tableNames = /* @__PURE__ */new Set([node.name.text]);
360
358
  let foundColumns = null;
361
359
  const inspect = candidate => {
362
360
  if (!ts.isCallExpression(candidate)) {
363
- ts.forEachChild(candidate, inspect);
361
+ candidate.forEachChild(inspect);
364
362
  return;
365
363
  }
366
364
  for (const argument of candidate.arguments) {
@@ -373,18 +371,18 @@ function tableColumns(ts, paths, namespaces) {
373
371
  };
374
372
  inspect(node.initializer);
375
373
  if (foundColumns) {
376
- const names = new Set(foundColumns.properties.map(property => property.name?.getText(source).replace(/^['"]|['"]$/g, "")).filter(name => Boolean(name)));
374
+ const names = new Set(foundColumns.properties.map(property => ts.isSpreadAssignment(property) ? null : property.name?.getText(source).replace(/^['"]|['"]$/g, "")).filter(name => Boolean(name)));
377
375
  for (const tableName of tableNames) columns.set(tableName, names);
378
376
  }
379
- ts.forEachChild(node, visit);
377
+ node.forEachChild(visit);
380
378
  };
381
379
  visit(source);
382
380
  }
383
381
  return columns;
384
382
  }
385
- function queriedTables(ts, namespace, relations) {
383
+ function queriedTables(project, namespace, relations) {
386
384
  if (!namespace.queryPath) return [];
387
- const source = ts.createSourceFile(namespace.queryPath, readFileSync(namespace.queryPath, "utf8"), ts.ScriptTarget.Latest, true);
385
+ const source = project.sourceFile(namespace.queryPath);
388
386
  const reached = [];
389
387
  const functions = /* @__PURE__ */new Map();
390
388
  const exported = /* @__PURE__ */new Set();
@@ -447,7 +445,7 @@ function queriedTables(ts, namespace, relations) {
447
445
  visiting.delete(key);
448
446
  }
449
447
  }
450
- ts.forEachChild(node, child => visit(child, currentTable, query));
448
+ node.forEachChild(child => visit(child, currentTable, query));
451
449
  };
452
450
  for (const name of exported) {
453
451
  if (["mutate", "schema", "where"].includes(name)) continue;
@@ -462,9 +460,9 @@ function queriedTables(ts, namespace, relations) {
462
460
  }
463
461
  return reached;
464
462
  }
465
- function aggregateTables(ts, namespace) {
463
+ function aggregateTables(project, namespace) {
466
464
  if (!namespace.aggregatePath) return [];
467
- const source = ts.createSourceFile(namespace.aggregatePath, readFileSync(namespace.aggregatePath, "utf8"), ts.ScriptTarget.Latest, true);
465
+ const source = project.sourceFile(namespace.aggregatePath);
468
466
  const unwrap = node => {
469
467
  let current = node;
470
468
  while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
@@ -495,8 +493,8 @@ function aggregateTables(ts, namespace) {
495
493
  throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
496
494
  }
497
495
  for (const fieldName of ["source", "target"]) {
498
- const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(ts, candidate.name) === fieldName);
499
- if (!field || !ts.isStringLiteralLike(unwrap(field.initializer))) {
496
+ const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(candidate.name) === fieldName);
497
+ if (!field || !ts.isStringLiteral(unwrap(field.initializer))) {
500
498
  throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
501
499
  }
502
500
  tables.add(unwrap(field.initializer).text);
@@ -506,14 +504,14 @@ function aggregateTables(ts, namespace) {
506
504
  }
507
505
  return [...tables].sort();
508
506
  }
509
- function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
507
+ function mutationSupportTables(project, baseDir, sourceRoots, namespace) {
510
508
  if (!namespace.modelPath) return [];
511
509
  const tables = /* @__PURE__ */new Set();
512
510
  const visited = /* @__PURE__ */new Set();
513
511
  const scan = path => {
514
512
  if (visited.has(path)) return;
515
513
  visited.add(path);
516
- const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
514
+ const source = project.sourceFile(path);
517
515
  const visit = node => {
518
516
  if (ts.isPropertyAccessExpression(node) && ts.isPropertyAccessExpression(node.expression) && ["mutate", "query"].includes(node.expression.name.text)) {
519
517
  const transaction = node.expression.expression;
@@ -533,7 +531,7 @@ function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
533
531
  }
534
532
  }
535
533
  }
536
- ts.forEachChild(node, visit);
534
+ node.forEachChild(visit);
537
535
  };
538
536
  visit(source);
539
537
  };
@@ -559,7 +557,7 @@ function assertNoInstanceFiles(roots) {
559
557
  };
560
558
  for (const root of roots) walk(root);
561
559
  }
562
- function assertNoUnclaimedNamespaces(ts, baseDir, configPath, instanceDirs) {
560
+ function assertNoUnclaimedNamespaces(project, baseDir, configPath, instanceDirs) {
563
561
  const walk = dir => {
564
562
  if (instanceDirs.some(instanceDir => isWithin(instanceDir, dir))) return;
565
563
  for (const entry of readdirSync(dir, {
@@ -574,7 +572,7 @@ function assertNoUnclaimedNamespaces(ts, baseDir, configPath, instanceDirs) {
574
572
  if (!entry.isFile() || !isSourceFile(entry.name) || path === configPath || entry.name === "instance.ts") {
575
573
  continue;
576
574
  }
577
- const kinds = namespaceExportKinds(ts, baseDir, path);
575
+ const kinds = namespaceExportKinds(project, baseDir, path);
578
576
  if (kinds.model || kinds.query) {
579
577
  throw new Error(`[on-zero] data namespace ${path} is outside every instance directory declared in ${configPath}`);
580
578
  }
@@ -582,8 +580,8 @@ function assertNoUnclaimedNamespaces(ts, baseDir, configPath, instanceDirs) {
582
580
  };
583
581
  walk(baseDir);
584
582
  }
585
- function discoverDataLayout(ts, baseDir, configPath) {
586
- const config = readDataConfig(ts, baseDir, configPath);
583
+ function discoverDataLayout(project, baseDir, configPath) {
584
+ const config = readDataConfig(project, baseDir, configPath);
587
585
  const configured = config?.instances ?? [{
588
586
  name: "default",
589
587
  dir: baseDir,
@@ -593,7 +591,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
593
591
  const sourceRoots = [... /* @__PURE__ */new Set([baseDir, ...configured.map(instance => instance.dir)])];
594
592
  assertNoInstanceFiles(sourceRoots);
595
593
  if (config) {
596
- assertNoUnclaimedNamespaces(ts, baseDir, config.path, configured.map(instance => instance.dir));
594
+ assertNoUnclaimedNamespaces(project, baseDir, config.path, configured.map(instance => instance.dir));
597
595
  }
598
596
  const instances = configured.map(instance => ({
599
597
  name: instance.name,
@@ -607,7 +605,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
607
605
  }));
608
606
  const instanceDirs = new Set(instances.map(instance => instance.dir));
609
607
  for (const instance of instances) {
610
- instance.namespaces = discoverNamespaces(ts, baseDir, instance, instanceDirs);
608
+ instance.namespaces = discoverNamespaces(project, baseDir, instance, instanceDirs);
611
609
  }
612
610
  const namespaces = instances.flatMap(instance => instance.namespaces);
613
611
  const namespaceOwners = /* @__PURE__ */new Map();
@@ -628,14 +626,14 @@ function discoverDataLayout(ts, baseDir, configPath) {
628
626
  tableOwners.set(namespace.table, namespace.instance);
629
627
  }
630
628
  const metadata = metadataPaths(baseDir);
631
- const relations = relationTargets(ts, metadata);
632
- const columns = tableColumns(ts, metadata, namespaces);
629
+ const relations = relationTargets(project, metadata);
630
+ const columns = tableColumns(project, metadata, namespaces);
633
631
  const relatedOwners = /* @__PURE__ */new Map();
634
632
  for (const instance of instances) {
635
633
  const tables = new Set(instance.namespaces.map(namespace => namespace.table).filter(table => table !== null));
636
634
  const syncTables = new Set(tables);
637
635
  for (const namespace of instance.namespaces) {
638
- for (const table of aggregateTables(ts, namespace)) {
636
+ for (const table of aggregateTables(project, namespace)) {
639
637
  const owner = tableOwners.get(table) ?? relatedOwners.get(table);
640
638
  if (owner && owner !== instance.name) {
641
639
  throw new Error(`[on-zero] ${namespace.name} aggregates in instance '${instance.name}' reach table '${table}' owned by instance '${owner}'`);
@@ -644,7 +642,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
644
642
  tables.add(table);
645
643
  syncTables.add(table);
646
644
  }
647
- for (const reached of queriedTables(ts, namespace, relations)) {
645
+ for (const reached of queriedTables(project, namespace, relations)) {
648
646
  const owner = tableOwners.get(reached.table) ?? relatedOwners.get(reached.table);
649
647
  if (owner && owner !== instance.name) {
650
648
  throw new Error(`[on-zero] ${namespace.name}.${reached.query} in instance '${instance.name}' reaches table '${reached.table}' owned by instance '${owner}'`);
@@ -667,7 +665,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
667
665
  for (const instance of instances) {
668
666
  const supportTables = new Set(instance.declaredSupportTables);
669
667
  for (const namespace of instance.namespaces) {
670
- for (const table of mutationSupportTables(ts, baseDir, sourceRoots, namespace)) {
668
+ for (const table of mutationSupportTables(project, baseDir, sourceRoots, namespace)) {
671
669
  if (tableOwners.has(table) || relatedOwners.has(table)) continue;
672
670
  if (!instance.syncTables.includes(table)) {
673
671
  supportTables.add(table);
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","readFileSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","Error","source","createSourceFile","ScriptTarget","Latest","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","Boolean","parseDiagnostics","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","isStringLiteralLike","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","aggregateTables","unwrap","current","isSatisfiesExpression","isAsExpression","tables","definitions","definition","fieldName","field","mutationSupportTables","sourceRoots","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","ts","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","project","configPath","Error","source","sourceFile","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","Boolean","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","isSpreadAssignment","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","aggregateTables","unwrap","current","isSatisfiesExpression","isAsExpression","tables","definitions","definition","fieldName","field","mutationSupportTables","sourceRoots","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,WAAA,EAAaC,QAAA,QAAgB;AAClD,SAASC,QAAA,EAAUC,OAAA,EAASC,QAAA,EAAUC,OAAA,EAASC,GAAA,QAAW;AAE1D,YAAYC,EAAA,MAAQ;AAiCpB,MAAMC,YAAA,GAAgBC,IAAA,IACpBA,IAAA,CAAKC,QAAA,CAAS,KAAK,KACnB,CAACD,IAAA,CAAKC,QAAA,CAAS,OAAO,KACtB,CAACD,IAAA,CAAKC,QAAA,CAAS,UAAU,KACzB,CAACD,IAAA,CAAKC,QAAA,CAAS,UAAU;AAE3B,MAAMC,YAAA,GAAeA,CAACC,OAAA,EAAiBC,IAAA,KACrCT,QAAA,CAASQ,OAAA,EAASC,IAAI,EAAEC,KAAA,CAAMR,GAAG,EAAES,IAAA,CAAK,GAAG,EAAEC,OAAA,CAAQ,SAAS,EAAE;AAElE,MAAMC,QAAA,GAAWA,CAACC,IAAA,EAAcL,IAAA,KAAiB;EAC/C,MAAMM,KAAA,GAAQf,QAAA,CAASc,IAAA,EAAML,IAAI;EACjC,OAAOM,KAAA,KAAU,MAAOA,KAAA,KAAU,QAAQ,CAACA,KAAA,CAAMC,UAAA,CAAW,KAAKd,GAAG,EAAE;AACxE;AASA,SAASe,aAAaZ,IAAA,EAAsC;EAC1D,IAAIF,EAAA,CAAGe,YAAA,CAAab,IAAI,KAAKF,EAAA,CAAGgB,eAAA,CAAgBd,IAAI,KAAKF,EAAA,CAAGiB,gBAAA,CAAiBf,IAAI,GAAG;IAClF,OAAOA,IAAA,CAAKgB,IAAA;EACd;EACA,OAAO;AACT;AAEA,SAASC,eACPC,OAAA,EACAf,OAAA,EACAgB,UAAA,EAC4D;EAC5D,MAAMf,IAAA,GAAOe,UAAA,GAAavB,OAAA,CAAQuB,UAAU,IAAIvB,OAAA,CAAQO,OAAA,EAAS,mBAAmB;EACpF,IAAI,CAACb,UAAA,CAAWc,IAAI,GAAG;IACrB,IAAIe,UAAA,EAAY,MAAM,IAAIC,KAAA,CAAM,yCAAyChB,IAAI,EAAE;IAC/E,OAAO;EACT;EACA,IAAIV,OAAA,CAAQU,IAAI,MAAMD,OAAA,EAAS;IAC7B,MAAM,IAAIiB,KAAA,CAAM,aAAahB,IAAI,6BAA6BD,OAAO,EAAE;EACzE;EACA,MAAMkB,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;EACtC,IAAIc,OAAA,CAAQK,cAAA,CAAenB,IAAI,GAAG,MAAM,IAAIgB,KAAA,CAAM,6BAA6BhB,IAAI,EAAE;EAErF,IAAIoB,MAAA,GAA4C;EAChD,WAAWC,SAAA,IAAaJ,MAAA,CAAOK,UAAA,EAAY;IACzC,IAAI,CAAC5B,EAAA,CAAG6B,kBAAA,CAAmBF,SAAS,KAAKA,SAAA,CAAUG,cAAA,EAAgB;IACnE,MAAMC,IAAA,GAAOJ,SAAA,CAAUK,UAAA;IACvB,IACE,CAAChC,EAAA,CAAGiC,gBAAA,CAAiBF,IAAI,KACzBA,IAAA,CAAKC,UAAA,CAAWE,OAAA,CAAQX,MAAM,MAAM,gBACpC;MACA;IACF;IACA,MAAMY,KAAA,GAAQJ,IAAA,CAAKK,SAAA,CAAU,CAAC;IAC9B,IAAID,KAAA,IAASnC,EAAA,CAAGqC,yBAAA,CAA0BF,KAAK,GAAGT,MAAA,GAASS,KAAA;EAC7D;EACA,IAAI,CAACT,MAAA,EAAQ;IACX,MAAM,IAAIJ,KAAA,CACR,aAAahB,IAAI,2DACnB;EACF;EAEA,MAAMgC,WAAA,GAAc,mBAAIC,GAAA,CAA2B;EACnD,WAAWC,MAAA,IAAUd,MAAA,CAAOe,UAAA,EAAY;IACtC,IAAI,CAACzC,EAAA,CAAG0C,oBAAA,CAAqBF,MAAM,GAAG;MACpC,MAAM,IAAIlB,KAAA,CAAM,aAAahB,IAAI,iDAAiD;IACpF;IACA,MAAMJ,IAAA,GAAOY,YAAA,CAAa0B,MAAA,CAAOtC,IAAI;IACrC,IAAI,CAACA,IAAA,EAAM,MAAM,IAAIoB,KAAA,CAAM,aAAahB,IAAI,iCAAiC;IAC7E,IAAIgC,WAAA,CAAYK,GAAA,CAAIzC,IAAI,GACtB,MAAM,IAAIoB,KAAA,CAAM,aAAahB,IAAI,oBAAoBJ,IAAI,GAAG;IAC9DoC,WAAA,CAAYM,GAAA,CAAI1C,IAAA,EAAMsC,MAAA,CAAOK,WAAW;EAC1C;EACA,WAAW3C,IAAA,IAAQoC,WAAA,CAAYQ,IAAA,CAAK,GAAG;IACrC,IAAI5C,IAAA,KAAS,aACX,MAAM,IAAIoB,KAAA,CAAM,aAAahB,IAAI,wBAAwBJ,IAAI,GAAG;EACpE;EACA,MAAM6C,aAAA,GAAgBT,WAAA,CAAYU,GAAA,CAAI,WAAW;EACjD,IAAI,CAACD,aAAA,IAAiB,CAAC/C,EAAA,CAAGqC,yBAAA,CAA0BU,aAAa,GAAG;IAClE,MAAM,IAAIzB,KAAA,CAAM,aAAahB,IAAI,4CAA4C;EAC/E;EAEA,MAAM2C,SAAA,GAAoC,EAAC;EAC3C,WAAWC,QAAA,IAAYH,aAAA,CAAcN,UAAA,EAAY;IAC/C,IAAI,CAACzC,EAAA,CAAG0C,oBAAA,CAAqBQ,QAAQ,GAAG;MACtC,MAAM,IAAI5B,KAAA,CACR,aAAahB,IAAI,mDACnB;IACF;IACA,MAAMJ,IAAA,GAAOY,YAAA,CAAaoC,QAAA,CAAShD,IAAI;IACvC,IAAI,CAACA,IAAA,EAAM,MAAM,IAAIoB,KAAA,CAAM,aAAahB,IAAI,mCAAmC;IAC/E,IAAI,CAACN,EAAA,CAAGqC,yBAAA,CAA0Ba,QAAA,CAASL,WAAW,GAAG;MACvD,MAAM,IAAIvB,KAAA,CAAM,uBAAuBpB,IAAI,qBAAqB;IAClE;IACA,IAAI+C,SAAA,CAAUE,IAAA,CAAMC,QAAA,IAAaA,QAAA,CAASlD,IAAA,KAASA,IAAI,GAAG;MACxD,MAAM,IAAIoB,KAAA,CAAM,sCAAsCpB,IAAI,GAAG;IAC/D;IACA,IAAImD,GAAA,GAAMvD,OAAA,CAAQF,OAAA,CAAQU,IAAI,GAAGJ,IAAI;IACrC,IAAIoD,KAAA,GAAuB;IAC3B,MAAMC,aAAA,GAA0B,EAAC;IACjC,MAAMC,IAAA,GAAO,mBAAIC,GAAA,CAAY;IAC7B,WAAWjB,MAAA,IAAUU,QAAA,CAASL,WAAA,CAAYJ,UAAA,EAAY;MACpD,IAAI,CAACzC,EAAA,CAAG0C,oBAAA,CAAqBF,MAAM,GAAG;QACpC,MAAM,IAAIlB,KAAA,CAAM,uBAAuBpB,IAAI,+BAA+B;MAC5E;MACA,MAAMwD,UAAA,GAAa5C,YAAA,CAAa0B,MAAA,CAAOtC,IAAI;MAC3C,IAAI,CAACwD,UAAA,EACH,MAAM,IAAIpC,KAAA,CAAM,uBAAuBpB,IAAI,yBAAyB;MACtE,IAAIsD,IAAA,CAAKb,GAAA,CAAIe,UAAU,GAAG;QACxB,MAAM,IAAIpC,KAAA,CAAM,uBAAuBpB,IAAI,qBAAqBwD,UAAU,GAAG;MAC/E;MACAF,IAAA,CAAKG,GAAA,CAAID,UAAU;MACnB,IAAIA,UAAA,KAAe,OAAO;QACxB,IAAI,CAAC1D,EAAA,CAAGgB,eAAA,CAAgBwB,MAAA,CAAOK,WAAW,GAAG;UAC3C,MAAM,IAAIvB,KAAA,CAAM,uBAAuBpB,IAAI,gCAAgC;QAC7E;QACA,IAAIsC,MAAA,CAAOK,WAAA,CAAY3B,IAAA,CAAKL,UAAA,CAAW,GAAG,GAAG;UAC3C,MAAM,IAAIS,KAAA,CAAM,uBAAuBpB,IAAI,6BAA6BI,IAAI,EAAE;QAChF;QACA+C,GAAA,GAAMvD,OAAA,CAAQF,OAAA,CAAQU,IAAI,GAAGkC,MAAA,CAAOK,WAAA,CAAY3B,IAAI;QACpD;MACF;MACA,IAAIwC,UAAA,KAAe,SAAS;QAC1B,IAAI,CAAC1D,EAAA,CAAGgB,eAAA,CAAgBwB,MAAA,CAAOK,WAAW,GAAG;UAC3C,MAAM,IAAIvB,KAAA,CAAM,uBAAuBpB,IAAI,kCAAkC;QAC/E;QACA,IAAI,CAACsC,MAAA,CAAOK,WAAA,CAAY3B,IAAA,EAAM;UAC5B,MAAM,IAAII,KAAA,CAAM,uBAAuBpB,IAAI,yBAAyB;QACtE;QACAoD,KAAA,GAAQd,MAAA,CAAOK,WAAA,CAAY3B,IAAA;QAC3B;MACF;MACA,IAAIwC,UAAA,KAAe,iBAAiB;QAClC,IAAI,CAAC1D,EAAA,CAAG4D,wBAAA,CAAyBpB,MAAA,CAAOK,WAAW,GAAG;UACpD,MAAM,IAAIvB,KAAA,CAAM,uBAAuBpB,IAAI,kCAAkC;QAC/E;QACA,WAAW2D,KAAA,IAASrB,MAAA,CAAOK,WAAA,CAAYiB,QAAA,EAAU;UAC/C,IAAI,CAAC9D,EAAA,CAAGgB,eAAA,CAAgB6C,KAAK,GAAG;YAC9B,MAAM,IAAIvC,KAAA,CACR,uBAAuBpB,IAAI,8CAC7B;UACF;UACA,IAAI,CAAC2D,KAAA,CAAM3C,IAAA,EAAM;YACf,MAAM,IAAII,KAAA,CACR,uBAAuBpB,IAAI,oDAC7B;UACF;UACAqD,aAAA,CAAcQ,IAAA,CAAKF,KAAA,CAAM3C,IAAI;QAC/B;QACA;MACF;MACA,MAAM,IAAII,KAAA,CAAM,uBAAuBpB,IAAI,yBAAyBwD,UAAU,GAAG;IACnF;IACA,IAAI,CAAClE,UAAA,CAAW6D,GAAG,KAAK,CAAC3D,QAAA,CAAS2D,GAAG,EAAEW,WAAA,CAAY,GAAG;MACpD,MAAM,IAAI1C,KAAA,CAAM,uBAAuBpB,IAAI,+BAA+BmD,GAAG,EAAE;IACjF;IACAJ,SAAA,CAAUc,IAAA,CAAK;MAAE7D,IAAA;MAAMmD,GAAA;MAAKC,KAAA;MAAOC;IAAc,CAAC;EACpD;EACA,IAAIN,SAAA,CAAUgB,MAAA,KAAW,GAAG;IAC1B,MAAM,IAAI3C,KAAA,CAAM,aAAahB,IAAI,qCAAqC;EACxE;EACA,WAAW8C,QAAA,IAAYH,SAAA,EAAW;IAChC,MAAMiB,SAAA,GAAYjB,SAAA,CAAUkB,IAAA,CACzBC,SAAA,IAAcA,SAAA,KAAchB,QAAA,IAAYgB,SAAA,CAAUf,GAAA,KAAQD,QAAA,CAASC,GACtE;IACA,IAAIa,SAAA,EAAW;MACb,MAAM,IAAI5C,KAAA,CACR,wBAAwB8B,QAAA,CAASlD,IAAI,UAAUgE,SAAA,CAAUhE,IAAI,oCAAoCkD,QAAA,CAASC,GAAG,EAC/G;IACF;EACF;EACA,OAAO;IAAE/C,IAAA;IAAM2C;EAAU;AAC3B;AAeA,SAASoB,qBACPjD,OAAA,EACAf,OAAA,EACAC,IAAA,EACsB;EACtB,MAAMgE,IAAA,GAA6B;IAAEC,KAAA,EAAO;IAAOC,KAAA,EAAO;EAAM;EAChE,MAAMjD,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;EACtC,IAAIc,OAAA,CAAQK,cAAA,CAAenB,IAAI,GAAG;IAChC,MAAMmE,WAAA,GAAc5E,QAAA,CAASD,OAAA,CAAQS,OAAO,GAAGC,IAAI,EAAEC,KAAA,CAAMR,GAAG,EAAES,IAAA,CAAK,GAAG;IACxEkE,OAAA,CAAQC,IAAA,CAAK,sBAAsBF,WAAW,8BAA8B;IAC5E,OAAOH,IAAA;EACT;EACA,MAAMM,SAAA,GAAY,mBAAIrC,GAAA,CAA4B;EAClD,MAAMsC,QAAA,GAAW,mBAAIpB,GAAA,CAAY;EAEjC,WAAW9B,SAAA,IAAaJ,MAAA,CAAOK,UAAA,EAAY;IACzC,IAAI5B,EAAA,CAAG8E,mBAAA,CAAoBnD,SAAS,GAAG;MACrC,MAAMoD,UAAA,GAAapD,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CACrC8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD;MACA,WAAWC,WAAA,IAAe1D,SAAA,CAAU2D,eAAA,CAAgBC,YAAA,EAAc;QAChE,IAAI,CAACvF,EAAA,CAAGe,YAAA,CAAasE,WAAA,CAAYnF,IAAI,KAAK,CAACmF,WAAA,CAAYxC,WAAA,EAAa;QACpE,MAAM3C,IAAA,GAAOmF,WAAA,CAAYnF,IAAA,CAAKgB,IAAA;QAC9B,MAAM2B,WAAA,GAAcwC,WAAA,CAAYxC,WAAA;QAChC,IAAIkC,UAAA,IAAc/E,EAAA,CAAGiC,gBAAA,CAAiBY,WAAW,GAAG;UAClD,MAAM2C,eAAA,GAAkB3C,WAAA,CAAYX,OAAA,CAAQX,MAAM;UAClD,IACGrB,IAAA,KAAS,YAAYsF,eAAA,CAAgB3E,UAAA,CAAW,YAAY,KAC5DX,IAAA,KAAS,WAAWsF,eAAA,CAAgB3E,UAAA,CAAW,cAAc,KAC7DX,IAAA,KAAS,YAAYsF,eAAA,CAAgB3E,UAAA,CAAW,QAAQ,GACzD;YACA,OAAO;cAAE0D,KAAA,EAAO;cAAMC,KAAA,EAAO;YAAM;UACrC;QACF;QACA,IAAIxE,EAAA,CAAGyF,eAAA,CAAgB5C,WAAW,KAAK7C,EAAA,CAAG0F,oBAAA,CAAqB7C,WAAW,GAAG;UAC3E+B,SAAA,CAAUhC,GAAA,CAAI1C,IAAA,EAAM2C,WAAA,CAAY8C,IAAI;UACpC,IAAIZ,UAAA,EAAYF,QAAA,CAASlB,GAAA,CAAIzD,IAAI;QACnC;MACF;MACA;IACF;IACA,IAAIF,EAAA,CAAG4F,qBAAA,CAAsBjE,SAAS,KAAKA,SAAA,CAAUzB,IAAA,IAAQyB,SAAA,CAAUgE,IAAA,EAAM;MAC3Ef,SAAA,CAAUhC,GAAA,CAAIjB,SAAA,CAAUzB,IAAA,CAAKgB,IAAA,EAAMS,SAAA,CAAUgE,IAAI;MACjD,IACEhE,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CAClB8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD,GACA;QACAP,QAAA,CAASlB,GAAA,CAAIhC,SAAA,CAAUzB,IAAA,CAAKgB,IAAI;MAClC;IACF;EACF;EAEA,MAAM2E,QAAA,GAAW,mBAAIpC,GAAA,CAAY;EACjC,MAAMqC,YAAA,GAAgBC,IAAA,IAA2B;IAC/C,IAAI/F,EAAA,CAAGgG,0BAAA,CAA2BD,IAAI,GAAG;MACvC,IAAI/F,EAAA,CAAGe,YAAA,CAAagF,IAAA,CAAK/D,UAAU,KAAK+D,IAAA,CAAK/D,UAAA,CAAWd,IAAA,KAAS,OAAO,OAAO;MAC/E,IACElB,EAAA,CAAGgG,0BAAA,CAA2BD,IAAA,CAAK/D,UAAU,KAC7C+D,IAAA,CAAK/D,UAAA,CAAW9B,IAAA,CAAKgB,IAAA,KAAS,SAE9B,OAAO;IACX;IACA,IAAIlB,EAAA,CAAGiC,gBAAA,CAAiB8D,IAAI,KAAK/F,EAAA,CAAGe,YAAA,CAAagF,IAAA,CAAK/D,UAAU,GAAG;MACjE,MAAM9B,IAAA,GAAO6F,IAAA,CAAK/D,UAAA,CAAWd,IAAA;MAC7B,MAAM+E,MAAA,GAASrB,SAAA,CAAU5B,GAAA,CAAI9C,IAAI;MACjC,IAAI+F,MAAA,IAAU,CAACJ,QAAA,CAASlD,GAAA,CAAIzC,IAAI,GAAG;QACjC2F,QAAA,CAASlC,GAAA,CAAIzD,IAAI;QACjB,MAAMgG,MAAA,GAAQJ,YAAA,CAAaG,MAAM;QACjCJ,QAAA,CAASM,MAAA,CAAOjG,IAAI;QACpB,IAAIgG,MAAA,EAAO,OAAO;MACpB;IACF;IACA,IAAIA,KAAA,GAAQ;IACZH,IAAA,CAAKK,YAAA,CAAcxF,KAAA,IAAU;MAC3B,IAAI,CAACsF,KAAA,IAASJ,YAAA,CAAalF,KAAK,GAAGsF,KAAA,GAAQ;IAC7C,CAAC;IACD,OAAOA,KAAA;EACT;EAEA,MAAM1B,KAAA,GAAQ,CAAC,GAAGK,QAAQ,EAAE1B,IAAA,CAAMjD,IAAA,IAAS4F,YAAA,CAAalB,SAAA,CAAU5B,GAAA,CAAI9C,IAAI,CAAE,CAAC;EAC7E,OAAO;IAAEqE,KAAA,EAAO;IAAOC;EAAM;AAC/B;AAEA,SAAS6B,cACPjF,OAAA,EACAd,IAAA,EACAgG,SAAA,EACQ;EACR,MAAM/E,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;EACtC,IAAIiG,WAAA,GAA6B;EAEjC,WAAW5E,SAAA,IAAaJ,MAAA,CAAOK,UAAA,EAAY;IACzC,IAAI,CAAC5B,EAAA,CAAG8E,mBAAA,CAAoBnD,SAAS,GAAG;IACxC,IACE,CAACA,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CACnB8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD,GACA;MACA;IACF;IACA,WAAWC,WAAA,IAAe1D,SAAA,CAAU2D,eAAA,CAAgBC,YAAA,EAAc;MAChE,IAAI,CAACvF,EAAA,CAAGe,YAAA,CAAasE,WAAA,CAAYnF,IAAI,KAAK,CAACmF,WAAA,CAAYxC,WAAA,EAAa;MACpE,IACEwC,WAAA,CAAYnF,IAAA,CAAKgB,IAAA,KAAS,YAC1BlB,EAAA,CAAGiC,gBAAA,CAAiBoD,WAAA,CAAYxC,WAAW,GAC3C;QACA,MAAM2D,aAAA,GAAgBnB,WAAA,CAAYxC,WAAA,CAAYT,SAAA,CAAU,CAAC;QACzD,IAAIoE,aAAA,IAAiBxG,EAAA,CAAGgB,eAAA,CAAgBwF,aAAa,GAAG;UACtD,OAAOA,aAAA,CAActF,IAAA;QACvB;MACF;MACA,IAAImE,WAAA,CAAYnF,IAAA,CAAKgB,IAAA,KAAS,UAAU;MACxC,MAAMuF,KAAA,GAASV,IAAA,IAAkB;QAC/B,IACE/F,EAAA,CAAGiC,gBAAA,CAAiB8D,IAAI,KACxBA,IAAA,CAAK/D,UAAA,CAAWE,OAAA,CAAQX,MAAM,MAAM,WACpCwE,IAAA,CAAK3D,SAAA,CAAU,CAAC,KAChBpC,EAAA,CAAGgB,eAAA,CAAgB+E,IAAA,CAAK3D,SAAA,CAAU,CAAC,CAAC,GACpC;UACAmE,WAAA,GAAcR,IAAA,CAAK3D,SAAA,CAAU,CAAC,EAAElB,IAAA;UAChC;QACF;QACA6E,IAAA,CAAKK,YAAA,CAAaK,KAAK;MACzB;MACAA,KAAA,CAAMpB,WAAA,CAAYxC,WAAW;IAC/B;EACF;EAEA,OAAO0D,WAAA,IAAeD,SAAA;AACxB;AAEA,SAASI,mBACPtF,OAAA,EACAf,OAAA,EACA+C,QAAA,EACAuD,YAAA,EACA;EACA,MAAMC,UAAA,GAA8B,EAAC;EACrC,WAAWC,KAAA,IAASpH,WAAA,CAAY2D,QAAA,CAASC,GAAA,EAAK;IAAEyD,aAAA,EAAe;EAAK,CAAC,EAAEC,IAAA,CAAK,CAACC,CAAA,EAAGC,CAAA,KAC9ED,CAAA,CAAE9G,IAAA,CAAKgH,aAAA,CAAcD,CAAA,CAAE/G,IAAI,CAC7B,GAAG;IACD,IAAI2G,KAAA,CAAMM,MAAA,CAAO,GAAG;MAClB,IAAI,CAAClH,YAAA,CAAa4G,KAAA,CAAM3G,IAAI,KAAK2G,KAAA,CAAM3G,IAAA,KAAS,qBAAqB;MACrE,MAAMI,IAAA,GAAOR,OAAA,CAAQsD,QAAA,CAASC,GAAA,EAAKwD,KAAA,CAAM3G,IAAI;MAC7C,MAAMkH,KAAA,GAAQ/C,oBAAA,CAAqBjD,OAAA,EAASf,OAAA,EAASC,IAAI;MACzD,IAAI,CAAC8G,KAAA,CAAM7C,KAAA,IAAS,CAAC6C,KAAA,CAAM5C,KAAA,EAAO;MAClC,MAAMtE,IAAA,GAAOP,QAAA,CAASkH,KAAA,CAAM3G,IAAA,EAAM,KAAK;MACvC0G,UAAA,CAAW7C,IAAA,CAAK;QACd7D,IAAA;QACAkD,QAAA,EAAUA,QAAA,CAASlD,IAAA;QACnBmH,SAAA,EAAW/G,IAAA;QAAA;QAAA;QAGXgH,SAAA,EAAWF,KAAA,CAAM7C,KAAA,GAAQjE,IAAA,GAAO;QAChCiH,aAAA,EAAe;QACf1D,KAAA,EAAOuD,KAAA,CAAM7C,KAAA,GAAQ8B,aAAA,CAAcjF,OAAA,EAASd,IAAA,EAAMJ,IAAI,IAAI;QAC1DsH,WAAA,EAAa,CAAClH,IAAI;MACpB,CAAC;MACD;IACF;IACA,IAAI,CAACuG,KAAA,CAAM7C,WAAA,CAAY,GAAG;IAC1B,MAAMyD,MAAA,GAAS3H,OAAA,CAAQsD,QAAA,CAASC,GAAA,EAAKwD,KAAA,CAAM3G,IAAI;IAC/C,IAAI2G,KAAA,CAAM3G,IAAA,KAAS,eAAeyG,YAAA,CAAahE,GAAA,CAAI8E,MAAM,GAAG;IAE5D,MAAMJ,SAAA,GAAYvH,OAAA,CAAQ2H,MAAA,EAAQ,YAAY;IAC9C,MAAMH,SAAA,GAAYxH,OAAA,CAAQ2H,MAAA,EAAQ,cAAc;IAChD,MAAMF,aAAA,GAAgBzH,OAAA,CAAQ2H,MAAA,EAAQ,eAAe;IACrD,MAAMC,UAAA,GAAalI,UAAA,CAAW6H,SAAS;IACvC,MAAMM,YAAA,GAAenI,UAAA,CAAW8H,SAAS;IACzC,MAAMM,aAAA,GAAgBpI,UAAA,CAAW+H,aAAa;IAC9C,IAAI,CAACG,UAAA,IAAc,CAACC,YAAA,IAAgB,CAACC,aAAA,EAAe;MAClD,IACE,CAAC,UAAU,aAAa,SAAS,EAAEC,QAAA,CAAShB,KAAA,CAAM3G,IAAI,KACtDT,WAAA,CAAYgI,MAAM,EAAEtE,IAAA,CAAKlD,YAAY,GACrC;QACA,MAAM,IAAIqB,KAAA,CACR,aAAamG,MAAM,+BAA+BZ,KAAA,CAAM3G,IAAI,gFAE9D;MACF;MACA;IACF;IACA0G,UAAA,CAAW7C,IAAA,CAAK;MACd7D,IAAA,EAAM2G,KAAA,CAAM3G,IAAA;MACZkD,QAAA,EAAUA,QAAA,CAASlD,IAAA;MACnBmH,SAAA,EAAWK,UAAA,GAAaL,SAAA,GAAY;MACpCC,SAAA,EAAWK,YAAA,GAAeL,SAAA,GAAY;MACtCC,aAAA,EAAeK,aAAA,GAAgBL,aAAA,GAAgB;MAC/C1D,KAAA,EAAO8D,YAAA,GAAetB,aAAA,CAAcjF,OAAA,EAASkG,SAAA,EAAWT,KAAA,CAAM3G,IAAI,IAAI;MACtEsH,WAAA,EAAa,CACXE,UAAA,IAAcL,SAAA,EACdM,YAAA,IAAgBL,SAAA,EAChBM,aAAA,IAAiBL,aAAA,CACnB,CAAEO,MAAA,CAAQxH,IAAA,IAAyByH,OAAA,CAAQzH,IAAI,CAAC;IAClD,CAAC;EACH;EACA,OAAOsG,UAAA;AACT;AAEA,SAASoB,cAAc3H,OAAA,EAA2B;EAChD,MAAM4H,KAAA,GAAkB,EAAC;EACzB,MAAMC,SAAA,GAAYpI,OAAA,CAAQO,OAAA,EAAS,cAAc;EACjD,IAAIb,UAAA,CAAW0I,SAAS,GAAGD,KAAA,CAAMlE,IAAA,CAAKmE,SAAS;EAE/C,MAAMC,WAAA,GAAcrI,OAAA,CAAQF,OAAA,CAAQS,OAAO,GAAG,UAAU;EACxD,IAAI,CAACb,UAAA,CAAW2I,WAAW,GAAG,OAAOF,KAAA;EACrC,WAAWpB,KAAA,IAASpH,WAAA,CAAY0I,WAAA,EAAa;IAAErB,aAAA,EAAe;EAAK,CAAC,GAAG;IACrE,IAAI,CAACD,KAAA,CAAMM,MAAA,CAAO,KAAK,CAAClH,YAAA,CAAa4G,KAAA,CAAM3G,IAAI,GAAG;IAClD,IACE2G,KAAA,CAAM3G,IAAA,KAAS,kBACf2G,KAAA,CAAM3G,IAAA,KAAS,wBACf2G,KAAA,CAAM3G,IAAA,CAAKW,UAAA,CAAW,QAAQ,GAC9B;MACAoH,KAAA,CAAMlE,IAAA,CAAKjE,OAAA,CAAQqI,WAAA,EAAatB,KAAA,CAAM3G,IAAI,CAAC;IAC7C;EACF;EACA,OAAO+H,KAAA,CAAMlB,IAAA,CAAK;AACpB;AAEA,SAASqB,gBACPhH,OAAA,EACA6G,KAAA,EACkC;EAClC,MAAMC,SAAA,GAAY,mBAAI3F,GAAA,CAAiC;EACvD,WAAWjC,IAAA,IAAQ2H,KAAA,CAAMH,MAAA,CAAQxH,KAAA,IAASX,QAAA,CAAS0I,KAAI,MAAM,cAAc,GAAG;IAC5E,MAAM9G,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;IACtC,MAAMmG,KAAA,GAASV,IAAA,IAAkB;MAC/B,IACE,CAAC/F,EAAA,CAAGiC,gBAAA,CAAiB8D,IAAI,KACzBA,IAAA,CAAK/D,UAAA,CAAWE,OAAA,CAAQX,MAAM,MAAM,mBACpC;QACAwE,IAAA,CAAKK,YAAA,CAAaK,KAAK;QACvB;MACF;MACA,MAAM6B,OAAA,GAAUvC,IAAA,CAAK3D,SAAA,CAAU,CAAC;MAChC,IAAI,CAACkG,OAAA,IAAY,CAACtI,EAAA,CAAGyF,eAAA,CAAgB6C,OAAO,KAAK,CAACtI,EAAA,CAAG0F,oBAAA,CAAqB4C,OAAO,GAC/E;MACF,MAAM3C,IAAA,GAAO3F,EAAA,CAAGuI,yBAAA,CAA0BD,OAAA,CAAQ3C,IAAI,IAClD2C,OAAA,CAAQ3C,IAAA,CAAK3D,UAAA,GACbsG,OAAA,CAAQ3C,IAAA;MACZ,IAAI,CAAC3F,EAAA,CAAGqC,yBAAA,CAA0BsD,IAAI,GAAG;MACzC,WAAW6C,aAAA,IAAiB7C,IAAA,CAAKlD,UAAA,EAAY;QAC3C,IACE,CAACzC,EAAA,CAAG0C,oBAAA,CAAqB8F,aAAa,KACtC,CAACxI,EAAA,CAAGqC,yBAAA,CAA0BmG,aAAA,CAAc3F,WAAW,GACvD;UACA;QACF;QACA,MAAMgB,KAAA,GAAQ2E,aAAA,CAActI,IAAA,CAAKgC,OAAA,CAAQX,MAAM,EAAEd,OAAA,CAAQ,gBAAgB,EAAE;QAC3E,MAAMgI,cAAA,GAAiBP,SAAA,CAAUlF,GAAA,CAAIa,KAAK,KAAK,mBAAItB,GAAA,CAAoB;QACvE,WAAWmG,gBAAA,IAAoBF,aAAA,CAAc3F,WAAA,CAAYJ,UAAA,EAAY;UACnE,IACE,CAACzC,EAAA,CAAG0C,oBAAA,CAAqBgG,gBAAgB,KACzC,CAAC1I,EAAA,CAAGiC,gBAAA,CAAiByG,gBAAA,CAAiB7F,WAAW,GACjD;YACA;UACF;UACA,MAAMb,UAAA,GAAa0G,gBAAA,CAAiB7F,WAAA,CAAYb,UAAA;UAChD,IAAI,CAAChC,EAAA,CAAGgG,0BAAA,CAA2BhE,UAAU,GAAG;UAChD,MAAM9B,IAAA,GAAOwI,gBAAA,CAAiBxI,IAAA,CAAKgC,OAAA,CAAQX,MAAM,EAAEd,OAAA,CAAQ,gBAAgB,EAAE;UAC7EgI,cAAA,CAAe7F,GAAA,CAAI1C,IAAA,EAAM8B,UAAA,CAAW9B,IAAA,CAAKgB,IAAI;QAC/C;QACAgH,SAAA,CAAUtF,GAAA,CAAIiB,KAAA,EAAO4E,cAAc;MACrC;IACF;IACAhC,KAAA,CAAMlF,MAAM;EACd;EACA,OAAO2G,SAAA;AACT;AAEA,SAASS,aACPvH,OAAA,EACA6G,KAAA,EACArB,UAAA,EAC0B;EAC1B,MAAMgC,OAAA,GAAU,mBAAIrG,GAAA,CAAyB;EAC7C,MAAMsG,OAAA,GAAU,mBAAIpF,GAAA,CAAI,CACtB,GAAGwE,KAAA,EACH,GAAGrB,UAAA,CAAWkC,OAAA,CAASxC,SAAA,IAAcA,SAAA,CAAUkB,WAAW,EAC3D;EACD,WAAWlH,IAAA,IAAQuI,OAAA,EAAS;IAC1B,MAAMtH,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;IACtC,MAAMmG,KAAA,GAASV,IAAA,IAAkB;MAC/B,IACE,CAAC/F,EAAA,CAAG+I,qBAAA,CAAsBhD,IAAI,KAC9B,CAAC/F,EAAA,CAAGe,YAAA,CAAagF,IAAA,CAAK7F,IAAI,KAC1B,CAAC6F,IAAA,CAAKlD,WAAA,EACN;QACAkD,IAAA,CAAKK,YAAA,CAAaK,KAAK;QACvB;MACF;MACA,MAAMuC,UAAA,GAAa,mBAAIvF,GAAA,CAAI,CAACsC,IAAA,CAAK7F,IAAA,CAAKgB,IAAI,CAAC;MAC3C,IAAI+H,YAAA,GAAkD;MACtD,MAAMC,OAAA,GAAW9E,SAAA,IAAuB;QACtC,IAAI,CAACpE,EAAA,CAAGiC,gBAAA,CAAiBmC,SAAS,GAAG;UACnCA,SAAA,CAAUgC,YAAA,CAAa8C,OAAO;UAC9B;QACF;QACA,WAAWC,QAAA,IAAY/E,SAAA,CAAUhC,SAAA,EAAW;UAC1C,IACEpC,EAAA,CAAGgB,eAAA,CAAgBmI,QAAQ,KAC3B,SAASC,IAAA,CAAKhF,SAAA,CAAUpC,UAAA,CAAWE,OAAA,CAAQX,MAAM,CAAC,GAClD;YACAyH,UAAA,CAAWrF,GAAA,CAAIwF,QAAA,CAASjI,IAAI;UAC9B;UACA,IAAIlB,EAAA,CAAGqC,yBAAA,CAA0B8G,QAAQ,GAAGF,YAAA,GAAeE,QAAA;QAC7D;QACAD,OAAA,CAAQ9E,SAAA,CAAUpC,UAAU;MAC9B;MACAkH,OAAA,CAAQnD,IAAA,CAAKlD,WAAW;MACxB,IAAIoG,YAAA,EAAc;QAChB,MAAMI,KAAA,GAAQ,IAAI5F,GAAA,CACfwF,YAAA,CAA4CxG,UAAA,CAC1C6G,GAAA,CAAKpG,QAAA,IACJlD,EAAA,CAAGuJ,kBAAA,CAAmBrG,QAAQ,IAC1B,OACAA,QAAA,CAAShD,IAAA,EAAMgC,OAAA,CAAQX,MAAM,EAAEd,OAAA,CAAQ,gBAAgB,EAAE,CAC/D,EACCqH,MAAA,CAAQ5H,IAAA,IAAyB6H,OAAA,CAAQ7H,IAAI,CAAC,CACnD;QACA,WAAWsJ,SAAA,IAAaR,UAAA,EAAYJ,OAAA,CAAQhG,GAAA,CAAI4G,SAAA,EAAWH,KAAK;MAClE;MACAtD,IAAA,CAAKK,YAAA,CAAaK,KAAK;IACzB;IACAA,KAAA,CAAMlF,MAAM;EACd;EACA,OAAOqH,OAAA;AACT;AAEA,SAASa,cACPrI,OAAA,EACAkF,SAAA,EACA4B,SAAA,EACwD;EACxD,IAAI,CAAC5B,SAAA,CAAUe,SAAA,EAAW,OAAO,EAAC;EAClC,MAAM9F,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAW8E,SAAA,CAAUe,SAAS;EACrD,MAAMqC,OAAA,GAAkE,EAAC;EACzE,MAAM9E,SAAA,GAAY,mBAAIrC,GAAA,CAA4B;EAClD,MAAMsC,QAAA,GAAW,mBAAIpB,GAAA,CAAY;EAEjC,WAAW9B,SAAA,IAAaJ,MAAA,CAAOK,UAAA,EAAY;IACzC,IAAI5B,EAAA,CAAG8E,mBAAA,CAAoBnD,SAAS,GAAG;MACrC,MAAMoD,UAAA,GAAapD,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CACrC8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD;MACA,WAAWC,WAAA,IAAe1D,SAAA,CAAU2D,eAAA,CAAgBC,YAAA,EAAc;QAChE,IACEvF,EAAA,CAAGe,YAAA,CAAasE,WAAA,CAAYnF,IAAI,KAChCmF,WAAA,CAAYxC,WAAA,KACX7C,EAAA,CAAGyF,eAAA,CAAgBJ,WAAA,CAAYxC,WAAW,KACzC7C,EAAA,CAAG0F,oBAAA,CAAqBL,WAAA,CAAYxC,WAAW,IACjD;UACA+B,SAAA,CAAUhC,GAAA,CAAIyC,WAAA,CAAYnF,IAAA,CAAKgB,IAAA,EAAMmE,WAAA,CAAYxC,WAAA,CAAY8C,IAAI;UACjE,IAAIZ,UAAA,EAAYF,QAAA,CAASlB,GAAA,CAAI0B,WAAA,CAAYnF,IAAA,CAAKgB,IAAI;QACpD;MACF;IACF,WAAWlB,EAAA,CAAG4F,qBAAA,CAAsBjE,SAAS,KAAKA,SAAA,CAAUzB,IAAA,IAAQyB,SAAA,CAAUgE,IAAA,EAAM;MAClFf,SAAA,CAAUhC,GAAA,CAAIjB,SAAA,CAAUzB,IAAA,CAAKgB,IAAA,EAAMS,SAAA,CAAUgE,IAAI;MACjD,IACEhE,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CAClB8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD,GACA;QACAP,QAAA,CAASlB,GAAA,CAAIhC,SAAA,CAAUzB,IAAA,CAAKgB,IAAI;MAClC;IACF;EACF;EAEA,MAAMyI,SAAA,GAAa5D,IAAA,IAAiC;IAClD,MAAM7E,IAAA,GAAO6E,IAAA,CAAK7D,OAAA,CAAQX,MAAM;IAChC,OAAOL,IAAA,CAAK0I,KAAA,CAAM,uCAAuC,IAAI,CAAC,KAAK;EACrE;EAEA,MAAM/D,QAAA,GAAW,mBAAIpC,GAAA,CAAY;EACjC,MAAMgD,KAAA,GAAQA,CAACV,IAAA,EAAe8D,YAAA,EAAsBrF,KAAA,KAAkB;IACpE,IACExE,EAAA,CAAGiC,gBAAA,CAAiB8D,IAAI,KACxB/F,EAAA,CAAGgG,0BAAA,CAA2BD,IAAA,CAAK/D,UAAU,KAC7C+D,IAAA,CAAK/D,UAAA,CAAW9B,IAAA,CAAKgB,IAAA,KAAS,WAC9B;MACA,MAAM4I,OAAA,GAAU/D,IAAA,CAAK3D,SAAA,CAAU,CAAC;MAChC,IAAI,CAAC0H,OAAA,IAAW,CAAC9J,EAAA,CAAGgB,eAAA,CAAgB8I,OAAO,GAAG;QAC5C,MAAM,IAAIxI,KAAA,CACR,aAAagF,SAAA,CAAUpG,IAAI,IAAIsE,KAAK,wFAEtC;MACF;MACA,MAAMuF,WAAA,GAAcJ,SAAA,CAAU5D,IAAA,CAAK/D,UAAA,CAAWA,UAAU,KAAK6H,YAAA;MAC7D,MAAMG,MAAA,GAAS9B,SAAA,CAAUlF,GAAA,CAAI+G,WAAW,GAAG/G,GAAA,CAAI8G,OAAA,CAAQ5I,IAAI;MAC3D,IAAI,CAAC8I,MAAA,EAAQ;QACX,MAAM,IAAI1I,KAAA,CACR,aAAagF,SAAA,CAAUpG,IAAI,IAAIsE,KAAK,aAAasF,OAAA,CAAQ5I,IAAI,qCAC5C6I,WAAW,wBAC9B;MACF;MACAL,OAAA,CAAQ3F,IAAA,CAAK;QAAEF,KAAA,EAAOmG,MAAA;QAAQxF,KAAA;QAAO7D,IAAA,EAAM;MAAM,CAAC;MAClD8F,KAAA,CAAMV,IAAA,CAAK/D,UAAA,CAAWA,UAAA,EAAY6H,YAAA,EAAcrF,KAAK;MACrD,MAAMyF,QAAA,GAAWlE,IAAA,CAAK3D,SAAA,CAAU,CAAC;MACjC,IACE6H,QAAA,KACCjK,EAAA,CAAGyF,eAAA,CAAgBwE,QAAQ,KAAKjK,EAAA,CAAG0F,oBAAA,CAAqBuE,QAAQ,IACjE;QACAxD,KAAA,CAAMwD,QAAA,CAAStE,IAAA,EAAMqE,MAAA,EAAQxF,KAAK;MACpC;MACA;IACF;IACA,IAAIxE,EAAA,CAAGiC,gBAAA,CAAiB8D,IAAI,KAAK/F,EAAA,CAAGe,YAAA,CAAagF,IAAA,CAAK/D,UAAU,GAAG;MACjE,MAAMiE,MAAA,GAASrB,SAAA,CAAU5B,GAAA,CAAI+C,IAAA,CAAK/D,UAAA,CAAWd,IAAI;MACjD,MAAMgJ,GAAA,GAAM,GAAG1F,KAAK,IAAIuB,IAAA,CAAK/D,UAAA,CAAWd,IAAI;MAC5C,IAAI+E,MAAA,IAAU,CAACJ,QAAA,CAASlD,GAAA,CAAIuH,GAAG,GAAG;QAChCrE,QAAA,CAASlC,GAAA,CAAIuG,GAAG;QAChB,MAAMC,UAAA,GAAaR,SAAA,CAAU1D,MAAM;QACnC,IAAIkE,UAAA,EAAYT,OAAA,CAAQ3F,IAAA,CAAK;UAAEF,KAAA,EAAOsG,UAAA;UAAY3F,KAAA;UAAO7D,IAAA,EAAM;QAAK,CAAC;QACrE8F,KAAA,CAAMR,MAAA,EAAQkE,UAAA,IAAcN,YAAA,EAAcrF,KAAK;QAC/CqB,QAAA,CAASM,MAAA,CAAO+D,GAAG;MACrB;IACF;IACAnE,IAAA,CAAKK,YAAA,CAAcxF,KAAA,IAAU6F,KAAA,CAAM7F,KAAA,EAAOiJ,YAAA,EAAcrF,KAAK,CAAC;EAChE;EAEA,WAAWtE,IAAA,IAAQ2E,QAAA,EAAU;IAC3B,IAAI,CAAC,UAAU,UAAU,OAAO,EAAEgD,QAAA,CAAS3H,IAAI,GAAG;IAClD,MAAMyF,IAAA,GAAOf,SAAA,CAAU5B,GAAA,CAAI9C,IAAI;IAC/B,MAAMkK,SAAA,GAAYT,SAAA,CAAUhE,IAAI;IAChC,IAAIyE,SAAA,EAAWV,OAAA,CAAQ3F,IAAA,CAAK;MAAEF,KAAA,EAAOuG,SAAA;MAAW5F,KAAA,EAAOtE,IAAA;MAAMS,IAAA,EAAM;IAAK,CAAC;IACzE8F,KAAA,CAAMd,IAAA,EAAMyE,SAAA,IAAa9D,SAAA,CAAUpG,IAAA,EAAMA,IAAI;EAC/C;EACA,OAAOwJ,OAAA;AACT;AAEA,SAASW,gBACPjJ,OAAA,EACAkF,SAAA,EACU;EACV,IAAI,CAACA,SAAA,CAAUiB,aAAA,EAAe,OAAO,EAAC;EACtC,MAAMhG,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAW8E,SAAA,CAAUiB,aAAa;EACzD,MAAM+C,MAAA,GAAUvE,IAAA,IAAuC;IACrD,IAAIwE,OAAA,GAAUxE,IAAA;IACd,OACE/F,EAAA,CAAGwK,qBAAA,CAAsBD,OAAO,KAChCvK,EAAA,CAAGyK,cAAA,CAAeF,OAAO,KACzBvK,EAAA,CAAGuI,yBAAA,CAA0BgC,OAAO,GACpC;MACAA,OAAA,GAAUA,OAAA,CAAQvI,UAAA;IACpB;IACA,OAAOuI,OAAA;EACT;EACA,MAAMG,MAAA,GAAS,mBAAIjH,GAAA,CAAY;EAC/B,WAAW9B,SAAA,IAAaJ,MAAA,CAAOK,UAAA,EAAY;IACzC,IAAI,CAAC5B,EAAA,CAAG8E,mBAAA,CAAoBnD,SAAS,GAAG;IACxC,IACE,CAACA,SAAA,CAAUqD,SAAA,EAAW7B,IAAA,CACnB8B,QAAA,IAAaA,QAAA,CAASC,IAAA,KAASlF,EAAA,CAAGmF,UAAA,CAAWC,aAChD,GACA;MACA;IACF;IACA,WAAWC,WAAA,IAAe1D,SAAA,CAAU2D,eAAA,CAAgBC,YAAA,EAAc;MAChE,IACE,CAACvF,EAAA,CAAGe,YAAA,CAAasE,WAAA,CAAYnF,IAAI,KACjCmF,WAAA,CAAYnF,IAAA,CAAKgB,IAAA,KAAS,gBAC1B,CAACmE,WAAA,CAAYxC,WAAA,EACb;QACA;MACF;MACA,MAAM8H,WAAA,GAAcL,MAAA,CAAOjF,WAAA,CAAYxC,WAAW;MAClD,IAAI,CAAC7C,EAAA,CAAGqC,yBAAA,CAA0BsI,WAAW,GAAG;QAC9C,MAAM,IAAIrJ,KAAA,CACR,aAAagF,SAAA,CAAUiB,aAAa,8CACtC;MACF;MACA,WAAWrE,QAAA,IAAYyH,WAAA,CAAYlI,UAAA,EAAY;QAC7C,IAAI,CAACzC,EAAA,CAAG0C,oBAAA,CAAqBQ,QAAQ,GAAG;UACtC,MAAM,IAAI5B,KAAA,CACR,aAAagF,SAAA,CAAUiB,aAAa,qDACtC;QACF;QACA,MAAMqD,UAAA,GAAaN,MAAA,CAAOpH,QAAA,CAASL,WAAW;QAC9C,IAAI,CAAC7C,EAAA,CAAGqC,yBAAA,CAA0BuI,UAAU,GAAG;UAC7C,MAAM,IAAItJ,KAAA,CACR,aAAagF,SAAA,CAAUiB,aAAa,cAAcrE,QAAA,CAAShD,IAAA,CAAKgC,OAAA,CAAQX,MAAM,CAAC,4BACjF;QACF;QACA,WAAWsJ,SAAA,IAAa,CAAC,UAAU,QAAQ,GAAG;UAC5C,MAAMC,KAAA,GAAQF,UAAA,CAAWnI,UAAA,CAAW0B,IAAA,CACjCC,SAAA,IACCpE,EAAA,CAAG0C,oBAAA,CAAqB0B,SAAS,KACjCtD,YAAA,CAAasD,SAAA,CAAUlE,IAAI,MAAM2K,SACrC;UACA,IAAI,CAACC,KAAA,IAAS,CAAC9K,EAAA,CAAGgB,eAAA,CAAgBsJ,MAAA,CAAOQ,KAAA,CAAMjI,WAAW,CAAC,GAAG;YAC5D,MAAM,IAAIvB,KAAA,CACR,aAAagF,SAAA,CAAUiB,aAAa,cAAcrE,QAAA,CAAShD,IAAA,CAAKgC,OAAA,CAAQX,MAAM,CAAC,IAAIsJ,SAAS,2BAC9F;UACF;UACAH,MAAA,CAAO/G,GAAA,CAAK2G,MAAA,CAAOQ,KAAA,CAAMjI,WAAW,EAAuB3B,IAAI;QACjE;MACF;IACF;EACF;EACA,OAAO,CAAC,GAAGwJ,MAAM,EAAE3D,IAAA,CAAK;AAC1B;AAEA,SAASgE,sBACP3J,OAAA,EACAf,OAAA,EACA2K,WAAA,EACA1E,SAAA,EACU;EACV,IAAI,CAACA,SAAA,CAAUgB,SAAA,EAAW,OAAO,EAAC;EAClC,MAAMoD,MAAA,GAAS,mBAAIjH,GAAA,CAAY;EAC/B,MAAMwH,OAAA,GAAU,mBAAIxH,GAAA,CAAY;EAEhC,MAAMyH,IAAA,GAAQ5K,IAAA,IAAiB;IAC7B,IAAI2K,OAAA,CAAQtI,GAAA,CAAIrC,IAAI,GAAG;IACvB2K,OAAA,CAAQtH,GAAA,CAAIrD,IAAI;IAChB,MAAMiB,MAAA,GAASH,OAAA,CAAQI,UAAA,CAAWlB,IAAI;IAEtC,MAAMmG,KAAA,GAASV,IAAA,IAAkB;MAC/B,IACE/F,EAAA,CAAGgG,0BAAA,CAA2BD,IAAI,KAClC/F,EAAA,CAAGgG,0BAAA,CAA2BD,IAAA,CAAK/D,UAAU,KAC7C,CAAC,UAAU,OAAO,EAAE6F,QAAA,CAAS9B,IAAA,CAAK/D,UAAA,CAAW9B,IAAA,CAAKgB,IAAI,GACtD;QACA,MAAMiK,WAAA,GAAcpF,IAAA,CAAK/D,UAAA,CAAWA,UAAA;QACpC,IACGhC,EAAA,CAAGe,YAAA,CAAaoK,WAAW,KAAKA,WAAA,CAAYjK,IAAA,KAAS,QACrDlB,EAAA,CAAGgG,0BAAA,CAA2BmF,WAAW,KAAKA,WAAA,CAAYjL,IAAA,CAAKgB,IAAA,KAAS,MACzE;UACAwJ,MAAA,CAAO/G,GAAA,CAAIoC,IAAA,CAAK7F,IAAA,CAAKgB,IAAI;QAC3B;MACF;MAEA,KACGlB,EAAA,CAAGoL,mBAAA,CAAoBrF,IAAI,KAAK/F,EAAA,CAAGqL,mBAAA,CAAoBtF,IAAI,MAC5DA,IAAA,CAAKuF,eAAA,IACLtL,EAAA,CAAGgB,eAAA,CAAgB+E,IAAA,CAAKuF,eAAe,GACvC;QACA,MAAMC,SAAA,GAAYxF,IAAA,CAAKuF,eAAA,CAAgBpK,IAAA;QACvC,MAAMsK,UAAA,GAAaD,SAAA,CAAU1K,UAAA,CAAW,SAAS,IAC7Cf,OAAA,CAAQO,OAAA,EAASkL,SAAA,CAAUE,KAAA,CAAM,UAAUxH,MAAM,CAAC,IAClDsH,SAAA,CAAU1K,UAAA,CAAW,GAAG,IACtBf,OAAA,CAAQF,OAAA,CAAQU,IAAI,GAAGiL,SAAS,IAChC;QACN,IAAIC,UAAA,EAAY;UACd,WAAWpH,SAAA,IAAa,CACtBoH,UAAA,CAAWrL,QAAA,CAAS,KAAK,IAAIqL,UAAA,GAAa,GAAGA,UAAU,OACvD1L,OAAA,CAAQ0L,UAAA,EAAY,UAAU,EAChC,EAAG;YACD,IACEhM,UAAA,CAAW4E,SAAS,KACpB4G,WAAA,CAAY7H,IAAA,CAAMxC,IAAA,IAASD,QAAA,CAASC,IAAA,EAAMyD,SAAS,CAAC,GACpD;cACA8G,IAAA,CAAK9G,SAAS;cACd;YACF;UACF;QACF;MACF;MAEA2B,IAAA,CAAKK,YAAA,CAAaK,KAAK;IACzB;IACAA,KAAA,CAAMlF,MAAM;EACd;EAEA2J,IAAA,CAAK5E,SAAA,CAAUgB,SAAS;EACxB,OAAO,CAAC,GAAGoD,MAAM,EAAE3D,IAAA,CAAK;AAC1B;AAEA,SAAS2E,sBAAsBC,KAAA,EAAiB;EAC9C,MAAMV,OAAA,GAAU,mBAAIxH,GAAA,CAAY;EAChC,MAAMmI,IAAA,GAAQvI,GAAA,IAAgB;IAC5B,IAAI4H,OAAA,CAAQtI,GAAA,CAAIU,GAAG,KAAK,CAAC7D,UAAA,CAAW6D,GAAG,GAAG;IAC1C4H,OAAA,CAAQtH,GAAA,CAAIN,GAAG;IACf,WAAWwD,KAAA,IAASpH,WAAA,CAAY4D,GAAA,EAAK;MAAEyD,aAAA,EAAe;IAAK,CAAC,GAAG;MAC7D,IAAID,KAAA,CAAM3G,IAAA,KAAS,kBAAkB2G,KAAA,CAAM3G,IAAA,KAAS,aAAa;MACjE,MAAMI,IAAA,GAAOR,OAAA,CAAQuD,GAAA,EAAKwD,KAAA,CAAM3G,IAAI;MACpC,IAAI2G,KAAA,CAAM7C,WAAA,CAAY,GAAG;QACvB4H,IAAA,CAAKtL,IAAI;MACX,WAAWuG,KAAA,CAAMM,MAAA,CAAO,KAAKN,KAAA,CAAM3G,IAAA,KAAS,eAAe;QACzD,MAAM,IAAIoB,KAAA,CACR,aAAahB,IAAI,iGACnB;MACF;IACF;EACF;EACA,WAAWK,IAAA,IAAQgL,KAAA,EAAOC,IAAA,CAAKjL,IAAI;AACrC;AAEA,SAASkL,4BACPzK,OAAA,EACAf,OAAA,EACAgB,UAAA,EACAsF,YAAA,EACA;EACA,MAAMiF,IAAA,GAAQvI,GAAA,IAAgB;IAC5B,IAAIsD,YAAA,CAAaxD,IAAA,CAAM2I,WAAA,IAAgBpL,QAAA,CAASoL,WAAA,EAAazI,GAAG,CAAC,GAAG;IACpE,WAAWwD,KAAA,IAASpH,WAAA,CAAY4D,GAAA,EAAK;MAAEyD,aAAA,EAAe;IAAK,CAAC,GAAG;MAC7D,IAAID,KAAA,CAAM3G,IAAA,KAAS,kBAAkB2G,KAAA,CAAM3G,IAAA,KAAS,aAAa;MACjE,MAAMI,IAAA,GAAOR,OAAA,CAAQuD,GAAA,EAAKwD,KAAA,CAAM3G,IAAI;MACpC,IAAI2G,KAAA,CAAM7C,WAAA,CAAY,GAAG;QACvB4H,IAAA,CAAKtL,IAAI;QACT;MACF;MACA,IACE,CAACuG,KAAA,CAAMM,MAAA,CAAO,KACd,CAAClH,YAAA,CAAa4G,KAAA,CAAM3G,IAAI,KACxBI,IAAA,KAASe,UAAA,IACTwF,KAAA,CAAM3G,IAAA,KAAS,eACf;QACA;MACF;MACA,MAAMkH,KAAA,GAAQ/C,oBAAA,CAAqBjD,OAAA,EAASf,OAAA,EAASC,IAAI;MACzD,IAAI8G,KAAA,CAAM7C,KAAA,IAAS6C,KAAA,CAAM5C,KAAA,EAAO;QAC9B,MAAM,IAAIlD,KAAA,CACR,4BAA4BhB,IAAI,oDAAoDe,UAAU,EAChG;MACF;IACF;EACF;EACAuK,IAAA,CAAKvL,OAAO;AACd;AAEO,SAAS0L,mBACd3K,OAAA,EACAf,OAAA,EACAgB,UAAA,EACY;EACZ,MAAMK,MAAA,GAASP,cAAA,CAAeC,OAAA,EAASf,OAAA,EAASgB,UAAU;EAC1D,MAAM2K,UAAA,GACJtK,MAAA,EAAQuB,SAAA,IACP,CACC;IAAE/C,IAAA,EAAM;IAAWmD,GAAA,EAAKhD,OAAA;IAASiD,KAAA,EAAO;IAAMC,aAAA,EAAe;EAAG,EAClE;EACF,MAAMyH,WAAA,GAAc,CAClB,IAAG,mBAAIvH,GAAA,CAAI,CAACpD,OAAA,EAAS,GAAG2L,UAAA,CAAW1C,GAAA,CAAKlG,QAAA,IAAaA,QAAA,CAASC,GAAG,CAAC,CAAC,EACrE;EACAqI,qBAAA,CAAsBV,WAAW;EACjC,IAAItJ,MAAA,EAAQ;IACVmK,2BAAA,CACEzK,OAAA,EACAf,OAAA,EACAqB,MAAA,CAAOpB,IAAA,EACP0L,UAAA,CAAW1C,GAAA,CAAKlG,QAAA,IAAaA,QAAA,CAASC,GAAG,CAC3C;EACF;EACA,MAAMJ,SAAA,GAA4B+I,UAAA,CAAW1C,GAAA,CAAKlG,QAAA,KAAc;IAC9DlD,IAAA,EAAMkD,QAAA,CAASlD,IAAA;IACfmD,GAAA,EAAKD,QAAA,CAASC,GAAA;IACdC,KAAA,EAAOF,QAAA,CAASE,KAAA;IAChBsD,UAAA,EAAY,EAAC;IACb8D,MAAA,EAAQ,EAAC;IACTuB,UAAA,EAAY,EAAC;IACb1I,aAAA,EAAe,EAAC;IAChB2I,qBAAA,EAAuB9I,QAAA,CAASG;EAClC,EAAE;EACF,MAAMoD,YAAA,GAAe,IAAIlD,GAAA,CAAIR,SAAA,CAAUqG,GAAA,CAAKlG,QAAA,IAAaA,QAAA,CAASC,GAAG,CAAC;EAEtE,WAAWD,QAAA,IAAYH,SAAA,EAAW;IAChCG,QAAA,CAASwD,UAAA,GAAaF,kBAAA,CAAmBtF,OAAA,EAASf,OAAA,EAAS+C,QAAA,EAAUuD,YAAY;EACnF;EACA,MAAMC,UAAA,GAAa3D,SAAA,CAAU6F,OAAA,CAAS1F,QAAA,IAAaA,QAAA,CAASwD,UAAU;EACtE,MAAMuF,eAAA,GAAkB,mBAAI5J,GAAA,CAAoB;EAChD,WAAW+D,SAAA,IAAaM,UAAA,EAAY;IAClC,MAAMwF,KAAA,GAAQD,eAAA,CAAgBnJ,GAAA,CAAIsD,SAAA,CAAUpG,IAAI;IAChD,IAAIkM,KAAA,EAAO;MACT,MAAM,IAAI9K,KAAA,CACR,wBAAwBgF,SAAA,CAAUpG,IAAI,8BAA8BkM,KAAK,UAAU9F,SAAA,CAAUlD,QAAQ,GACvG;IACF;IACA+I,eAAA,CAAgBvJ,GAAA,CAAI0D,SAAA,CAAUpG,IAAA,EAAMoG,SAAA,CAAUlD,QAAQ;EACxD;EACA,MAAMiJ,WAAA,GAAc,mBAAI9J,GAAA,CAAoB;EAC5C,WAAW+D,SAAA,IAAaM,UAAA,EAAY;IAClC,IAAIN,SAAA,CAAUzC,KAAA,KAAU,MAAM;IAC9B,MAAMuI,KAAA,GAAQC,WAAA,CAAYrJ,GAAA,CAAIsD,SAAA,CAAUzC,KAAK;IAC7C,IAAIuI,KAAA,IAASA,KAAA,KAAU9F,SAAA,CAAUlD,QAAA,EAAU;MACzC,MAAM,IAAI9B,KAAA,CACR,oBAAoBgF,SAAA,CAAUzC,KAAK,8BAA8BuI,KAAK,UAAU9F,SAAA,CAAUlD,QAAQ,GACpG;IACF;IACAiJ,WAAA,CAAYzJ,GAAA,CAAI0D,SAAA,CAAUzC,KAAA,EAAOyC,SAAA,CAAUlD,QAAQ;EACrD;EAEA,MAAMkJ,QAAA,GAAWtE,aAAA,CAAc3H,OAAO;EACtC,MAAM6H,SAAA,GAAYE,eAAA,CAAgBhH,OAAA,EAASkL,QAAQ;EACnD,MAAM1D,OAAA,GAAUD,YAAA,CAAavH,OAAA,EAASkL,QAAA,EAAU1F,UAAU;EAC1D,MAAM2F,aAAA,GAAgB,mBAAIhK,GAAA,CAAoB;EAC9C,WAAWa,QAAA,IAAYH,SAAA,EAAW;IAChC,MAAMyH,MAAA,GAAS,IAAIjH,GAAA,CACjBL,QAAA,CAASwD,UAAA,CACN0C,GAAA,CAAKhD,SAAA,IAAcA,SAAA,CAAUzC,KAAK,EAClCiE,MAAA,CAAQjE,KAAA,IAA2BA,KAAA,KAAU,IAAI,CACtD;IACA,MAAMoI,UAAA,GAAa,IAAIxI,GAAA,CAAIiH,MAAM;IACjC,WAAWpE,SAAA,IAAalD,QAAA,CAASwD,UAAA,EAAY;MAC3C,WAAW/C,KAAA,IAASwG,eAAA,CAAgBjJ,OAAA,EAASkF,SAAS,GAAG;QACvD,MAAM8F,KAAA,GAAQC,WAAA,CAAYrJ,GAAA,CAAIa,KAAK,KAAK0I,aAAA,CAAcvJ,GAAA,CAAIa,KAAK;QAC/D,IAAIuI,KAAA,IAASA,KAAA,KAAUhJ,QAAA,CAASlD,IAAA,EAAM;UACpC,MAAM,IAAIoB,KAAA,CACR,aAAagF,SAAA,CAAUpG,IAAI,4BAA4BkD,QAAA,CAASlD,IAAI,kBACxD2D,KAAK,wBAAwBuI,KAAK,GAChD;QACF;QACAG,aAAA,CAAc3J,GAAA,CAAIiB,KAAA,EAAOT,QAAA,CAASlD,IAAI;QACtCwK,MAAA,CAAO/G,GAAA,CAAIE,KAAK;QAChBoI,UAAA,CAAWtI,GAAA,CAAIE,KAAK;MACtB;MACA,WAAW6F,OAAA,IAAWD,aAAA,CAAcrI,OAAA,EAASkF,SAAA,EAAW4B,SAAS,GAAG;QAClE,MAAMkE,KAAA,GAAQC,WAAA,CAAYrJ,GAAA,CAAI0G,OAAA,CAAQ7F,KAAK,KAAK0I,aAAA,CAAcvJ,GAAA,CAAI0G,OAAA,CAAQ7F,KAAK;QAC/E,IAAIuI,KAAA,IAASA,KAAA,KAAUhJ,QAAA,CAASlD,IAAA,EAAM;UACpC,MAAM,IAAIoB,KAAA,CACR,aAAagF,SAAA,CAAUpG,IAAI,IAAIwJ,OAAA,CAAQlF,KAAK,iBAAiBpB,QAAA,CAASlD,IAAI,oBAC9DwJ,OAAA,CAAQ7F,KAAK,wBAAwBuI,KAAK,GACxD;QACF;QACAG,aAAA,CAAc3J,GAAA,CAAI8G,OAAA,CAAQ7F,KAAA,EAAOT,QAAA,CAASlD,IAAI;QAC9C,IAAIwJ,OAAA,CAAQ/I,IAAA,EAAM+J,MAAA,CAAO/G,GAAA,CAAI+F,OAAA,CAAQ7F,KAAK;QAC1CoI,UAAA,CAAWtI,GAAA,CAAI+F,OAAA,CAAQ7F,KAAK;MAC9B;IACF;IACAT,QAAA,CAASsH,MAAA,GAAS,CAAC,GAAGA,MAAM,EAAE3D,IAAA,CAAK;IACnC3D,QAAA,CAAS6I,UAAA,GAAa,CAAC,GAAGA,UAAU,EAAElF,IAAA,CAAK;IAC3C,IAAI3D,QAAA,CAASE,KAAA,EAAO;MAClB,WAAWO,KAAA,IAAST,QAAA,CAAS6I,UAAA,EAAY;QACvC,IAAI,CAACrD,OAAA,CAAQ5F,GAAA,CAAIa,KAAK,GAAGlB,GAAA,CAAIS,QAAA,CAASE,KAAK,GAAG;UAC5C,MAAM,IAAIhC,KAAA,CACR,oBAAoBuC,KAAK,kBAAkBT,QAAA,CAASlD,IAAI,8BAA8BkD,QAAA,CAASE,KAAK,GACtG;QACF;MACF;IACF;EACF;EAEA,WAAWF,QAAA,IAAYH,SAAA,EAAW;IAKhC,MAAMM,aAAA,GAAgB,IAAIE,GAAA,CAAYL,QAAA,CAAS8I,qBAAqB;IACpE,WAAW5F,SAAA,IAAalD,QAAA,CAASwD,UAAA,EAAY;MAC3C,WAAW/C,KAAA,IAASkH,qBAAA,CAClB3J,OAAA,EACAf,OAAA,EACA2K,WAAA,EACA1E,SACF,GAAG;QACD,IAAI+F,WAAA,CAAY1J,GAAA,CAAIkB,KAAK,KAAK0I,aAAA,CAAc5J,GAAA,CAAIkB,KAAK,GAAG;QACxD,IAAI,CAACT,QAAA,CAAS6I,UAAA,CAAWpE,QAAA,CAAShE,KAAK,GAAG;UACxCN,aAAA,CAAcI,GAAA,CAAIE,KAAK;QACzB;MACF;IACF;IACAT,QAAA,CAASG,aAAA,GAAgB,CAAC,GAAGA,aAAa,EACvCuE,MAAA,CAAQjE,KAAA,IAAU,CAACT,QAAA,CAAS6I,UAAA,CAAWpE,QAAA,CAAShE,KAAK,CAAC,EACtDkD,IAAA,CAAK;EACV;EAEA,OAAO;IACL9D,SAAA;IACA2D,UAAA;IACAoB,aAAA,EAAetG,MAAA,GAAS,CAAC,GAAG4K,QAAA,EAAU5K,MAAA,CAAOpB,IAAI,EAAEyG,IAAA,CAAK,IAAIuF,QAAA;IAC5DtB;EACF;AACF;AAEO,SAASwB,oBAAoBnM,OAAA,EAAiBC,IAAA,EAAsB;EACzE,OAAO,MAAMF,YAAA,CAAaC,OAAA,EAASC,IAAI,CAAC;AAC1C","ignoreList":[]}