@flux-lang/core 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ast.d.ts CHANGED
@@ -108,6 +108,36 @@ export interface FluxRuntimeConfig {
108
108
  eventsApply?: EventsApplyPolicy;
109
109
  docstepAdvance?: DocstepAdvanceSpec[];
110
110
  }
111
+ export interface MaterialScore {
112
+ text?: string;
113
+ staff?: string;
114
+ clef?: string;
115
+ }
116
+ export interface MaterialMidi {
117
+ channel?: number;
118
+ pitch?: number;
119
+ velocity?: number;
120
+ durationSeconds?: number;
121
+ }
122
+ export interface MaterialVideo {
123
+ clip: string;
124
+ inSeconds?: number;
125
+ outSeconds?: number;
126
+ layer?: string;
127
+ }
128
+ export interface Material {
129
+ name: string;
130
+ tags: string[];
131
+ label?: string;
132
+ description?: string;
133
+ color?: string;
134
+ score?: MaterialScore;
135
+ midi?: MaterialMidi;
136
+ video?: MaterialVideo;
137
+ }
138
+ export interface MaterialsBlock {
139
+ materials: Material[];
140
+ }
111
141
  export type RuleMode = "docstep" | "event" | "timer";
112
142
  export interface RuleScope {
113
143
  grid?: string;
@@ -190,5 +220,6 @@ export interface FluxDocument {
190
220
  grids: FluxGrid[];
191
221
  rules: FluxRule[];
192
222
  runtime?: FluxRuntimeConfig;
223
+ materials?: MaterialsBlock | null;
193
224
  }
194
225
  //# sourceMappingURL=ast.d.ts.map
package/dist/ast.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAID,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACvB,WAAW,GACX,UAAU,GACV,6BAA6B,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvE,MAAM,MAAM,SAAS,GACf,GAAG,GACH,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,IAAI,GACJ,aAAa,GACb,cAAc,GACd,GAAG,GACH,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,GAAG,GACH,IAAI,GACJ,KAAK,GACL,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAID,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACzB;AAID,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GACd,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,KAAK,GACL,IAAI,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;AAElC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GACd,WAAW,GACX,cAAc,GACd,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,iBAAiB,CAAC;AAIxB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,OAAO,GACP,kBAAkB,GAClB,cAAc,CAAC;AAInB,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,UAAU,EAAE,CAAC;IAGvB,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,QAAQ,EAAE,CAAC;IAEvB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./ast.js";
2
2
  export { parseDocument } from "./parser.js";
3
- export type { RuntimeState, GridRuntimeState, RuntimeCellState, NeighborRef, NeighborsNamespace, } from "./runtime/model.js";
3
+ export type { RuntimeState, GridRuntimeState, NeighborRef, NeighborsNamespace } from "./runtime/model.js";
4
4
  export { initRuntimeState, runDocstepOnce, handleEvent } from "./runtime/kernel.js";
5
+ export { createRuntime, type Runtime, type RuntimeSnapshot, type RuntimeEvent, type RuntimeOptions, type DocstepIntervalHint, getDocstepIntervalHint, } from "./runtime.js";
5
6
  export { checkDocument } from "./checks.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1G,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from "./ast.js";
6
6
  export { parseDocument } from "./parser.js";
7
7
  // Runtime kernel entry points
8
8
  export { initRuntimeState, runDocstepOnce, handleEvent } from "./runtime/kernel.js";
9
+ export { createRuntime, getDocstepIntervalHint, } from "./runtime.js";
9
10
  // Static checks
10
11
  export { checkDocument } from "./checks.js";
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qCAAqC;AAErC,iBAAiB;AACjB,cAAc,UAAU,CAAC;AAEzB,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAW5C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qCAAqC;AAErC,iBAAiB;AACjB,cAAc,UAAU,CAAC;AAEzB,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,aAAa,EAMb,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EA2Bf,MAAM,UAAU,CAAC;AAykDlB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAK1D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAgCf,MAAM,UAAU,CAAC;AAoxDlB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAK1D"}
package/dist/parser.js CHANGED
@@ -519,6 +519,7 @@ class Parser {
519
519
  const grids = [];
520
520
  const rules = [];
521
521
  let runtime;
522
+ let materials;
522
523
  while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
523
524
  if (this.checkIdentifier("meta")) {
524
525
  const blockMeta = this.parseMetaBlock();
@@ -540,6 +541,9 @@ class Parser {
540
541
  else if (this.checkIdentifier("runtime")) {
541
542
  runtime = this.parseRuntimeBlock();
542
543
  }
544
+ else if (this.checkIdentifier("materials")) {
545
+ materials = this.parseMaterialsBlock();
546
+ }
543
547
  else {
544
548
  const tok = this.peek();
545
549
  throw this.errorAtToken(tok, `Unexpected top-level construct '${tok.lexeme}'`);
@@ -553,6 +557,7 @@ class Parser {
553
557
  grids,
554
558
  rules,
555
559
  runtime,
560
+ materials,
556
561
  };
557
562
  return doc;
558
563
  }
@@ -813,6 +818,199 @@ class Parser {
813
818
  this.consume(TokenType.RBrace, "Expected '}' after cell block");
814
819
  return cell;
815
820
  }
821
+ // --- Materials ---
822
+ parseMaterialsBlock() {
823
+ this.expectIdentifier("materials", "Expected 'materials'");
824
+ this.consume(TokenType.LBrace, "Expected '{' after 'materials'");
825
+ const materials = [];
826
+ while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
827
+ if (this.checkIdentifier("material")) {
828
+ materials.push(this.parseMaterialDecl());
829
+ }
830
+ else {
831
+ this.skipStatement();
832
+ }
833
+ }
834
+ this.consume(TokenType.RBrace, "Expected '}' after materials block");
835
+ return { materials };
836
+ }
837
+ parseMaterialDecl() {
838
+ this.expectIdentifier("material", "Expected 'material'");
839
+ const nameTok = this.consume(TokenType.Identifier, "Expected material name");
840
+ const name = String(nameTok.value);
841
+ this.consume(TokenType.LBrace, "Expected '{' after material name");
842
+ const material = { name, tags: [] };
843
+ while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
844
+ if (this.checkIdentifier("tags")) {
845
+ material.tags = this.parseIdentifierList();
846
+ }
847
+ else if (this.checkIdentifier("label")) {
848
+ this.advance();
849
+ this.consume(TokenType.Equals, "Expected '=' after 'label'");
850
+ const tok = this.consume(TokenType.String, "Expected string for label");
851
+ material.label = String(tok.value);
852
+ this.consumeOptional(TokenType.Semicolon);
853
+ }
854
+ else if (this.checkIdentifier("description")) {
855
+ this.advance();
856
+ this.consume(TokenType.Equals, "Expected '=' after 'description'");
857
+ const tok = this.consume(TokenType.String, "Expected string for description");
858
+ material.description = String(tok.value);
859
+ this.consumeOptional(TokenType.Semicolon);
860
+ }
861
+ else if (this.checkIdentifier("color")) {
862
+ this.advance();
863
+ this.consume(TokenType.Equals, "Expected '=' after 'color'");
864
+ const tok = this.consume(TokenType.String, "Expected string for color");
865
+ material.color = String(tok.value);
866
+ this.consumeOptional(TokenType.Semicolon);
867
+ }
868
+ else if (this.checkIdentifier("score")) {
869
+ material.score = this.parseMaterialScoreBlock();
870
+ }
871
+ else if (this.checkIdentifier("midi")) {
872
+ material.midi = this.parseMaterialMidiBlock();
873
+ }
874
+ else if (this.checkIdentifier("video")) {
875
+ material.video = this.parseMaterialVideoBlock();
876
+ }
877
+ else {
878
+ this.skipStatement();
879
+ }
880
+ }
881
+ this.consume(TokenType.RBrace, "Expected '}' after material block");
882
+ return material;
883
+ }
884
+ parseMaterialScoreBlock() {
885
+ this.expectIdentifier("score", "Expected 'score'");
886
+ this.consume(TokenType.LBrace, "Expected '{' after 'score'");
887
+ const score = {};
888
+ while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
889
+ if (this.checkIdentifier("text")) {
890
+ this.advance();
891
+ this.consume(TokenType.Equals, "Expected '=' after 'text'");
892
+ const tok = this.consume(TokenType.String, "Expected string for text");
893
+ score.text = String(tok.value);
894
+ this.consumeOptional(TokenType.Semicolon);
895
+ }
896
+ else if (this.checkIdentifier("staff")) {
897
+ this.advance();
898
+ this.consume(TokenType.Equals, "Expected '=' after 'staff'");
899
+ const tok = this.consume(TokenType.String, "Expected string for staff");
900
+ score.staff = String(tok.value);
901
+ this.consumeOptional(TokenType.Semicolon);
902
+ }
903
+ else if (this.checkIdentifier("clef")) {
904
+ this.advance();
905
+ this.consume(TokenType.Equals, "Expected '=' after 'clef'");
906
+ const tok = this.consume(TokenType.String, "Expected string for clef");
907
+ score.clef = String(tok.value);
908
+ this.consumeOptional(TokenType.Semicolon);
909
+ }
910
+ else {
911
+ this.skipStatement();
912
+ }
913
+ }
914
+ this.consume(TokenType.RBrace, "Expected '}' after score block");
915
+ return score;
916
+ }
917
+ parseMaterialMidiBlock() {
918
+ this.expectIdentifier("midi", "Expected 'midi'");
919
+ this.consume(TokenType.LBrace, "Expected '{' after 'midi'");
920
+ const midi = {};
921
+ while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
922
+ if (this.checkIdentifier("channel")) {
923
+ this.advance();
924
+ this.consume(TokenType.Equals, "Expected '=' after 'channel'");
925
+ const tok = this.consumeNumber("Expected numeric channel");
926
+ midi.channel = Number(tok.value);
927
+ this.consumeOptional(TokenType.Semicolon);
928
+ }
929
+ else if (this.checkIdentifier("pitch")) {
930
+ this.advance();
931
+ this.consume(TokenType.Equals, "Expected '=' after 'pitch'");
932
+ const tok = this.consumeNumber("Expected numeric pitch");
933
+ midi.pitch = Number(tok.value);
934
+ this.consumeOptional(TokenType.Semicolon);
935
+ }
936
+ else if (this.checkIdentifier("velocity")) {
937
+ this.advance();
938
+ this.consume(TokenType.Equals, "Expected '=' after 'velocity'");
939
+ const tok = this.consumeNumber("Expected numeric velocity");
940
+ midi.velocity = Number(tok.value);
941
+ this.consumeOptional(TokenType.Semicolon);
942
+ }
943
+ else if (this.checkIdentifier("durationSeconds")) {
944
+ this.advance();
945
+ this.consume(TokenType.Equals, "Expected '=' after 'durationSeconds'");
946
+ const tok = this.consumeNumber("Expected numeric durationSeconds");
947
+ midi.durationSeconds = Number(tok.value);
948
+ this.consumeOptional(TokenType.Semicolon);
949
+ }
950
+ else {
951
+ this.skipStatement();
952
+ }
953
+ }
954
+ this.consume(TokenType.RBrace, "Expected '}' after midi block");
955
+ return midi;
956
+ }
957
+ parseMaterialVideoBlock() {
958
+ this.expectIdentifier("video", "Expected 'video'");
959
+ this.consume(TokenType.LBrace, "Expected '{' after 'video'");
960
+ const video = { clip: "" };
961
+ while (!this.check(TokenType.RBrace) && !this.isAtEnd()) {
962
+ if (this.checkIdentifier("clip")) {
963
+ this.advance();
964
+ this.consume(TokenType.Equals, "Expected '=' after 'clip'");
965
+ const tok = this.consume(TokenType.String, "Expected string for clip");
966
+ video.clip = String(tok.value);
967
+ this.consumeOptional(TokenType.Semicolon);
968
+ }
969
+ else if (this.checkIdentifier("inSeconds")) {
970
+ this.advance();
971
+ this.consume(TokenType.Equals, "Expected '=' after 'inSeconds'");
972
+ const tok = this.consumeNumber("Expected numeric inSeconds");
973
+ video.inSeconds = Number(tok.value);
974
+ this.consumeOptional(TokenType.Semicolon);
975
+ }
976
+ else if (this.checkIdentifier("outSeconds")) {
977
+ this.advance();
978
+ this.consume(TokenType.Equals, "Expected '=' after 'outSeconds'");
979
+ const tok = this.consumeNumber("Expected numeric outSeconds");
980
+ video.outSeconds = Number(tok.value);
981
+ this.consumeOptional(TokenType.Semicolon);
982
+ }
983
+ else if (this.checkIdentifier("layer")) {
984
+ this.advance();
985
+ this.consume(TokenType.Equals, "Expected '=' after 'layer'");
986
+ const tok = this.consume(TokenType.String, "Expected string for layer");
987
+ video.layer = String(tok.value);
988
+ this.consumeOptional(TokenType.Semicolon);
989
+ }
990
+ else {
991
+ this.skipStatement();
992
+ }
993
+ }
994
+ this.consume(TokenType.RBrace, "Expected '}' after video block");
995
+ return video;
996
+ }
997
+ parseIdentifierList() {
998
+ this.advance(); // identifier keyword already checked
999
+ this.consume(TokenType.Equals, "Expected '=' after identifier list key");
1000
+ this.consume(TokenType.LBracket, "Expected '[' to start identifier list");
1001
+ const values = [];
1002
+ if (!this.check(TokenType.RBracket)) {
1003
+ const first = this.consume(TokenType.Identifier, "Expected identifier");
1004
+ values.push(String(first.value));
1005
+ while (this.match(TokenType.Comma)) {
1006
+ const t = this.consume(TokenType.Identifier, "Expected identifier");
1007
+ values.push(String(t.value));
1008
+ }
1009
+ }
1010
+ this.consume(TokenType.RBracket, "Expected ']' after identifier list");
1011
+ this.consumeOptional(TokenType.Semicolon);
1012
+ return values;
1013
+ }
816
1014
  // --- Expressions ---
