@prisma-next/sql-builder 0.5.0-dev.6 → 0.5.0-dev.60

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.
@@ -4,6 +4,7 @@ import type { SqlOperationEntry } from '@prisma-next/sql-operations';
4
4
  import {
5
5
  AndExpr,
6
6
  type AnyExpression as AstExpression,
7
+ collectOrderedParamRefs,
7
8
  IdentifierRef,
8
9
  OrderByItem,
9
10
  ProjectionItem,
@@ -31,7 +32,6 @@ import type {
31
32
  ScopeField,
32
33
  ScopeTable,
33
34
  } from '../scope';
34
- import type { ExpressionImpl } from './expression-impl';
35
35
  import { createFieldProxy } from './field-proxy';
36
36
  import { createAggregateFunctions, createFunctions } from './functions';
37
37
 
@@ -130,46 +130,14 @@ export function buildSelectAst(state: BuilderState): SelectAst {
130
130
 
131
131
  export function buildQueryPlan<Row = unknown>(
132
132
  ast: import('@prisma-next/sql-relational-core/ast').AnyQueryAst,
133
- rowFields: Record<string, ScopeField>,
134
133
  ctx: BuilderContext,
135
134
  ): SqlQueryPlan<Row> {
136
- const projectionTypes: Record<string, string> = {};
137
- const codecs: Record<string, string> = {};
138
- for (const [alias, field] of Object.entries(rowFields)) {
139
- projectionTypes[alias] = field.codecId;
140
- codecs[alias] = field.codecId;
141
- }
142
-
143
- const paramRefs = ast.collectParamRefs();
144
- const seen = new Set<import('@prisma-next/sql-relational-core/ast').ParamRef>();
145
- const uniqueRefs: import('@prisma-next/sql-relational-core/ast').ParamRef[] = [];
146
- for (const ref of paramRefs) {
147
- if (!seen.has(ref)) {
148
- seen.add(ref);
149
- uniqueRefs.push(ref);
150
- }
151
- }
152
- const paramValues = uniqueRefs.map((r) => r.value);
153
- const paramDescriptors = uniqueRefs.map((ref, i) => ({
154
- index: i + 1,
155
- source: 'dsl' as const,
156
- ...(ref.codecId ? { codecId: ref.codecId } : {}),
157
- }));
158
-
159
- for (const [i, ref] of uniqueRefs.entries()) {
160
- if (ref.codecId) codecs[`$${i + 1}`] = ref.codecId;
161
- }
162
-
163
- const hasProjectionTypes = Object.keys(projectionTypes).length > 0;
164
- const hasCodecs = Object.keys(codecs).length > 0;
135
+ const paramValues = collectOrderedParamRefs(ast).map((r) => r.value);
165
136
 
166
137
  const meta: PlanMeta = Object.freeze({
167
138
  target: ctx.target,
168
139
  storageHash: ctx.storageHash,
169
140
  lane: 'dsl',
170
- paramDescriptors,
171
- ...(hasProjectionTypes ? { projectionTypes } : {}),
172
- ...(hasCodecs ? { annotations: Object.freeze({ codecs: Object.freeze(codecs) }) } : {}),
173
141
  });
174
142
 
175
143
  return Object.freeze({ ast, params: paramValues, meta });
@@ -179,7 +147,7 @@ export function buildPlan<Row = unknown>(
179
147
  state: BuilderState,
180
148
  ctx: BuilderContext,
181
149
  ): SqlQueryPlan<Row> {
182
- return buildQueryPlan<Row>(buildSelectAst(state), state.rowFields, ctx);
150
+ return buildQueryPlan<Row>(buildSelectAst(state), ctx);
183
151
  }
184
152
 
185
153
  export function tableToScope(name: string, table: StorageTable): Scope {
@@ -257,7 +225,7 @@ export function resolveSelectArgs(
257
225
  for (const colName of args as string[]) {
258
226
  const field = scope.topLevel[colName];
259
227
  if (!field) throw new Error(`Column "${colName}" not found in scope`);
260
- projections.push(ProjectionItem.of(colName, IdentifierRef.of(colName)));
228
+ projections.push(ProjectionItem.of(colName, IdentifierRef.of(colName), field.codecId));
261
229
  newRowFields[colName] = field;
262
230
  }
263
231
  return { projections, newRowFields };
@@ -271,8 +239,9 @@ export function resolveSelectArgs(
271
239
  ) => Expression<ScopeField>;
272
240
  const fns = createAggregateFunctions(ctx.queryOperationTypes);
273
241
  const result = exprFn(createFieldProxy(scope), fns);
274
- projections.push(ProjectionItem.of(alias, result.buildAst()));
275
- newRowFields[alias] = (result as ExpressionImpl).field;
242
+ const field = result.returnType;
243
+ projections.push(ProjectionItem.of(alias, result.buildAst(), field.codecId));
244
+ newRowFields[alias] = field;
276
245
  return { projections, newRowFields };
277
246
  }
278
247
 
@@ -284,8 +253,9 @@ export function resolveSelectArgs(
284
253
  const fns = createAggregateFunctions(ctx.queryOperationTypes);
285
254
  const record = callbackFn(createFieldProxy(scope), fns);
286
255
  for (const [key, expr] of Object.entries(record)) {
287
- projections.push(ProjectionItem.of(key, expr.buildAst()));
288
- newRowFields[key] = (expr as ExpressionImpl).field;
256
+ const field = expr.returnType;
257
+ projections.push(ProjectionItem.of(key, expr.buildAst(), field.codecId));
258
+ newRowFields[key] = field;
289
259
  }
290
260
  return { projections, newRowFields };
291
261
  }
@@ -1,20 +1,19 @@
1
1
  import type { AnyExpression as AstExpression } from '@prisma-next/sql-relational-core/ast';
2
- import type { Expression } from '../expression';
3
- // biome-ignore lint/correctness/noUnusedImports: used in `declare` property
4
- import type { ExpressionType, ScopeField } from '../scope';
2
+ import type { Expression } from '@prisma-next/sql-relational-core/expression';
3
+ import type { ScopeField } from '../scope';
5
4
 
6
5
  /**
7
6
  * Runtime wrapper around a relational-core AST expression node.
8
- * Carries ScopeField metadata (codecId, nullable) for plan generation.
7
+ * Carries ScopeField metadata (codecId, nullable) so aggregate-like
8
+ * combinators can propagate the input codec onto their result.
9
9
  */
10
10
  export class ExpressionImpl<T extends ScopeField = ScopeField> implements Expression<T> {
11
- declare readonly [ExpressionType]: T;
12
11
  private readonly ast: AstExpression;
13
- readonly field: T;
12
+ readonly returnType: T;
14
13
 
15
- constructor(ast: AstExpression, field: T) {
14
+ constructor(ast: AstExpression, returnType: T) {
16
15
  this.ast = ast;
17
- this.field = field;
16
+ this.returnType = returnType;
18
17
  }
19
18
 
20
19
  buildAst(): AstExpression {
@@ -9,35 +9,56 @@ import {
9
9
  ListExpression,
10
10
  LiteralExpr,
11
11
  NullCheckExpr,
12
- OperationExpr,
13
12
  OrExpr,
14
- ParamRef,
15
13
  SubqueryExpr,
16
14
  } from '@prisma-next/sql-relational-core/ast';
15
+ import { toExpr } from '@prisma-next/sql-relational-core/expression';
17
16
  import type {
18
17
  AggregateFunctions,
19
18
  AggregateOnlyFunctions,
20
19
  BooleanCodecType,
21
20
  BuiltinFunctions,
21
+ CodecExpression,
22
22
  Expression,
23
- ExpressionOrValue,
24
23
  Functions,
25
24
  } from '../expression';
26
25
  import type { QueryContext, ScopeField, Subquery } from '../scope';
27
26
  import { ExpressionImpl } from './expression-impl';
28
27
 
29
28
  type CodecTypes = Record<string, { readonly input: unknown }>;
30
- type ExprOrVal<T extends ScopeField = ScopeField> = ExpressionOrValue<T, CodecTypes>;
29
+ // Runtime-level ExprOrVal accepts any codec, any nullability. Concrete codec
30
+ // typing lives on the public BuiltinFunctions surface in `../expression`.
31
+ type ExprOrVal<CodecId extends string = string, N extends boolean = boolean> = CodecExpression<
32
+ CodecId,
33
+ N,
34
+ CodecTypes
35
+ >;
31
36
 
32
37
  const BOOL_FIELD: BooleanCodecType = { codecId: 'pg/bool@1', nullable: false };
33
38
 
34
- function resolve(value: ExprOrVal): AstExpression {
35
- if (value instanceof ExpressionImpl) return value.buildAst();
36
- return ParamRef.of(value);
37
- }
38
-
39
- function resolveToAst(value: ExprOrVal): AstExpression {
40
- if (value instanceof ExpressionImpl) return value.buildAst();
39
+ const resolve = toExpr;
40
+
41
+ /**
42
+ * Resolves an Expression via `buildAst()`, or wraps a raw value as a
43
+ * `LiteralExpr` — an SQL literal inlined into the query text, not a bound
44
+ * parameter.
45
+ *
46
+ * Used for `and` / `or` operands. The usual operand is an `Expression<bool>`
47
+ * (e.g. the result of `fns.eq`), which this function passes through by calling
48
+ * `buildAst()`. The only time the raw-value branch fires is when the caller
49
+ * writes `fns.and(true, x)` or similar — inlining `TRUE`/`FALSE` literals
50
+ * lets the SQL planner statically simplify `TRUE AND x` to `x`, which it
51
+ * cannot do for an opaque `ParamRef`.
52
+ */
53
+ function toLiteralExpr(value: unknown): AstExpression {
54
+ if (
55
+ typeof value === 'object' &&
56
+ value !== null &&
57
+ 'buildAst' in value &&
58
+ typeof (value as { buildAst: unknown }).buildAst === 'function'
59
+ ) {
60
+ return (value as { buildAst(): AstExpression }).buildAst();
61
+ }
41
62
  return new LiteralExpr(value);
42
63
  }
43
64
 
@@ -81,7 +102,7 @@ function numericAgg(
81
102
  expr: Expression<ScopeField>,
82
103
  ): ExpressionImpl<{ codecId: string; nullable: true }> {
83
104
  return new ExpressionImpl(AggregateExpr[fn](expr.buildAst()), {
84
- codecId: (expr as ExpressionImpl).field.codecId,
105
+ codecId: expr.returnType.codecId,
85
106
  nullable: true as const,
86
107
  });
87
108
  }
@@ -94,8 +115,10 @@ function createBuiltinFunctions() {
94
115
  gte: (a: ExprOrVal, b: ExprOrVal) => comparison(a, b, 'gte'),
95
116
  lt: (a: ExprOrVal, b: ExprOrVal) => comparison(a, b, 'lt'),
96
117
  lte: (a: ExprOrVal, b: ExprOrVal) => comparison(a, b, 'lte'),
97
- and: (...exprs: ExprOrVal<BooleanCodecType>[]) => boolExpr(AndExpr.of(exprs.map(resolveToAst))),
98
- or: (...exprs: ExprOrVal<BooleanCodecType>[]) => boolExpr(OrExpr.of(exprs.map(resolveToAst))),
118
+ and: (...exprs: ExprOrVal<'pg/bool@1', boolean>[]) =>
119
+ boolExpr(AndExpr.of(exprs.map(toLiteralExpr))),
120
+ or: (...exprs: ExprOrVal<'pg/bool@1', boolean>[]) =>
121
+ boolExpr(OrExpr.of(exprs.map(toLiteralExpr))),
99
122
  exists: (subquery: Subquery<Record<string, ScopeField>>) =>
100
123
  boolExpr(ExistsExpr.exists(subquery.buildAst())),
101
124
  notExists: (subquery: Subquery<Record<string, ScopeField>>) =>
@@ -127,34 +150,8 @@ function createAggregateOnlyFunctions() {
127
150
  } satisfies AggregateOnlyFunctions;
128
151
  }
129
152
 
130
- function createExtensionFunction(
131
- name: string,
132
- entry: SqlOperationEntry,
133
- ): (...args: ExprOrVal[]) => ExpressionImpl {
134
- return (...args: ExprOrVal[]) => {
135
- const resolvedArgs = args.map((arg, i) => {
136
- if (arg instanceof ExpressionImpl) return arg.buildAst();
137
- const codecId = entry.args[i]?.codecId;
138
- return ParamRef.of(arg, codecId ? { codecId } : undefined);
139
- });
140
- const self = resolvedArgs[0] as AstExpression;
141
- const restArgs = resolvedArgs.slice(1);
142
-
143
- return new ExpressionImpl(
144
- new OperationExpr({
145
- method: name,
146
- self,
147
- args: restArgs.length > 0 ? restArgs : undefined,
148
- returns: entry.returns,
149
- lowering: entry.lowering,
150
- }),
151
- entry.returns,
152
- );
153
- };
154
- }
155
-
156
153
  export function createFunctions<QC extends QueryContext>(
157
- queryOperationTypes: Readonly<Record<string, SqlOperationEntry>>,
154
+ operations: Readonly<Record<string, SqlOperationEntry>>,
158
155
  ): Functions<QC> {
159
156
  const builtins = createBuiltinFunctions();
160
157
 
@@ -163,19 +160,17 @@ export function createFunctions<QC extends QueryContext>(
163
160
  const builtin = (builtins as Record<string, unknown>)[prop];
164
161
  if (builtin) return builtin;
165
162
 
166
- const extOp = queryOperationTypes[prop];
167
- if (extOp) {
168
- return createExtensionFunction(prop, extOp);
169
- }
163
+ const op = operations[prop];
164
+ if (op) return op.impl;
170
165
  return undefined;
171
166
  },
172
167
  });
173
168
  }
174
169
 
175
170
  export function createAggregateFunctions<QC extends QueryContext>(
176
- queryOperationTypes: Readonly<Record<string, SqlOperationEntry>>,
171
+ operations: Readonly<Record<string, SqlOperationEntry>>,
177
172
  ): AggregateFunctions<QC> {
178
- const baseFns = createFunctions<QC>(queryOperationTypes);
173
+ const baseFns = createFunctions<QC>(operations);
179
174
  const aggregates = createAggregateOnlyFunctions();
180
175
 
181
176
  return new Proxy({} as AggregateFunctions<QC>, {
@@ -5,6 +5,7 @@ import {
5
5
  DeleteAst,
6
6
  InsertAst,
7
7
  ParamRef,
8
+ ProjectionItem,
8
9
  TableSource,
9
10
  UpdateAst,
10
11
  } from '@prisma-next/sql-relational-core/ast';
@@ -49,8 +50,14 @@ function buildParamValues(
49
50
  return params;
50
51
  }
51
52
 
52
- function buildReturningColumnRefs(tableName: string, columns: string[]): ColumnRef[] {
53
- return columns.map((col) => ColumnRef.of(tableName, col));
53
+ function buildReturningProjections(
54
+ tableName: string,
55
+ columns: string[],
56
+ rowFields: Record<string, ScopeField>,
57
+ ): ProjectionItem[] {
58
+ return columns.map((col) =>
59
+ ProjectionItem.of(col, ColumnRef.of(tableName, col), rowFields[col]?.codecId),
60
+ );
54
61
  }
55
62
 
56
63
  function evaluateWhere(
@@ -131,12 +138,13 @@ export class InsertQueryImpl<
131
138
  let ast = InsertAst.into(TableSource.named(this.#tableName)).withValues(paramValues);
132
139
 
133
140
  if (this.#returningColumns.length > 0) {
134
- ast = ast.withReturning(buildReturningColumnRefs(this.#tableName, this.#returningColumns));
141
+ ast = ast.withReturning(
142
+ buildReturningProjections(this.#tableName, this.#returningColumns, this.#rowFields),
143
+ );
135
144
  }
136
145
 
137
146
  return buildQueryPlan<ResolveRow<RowType, QC['codecTypes'], QC['resolvedColumnOutputTypes']>>(
138
147
  ast,
139
- this.#rowFields,
140
148
  this.ctx,
141
149
  );
142
150
  }
@@ -234,12 +242,13 @@ export class UpdateQueryImpl<
234
242
  .withWhere(whereExpr);
235
243
 
236
244
  if (this.#returningColumns.length > 0) {
237
- ast = ast.withReturning(buildReturningColumnRefs(this.#tableName, this.#returningColumns));
245
+ ast = ast.withReturning(
246
+ buildReturningProjections(this.#tableName, this.#returningColumns, this.#rowFields),
247
+ );
238
248
  }
239
249
 
240
250
  return buildQueryPlan<ResolveRow<RowType, QC['codecTypes'], QC['resolvedColumnOutputTypes']>>(
241
251
  ast,
242
- this.#rowFields,
243
252
  this.ctx,
244
253
  );
245
254
  }
@@ -317,12 +326,13 @@ export class DeleteQueryImpl<
317
326
  let ast = DeleteAst.from(TableSource.named(this.#tableName)).withWhere(whereExpr);
318
327
 
319
328
  if (this.#returningColumns.length > 0) {
320
- ast = ast.withReturning(buildReturningColumnRefs(this.#tableName, this.#returningColumns));
329
+ ast = ast.withReturning(
330
+ buildReturningProjections(this.#tableName, this.#returningColumns, this.#rowFields),
331
+ );
321
332
  }
322
333
 
323
334
  return buildQueryPlan<ResolveRow<RowType, QC['codecTypes'], QC['resolvedColumnOutputTypes']>>(
324
335
  ast,
325
- this.#rowFields,
326
336
  this.ctx,
327
337
  );
328
338
  }
package/src/scope.ts CHANGED
@@ -1,21 +1,24 @@
1
1
  import type { QueryOperationTypesBase, StorageTable } from '@prisma-next/sql-contract/types';
2
2
  import type { AnyFromSource, SelectAst } from '@prisma-next/sql-relational-core/ast';
3
+ import type { ScopeField } from '@prisma-next/sql-relational-core/expression';
4
+
5
+ export type { ScopeField };
6
+
7
+ export type CodecTypesBase = Record<string, { readonly input: unknown; readonly output: unknown }>;
8
+
9
+ export type TraitField = { traits: readonly string[]; nullable: boolean };
10
+ export type FieldSpec = ScopeField | TraitField;
3
11
 
4
12
  export type GatedMethod<Capabilities, Required, Method> = Capabilities extends Required
5
13
  ? Method
6
14
  : never;
7
15
 
8
- type CodecTypesBase = Record<string, { readonly input: unknown; readonly output: unknown }>;
9
- export declare const ExpressionType: unique symbol;
10
16
  export declare const JoinOuterScope: unique symbol;
11
17
  export declare const SubqueryMarker: unique symbol;
12
18
 
13
19
  export type Expand<T> = { [K in keyof T]: T[K] } & unknown;
14
20
  export type EmptyRow = Record<never, ScopeField>;
15
21
 
16
- export type ScopeField = { codecId: string; nullable: boolean };
17
- export type TraitField = { traits: readonly string[]; nullable: boolean };
18
- export type FieldSpec = ScopeField | TraitField;
19
22
  export type ScopeTable = Record<string, ScopeField>;
20
23
 
21
24
  export type Scope = {
@@ -83,4 +86,4 @@ export type QueryContext = {
83
86
  readonly resolvedColumnOutputTypes: Record<string, unknown>;
84
87
  };
85
88
 
86
- export type { CodecTypesBase, StorageTable };
89
+ export type { StorageTable };
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-Cggb4WvK.d.mts","names":[],"sources":["../src/scope.ts","../src/expression.ts","../src/resolve.ts","../src/types/mutation-query.ts","../src/types/joined-tables.ts","../src/types/grouped-query.ts","../src/types/select-query.ts","../src/types/shared.ts","../src/types/table-proxy.ts","../src/types/db.ts"],"sourcesContent":[],"mappings":"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ECkDnB,iBDlDmB,CAAA;IAAiB,OAAA,ECkDP,ODlDO;IAAtB,QAAA,EAAA,OAAA;EAAuC,CAAA,ECkDM,EDlDN,CAAA,GAAA,IAAA,EAAA,CAAA,ECmDrD,iBDnDqD,CAAA;IAAQ,OAAA,ECmDhC,ODnDgC;IAAgB,QAAA,EAAA,OAAA;EAA/B,CAAA,ECmDa,EDnDb,CAAA,GAAA,IAAA,EAAA,GCoD9C,UDpD8C,CCoDnC,gBDpDmC,CAAA;EAAvC,EAAA,EAAA,CAAA,YCqDG,UDrDH,CAAA,CAAA,CAAA,ECsDP,iBDtDO,CCsDW,GDtDX,ECsDc,EDtDd,CAAA,GAAA,IAAA,EAAA,CAAA,ECuDP,iBDvDO,CCuDW,GDvDX,ECuDc,EDvDd,CAAA,GAAA,IAAA,EAAA,GCwDP,UDxDO,CCwDI,gBDxDJ,CAAA;EAAM,EAAA,EAAA,CAAA,YCyDH,UDzDG,CAAA,CAAA,CAAA,EC0Db,iBD1Da,CC0DK,GD1DL,EC0DQ,ED1DR,CAAA,EAAA,CAAA,EC2Db,iBD3Da,CC2DK,GD3DL,EC2DQ,ED3DR,CAAA,EAAA,GC4Db,UD5Da,CC4DF,gBD5DE,CAAA;EAGR,GAAA,EAAA,CAAA,YC0DM,UD1DY,CAAA,CAAA,CAAA,EC2DvB,iBD3DuB,CC2DL,GD3DK,EC2DF,ED3DE,CAAA,EAAA,CAAA,EC4DvB,iBD5DuB,CC4DL,GD5DK,EC4DF,ED5DE,CAAA,EAAA,GC6DvB,UD7DuB,CC6DZ,gBD7DY,CAAA;EAAW,EAAA,EAAA,CAAA,YC8DxB,UD9DwB,CAAA,CAAA,CAAA,EC+DlC,iBD/DkC,CC+DhB,GD/DgB,EC+Db,ED/Da,CAAA,EAAA,CAAA,ECgElC,iBDhEkC,CCgEhB,GDhEgB,ECgEb,EDhEa,CAAA,EAAA,GCiElC,UDjEkC,CCiEvB,gBDjEuB,CAAA;EAC3B,GAAA,EAAA,CAAA,YCiEI,UDjEJ,CAAA,CAAA,CAAA,ECkEP,iBDlEO,CCkEW,GDlEX,ECkEc,EDlEd,CAAA,EAAA,CAAA,ECmEP,iBDnEO,CCmEW,GDnEX,ECmEc,EDnEd,CAAA,EAAA,GCoEP,UDpEO,CCoEI,gBDpEJ,CAAA;EAAe,GAAA,EAAA,CAAA,GAAA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,CAAA,EAAA,GM+CzB,UN/CyB,CM+Cd,UN/Cc,CAAA,CAAA,EMgD7B,WNhD6B,CMgDjB,ENhDiB,EMgDb,cNhDa,EMgDG,ONhDH,CAAA;EAAI,CAAA,CAAA;;;;AAT9B,UOyBK,cPzBM,CAAA,WOyBoB,YPzBpB,EAAA,oBOyBsD,KPzBtD,CAAA,CAAA;EAAmC,IAAA,CAAA,cO0BrC,UP1BqC,CO0B1B,UP1B0B,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA,CAAA,KAAA,EO2B/C,KP3B+C,CAAA,EO4BrD,WP5BqD,CO4BzC,EP5ByC,EO4BrC,WP5BqC,CO4BzB,WP5ByB,EO4BZ,KP5BY,CAAA,OO4BC,cP5BD,CAAA,CAAA,EO4BmB,QP5BnB,CAAA;;AACtD,UO8Ba,UP9Bb,CAAA,WO+BS,YP/BT,EAAA,uBOgCqB,KPhCrB,EAAA,gBOiCc,MPjCd,CAAA,MAAA,EOiC6B,UPjC7B,CAAA,GOiC2C,QPjC3C,CAAA,CAAA;EAAM,MAAA,CAAA,gBAAA,CAAA,MOmCsB,cPnCtB,CAAA,UAAA,CAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,GAAA,OAAA,EOoCM,OPpCN,CAAA,EOqCL,WPrCK,COqCO,EPrCP,EOqCW,cPrCX,EOqC2B,UPrC3B,COqCsC,OPrCtC,EOqC+C,cPrC/C,CAAA,UAAA,CAAA,EOqC2E,OPrC3E,CAAA,CAAA;EAGL,MAAA,CAAA,cAAc,MAAA,EAAG,cOoCuB,UPpCjB,CAAA,CAAA,KAAA,EOqCjB,KPrCiB,EAAA,IAAA,EAAA,CAAA,MAAA,EOsCT,UPtCS,COsCE,cPtCF,CAAA,EAAA,GAAA,EOsCwB,kBPtCxB,COsC2C,EPtC3C,CAAA,EAAA,GOsCmD,UPtCnD,COsC8D,KPtC9D,CAAA,CAAA,EOuCvB,WPvCuB,COuCX,EPvCW,EOuCP,cPvCO,EOuCS,SPvCT,COuCmB,OPvCnB,EOuC4B,KPvC5B,EOuCmC,KPvCnC,CAAA,CAAA;EACP,MAAA,CAAA,eOwCG,MPxC0B,CAAA,MAAA,EOwCX,UPxCW,COwCA,UPxCA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,CAAA,MAAA,EOyC3B,UPzC2B,COyChB,cPzCgB,CAAA,EAAA,GAAA,EOyCM,kBPzCN,COyCyB,EPzCzB,CAAA,EAAA,GOyCiC,MPzCjC,CAAA,EO0C7C,WP1C6C,CO0CjC,EP1CiC,EO0C7B,cP1C6B,EO0Cb,MP1Ca,CO0CN,OP1CM,GO0CI,kBP1CJ,CO0CuB,MP1CvB,CAAA,CAAA,CAAA;AAClD;AACqB,UO2CJ,QP3CiC,CAAA,WO2Cb,YP3Ca,EAAA,uBO2CwB,KP3CxB,EAAA,YAAA,CAAA,CAAA;EAEtC,SAAM,CAAA,cO0CQ,UP1CR,CO0CmB,UP1CnB,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA,CAAA,KAAA,EO2CP,KP3CO,EAAA,EAAA,EO4CV,iBP5CU,CO4CQ,WP5CR,CO4CoB,cP5CpB,EO4CoC,KP5CpC,CAAA,OO4CiD,cP5CjD,CAAA,CAAA,EO4CmE,EP5CnE,CAAA,CAAA,EO6Cb,YP7Ca,CO6CA,EP7CA,EO6CI,WP7CJ,CO6CgB,cP7ChB,EO6CgC,KP7ChC,CAAA,OO6C6C,cP7C7C,CAAA,CAAA,CAAA;EAAoB,aAAA,CAAA,cO+CR,UP/CQ,CO+CG,UP/CH,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA,CAAA,KAAA,EOgD3B,KPhD2B,EAAA,EAAA,EOiD9B,iBPjD8B,COiDZ,WPjDY,COiDA,cPjDA,EOiDgB,KPjDhB,CAAA,OOiD6B,cPjD7B,CAAA,CAAA,EOiD+C,EPjD/C,CAAA,CAAA,EOkDjC,YPlDiC,COkDpB,EPlDoB,EOkDhB,WPlDgB,COkDJ,cPlDI,EOkDY,aPlDZ,COkD0B,KPlD1B,CAAA,OOkDuC,cPlDvC,CAAA,CAAA,CAAA,CAAA;EAAI,cAAA,CAAA,cOoDX,UPpDW,COoDA,UPpDA,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA,CAAA,KAAA,EOqD/B,KPrD+B,EAAA,EAAA,EOsDlC,iBPtDkC,COsDhB,WPtDgB,COsDJ,cPtDI,EOsDY,KPtDZ,CAAA,OOsDyB,cPtDzB,CAAA,CAAA,EOsD2C,EPtD3C,CAAA,CAAA,EOuDrC,YPvDqC,COuDxB,EPvDwB,EOuDpB,WPvDoB,COuDR,aPvDQ,COuDM,cPvDN,CAAA,EOuDuB,KPvDvB,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CAAA,EQ0Fb,QR1Fa,CQ0FJ,ER1FI,EQ0FA,cR1FA,EQ0FgB,CR1FhB,CAAA,cAAA,CAAA,CAAA,CAAA;EAAwB,EAAA,CAAA,iBAAA,MAAA,CAAA,CAAA,QAAA,EQ4F3B,QR5F2B,CAAA,EQ6FpC,UR7FoC,CQ6FzB,CR7FyB,EQ6FtB,MR7FsB,EQ6FhB,QR7FgB,EQ6FN,WR7FM,CQ6FM,cR7FN,EQ6FsB,KR7FtB,EQ6F6B,QR7F7B,CAAA,CAAA;EAI7B,MAAA,CAAA,MAAA,EQ4FA,oBR5FwB,CQ6F9B,CR7F8B,EQ8F9B,CR9F8B,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,CQ8FP,MR9FO,CAAA,EQ+F9B,MR/F8B,EQgG9B,ERhG8B,CAAA,YAAA,CAAA,EQiG9B,sBRjG8B,CQiGP,CRjGO,CAAA,CAAA,CAAA,EQmG/B,WRnG+B,CQmGnB,ERnGmB,EQmGf,cRnGe,EQmGC,QRnGD,CAAA;EAAW,MAAA,CAAA,GAAA,EQsGtC,oBRtGsC,CQuGzC,CRvGyC,EQwGzC,CRxGyC,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,CQwGlB,MRxGkB,CAAA,EQyGzC,MRzGyC,EQ0GzC,ER1GyC,CAAA,YAAA,CAAA,EQ2GzC,sBR3GyC,CQ2GlB,CR3GkB,CAAA,CAAA,CAAA,EQ6G1C,WR7G0C,CQ6G9B,ER7G8B,EQ6G1B,cR7G0B,EQ6GV,QR7GU,CAAA;EACjC,MAAA,EAAA,EQ8GF,WR9GE,CQ8GU,ER9GV,EQ8Gc,cR9Gd,EQ8G8B,QR9G9B,CAAA;;;;KSxCF,gBAAA,GAAmB,eAAe;KAElC,kBAAA;;qBAC2B,eAAe;ETH1C,CAAA;EAA8C,SAAA,YAAA,ESIjC,gBTJiC;CAAqB;AAC3E,KSMQ,ETNR,CAAA,USMqB,kBTNrB,CAAA,GAAA,WAAM,MAAA,GAAA,MSOgB,CTPhB,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,GSOyC,UTPzC,CSOoD,CTPpD,ESOuD,ITPvD,CAAA,EACA"}