@_linked/core 2.2.0 → 2.3.0-next.20260325032529

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 (58) hide show
  1. package/CHANGELOG.md +31 -231
  2. package/lib/cjs/queries/FieldSet.d.ts +3 -0
  3. package/lib/cjs/queries/FieldSet.js +12 -2
  4. package/lib/cjs/queries/FieldSet.js.map +1 -1
  5. package/lib/cjs/queries/IRDesugar.js +6 -2
  6. package/lib/cjs/queries/IRDesugar.js.map +1 -1
  7. package/lib/cjs/queries/IRMutation.d.ts +1 -1
  8. package/lib/cjs/queries/MutationQuery.d.ts +1 -1
  9. package/lib/cjs/queries/MutationQuery.js +1 -2
  10. package/lib/cjs/queries/MutationQuery.js.map +1 -1
  11. package/lib/cjs/queries/QueryFactory.d.ts +1 -1
  12. package/lib/cjs/queries/SelectQuery.d.ts +1 -1
  13. package/lib/cjs/shapes/Shape.d.ts +3 -3
  14. package/lib/cjs/sparql/SparqlStore.d.ts +5 -0
  15. package/lib/cjs/sparql/SparqlStore.js +12 -0
  16. package/lib/cjs/sparql/SparqlStore.js.map +1 -1
  17. package/lib/cjs/sparql/irToAlgebra.js +44 -21
  18. package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
  19. package/lib/cjs/test-helpers/FusekiStore.js +5 -2
  20. package/lib/cjs/test-helpers/FusekiStore.js.map +1 -1
  21. package/lib/cjs/test-helpers/fuseki-test-store.d.ts +14 -12
  22. package/lib/cjs/test-helpers/fuseki-test-store.js +109 -13
  23. package/lib/cjs/test-helpers/fuseki-test-store.js.map +1 -1
  24. package/lib/cjs/test-helpers/query-fixtures.d.ts +5 -0
  25. package/lib/cjs/test-helpers/query-fixtures.js +1 -0
  26. package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
  27. package/lib/cjs/utils/ShapeClass.d.ts +5 -1
  28. package/lib/cjs/utils/ShapeClass.js +7 -0
  29. package/lib/cjs/utils/ShapeClass.js.map +1 -1
  30. package/lib/esm/queries/FieldSet.d.ts +3 -0
  31. package/lib/esm/queries/FieldSet.js +12 -2
  32. package/lib/esm/queries/FieldSet.js.map +1 -1
  33. package/lib/esm/queries/IRDesugar.js +6 -2
  34. package/lib/esm/queries/IRDesugar.js.map +1 -1
  35. package/lib/esm/queries/IRMutation.d.ts +1 -1
  36. package/lib/esm/queries/MutationQuery.d.ts +1 -1
  37. package/lib/esm/queries/MutationQuery.js +1 -2
  38. package/lib/esm/queries/MutationQuery.js.map +1 -1
  39. package/lib/esm/queries/QueryFactory.d.ts +1 -1
  40. package/lib/esm/queries/SelectQuery.d.ts +1 -1
  41. package/lib/esm/shapes/Shape.d.ts +3 -3
  42. package/lib/esm/sparql/SparqlStore.d.ts +5 -0
  43. package/lib/esm/sparql/SparqlStore.js +12 -0
  44. package/lib/esm/sparql/SparqlStore.js.map +1 -1
  45. package/lib/esm/sparql/irToAlgebra.js +44 -21
  46. package/lib/esm/sparql/irToAlgebra.js.map +1 -1
  47. package/lib/esm/test-helpers/FusekiStore.js +5 -2
  48. package/lib/esm/test-helpers/FusekiStore.js.map +1 -1
  49. package/lib/esm/test-helpers/fuseki-test-store.d.ts +14 -12
  50. package/lib/esm/test-helpers/fuseki-test-store.js +104 -10
  51. package/lib/esm/test-helpers/fuseki-test-store.js.map +1 -1
  52. package/lib/esm/test-helpers/query-fixtures.d.ts +5 -0
  53. package/lib/esm/test-helpers/query-fixtures.js +1 -0
  54. package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
  55. package/lib/esm/utils/ShapeClass.d.ts +5 -1
  56. package/lib/esm/utils/ShapeClass.js +6 -0
  57. package/lib/esm/utils/ShapeClass.js.map +1 -1
  58. package/package.json +1 -1