817
1015
  parseExpr() {
818
1016
  return this.parseOr();
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAmCA;;;GAGG;AACH,IAAK,SA4CJ;AA5CD,WAAK,SAAS;IACV,aAAa;IACb,6CAAM,CAAA;IACN,6CAAM,CAAA;IACN,iDAAQ,CAAA;IACR,iDAAQ,CAAA;IACR,6CAAM,CAAA;IACN,6CAAM,CAAA;IACN,2CAAK,CAAA;IACL,mDAAS,CAAA;IACT,2CAAK,CAAA;IACL,6CAAM,CAAA;IACN,sCAAE,CAAA;IAEF,sCAAsC;IACtC,wCAAG,CAAA;IACH,gDAAO,CAAA;IACP,0CAAI,CAAA;IACJ,0CAAI,CAAA;IACJ,0CAAI,CAAA;IACJ,4CAAK,CAAA;IACL,0CAAI,CAAA;IACJ,4CAAK,CAAA;IACL,gDAAO,CAAA;IAEP,uBAAuB;IACvB,8CAAM,CAAA;IACN,0CAAI,CAAA;IACJ,sDAAU,CAAA;IACV,gEAAe,CAAA;IACf,oDAAS,CAAA;IACT,8DAAc,CAAA;IACd,oDAAS,CAAA;IACT,0DAAY,CAAA;IAEZ,WAAW;IACX,wCAAG,CAAA;IACH,4CAAK,CAAA;IACL,8CAAM,CAAA;IACN,0CAAI,CAAA;IACJ,wCAAG,CAAA;IAEH,sDAAU,CAAA;IACV,wCAAG,CAAA;AACP,CAAC,EA5CI,SAAS,KAAT,SAAS,QA4Cb;AAUD;;;;;;GAMG;AACH,MAAM,KAAK;IACD,GAAG,CAAS;IACZ,GAAG,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,CAAC,CAAC;IACT,GAAG,GAAG,CAAC,CAAC;IAEhB,YAAY,MAAc;QACxB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAElC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,KAAK,KAAK,MAAM;wBACvB,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACjB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,GAAG;wBACnB,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACjB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,UAAU;wBAC1B,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,0BAA0B;YACxB,QAAQ,EAAE,EAAE,CAAC;gBACT,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACxF,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACxF,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1F,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1F,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACxF,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACxF,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvF,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC3F,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvF,MAAM;gBAEV,KAAK,GAAG,CAAC,CAAC,CAAC;oBACP,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;wBACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;4BAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;4BAChC,MAAM,CAAC,IAAI,CAAC;gCACR,IAAI,EAAE,SAAS,CAAC,eAAe;gCAC/B,MAAM,EAAE,KAAK;gCACb,IAAI,EAAE,SAAS;gCACf,MAAM,EAAE,QAAQ;6BACnB,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,CAAC,IAAI,CAAC;gCACR,IAAI,EAAE,SAAS,CAAC,UAAU;gCAC1B,MAAM,EAAE,IAAI;gCACZ,IAAI,EAAE,SAAS;gCACf,MAAM,EAAE,QAAQ;6BACnB,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,MAAM;4BACtB,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;oBACD,MAAM;gBACV,CAAC;gBAED,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpF,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,GAAG;wBACnB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,YAAY;4BAC5B,MAAM,EAAE,IAAI;4BACZ,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,OAAO;4BACvB,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;oBACD,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,SAAS;4BACzB,MAAM,EAAE,IAAI;4BACZ,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;oBACD,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;4BAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC;gCACR,IAAI,EAAE,SAAS,CAAC,cAAc;gCAC9B,MAAM,EAAE,KAAK;gCACb,IAAI,EAAE,SAAS;gCACf,MAAM,EAAE,QAAQ;6BACnB,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,CAAC,IAAI,CAAC;gCACR,IAAI,EAAE,SAAS,CAAC,SAAS;gCACzB,MAAM,EAAE,IAAI;gCACZ,IAAI,EAAE,SAAS;gCACf,MAAM,EAAE,QAAQ;6BACnB,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;oBACD,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,4DAA4D;oBAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,KAAK;wBACrB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,oCAAoC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,KAAK;wBACrB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,SAAS,CAAC,OAAO;wBACvB,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;wBAChC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;wBACjC,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,MAAM;4BACtB,MAAM,EAAE,IAAI;4BACZ,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBACjF,CAAC;oBACD,MAAM;gBAEV,KAAK,GAAG;oBACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY;wBAChC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;wBACjC,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,MAAM,EAAE,IAAI;4BACZ,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,QAAQ;yBACnB,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBACjF,CAAC;oBACD,MAAM;gBAEV;oBACI,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS,CAAC,GAAG;YACnB,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,OAAO;QACb,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,CAAC;IAEO,QAAQ,CAAC,MAAM,GAAG,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAEO,WAAW;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;QACxC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,YAAY,CAAC,EAAU;QAC7B,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;IACjE,CAAC;IAEO,cAAc;QACpB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,+BAA+B;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QACjC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;QAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;gBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;gBAC1B,MAAM;YACR,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,EAAU;QACxB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,OAAO,CAAC,EAAU;QACxB,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;IAChC,CAAC;IAEO,cAAc;QACpB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACvD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACxD,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YAC9C,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,wBAAwB;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB;gBACpC,OAAO;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM;oBACtB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,QAAQ;iBACjB,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,gCAAgC;gBAChC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACvB,yCAAyC;gBACzC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACpC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,OAAe,EAAE,IAAY,EAAE,MAAc;QACzD,OAAO,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;CACF;AAED;;GAEG;AAEH,MAAM,MAAM;IACF,MAAM,CAAU;IAChB,OAAO,GAAG,CAAC,CAAC;IAEpB,YAAY,MAAe;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,aAAa;QACX,mBAAmB;QACnB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAc,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxC,IAAI,UAAkC,CAAC;QACrC,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,OAAsC,CAAC;QAC3C,IAAI,SAAqC,CAAC;QAE1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,mCAAmC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAiB;YACtB,IAAI;YACJ,KAAK;YACL,UAAU;YACV,KAAK;YACL,KAAK;YACL,OAAO;YACP,SAAS;SACZ,CAAC;QAEF,OAAO,GAAG,CAAC;IACf,CAAC;IAED,eAAe;IAEP,cAAc;QACpB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;YACxF,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAER,eAAe;QACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;QAEnD,MAAM,UAAU,GAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,2BAA2B,QAAQ,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,GAAgC,CAAC;QACrC,IAAI,GAAgC,CAAC;QAErC,iBAAiB;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,GAAG,GAAG,MAAa,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,GAAG,GAAG,KAAK,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,GAAG,GAAG,MAAa,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAc;YACvB,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,GAAG;YACH,GAAG;YACH,OAAO,EAAE,OAAc;SACxB,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;IAEb,oBAAoB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAElE,IAAI,IAA0B,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAE5D,IAAI,KAAyB,CAAC;QAC9B,IAAI,MAA0B,CAAC;QAC/B,IAAI,KAAyB,CAAC;QAE9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;gBAC5D,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS;gBACzB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;gBAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC3E,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAEhE,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,oDAAoD,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,sBAAsB;IAEd,cAAc;QACpB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAE/D,IAAI,QAA4B,CAAC;QACjC,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAwB,CAAC;QAC7B,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW;gBAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;gBAC5E,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO;gBACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBAC1D,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACvC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,GAAa;YACrB,IAAI;YACJ,QAAQ,EAAE,QAAe;YACzB,IAAI;YACJ,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACpB,KAAK;SACN,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAE5D,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAwB,CAAC;QAE7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO;gBACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;gBAC/D,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO;gBACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;gBAC/D,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAa;YACrB,EAAE;YACF,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO;gBACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,mBAAmB;oBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;oBAC5E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;wBACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;gBAChE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU;gBAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;gBAC7E,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU;gBAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IAEZ,mBAAmB;QACzB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QAEjE,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;QACrE,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAE9C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBACxE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBACxE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChD,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBACxE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAiB,EAAE,CAAC;QAE9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;gBACzD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;gBACvE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC;gBACnE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uBAAuB;QAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAE1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;gBACjE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;gBAC7D,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;gBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;gBAC9D,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBACxE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,qCAAqC;QACrD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;QAE1E,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;gBACpE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEC,sBAAsB;IAEd,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEO,OAAO;QACX,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,QAAQ;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAClC,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,eAAe;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,SAAS;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,WAAW;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,EAAE,GAAY,KAAK,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,iBAAiB;gBACvB,EAAE;gBACF,QAAQ;aACX,CAAC;QACN,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,EAAE,GAAY,GAAG,CAAC;YACxB,OAAO;gBACH,IAAI,EAAE,iBAAiB;gBACvB,EAAE;gBACF,QAAQ;aACX,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;gBACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,GAAG;oBACH,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,IAAI;oBACZ,QAAQ;iBACX,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACtC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM;YACV,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAExB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,GAAG,CAAC,KAAe;iBAC7B,CAAC;YACN,CAAC;YACD,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,GAAG,CAAC,KAAe;iBAC7B,CAAC;YACN,CAAC;YACD,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,GAAG,CAAC,KAAgB;iBAC9B,CAAC;YACN,CAAC;YACD,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;oBACH,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC;YACN,CAAC;YACD,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpB,4DAA4D;gBAC5D,wDAAwD;gBACxD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC;YAChB,CAAC;YACD;gBACI,MAAM;QACd,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IACxD,CAAC;IAEO,iBAAiB;QACrB,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,MAAgB,EAAE,IAAgB;QACzD,IACI,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,EACpC,CAAC;YACC,OAAO;gBACH,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,WAAW;gBACtB,MAAM,EAAE,MAAM,CAAC,QAAQ;gBACvB,IAAI;aACP,CAAC;QACN,CAAC;QAED,OAAO;YACH,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,IAAI;SACP,CAAC;IACN,CAAC;IAEO,UAAU,CAAC,IAAc,EAAE,EAAY,EAAE,KAAe;QAC5D,OAAO;YACH,IAAI,EAAE,kBAAkB;YACxB,EAAE;YACF,IAAI;YACJ,KAAK;SACR,CAAC;IACN,CAAC;IAED,gDAAgD;IAChD,gBAAgB;IAER,aAAa;QACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5D,mCAAmC;QACnC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,YAAY,CACnB,IAAI,CAAC,IAAI,EAAE,EACX,qDAAqD,CACxD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAElE,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE7C,MAAM,QAAQ,GAAsD;YAChE,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE;SACvD,CAAC;QAEF,IAAI,UAAkC,CAAC;QAEvC,gEAAgE;QAChE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS;YAEzB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,gBAAgB;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;gBAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACJ,qBAAqB;gBACrB,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACxC,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAE/D,OAAO;YACH,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,WAAW;YACX,QAAQ;YACR,0CAA0C;YAC1C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAChC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;YAClC,UAAU;SACb,CAAC;IACN,CAAC;IAEO,eAAe;QAKnB,IAAI,IAAI,GAAa,SAAS,CAAC;QAC/B,IAAI,KAA4B,CAAC;QACjC,IAAI,WAA+B,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;oBACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAEjC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;oBAEhE,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;wBACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAa,CAAC;wBAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;4BAC1D,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,sBAAsB,GAAG,GAAG,CAAC,CAAC;wBAClE,CAAC;wBACD,IAAI,GAAG,GAAG,CAAC;oBACf,CAAC;yBAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;wBACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACtC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC/B,CAAC;yBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;wBAC1E,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,GAAG,CAAC,CAAC;oBACxE,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;wBAAE,MAAM;gBAC5C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC9D,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,cAAc;QAClB,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC/C,CAAC;QAED,+DAA+D;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,YAAY,CACnB,IAAI,CAAC,IAAI,EAAE,EACX,8FAA8F,CACjG,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC/D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAmB;YACzB,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,GAAG;YACX,KAAK;SACR,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO;YACH,IAAI,EAAE,cAAc;YACpB,IAAI;YACJ,KAAK;SACR,CAAC;IACN,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO;YACH,IAAI,EAAE,yBAAyB;SAClC,CAAC;IACN,CAAC;IAED,kBAAkB;IAEV,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;gBAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;gBAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CACvB,SAAS,CAAC,MAAM,EAChB,uCAAuC,CAC1C,CAAC;gBACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,GAAwB,CAAC;gBAEvC,IACI,KAAK,KAAK,WAAW;oBACrB,KAAK,KAAK,UAAU;oBACpB,KAAK,KAAK,6BAA6B,EACzC,CAAC;oBACC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,KAAK,GAAG,CAAC,CAAC;gBAC7E,CAAC;gBAED,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;gBACjC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;gBACtE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;gBAE1E,MAAM,KAAK,GAAyB,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAC;gBAC3E,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1C,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;YACnF,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,uBAAuB;QAC3B,kCAAkC;QAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,OAAO;YACb,MAAM;YACN,IAAI;SACP,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,iBAAiB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,mCAAmC;QACnC,IAAI,IAAI,GAAc,GAAG,CAAC;QAE1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAElC,UAAU;YACV,IACI,OAAO,KAAK,GAAG;gBACf,OAAO,KAAK,KAAK;gBACjB,OAAO,KAAK,MAAM;gBAClB,OAAO,KAAK,QAAQ;gBACpB,OAAO,KAAK,SAAS,EACvB,CAAC;gBACC,IAAI,GAAG,GAAG,CAAC;YACf,CAAC;YACD,eAAe;iBACV,IACD,OAAO,KAAK,IAAI;gBAChB,OAAO,KAAK,aAAa;gBACzB,OAAO,KAAK,cAAc,EAC5B,CAAC;gBACC,IAAI,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,kBAAkB;iBACb,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACjD,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,0BAA0B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEO,aAAa;QACrB,8BAA8B;QAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACzD,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;QACD,aAAa;QACb,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC,CAAC,yCAAyC;IAC7D,CAAC;IAED,4BAA4B;IAEpB,SAAS;QACf,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,iCAAiC;QAChD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;gBAAE,KAAK,EAAE,CAAC;iBACtC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;gBAAE,KAAK,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,qBAAqB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;gBAAE,KAAK,EAAE,CAAC;iBACtC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;gBAAE,KAAK,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,wDAAwD;gBACxD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,oCAAoC;IAE5B,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,SAAS,CAAC,GAAG,CAAC;YACnB,KAAK,SAAS,CAAC,KAAK;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,KAAe,CAAC;YAC7B,KAAK,SAAS,CAAC,MAAM;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,KAAe,CAAC;YAC7B,KAAK,SAAS,CAAC,IAAI;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,KAAgB,CAAC;YAC9B,KAAK,SAAS,CAAC,UAAU;gBACvB,mDAAmD;gBACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,MAAM,CAAC;YACpB;gBACE,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,2BAA2B;IAEnB,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC;IAC5C,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,IAAe;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,GAAG,KAAkB;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,OAAO,CAAC,IAAe,EAAE,OAAe;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,IAAe;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,qCAAqC;IAE3B,YAAY,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEK,eAAe,CAAC,KAAa;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC;IACnE,CAAC;IAEO,gBAAgB,CAAC,KAAa,EAAE,OAAe;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,uBAAuB;IAEf,YAAY,CAAC,KAAY,EAAE,OAAe;QAChD,OAAO,IAAI,KAAK,CACd,kBAAkB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,MAAM,OAAO,EAAE,CAClF,CAAC;IACJ,CAAC;CACF;AAED,aAAa;AACb,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { FluxDocument } from "./ast.js";
2
+ export type RuntimeOptions = {
3
+ clock?: "manual" | "internal";
4
+ timerOverrideMs?: number | null;
5
+ onEvent?: (event: RuntimeEvent) => void;
6
+ };
7
+ export type RuntimeSnapshot = {
8
+ docstep: number;
9
+ params: Record<string, number>;
10
+ grids: Array<{
11
+ name: string;
12
+ rows: number;
13
+ cols: number;
14
+ cells: Array<{
15
+ id: string;
16
+ row: number;
17
+ col: number;
18
+ tags: string[];
19
+ content: string;
20
+ dynamic: number;
21
+ }>;
22
+ }>;
23
+ };
24
+ export type RuntimeEvent = {
25
+ kind: "docstep";
26
+ docstep: number;
27
+ timestamp: number;
28
+ } | {
29
+ kind: "cellChanged";
30
+ docstep: number;
31
+ grid: string;
32
+ cellId: string;
33
+ prevContent: string;
34
+ nextContent: string;
35
+ dynamic: number;
36
+ } | {
37
+ kind: "materialTrigger";
38
+ docstep: number;
39
+ grid: string;
40
+ cellId: string;
41
+ materialKey: string;
42
+ dynamic: number;
43
+ params: Record<string, number>;
44
+ };
45
+ export interface Runtime {
46
+ getSnapshot(): RuntimeSnapshot;
47
+ stepDocstep(): {
48
+ snapshot: RuntimeSnapshot;
49
+ events: RuntimeEvent[];
50
+ };
51
+ start(): void;
52
+ stop(): void;
53
+ isRunning(): boolean;
54
+ setParam(name: string, value: number): void;
55
+ }
56
+ export declare function createRuntime(doc: FluxDocument, options?: RuntimeOptions): Runtime;
57
+ export type RuntimeCellState = {
58
+ id: string;
59
+ tags: string[];
60
+ content: string;
61
+ dynamic: number;
62
+ };
63
+ export interface DocstepIntervalHint {
64
+ millis: number;
65
+ source?: string;
66
+ }
67
+ export declare function getDocstepIntervalHint(doc: FluxDocument): DocstepIntervalHint | null;
68
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,UAAU,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEN,MAAM,WAAW,OAAO;IACtB,WAAW,IAAI,eAAe,CAAC;IAC/B,WAAW,IAAI;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IACrE,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,SAAS,IAAI,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAqJtF;AAmCD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqRF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,mBAAmB,GAAG,IAAI,CAWpF"}
@@ -0,0 +1,414 @@
1
+ export function createRuntime(doc, options = {}) {
2
+ const state = {
3
+ doc,
4
+ docstep: 0,
5
+ params: buildParams(doc),
6
+ grids: buildGrids(doc),
7
+ random: makeRandom(),
8
+ };
9
+ const clock = options.clock ?? "manual";
10
+ const timerOverrideMs = options.timerOverrideMs ?? null;
11
+ const onEvent = options.onEvent;
12
+ let timer = null;
13
+ const materialKeys = new Set((doc.materials?.materials ?? []).map((m) => m.name));
14
+ function getSnapshot() {
15
+ return buildSnapshot(state);
16
+ }
17
+ function emit(events) {
18
+ if (!onEvent)
19
+ return;
20
+ for (const ev of events) {
21
+ onEvent(ev);
22
+ }
23
+ }
24
+ function stepDocstep() {
25
+ const prevSnapshot = buildSnapshot(state);
26
+ const patches = [];
27
+ const rules = (state.doc.rules ?? []).filter((rule) => rule.mode === "docstep");
28
+ for (const grid of state.grids.values()) {
29
+ const gridRules = rules.filter((rule) => rule.scope?.grid === grid.name);
30
+ if (gridRules.length === 0)
31
+ continue;
32
+ for (let row = 0; row < grid.rows; row++) {
33
+ for (let col = 0; col < grid.cols; col++) {
34
+ const idx = row * grid.cols + col;
35
+ const cell = grid.cells[idx];
36
+ if (!cell)
37
+ continue;
38
+ for (const rule of gridRules) {
39
+ const ctx = {
40
+ state,
41
+ grid,
42
+ cell,
43
+ row,
44
+ col,
45
+ };
46
+ const condition = evalExpr(rule.condition, ctx);
47
+ if (condition) {
48
+ const assignments = rule.thenBranch ?? [];
49
+ for (const stmt of assignments) {
50
+ if (stmt.kind !== "AssignmentStatement")
51
+ continue;
52
+ const target = resolveAssignmentTarget(stmt.target, ctx);
53
+ if (!target)
54
+ continue;
55
+ const value = evalExpr(stmt.value, ctx);
56
+ patches.push({
57
+ gridName: grid.name,
58
+ cellId: cell.id,
59
+ property: target,
60
+ value,
61
+ });
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ applyPatches(state, patches);
69
+ state.docstep += 1;
70
+ const snapshot = buildSnapshot(state);
71
+ const events = [
72
+ { kind: "docstep", docstep: snapshot.docstep, timestamp: Date.now() },
73
+ ];
74
+ const prevGridMap = new Map(prevSnapshot.grids.map((g) => [g.name, g]));
75
+ for (const grid of snapshot.grids) {
76
+ const prevGrid = prevGridMap.get(grid.name);
77
+ for (const cell of grid.cells) {
78
+ const prevCell = prevGrid?.cells[cell.row * grid.cols + cell.col];
79
+ const prevContent = prevCell?.content ?? "";
80
+ if (prevContent !== cell.content) {
81
+ events.push({
82
+ kind: "cellChanged",
83
+ docstep: snapshot.docstep,
84
+ grid: grid.name,
85
+ cellId: cell.id,
86
+ prevContent,
87
+ nextContent: cell.content,
88
+ dynamic: cell.dynamic,
89
+ });
90
+ if (materialKeys.has(cell.content)) {
91
+ events.push({
92
+ kind: "materialTrigger",
93
+ docstep: snapshot.docstep,
94
+ grid: grid.name,
95
+ cellId: cell.id,
96
+ materialKey: cell.content,
97
+ dynamic: cell.dynamic,
98
+ params: { ...snapshot.params },
99
+ });
100
+ }
101
+ }
102
+ }
103
+ }
104
+ emit(events);
105
+ return { snapshot, events };
106
+ }
107
+ function start() {
108
+ if (clock !== "internal")
109
+ return;
110
+ if (timer)
111
+ return;
112
+ const hint = getDocstepIntervalHint(doc);
113
+ const interval = timerOverrideMs ?? hint?.millis ?? 1000;
114
+ timer = setInterval(() => {
115
+ stepDocstep();
116
+ }, interval);
117
+ }
118
+ function stop() {
119
+ if (!timer)
120
+ return;
121
+ clearInterval(timer);
122
+ timer = null;
123
+ }
124
+ function isRunning() {
125
+ return timer !== null;
126
+ }
127
+ function setParam(name, value) {
128
+ state.params.set(name, value);
129
+ }
130
+ return {
131
+ getSnapshot,
132
+ stepDocstep,
133
+ start,
134
+ stop,
135
+ isRunning,
136
+ setParam,
137
+ };
138
+ }
139
+ function buildParams(doc) {
140
+ const params = new Map();
141
+ for (const param of doc.state.params ?? []) {
142
+ if (typeof param.initial === "number") {
143
+ params.set(param.name, param.initial);
144
+ }
145
+ }
146
+ return params;
147
+ }
148
+ function buildGrids(doc) {
149
+ const grids = new Map();
150
+ for (const grid of doc.grids ?? []) {
151
+ const rows = grid.size?.rows ?? 0;
152
+ const cols = grid.size?.cols ?? 0;
153
+ const cells = [];
154
+ const cellIndex = new Map();
155
+ let idx = 0;
156
+ for (let r = 0; r < rows; r++) {
157
+ for (let c = 0; c < cols; c++) {
158
+ const cellDef = grid.cells[idx];
159
+ const cellState = {
160
+ id: cellDef?.id ?? `r${r}c${c}`,
161
+ tags: [...(cellDef?.tags ?? [])],
162
+ content: cellDef?.content ?? "",
163
+ dynamic: typeof cellDef?.dynamic === "number" ? cellDef.dynamic : 0,
164
+ };
165
+ cells.push(cellState);
166
+ cellIndex.set(cellState.id, idx);
167
+ idx += 1;
168
+ }
169
+ }
170
+ grids.set(grid.name, { name: grid.name, rows, cols, cells, cellIndex });
171
+ }
172
+ return grids;
173
+ }
174
+ function makeRandom() {
175
+ let s = Date.now() >>> 0;
176
+ return function next() {
177
+ s ^= s << 13;
178
+ s ^= s >>> 17;
179
+ s ^= s << 5;
180
+ return (s >>> 0) / 0xffffffff;
181
+ };
182
+ }
183
+ function evalExpr(expr, ctx) {
184
+ switch (expr.kind) {
185
+ case "Literal":
186
+ return expr.value;
187
+ case "Identifier":
188
+ return evalIdentifier(expr.name, ctx);
189
+ case "UnaryExpression":
190
+ return evalUnary(expr.op, expr.argument, ctx);
191
+ case "BinaryExpression":
192
+ return evalBinary(expr.op, expr.left, expr.right, ctx);
193
+ case "MemberExpression":
194
+ return evalMember(expr.object, expr.property, ctx);
195
+ case "CallExpression":
196
+ return evalCall(expr, ctx);
197
+ case "NeighborsCallExpression":
198
+ return evalNeighborsCall(expr, ctx);
199
+ default:
200
+ return undefined;
201
+ }
202
+ }
203
+ function evalIdentifier(name, ctx) {
204
+ if (name === "cell")
205
+ return ctx.cell;
206
+ if (name === "neighbors")
207
+ return neighborsNamespace;
208
+ if (name === "random")
209
+ return ctx.state.random;
210
+ if (ctx.state.params.has(name))
211
+ return ctx.state.params.get(name);
212
+ return undefined;
213
+ function neighborsNamespace(method) {
214
+ if (method === "all" || method === "orth") {
215
+ return evalNeighborsCall({ kind: "NeighborsCallExpression", namespace: "neighbors", method, args: [] }, ctx);
216
+ }
217
+ return [];
218
+ }
219
+ }
220
+ function evalUnary(op, argument, ctx) {
221
+ const value = evalExpr(argument, ctx);
222
+ switch (op) {
223
+ case "not":
224
+ return !value;
225
+ case "-":
226
+ return -value;
227
+ default:
228
+ return undefined;
229
+ }
230
+ }
231
+ function evalBinary(op, left, right, ctx) {
232
+ switch (op) {
233
+ case "and":
234
+ return Boolean(evalExpr(left, ctx)) && Boolean(evalExpr(right, ctx));
235
+ case "or":
236
+ return Boolean(evalExpr(left, ctx)) || Boolean(evalExpr(right, ctx));
237
+ case "==":
238
+ return evalExpr(left, ctx) === evalExpr(right, ctx);
239
+ case "!=":
240
+ return evalExpr(left, ctx) !== evalExpr(right, ctx);
241
+ case "<":
242
+ return evalExpr(left, ctx) < evalExpr(right, ctx);
243
+ case "<=":
244
+ return evalExpr(left, ctx) <= evalExpr(right, ctx);
245
+ case ">":
246
+ return evalExpr(left, ctx) > evalExpr(right, ctx);
247
+ case ">=":
248
+ return evalExpr(left, ctx) >= evalExpr(right, ctx);
249
+ case "+":
250
+ return evalExpr(left, ctx) + evalExpr(right, ctx);
251
+ case "-":
252
+ return evalExpr(left, ctx) - evalExpr(right, ctx);
253
+ case "*":
254
+ return evalExpr(left, ctx) * evalExpr(right, ctx);
255
+ case "/":
256
+ return evalExpr(left, ctx) / evalExpr(right, ctx);
257
+ default:
258
+ return undefined;
259
+ }
260
+ }
261
+ function evalMember(objectExpr, property, ctx) {
262
+ if (objectExpr.kind === "NeighborsCallExpression") {
263
+ const neighbors = evalNeighborsCall(objectExpr, ctx);
264
+ if (property === "dynamic") {
265
+ let max = 0;
266
+ for (const cell of neighbors) {
267
+ if (typeof cell.dynamic === "number" && cell.dynamic > max) {
268
+ max = cell.dynamic;
269
+ }
270
+ }
271
+ return max;
272
+ }
273
+ return undefined;
274
+ }
275
+ const obj = evalExpr(objectExpr, ctx);
276
+ if (obj == null)
277
+ return undefined;
278
+ return obj[property];
279
+ }
280
+ function evalCall(expr, ctx) {
281
+ if (expr.callee.kind === "Identifier" && expr.callee.name === "random") {
282
+ return ctx.state.random();
283
+ }
284
+ if (expr.callee.kind === "Identifier" && expr.callee.name === "max") {
285
+ const [a, b] = expr.args;
286
+ return Math.max(Number(evalExpr(a, ctx)), Number(evalExpr(b, ctx)));
287
+ }
288
+ if (expr.callee.kind === "MemberExpression" &&
289
+ expr.callee.property === "contains") {
290
+ const target = evalExpr(expr.callee.object, ctx);
291
+ const arg = expr.args[0] ? evalExpr(expr.args[0], ctx) : undefined;
292
+ if (Array.isArray(target)) {
293
+ return target.includes(arg);
294
+ }
295
+ }
296
+ const callee = evalExpr(expr.callee, ctx);
297
+ if (typeof callee === "function") {
298
+ const args = expr.args.map((a) => evalExpr(a, ctx));
299
+ return callee(...args);
300
+ }
301
+ return undefined;
302
+ }
303
+ function evalNeighborsCall(expr, ctx) {
304
+ const offsets = expr.method === "orth" ? orthogonalOffsets : allOffsets;
305
+ const neighbors = [];
306
+ for (const [dr, dc] of offsets) {
307
+ const rr = ctx.row + dr;
308
+ const cc = ctx.col + dc;
309
+ if (rr < 0 || rr >= ctx.grid.rows || cc < 0 || cc >= ctx.grid.cols)
310
+ continue;
311
+ const idx = rr * ctx.grid.cols + cc;
312
+ const neighbor = ctx.grid.cells[idx];
313
+ if (neighbor)
314
+ neighbors.push(neighbor);
315
+ }
316
+ return neighbors;
317
+ }
318
+ const allOffsets = [
319
+ [-1, -1],
320
+ [-1, 0],
321
+ [-1, 1],
322
+ [0, -1],
323
+ [0, 1],
324
+ [1, -1],
325
+ [1, 0],
326
+ [1, 1],
327
+ ];
328
+ const orthogonalOffsets = [
329
+ [-1, 0],
330
+ [1, 0],
331
+ [0, -1],
332
+ [0, 1],
333
+ ];
334
+ function resolveAssignmentTarget(target, _ctx) {
335
+ if (target.kind === "MemberExpression" && target.object.kind === "Identifier" && target.object.name === "cell") {
336
+ if (target.property === "content" || target.property === "dynamic") {
337
+ return target.property;
338
+ }
339
+ }
340
+ return null;
341
+ }
342
+ function applyPatches(state, patches) {
343
+ for (const patch of patches) {
344
+ const grid = state.grids.get(patch.gridName);
345
+ if (!grid)
346
+ continue;
347
+ const idx = grid.cellIndex.get(patch.cellId);
348
+ if (idx === undefined)
349
+ continue;
350
+ const cell = grid.cells[idx];
351
+ if (!cell)
352
+ continue;
353
+ cell[patch.property] = patch.value;
354
+ }
355
+ }
356
+ function buildSnapshot(state) {
357
+ const params = {};
358
+ for (const [key, value] of state.params) {
359
+ if (typeof value === "number") {
360
+ params[key] = value;
361
+ }
362
+ }
363
+ const grids = [];
364
+ for (const grid of state.grids.values()) {
365
+ const cells = grid.cells.map((cell, idx) => ({
366
+ id: cell.id,
367
+ row: Math.floor(idx / grid.cols),
368
+ col: idx % grid.cols,
369
+ tags: [...cell.tags],
370
+ content: cell.content,
371
+ dynamic: cell.dynamic,
372
+ }));
373
+ grids.push({
374
+ name: grid.name,
375
+ rows: grid.rows,
376
+ cols: grid.cols,
377
+ cells,
378
+ });
379
+ }
380
+ return { docstep: state.docstep, params, grids };
381
+ }
382
+ export function getDocstepIntervalHint(doc) {
383
+ const spec = doc.runtime?.docstepAdvance?.find((advance) => advance.kind === "timer");
384
+ if (!spec)
385
+ return null;
386
+ const unit = normalizeUnit(spec.unit);
387
+ if (!unit)
388
+ return null;
389
+ const multiplier = unit === "ms" ? 1 : unit === "s" ? 1000 : 60000;
390
+ return { millis: spec.amount * multiplier, source: `timer(${spec.amount} ${spec.unit})` };
391
+ }
392
+ function normalizeUnit(unit) {
393
+ switch (unit) {
394
+ case "ms":
395
+ case "millisecond":
396
+ case "milliseconds":
397
+ return "ms";
398
+ case "s":
399
+ case "sec":
400
+ case "secs":
401
+ case "second":
402
+ case "seconds":
403
+ return "s";
404
+ case "m":
405
+ case "min":
406
+ case "mins":
407
+ case "minute":
408
+ case "minutes":
409
+ return "m";
410
+ default:
411
+ return null;
412
+ }
413
+ }
414
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flux-lang/core",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Core AST, parser, and evaluator for the Flux score language.",
5
5
  "license": "MIT",
6
6
  "author": "Sebastian Suarez-Solis",
@@ -13,8 +13,7 @@
13
13
  "types": "dist/index.d.ts",
14
14
  "files": [
15
15
  "dist",
16
- "README.md",
17
- "LICENSE"
16
+ "README.md"
18
17
  ],
19
18
  "exports": {
20
19
  ".": {