@@ -201,8 +201,18 @@ export function selectToAlgebra(query, _options) {
201
201
  for (const pattern of query.patterns) {
202
202
  processPattern(pattern, registry, traverseTriples, optionalPropertyTriples, filteredTraverseBlocks);
203
203
  }
204
- // 3. Process projection expressions, where clause, orderBy expressions
205
- // to discover any additional property_expr references
204
+ // 3. Pre-register filter property references BEFORE processing projections.
205
+ // This ensures that property triples needed by inline where filters are
206
+ // co-located inside the filtered OPTIONAL block, not in separate OPTIONALs.
207
+ const filterPropertyTriplesMap = new Map();
208
+ filteredTraverseBlocks.forEach((block, idx) => {
209
+ const filterPropertyTriples = [];
210
+ processExpressionForProperties(block.filter, registry, filterPropertyTriples);
211
+ filterPropertyTriplesMap.set(idx, filterPropertyTriples);
212
+ });
213
+ // 4. Process projection expressions, where clause, orderBy expressions
214
+ // to discover any additional property_expr references.
215
+ // Properties already registered by inline filters (above) will be skipped.
206
216
  for (const item of query.projection) {
207
217
  processExpressionForProperties(item.expression, registry, optionalPropertyTriples);
208
218
  }
@@ -214,7 +224,7 @@ export function selectToAlgebra(query, _options) {
214
224
  processExpressionForProperties(orderItem.expression, registry, optionalPropertyTriples);
215
225
  }
216
226
  }
217
- // 4. Build the algebra tree
227
+ // 5. Build the algebra tree
218
228
  // - Start with the required BGP (type triple + traverse triples)
219
229
  // - Wrap each optional property triple in a LeftJoin
220
230
  const requiredBgp = {
@@ -222,17 +232,21 @@ export function selectToAlgebra(query, _options) {
222
232
  triples: [...requiredTriples, ...traverseTriples],
223
233
  };
224
234
  let algebra = requiredBgp;
225
- // 4b. Build filtered OPTIONAL blocks for inline where traversals.
226
- // Each block contains: traverse triple + filter property triples + FILTER.
227
- // Property triples referenced by the filter are co-located inside the OPTIONAL
228
- // so that the filter can reference them.
229
- for (const block of filteredTraverseBlocks) {
230
- const filterPropertyTriples = [];
231
- processExpressionForProperties(block.filter, registry, filterPropertyTriples);
235
+ // 5b. Build filtered OPTIONAL blocks for inline where traversals.
236
+ // Each block contains: traverse triple + OPTIONAL property triples + FILTER.
237
+ // Filter property triples are nested as OPTIONALs so that OR filters work
238
+ // even when some entities lack certain properties.
239
+ for (let i = 0; i < filteredTraverseBlocks.length; i++) {
240
+ const block = filteredTraverseBlocks[i];
241
+ const filterPropertyTriples = filterPropertyTriplesMap.get(i) || [];
232
242
  const filterExpr = convertExpression(block.filter, registry, filterPropertyTriples);
233
- const blockTriples = [block.traverseTriple, ...filterPropertyTriples];
234
- const blockBgp = { type: 'bgp', triples: blockTriples };
235
- const filteredBlock = { type: 'filter', expression: filterExpr, inner: blockBgp };
243
+ // Start with the traverse triple as the required BGP
244
+ let blockInner = { type: 'bgp', triples: [block.traverseTriple] };
245
+ // Wrap each filter property triple in its own nested OPTIONAL
246
+ for (const propTriple of filterPropertyTriples) {
247
+ blockInner = wrapOptional(blockInner, { type: 'bgp', triples: [propTriple] });
248
+ }
249
+ const filteredBlock = { type: 'filter', expression: filterExpr, inner: blockInner };
236
250
  algebra = wrapOptional(algebra, filteredBlock);
237
251
  }
238
252
  // Wrap each optional property triple in its own OPTIONAL (LeftJoin)
@@ -487,11 +501,9 @@ function processExpressionForProperties(expr, registry, optionalPropertyTriples)
487
501
  }
488
502
  break;
489
503
  case 'exists_expr':
490
- // exists_expr in IR has pattern + filter
491
- // Process the filter for property references
492
- if (expr.filter) {
493
- processExpressionForProperties(expr.filter, registry, optionalPropertyTriples);
494
- }
504
+ // exists_expr filter properties belong INSIDE the EXISTS block, not in
505
+ // the outer scope. Do NOT register them here — convertExpression's
506
+ // exists_expr handler will collect and emit them locally.
495
507
  break;
496
508
  case 'context_property_expr': {
497
509
  // Context entity property — emit a triple with fixed IRI as subject.
@@ -588,10 +600,21 @@ function convertExpression(expr, registry, optionalPropertyTriples) {
588
600
  args: expr.args.map((a) => convertExpression(a, registry, optionalPropertyTriples)),
589
601
  };
590
602
  case 'exists_expr': {
591
- // Convert exists expression with inner pattern + filter
592
- const innerAlgebra = convertExistsPattern(expr.pattern, registry);
603
+ // Convert exists expression with inner pattern + filter.
604
+ // Filter property triples must live INSIDE the EXISTS block
605
+ // (not in the outer scope), so we collect them locally.
606
+ let innerAlgebra = convertExistsPattern(expr.pattern, registry);
593
607
  if (expr.filter) {
594
- const filterExpr = convertExpression(expr.filter, registry, optionalPropertyTriples);
608
+ // First, discover and register filter property references,
609
+ // collecting their triples into a local array (NOT the outer scope).
610
+ const existsPropertyTriples = [];
611
+ processExpressionForProperties(expr.filter, registry, existsPropertyTriples);
612
+ // Now convert the filter expression (variables are registered above).
613
+ const filterExpr = convertExpression(expr.filter, registry, existsPropertyTriples);
614
+ // Add filter property triples inside the EXISTS
615
+ for (const propTriple of existsPropertyTriples) {
616
+ innerAlgebra = joinNodes(innerAlgebra, { type: 'bgp', triples: [propTriple] });
617
+ }
595
618
  // Wrap the inner pattern with a filter
596
619
  const filteredInner = {
597
620
  type: 'filter',
@@ -1 +1 @@
1
- {"version":3,"file":"irToAlgebra.js","sourceRoot":"","sources":["../../../src/sparql/irToAlgebra.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAiB/E,OAAO,EAAgB,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,4CAA4C;AAC5C,kFAAkF;AAClF,IAAI,cAAiF,CAAC;AACtF,SAAS,iBAAiB,CAAC,EAAU;IACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,iEAAiE;QACjE,cAAc,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC;IACnE,CAAC;IACD,OAAO,cAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,MAAiE,CAAC;AACtE,SAAS,SAAS;IAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iEAAiE;QACjE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,MAAO,CAAC;AACjB,CAAC;AACD,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAC;AACzC,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAC;AAEzC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;AACrC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AACnC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AACnC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAEjC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,QAAiB;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CACf,OAAmB,EACnB,SAAqB,EACrB,MAAkB;IAElB,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAC,CAAC;AACtC,CAAC;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,WAAmB;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc;IAC9D,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB;IAC/D,YAAY,EAAE,uBAAuB,EAAE,aAAa;CACrD,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK;QAC5D,OAAQ,KAAyB,CAAC,IAAI,KAAK,QAAQ;QACnD,mBAAmB,CAAC,GAAG,CAAE,KAAwB,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,IAAuB,EACvB,KAAwB;IAExB,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,IAA8B,EAC9B,KAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;AACrC,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,uBAAuB,CAAC,QAA0B;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,gBAAgB;IAAtB;QACU,QAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChC,iBAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAkC3C,CAAC;IAhCS,GAAG,CAAC,KAAa,EAAE,QAAgB;QACzC,OAAO,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAgB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAgB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,QAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACpD,4EAA4E;QAC5E,0DAA0D;QAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAsB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvE,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5C,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoB,EACpB,QAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAExC,2DAA2D;IAC3D,MAAM,uBAAuB,GAAmB,EAAE,CAAC;IAEnD,iFAAiF;IACjF,MAAM,sBAAsB,GAIvB,EAAE,CAAC;IAER,4CAA4C;IAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC,MAAM,UAAU,GAAG,QAAQ,CACzB,OAAO,CAAC,SAAS,CAAC,EAClB,OAAO,CAAC,QAAQ,CAAC,EACjB,OAAO,CAAC,QAAQ,CAAC,CAClB,CAAC;IACF,MAAM,eAAe,GAAmB,CAAC,UAAU,CAAC,CAAC;IAErD,4CAA4C;IAC5C,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C,qEAAqE;IACrE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;IACtG,CAAC;IAED,uEAAuE;IACvE,yDAAyD;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,8BAA8B,CAC5B,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,8BAA8B,CAC5B,KAAK,CAAC,KAAK,EACX,QAAQ,EACR,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACtC,8BAA8B,CAC5B,SAAS,CAAC,UAAU,EACpB,QAAQ,EACR,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,WAAW,GAAc;QAC7B,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC;KAClD,CAAC;IAEF,IAAI,OAAO,GAAsB,WAAW,CAAC;IAE7C,kEAAkE;IAClE,+EAA+E;IAC/E,mFAAmF;IACnF,6CAA6C;IAC7C,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,MAAM,qBAAqB,GAAmB,EAAE,CAAC;QACjD,8BAA8B,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QACpF,MAAM,YAAY,GAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,qBAAqB,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAc,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC;QACjE,MAAM,aAAa,GAAiB,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC;QAC9F,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,UAAU,IAAI,uBAAuB,EAAE,CAAC;QACjD,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE;YAC9B,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,IAAI,UAAwC,CAAC;IAC7C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QACrF,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,OAAO;aACf,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,oBAAoB,GAAmB,EAAE,CAAC;gBAChD,8BAA8B,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;gBAC/E,4CAA4C;gBAC5C,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAC,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;gBACrF,YAAY,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;YAC/E,CAAC;YACD,OAAO,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,+DAA+D;QAC/D,OAAO,GAAG,SAAS,CACjB,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAqB;YACtC,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAC;YAC9C,KAAK,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAC;SAClD,CAAC;QACF,OAAO,GAAG;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,yDAAyD;IACzD,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;IAErD,yEAAyE;IACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAEzF,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACzC,aAAa,GAAG,IAAI,CAAC;YACrB,iEAAiE;YACjE,kEAAkE;YAClE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;gBAC7B,4DAA4D;gBAC5D,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;wBAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC;gBACd,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACrE,IAAI,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpB,6DAA6D;gBAC7D,gCAAgC;gBAChC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC;YACjD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,OAA6B,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,gEAAgE;QAChE,OAAO,GAAG,UAAU;aACjB,MAAM,CAAC,CAAC,CAAC,EAAyC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,aAAa;IACb,IAAI,OAA2C,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC;YACjF,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,UAAU;QACV,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3C,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,SAAS,cAAc,CACrB,OAAuB,EACvB,QAA0B,EAC1B,eAA+B,EAC/B,uBAAuC,EACvC,sBAAqG;IAErG,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,YAAY;YACf,gEAAgE;YAChE,qDAAqD;YACrD,MAAM;QAER,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,wDAAwD;YACxD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACzD,8EAA8E;YAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ;gBAChC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAC;gBAC7G,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACrB,SAAS,EACT,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACpB,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;gBAC7C,sBAAsB,CAAC,IAAI,CAAC;oBAC1B,cAAc,EAAE,MAAM;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;YAClG,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,oEAAoE;YACpE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;YAC5G,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;YACrG,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;YAC5G,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,qFAAqF;YACrF,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,SAAS,8BAA8B,CACrC,IAAkB,EAClB,QAA0B,EAC1B,uBAAuC;IAEvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,iDAAiD;gBACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;oBAC7B,CAAC,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC;oBACvG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,uBAAuB,CAAC,IAAI,CAC1B,QAAQ,CACN,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EACzB,SAAS,EACT,OAAO,CAAC,OAAO,CAAC,CACjB,CACF,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,aAAa;YAChB,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC7E,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC9E,MAAM;QACR,KAAK,cAAc;YACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnC,8BAA8B,CAAC,GAAG,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,MAAM;QACR,KAAK,UAAU;YACb,8BAA8B,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACnF,MAAM;QACR,KAAK,eAAe;YAClB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,8BAA8B,CAAC,GAAG,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,MAAM;QACR,KAAK,gBAAgB;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,8BAA8B,CAAC,GAAG,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,MAAM;QACR,KAAK,aAAa;YAChB,yCAAyC;YACzC,6CAA6C;YAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACjF,CAAC;YACD,MAAM;QACR,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,qEAAqE;YACrE,mEAAmE;YACnE,qDAAqD;YACrD,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5D,uBAAuB,CAAC,IAAI,CAC1B,QAAQ,CACN,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EACtB,OAAO,CAAC,OAAO,CAAC,CACjB,CACF,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB,CAAC;QACtB,KAAK,YAAY;YACf,qCAAqC;YACrC,MAAM;IACV,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,SAAS,iBAAiB,CACxB,IAAkB,EAClB,QAA0B,EAC1B,uBAAuC;IAEvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;YAC3C,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,QAAQ,EAAE,WAAW;iBACtB,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO;wBACL,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;wBACpB,QAAQ,EAAE,WAAW;qBACtB,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,QAAQ,EAAE,UAAU;iBACrB,CAAC;YACJ,CAAC;YACD,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC;QACtD,CAAC;QAED,KAAK,gBAAgB;YACnB,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;QAE/C,KAAK,YAAY;YACf,OAAO,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;QAEnD,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,OAAO,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC;QACnD,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;QAChD,CAAC;QAED,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACjB,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,uBAAuB,CAAC;gBACrE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC;aACxE,CAAC;QAEJ,KAAK,cAAc;YACjB,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACjB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CACxD;aACF,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC;aAC7E,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CACxD;aACF,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CACxD;aACF,CAAC;QAEJ,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,wDAAwD;YACxD,MAAM,YAAY,GAAG,oBAAoB,CACvC,IAAI,CAAC,OAAO,EACZ,QAAQ,CACT,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,iBAAiB,CAClC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,uBAAuB,CACxB,CAAC;gBACF,uCAAuC;gBACvC,MAAM,aAAa,GAAiB;oBAClC,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,UAAU;oBACtB,KAAK,EAAE,YAAY;iBACpB,CAAC;gBACF,OAAO;oBACL,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,+BAAgC,IAAgC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,OAAuB,EACvB,QAA0B;IAE1B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ;gBACtC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAC;gBAC7G,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACrB,eAAe,EACf,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACpB,CAAC;YACF,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC;QAC1C,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,GAA6B,IAAI,CAAC;YAC5C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,CAAC;YACD,OAAO,MAAM,IAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;QAC9C,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE;oBACP,QAAQ,CACN,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EACtB,OAAO,CAAC,QAAQ,CAAC,EACjB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CACvB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9D,OAAO,YAAY,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAA6B,IAAI,CAAC;YAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,UAAU,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YACD,OAAO,MAAM,IAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;QAC9C,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,uCAAwC,OAAmC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,IAAkB,EAClB,QAA0B;IAE1B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;GAEG;AACH,SAAS,iBAAiB,CACxB,KAAmB,EACnB,OAAuB;IAEvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,OAAO,CAAE,KAA4B,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,6EAA6E;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvE,OAAO,EAAE,CAAC,CAAC,qBAAqB;IAClC,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,IAAgB,EAChB,OAAuB;IAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,cAAc;IACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5E,gBAAgB;IAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBAC5E,gBAAgB;oBAChB,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACzF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,EAAC,GAAG,EAAE,OAAO,EAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAuB,EACvB,OAAuB;IAEvB,MAAM,EAAC,OAAO,EAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,IAAgB,EAChB,WAAuB,EACvB,OAAuB;IAOvB,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAmB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAA4D,EAAE,CAAC;IAE7E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE9C,6CAA6C;QAC7C,IACE,KAAK,CAAC,KAAK;YACX,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;YACzB,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EACjD,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAA+B,CAAC;YAErD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvC,MAAM,UAAU,GAAG,OAAO,CAAE,UAAiC,CAAC,EAAE,CAAC,CAAC;oBAClE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;oBACrE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;wBACxF,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAqB,EAAE,OAAO,CAAC,CAAC;wBACvE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9E,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,SAAS;QACX,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QAED,wDAAwD;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAElE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBAC5E,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC;oBACpE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC9E,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACzF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAC;YAC3E,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QAED,4DAA4D;QAC5D,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAqB,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;YACxC,MAAM,eAAe,GAAG,YAAY,MAAM,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAE7C,mBAAmB;YACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAEjE,gCAAgC;YAChC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAElE,qFAAqF;YACrF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;YACpD,wEAAwE;YACxE,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;YAEpE,MAAM,mBAAmB,GAAmB,EAAE,CAAC;YAC/C,8BAA8B,CAAC,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAEpE,8EAA8E;YAC9E,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;gBACzC,+EAA+E;gBAC/E,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBACvF,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAE1E,2BAA2B;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAC;YAEnE,wBAAwB;YACxB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,gDAAgD;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC;AAC9E,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,IAAuB,EACvB,eAA+B;IAE/B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,OAAO,GAAG;YACR,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC;SACxC,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAuB,EACvB,OAAuB;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAErE,IAAI,YAAY,GAAG,qBAAqB,CACtC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC,EAC1B,MAAM,CAAC,eAAe,CACvB,CAAC;IAEF,sEAAsE;IACtE,yFAAyF;IACzF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,eAAe,GAAG,QAAQ,CAC9B,QAAQ,EACR,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EACtB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CACjB,CAAC;YACF,YAAY,GAAG;gBACb,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAC;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,YAAY,GAAG;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAuB,EACvB,QAAwB;IAExB,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAmB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjF,uEAAuE;QACvE,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAElD,6DAA6D;QAC7D,uEAAuE;QACvE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,wEAAwE;IACxE,IAAI,YAAY,GAAsB,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAC,CAAC;IAC9E,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,YAAY,GAAG;YACb,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC;SACxC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc;QACd,cAAc,EAAE,EAAE;QAClB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAgC;;IAC3D,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CACxB,OAAe,EACf,SAAiB,EACjB,KAAa,EACb,cAA8B;;IAE9B,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,SAAS,GAA6B,IAAI,CAAC;IAE/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAAE,SAAS;QAEzC,MAAM,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAEzB,yDAAyD;QACzD,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5E,uCAAuC;QACvC,MAAM,cAAc,GAAG,QAAQ,CAC7B,OAAO,CAAC,SAAS,CAAC,EAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACxB,OAAO,CAAC,KAAK,CAAC,CACf,CAAC;QACF,0BAA0B;QAC1B,MAAM,aAAa,GAAqB;YACtC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;SAC7C,CAAC;QACF,iBAAiB;QACjB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,oDAAoD;QACpD,IAAI,YAAY,GAAsB;YACpC,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;SAC1C,CAAC;QACF,YAAY,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;QAEhF,iDAAiD;QACjD,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,EAAE,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG,iBAAiB,CACtC,IAAI,CAAC,UAAU,CAAC,EAAE,EAClB,KAAK,EACL,KAAK,GAAG,CAAC,EACT,cAAc,CACf,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACnB,YAAY,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;QAED,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA0B,EAC1B,QAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC;IAExB,iCAAiC;IACjC,MAAM,cAAc,GAAmB;QACrC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1D,CAAC;IAEF,qCAAqC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,IAAI,YAAY,GAAsB,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAC,CAAC;IAEzF,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACxF,IAAI,iBAAiB,EAAE,CAAC;QACtB,YAAY,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;IACnF,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc;QACd,cAAc,EAAE,EAAE;QAClB,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA4B,EAC5B,QAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC;IACxB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAExC,iCAAiC;IACjC,MAAM,cAAc,GAAmB;QACrC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1D,CAAC;IAEF,qCAAqC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,IAAI,YAAY,GAAsB,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAC,CAAC;IAEzF,4DAA4D;IAC5D,MAAM,eAAe,GAAmB,EAAE,CAAC;IAC3C,MAAM,uBAAuB,GAAmB,EAAE,CAAC;IACnD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC1C,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;IAC9E,CAAC;IAED,uCAAuC;IACvC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;IAClF,CAAC;IAED,kDAAkD;IAClD,8BAA8B,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE/E,gCAAgC;IAChC,KAAK,MAAM,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAC7C,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;IAC3E,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChE,YAAY,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;IAE7E,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACxF,IAAI,iBAAiB,EAAE,CAAC;QACtB,YAAY,GAAG,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;IACnF,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc;QACd,cAAc,EAAE,EAAE;QAClB,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA4B,EAC5B,OAAuB;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAErE,wCAAwC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,IAAI,YAAY,GAAsB,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAC,CAAC;IAE3E,2CAA2C;IAC3C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,eAAe,GAAmB,EAAE,CAAC;QAC3C,MAAM,uBAAuB,GAAmB,EAAE,CAAC;QAEnD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC1C,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;QAClF,CAAC;QAED,8BAA8B,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAE/E,KAAK,MAAM,MAAM,IAAI,uBAAuB,EAAE,CAAC;YAC7C,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChE,YAAY,GAAG,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;IAC/E,CAAC;IAED,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAE3E,sEAAsE;IACtE,yFAAyF;IACzF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,MAAM,eAAe,GAAG,QAAQ,CAC9B,QAAQ,EACR,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EACtB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CACjB,CAAC;YACF,YAAY,GAAG;gBACb,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAC;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,YAAY,GAAG;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,OAAuB;IAEvB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAuB,EACvB,OAAuB;IAEvB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAuB,EACvB,OAAuB;IAEvB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAuB,EACvB,OAAuB;IAEvB,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA0B,EAC1B,OAAuB;IAEvB,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA4B,EAC5B,OAAuB;IAEvB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA4B,EAC5B,OAAuB;IAEvB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"irToAlgebra.js","sourceRoot":"","sources":["../../../src/sparql/irToAlgebra.ts"],"names":[],"mappings":"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"}
@@ -34,11 +34,14 @@ export class FusekiStore extends SparqlStore {
34
34
  }
35
35
  init() {
36
36
  return __awaiter(this, void 0, void 0, function* () {
37
- // Check availability
37
+ // Check availability (use AbortController for jsdom compatibility)
38
+ const controller = new AbortController();
39
+ const timer = setTimeout(() => controller.abort(), 2000);
38
40
  const response = yield fetch(this.baseUrl, {
39
41
  method: 'HEAD',
40
- signal: AbortSignal.timeout(2000),
42
+ signal: controller.signal,
41
43
  });
44
+ clearTimeout(timer);
42
45
  if (response.status !== 200) {
43
46
  throw new Error(`Fuseki not available at ${this.baseUrl}`);
44
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FusekiStore.js","sourceRoot":"","sources":["../../../src/test-helpers/FusekiStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAIrD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAO1C,YACE,OAAe,EACf,OAAe,EACf,OAAkD;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QAErD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC;IAEK,IAAI;;YACR,qBAAqB;YACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBACzC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KAAA;IAEe,mBAAmB,CACjC,MAAc;;YAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,0BAA0B;oBAC1C,MAAM,EAAE,iCAAiC;iBAC1C;gBACD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACrF,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;KAAA;IAEe,mBAAmB,CAAC,MAAc;;YAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAC,cAAc,EAAE,2BAA2B,EAAC;gBACtD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"FusekiStore.js","sourceRoot":"","sources":["../../../src/test-helpers/FusekiStore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAIrD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAO1C,YACE,OAAe,EACf,OAAe,EACf,OAAkD;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,GAAG,OAAO,IAAI,OAAO,SAAS,CAAC;QAErD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC;IAEK,IAAI;;YACR,mEAAmE;YACnE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBACzC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KAAA;IAEe,mBAAmB,CACjC,MAAc;;YAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,0BAA0B;oBAC1C,MAAM,EAAE,iCAAiC;iBAC1C;gBACD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACrF,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;KAAA;IAEe,mBAAmB,CAAC,MAAc;;YAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAC,cAAc,EAAE,2BAA2B,EAAC;gBACtD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF"}
@@ -1,20 +1,22 @@
1
- /**
2
- * Test helper module for Apache Jena Fuseki integration tests.
3
- *
4
- * Provides utilities to:
5
- * - Check if a Fuseki instance is available
6
- * - Create / delete an in-memory test dataset
7
- * - Load N-Triples data
8
- * - Execute SPARQL queries and updates
9
- * - Clear all data
10
- *
11
- * Uses native fetch (Node 18+). No external HTTP libraries.
12
- */
13
1
  /**
14
2
  * Check whether a Fuseki server is reachable.
15
3
  * Returns true if a HEAD request to the base URL succeeds with status 200.
16
4
  */
17
5
  export declare function isFusekiAvailable(): Promise<boolean>;
6
+ /**
7
+ * Ensure a Fuseki instance is running.
8
+ * If Fuseki is already reachable, returns immediately.
9
+ * Otherwise, starts it via Docker Compose and waits for the healthcheck.
10
+ *
11
+ * Returns true if Fuseki is available after this call.
12
+ * Returns false if Docker is not installed or the compose file can't be found.
13
+ */
14
+ export declare function ensureFuseki(): Promise<boolean>;
15
+ /**
16
+ * Stop the Fuseki container if it was started by `ensureFuseki()`.
17
+ * No-op if Fuseki was already running before the tests.
18
+ */
19
+ export declare function stopFuseki(): Promise<void>;
18
20
  /**
19
21
  * Create the in-memory test dataset on Fuseki.
20
22
  * Ignores 409 Conflict (dataset already exists).
@@ -1,7 +1,17 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  /**
2
11
  * Test helper module for Apache Jena Fuseki integration tests.
3
12
  *
4
13
  * Provides utilities to:
14
+ * - Ensure a Fuseki instance is running (auto-starts via Docker if needed)
5
15
  * - Check if a Fuseki instance is available
6
16
  * - Create / delete an in-memory test dataset
7
17
  * - Load N-Triples data
@@ -10,18 +20,14 @@
10
20
  *
11
21
  * Uses native fetch (Node 18+). No external HTTP libraries.
12
22
  */
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
23
+ import { execSync } from 'node:child_process';
24
+ import { existsSync } from 'node:fs';
25
+ import { resolve } from 'node:path';
22
26
  const FUSEKI_BASE_URL = process.env.FUSEKI_BASE_URL || 'http://localhost:3030';
23
27
  const FUSEKI_ADMIN_PASSWORD = process.env.FUSEKI_ADMIN_PASSWORD || 'admin';
24
28
  const DATASET_NAME = 'nashville-test';
29
+ /** Whether this process started Fuseki (so we know whether to stop it). */
30
+ let startedByUs = false;
25
31
  const adminAuth = `Basic ${Buffer.from(`admin:${FUSEKI_ADMIN_PASSWORD}`).toString('base64')}`;
26
32
  /**
27
33
  * Check whether a Fuseki server is reachable.
@@ -30,10 +36,13 @@ const adminAuth = `Basic ${Buffer.from(`admin:${FUSEKI_ADMIN_PASSWORD}`).toStrin
30
36
  export function isFusekiAvailable() {
31
37
  return __awaiter(this, void 0, void 0, function* () {
32
38
  try {
39
+ const controller = new AbortController();
40
+ const timer = setTimeout(() => controller.abort(), 2000);
33
41
  const response = yield fetch(FUSEKI_BASE_URL, {
34
42
  method: 'HEAD',
35
- signal: AbortSignal.timeout(2000),
43
+ signal: controller.signal,
36
44
  });
45
+ clearTimeout(timer);
37
46
  return response.status === 200;
38
47
  }
39
48
  catch (_a) {
@@ -41,6 +50,91 @@ export function isFusekiAvailable() {
41
50
  }
42
51
  });
43
52
  }
53
+ /**
54
+ * Locate the docker-compose.test.yml for Fuseki.
55
+ * Works from both source (src/) and compiled (lib/esm/) paths.
56
+ */
57
+ function findComposeFile() {
58
+ // __dirname works in both CJS and ts-jest; for ESM builds the lincd
59
+ // toolchain injects a __dirname shim.
60
+ const candidates = [
61
+ resolve(__dirname, '../tests/docker-compose.test.yml'),
62
+ resolve(__dirname, '../../src/tests/docker-compose.test.yml'),
63
+ ];
64
+ for (const candidate of candidates) {
65
+ if (existsSync(candidate))
66
+ return candidate;
67
+ }
68
+ return null;
69
+ }
70
+ /**
71
+ * Ensure a Fuseki instance is running.
72
+ * If Fuseki is already reachable, returns immediately.
73
+ * Otherwise, starts it via Docker Compose and waits for the healthcheck.
74
+ *
75
+ * Returns true if Fuseki is available after this call.
76
+ * Returns false if Docker is not installed or the compose file can't be found.
77
+ */
78
+ export function ensureFuseki() {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ if (yield isFusekiAvailable())
81
+ return true;
82
+ const composeFile = findComposeFile();
83
+ if (!composeFile) {
84
+ console.warn('[ensureFuseki] docker-compose.test.yml not found — cannot auto-start Fuseki');
85
+ return false;
86
+ }
87
+ try {
88
+ execSync('docker compose version', { stdio: 'ignore' });
89
+ }
90
+ catch (_a) {
91
+ console.warn('[ensureFuseki] Docker Compose not available — skipping');
92
+ return false;
93
+ }
94
+ console.log('[ensureFuseki] Fuseki not running — starting via Docker...');
95
+ try {
96
+ execSync(`docker compose -f "${composeFile}" up -d --wait`, {
97
+ stdio: 'inherit',
98
+ timeout: 60000,
99
+ });
100
+ startedByUs = true;
101
+ // Verify it came up
102
+ if (yield isFusekiAvailable()) {
103
+ console.log('[ensureFuseki] Fuseki is ready');
104
+ return true;
105
+ }
106
+ console.warn('[ensureFuseki] Fuseki started but not responding');
107
+ return false;
108
+ }
109
+ catch (err) {
110
+ console.warn('[ensureFuseki] Failed to start Fuseki:', err.message);
111
+ return false;
112
+ }
113
+ });
114
+ }
115
+ /**
116
+ * Stop the Fuseki container if it was started by `ensureFuseki()`.
117
+ * No-op if Fuseki was already running before the tests.
118
+ */
119
+ export function stopFuseki() {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ if (!startedByUs)
122
+ return;
123
+ const composeFile = findComposeFile();
124
+ if (!composeFile)
125
+ return;
126
+ try {
127
+ execSync(`docker compose -f "${composeFile}" down`, {
128
+ stdio: 'inherit',
129
+ timeout: 30000,
130
+ });
131
+ }
132
+ catch (_a) {
133
+ // Best effort — don't fail the test suite on cleanup
134
+ }
135
+ startedByUs = false;
136
+ });
137
+ }
44
138
  /**
45
139
  * Create the in-memory test dataset on Fuseki.
46
140
  * Ignores 409 Conflict (dataset already exists).
@@ -1 +1 @@
1
- {"version":3,"file":"fuseki-test-store.js","sourceRoot":"","sources":["../../../src/test-helpers/fuseki-test-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;;;;;;;;;AAEH,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB,CAAC;AAC/E,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC;AAC3E,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC,MAAM,SAAS,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAE9F;;;GAGG;AACH,MAAM,UAAgB,iBAAiB;;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;QACjC,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,iBAAiB;;QACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,aAAa,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;gBACnD,aAAa,EAAE,SAAS;aACzB;YACD,IAAI,EAAE,UAAU,YAAY,aAAa;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,iBAAiB;;QACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,eAAe,eAAe,YAAY,EAAE,EAC/C,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAC,aAAa,EAAE,SAAS,EAAC,EAAC,CACxD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,YAAY,CAAC,QAAgB;;QACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,IAAI,YAAY,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,uBAAuB,EAAC;YAClD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,kBAAkB,CAAC,MAAc;;QACrD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,eAAe,IAAI,YAAY,SAAS,EAC3C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,0BAA0B;gBAC1C,MAAM,EAAE,iCAAiC;aAC1C;YACD,IAAI,EAAE,MAAM;SACb,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,mBAAmB,CAAC,MAAc;;QACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,eAAe,IAAI,YAAY,SAAS,EAC3C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,2BAA2B,EAAC;YACtD,IAAI,EAAE,MAAM;SACb,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,YAAY;;QAChC,MAAM,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC;CAAA"}
1
+ {"version":3,"file":"fuseki-test-store.js","sourceRoot":"","sources":["../../../src/test-helpers/fuseki-test-store.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,11 @@ export declare const queryFactories: {
121
121
  whereFriendsNameEquals: () => QueryBuilder<Person, import("../queries/SelectQuery").QShapeSet<Person, import("../queries/SelectQuery").QShape<Person, null, "">, "friends">, import("../queries/SelectQuery").QResult<Person, {
122
122
  friends: import("../queries/SelectQuery").QResult<Person, {}>[];
123
123
  }>[]>;
124
+ whereFriendsNameEqualsChained: () => QueryBuilder<Person, import("../queries/SelectQuery").QueryPrimitive<string, import("../queries/SelectQuery").QueryShapeSet<Person, import("../queries/SelectQuery").QShape<Person, null, "">, "friends">, "name">, import("../queries/SelectQuery").QResult<Person, {
125
+ friends: import("../queries/SelectQuery").QResult<Person, {
126
+ name: string;
127
+ }>[];
128
+ }>[]>;
124
129
  whereBestFriendEquals: () => QueryBuilder<Person, unknown, import("../queries/SelectQuery").QResult<Person, {}>[]>;
125
130
  whereHobbyEquals: () => QueryBuilder<Person, import("../queries/SelectQuery").QueryPrimitive<string, import("../queries/SelectQuery").QShape<Person, null, "">, "hobby">, import("../queries/SelectQuery").QResult<Person, {
126
131
  hobby: string;
@@ -236,6 +236,7 @@ export const queryFactories = {
236
236
  selectBestFriendName: () => Person.select((p) => p.bestFriend.name),
237
237
  selectDeepNested: () => Person.select((p) => p.friends.bestFriend.bestFriend.name),
238
238
  whereFriendsNameEquals: () => Person.select((p) => p.friends.where((f) => f.name.equals('Moa'))),
239
+ whereFriendsNameEqualsChained: () => Person.select((p) => p.friends.where((f) => f.name.equals('Moa')).name),
239
240
  whereBestFriendEquals: () => Person.select().where((p) => p.bestFriend.equals(entity('p3'))),
240
241
  whereHobbyEquals: () => Person.select((p) => p.hobby.where((h) => h.equals('Jogging'))),
241
242
  whereAnd: () => Person.select((p) => p.friends.where((f) => f.name.equals('Moa').and(f.hobby.equals('Jogging')))),