planscript 1.0.0 → 1.4.0

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/README.md CHANGED
@@ -1,8 +1,34 @@
1
- # PlanScript
1
+ # 🏠 PlanScript
2
2
 
3
- A DSL for defining floor plans. Compile `.psc` files to SVG or JSON.
3
+ A **deterministic, textual DSL** for defining 2D architectural floor plans. Write human-readable code, compile to precise geometry.
4
4
 
5
- ## Example
5
+ <p align="center">
6
+ <img src="examples/house.svg" alt="Floor plan" width="50%">
7
+ </p>
8
+
9
+ ## ✨ Features
10
+
11
+ - **📝 Human & LLM Friendly** — Simple, repetitive syntax that's easy to write and generate
12
+ - **🎯 Deterministic** — Same input always produces the same output, no heuristics or AI magic
13
+ - **🔧 Compiler-based** — Parse → Validate → Generate pipeline with clear error messages
14
+ - **📐 Precise Geometry** — Exact coordinates, walls, and openings from high-level descriptions
15
+ - **🖼️ Multiple Exports** — SVG (with optional dimensions), JSON geometry IR
16
+ - **✅ Built-in Validation** — Assert constraints like no overlaps, minimum areas, containment
17
+
18
+ ## 🎯 Design Philosophy
19
+
20
+ PlanScript is intentionally **limited in scope**:
21
+
22
+ | ✅ What it does | ❌ What it doesn't do |
23
+ |-----------------|----------------------|
24
+ | Spatial layout (rooms, walls, doors, windows) | Plumbing, electrical, HVAC |
25
+ | Deterministic compilation | Generative/AI design |
26
+ | Precise geometry output | Aesthetic decisions |
27
+ | Clear validation errors | "Best layout" optimization |
28
+
29
+ > *It trades creativity for **precision, repeatability, and correctness**.*
30
+
31
+ ## 📖 Example
6
32
 
7
33
  ```planscript
8
34
  units m
@@ -48,6 +74,9 @@ plan "Example House" {
48
74
  opening door d2 { between living and kitchen on shared_edge at 50% }
49
75
  opening door d3 { between hall and bedroom on shared_edge at 50% }
50
76
  opening window w1 { on living.edge south at 2.0 }
77
+
78
+ assert no_overlap rooms
79
+ assert inside footprint all_rooms
51
80
  }
52
81
  ```
53
82
 
@@ -59,16 +88,16 @@ plan "Example House" {
59
88
  </p>
60
89
 
61
90
  <p align="center">
62
- <em>Without dimensions</em> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>With <code>--dimensions</code> flag</em>
91
+ <em>Default output</em> <em>With <code>--dimensions</code> flag</em>
63
92
  </p>
64
93
 
65
- ## Installation
94
+ ## 📦 Installation
66
95
 
67
96
  ```bash
68
97
  npm install planscript
69
98
  ```
70
99
 
71
- ## CLI Usage
100
+ ## 🖥️ CLI Usage
72
101
 
73
102
  ```bash
74
103
  # Compile to SVG
@@ -84,7 +113,7 @@ planscript house.psc --json house.json
84
113
  planscript house.psc --svg house.svg --json house.json
85
114
  ```
86
115
 
87
- ## Library Usage
116
+ ## 📚 Library Usage
88
117
 
89
118
  ### Simple Compilation
90
119
 
@@ -92,28 +121,9 @@ planscript house.psc --svg house.svg --json house.json
92
121
  import { compile } from 'planscript';
93
122
 
94
123
  const source = `
95
- units m
96
- defaults {
97
- door_width 0.9
98
- }
99
124
  plan "My House" {
100
- footprint rect (0,0) (15,12)
101
-
102
- room living {
103
- rect (1,1) (8,6)
104
- label "Living Room"
105
- }
106
-
107
- room kitchen {
108
- rect (8,1) (14,6)
109
- label "Kitchen"
110
- }
111
-
112
- opening door d1 {
113
- between living and kitchen
114
- on shared_edge
115
- at 50%
116
- }
125
+ footprint rect (0,0) (10,8)
126
+ room living { rect (0,0) (10,8) label "Living Room" }
117
127
  }
118
128
  `;
119
129
 
@@ -130,13 +140,13 @@ if (result.success) {
130
140
  ### Step-by-Step Pipeline
131
141
 
132
142
  ```typescript
133
- import {
134
- parse,
135
- lower,
136
- generateGeometry,
137
- validate,
138
- exportSVG,
139
- exportJSON
143
+ import {
144
+ parse,
145
+ lower,
146
+ generateGeometry,
147
+ validate,
148
+ exportSVG,
149
+ exportJSON
140
150
  } from 'planscript';
141
151
 
142
152
  // 1. Parse source to AST
@@ -155,14 +165,13 @@ if (errors.length > 0) {
155
165
  }
156
166
 
157
167
  // 5. Export
158
- const svg = exportSVG(geometry, { width: 800, height: 600 });
159
- const json = exportJSON(geometry, { pretty: true }, ast);
168
+ const svg = exportSVG(geometry, { showDimensions: true });
169
+ const json = exportJSON(geometry, { pretty: true });
160
170
  ```
161
171
 
162
172
  ### Export Options
163
173
 
164
174
  ```typescript
165
- // SVG options
166
175
  const svg = exportSVG(geometry, {
167
176
  width: 1000, // Canvas width (default: 1000)
168
177
  height: 800, // Canvas height (default: 800)
@@ -174,20 +183,17 @@ const svg = exportSVG(geometry, {
174
183
  doorColor: '#e74c3c',
175
184
  windowColor: '#3498db',
176
185
  });
177
-
178
- // JSON options
179
- const json = exportJSON(geometry, {
180
- pretty: true // Pretty-print JSON (default: false)
181
- }, ast);
182
186
  ```
183
187
 
184
- ## Language Syntax
188
+ ## 📐 Language Syntax
189
+
190
+ For the complete language specification, see the **[Language Reference](LANGUAGE_REFERENCE.md)**.
185
191
 
186
- ### Basic Structure
192
+ ### Quick Overview
187
193
 
188
194
  ```planscript
189
195
  units m # meters, cm, mm, ft, in
190
- origin (0,0) # optional origin point
196
+
191
197
  defaults {
192
198
  door_width 0.9 # default door width
193
199
  window_width 1.2 # default window width
@@ -195,83 +201,68 @@ defaults {
195
201
 
196
202
  plan "House Name" {
197
203
  footprint rect (0,0) (20,15)
198
-
199
- # rooms...
200
- # openings...
201
- # assertions...
202
- }
203
- ```
204
204
 
205
- ### Room Definitions
205
+ # Rooms - multiple ways to define
206
+ room living { rect (0,0) (8,6) } # two corners
207
+ room bed { rect at (0,6) size (4,4) } # position + size
208
+ room kitchen { rect size (4,6) attach east_of living } # relative placement
209
+ room hall { rect span x from living.left to bed.right y (6,8) } # span
206
210
 
207
- ```planscript
208
- # Rectangle with two corners
209
- room living {
210
- rect (0,0) (8,6)
211
- label "Living Room"
212
- }
211
+ # Openings
212
+ opening door d1 { between living and hall on shared_edge at 50% }
213
+ opening window w1 { on living.edge south at 2.0 width 1.5 }
213
214
 
214
- # Rectangle with position and size
215
- room bedroom {
216
- rect at (0,6) size (4,4)
215
+ # Validation
216
+ assert no_overlap rooms
217
+ assert inside footprint all_rooms
218
+ assert min_room_area bed >= 12
217
219
  }
220
+ ```
218
221
 
219
- # Relative placement
220
- room kitchen {
221
- rect size (4,6)
222
- attach east_of living
223
- align top
224
- gap 0
225
- }
222
+ ## 🤖 Using with LLMs
226
223
 
227
- # Span syntax (reference other rooms)
228
- room hallway {
229
- rect span x from living.left to kitchen.right y (6, 8)
230
- }
231
- ```
224
+ PlanScript is designed to be **LLM-friendly**. When asking ChatGPT, Claude, or other LLMs to generate floor plans:
232
225
 
233
- ### Openings
226
+ 1. **Provide the [LANGUAGE_REFERENCE.md](LANGUAGE_REFERENCE.md)** as context
227
+ 2. Describe your floor plan requirements
228
+ 3. The LLM can generate valid PlanScript code
229
+ 4. Compile and iterate on errors if needed
234
230
 
235
- ```planscript
236
- # Door between rooms
237
- opening door d1 {
238
- between living and kitchen
239
- on shared_edge
240
- at 50% # 50% along wall (centered)
241
- width 0.9 # optional if defaults set
242
- }
231
+ The deterministic nature means: **LLM generates → Compiler validates → LLM fixes → Repeat until valid**
243
232
 
244
- # Window on room edge
245
- opening window w1 {
246
- on living.edge south
247
- at 2.0 # 2 meters from wall start
248
- width 1.5
249
- sill 0.9 # sill height
250
- }
251
- ```
233
+ ## 🔌 VS Code Extension
252
234
 
253
- ### Position Syntax
235
+ The PlanScript VS Code extension provides:
236
+ - 🎨 Syntax highlighting
237
+ - 🔗 Go to Definition (Ctrl+Click on room names)
238
+ - 💬 Hover information
239
+ - 📋 Document outline
240
+ - ⌨️ Autocomplete
254
241
 
255
- - `at 50%` - percentage along wall (0-100)
256
- - `at 2.0` - absolute distance in meters from wall start
242
+ ### Installation
257
243
 
258
- ### Assertions
244
+ **From VS Code Marketplace:**
245
+ 1. Open VS Code
246
+ 2. Go to Extensions (Ctrl+Shift+X)
247
+ 3. Search for "PlanScript"
248
+ 4. Click Install
259
249
 
260
- ```planscript
261
- assert no_overlap rooms # rooms don't overlap
262
- assert inside footprint all_rooms # rooms within footprint
263
- assert min_room_area bedroom >= 12 # minimum area check
250
+ **From GitHub:**
251
+ ```bash
252
+ git clone https://github.com/jfromaniello/vscode-planscript
253
+ cd vscode-planscript
254
+ npm install && npm run compile
255
+ code --install-extension .
264
256
  ```
265
257
 
266
- ## VS Code Extension
258
+ ## 🗺️ Roadmap
267
259
 
268
- Install the PlanScript VS Code extension for:
269
- - Syntax highlighting
270
- - Go to Definition (Ctrl+Click)
271
- - Hover information
272
- - Document outline
273
- - Autocomplete
260
+ Future extensions (not in v1):
261
+ - 🔄 Curved walls (`arc`)
262
+ - 🏢 Multi-level plans
263
+ - 🪑 Furniture placement
264
+ - 📏 More export formats (DXF, PDF)
274
265
 
275
- ## License
266
+ ## 📄 License
276
267
 
277
268
  MIT
@@ -127,7 +127,7 @@ export interface PositionPercentage {
127
127
  value: number;
128
128
  }
129
129
  export type Position = PositionAbsolute | PositionPercentage;
130
- export interface DoorOpening extends ASTNode {
130
+ export interface DoorOpeningBetween extends ASTNode {
131
131
  type: 'DoorOpening';
132
132
  name: string;
133
133
  between: [string, string];
@@ -136,6 +136,16 @@ export interface DoorOpening extends ASTNode {
136
136
  width: number;
137
137
  swing?: SwingDirection;
138
138
  }
139
+ export interface DoorOpeningEdge extends ASTNode {
140
+ type: 'DoorOpening';
141
+ name: string;
142
+ room: string;
143
+ edge: EdgeSide;
144
+ at: Position;
145
+ width: number;
146
+ swing?: SwingDirection;
147
+ }
148
+ export type DoorOpening = DoorOpeningBetween | DoorOpeningEdge;
139
149
  export type EdgeSide = 'north' | 'south' | 'east' | 'west';
140
150
  export interface WindowOpening extends ASTNode {
141
151
  type: 'WindowOpening';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/exporters/svg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAwD,MAAM,sBAAsB,CAAC;AAM7G,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAu3BD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAqCtF"}
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/exporters/svg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAwD,MAAM,sBAAsB,CAAC;AAM7G,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA+gCD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAqCtF"}
@@ -87,6 +87,131 @@ function calculatePolygonCenter(points) {
87
87
  const y = points.reduce((sum, p) => sum + p.y, 0) / points.length;
88
88
  return { x, y };
89
89
  }
90
+ /**
91
+ * Test if a point is inside a polygon using ray casting algorithm.
92
+ */
93
+ function isPointInPolygon(point, polygon) {
94
+ const { x, y } = point;
95
+ let inside = false;
96
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
97
+ const xi = polygon[i].x, yi = polygon[i].y;
98
+ const xj = polygon[j].x, yj = polygon[j].y;
99
+ if (((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)) {
100
+ inside = !inside;
101
+ }
102
+ }
103
+ return inside;
104
+ }
105
+ /**
106
+ * Calculate the distance from a point to a line segment.
107
+ */
108
+ function pointToSegmentDistance(point, p1, p2) {
109
+ const dx = p2.x - p1.x;
110
+ const dy = p2.y - p1.y;
111
+ const lengthSquared = dx * dx + dy * dy;
112
+ if (lengthSquared === 0) {
113
+ // Segment is a point
114
+ return Math.sqrt((point.x - p1.x) ** 2 + (point.y - p1.y) ** 2);
115
+ }
116
+ // Project point onto line, clamped to segment
117
+ let t = ((point.x - p1.x) * dx + (point.y - p1.y) * dy) / lengthSquared;
118
+ t = Math.max(0, Math.min(1, t));
119
+ const projX = p1.x + t * dx;
120
+ const projY = p1.y + t * dy;
121
+ return Math.sqrt((point.x - projX) ** 2 + (point.y - projY) ** 2);
122
+ }
123
+ /**
124
+ * Calculate minimum distance from a point to the polygon boundary.
125
+ */
126
+ function pointToPolygonDistance(point, polygon) {
127
+ let minDist = Infinity;
128
+ for (let i = 0; i < polygon.length; i++) {
129
+ const p1 = polygon[i];
130
+ const p2 = polygon[(i + 1) % polygon.length];
131
+ const dist = pointToSegmentDistance(point, p1, p2);
132
+ minDist = Math.min(minDist, dist);
133
+ }
134
+ return minDist;
135
+ }
136
+ /**
137
+ * Find the visual center of a polygon using a "pole of inaccessibility" algorithm.
138
+ * This finds the point inside the polygon that is furthest from any edge.
139
+ * Uses an iterative grid-based approach for better accuracy.
140
+ */
141
+ function findVisualCenter(points) {
142
+ // Calculate bounding box
143
+ const xs = points.map(p => p.x);
144
+ const ys = points.map(p => p.y);
145
+ const minX = Math.min(...xs);
146
+ const maxX = Math.max(...xs);
147
+ const minY = Math.min(...ys);
148
+ const maxY = Math.max(...ys);
149
+ const width = maxX - minX;
150
+ const height = maxY - minY;
151
+ // Start with centroid as fallback
152
+ const centroid = calculatePolygonCenter(points);
153
+ // If centroid is inside, use iterative refinement
154
+ // Otherwise, find a point inside first
155
+ let bestPoint = centroid;
156
+ let bestDistance = isPointInPolygon(centroid, points)
157
+ ? pointToPolygonDistance(centroid, points)
158
+ : -Infinity;
159
+ // Initial grid search
160
+ const gridSize = 10;
161
+ const cellWidth = width / gridSize;
162
+ const cellHeight = height / gridSize;
163
+ for (let i = 0; i <= gridSize; i++) {
164
+ for (let j = 0; j <= gridSize; j++) {
165
+ const testPoint = {
166
+ x: minX + i * cellWidth,
167
+ y: minY + j * cellHeight
168
+ };
169
+ if (isPointInPolygon(testPoint, points)) {
170
+ const dist = pointToPolygonDistance(testPoint, points);
171
+ if (dist > bestDistance) {
172
+ bestDistance = dist;
173
+ bestPoint = testPoint;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ // Refinement: search around best point with smaller grid
179
+ const refineRadius = Math.max(cellWidth, cellHeight);
180
+ const refineSteps = 5;
181
+ for (let iteration = 0; iteration < 3; iteration++) {
182
+ const searchRadius = refineRadius / Math.pow(2, iteration);
183
+ const step = searchRadius / refineSteps;
184
+ for (let dx = -refineSteps; dx <= refineSteps; dx++) {
185
+ for (let dy = -refineSteps; dy <= refineSteps; dy++) {
186
+ const testPoint = {
187
+ x: bestPoint.x + dx * step,
188
+ y: bestPoint.y + dy * step
189
+ };
190
+ if (isPointInPolygon(testPoint, points)) {
191
+ const dist = pointToPolygonDistance(testPoint, points);
192
+ if (dist > bestDistance) {
193
+ bestDistance = dist;
194
+ bestPoint = testPoint;
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ return bestPoint;
201
+ }
202
+ /**
203
+ * Get the best label position for a polygon.
204
+ * Uses centroid for convex polygons, visual center for concave ones.
205
+ */
206
+ function getLabelPosition(points) {
207
+ const centroid = calculatePolygonCenter(points);
208
+ // If centroid is inside the polygon, it's good enough for most cases
209
+ if (isPointInPolygon(centroid, points)) {
210
+ return centroid;
211
+ }
212
+ // For concave polygons where centroid is outside, find the visual center
213
+ return findVisualCenter(points);
214
+ }
90
215
  function calculatePolygonBounds(points) {
91
216
  const xs = points.map(p => p.x);
92
217
  const ys = points.map(p => p.y);
@@ -120,7 +245,7 @@ function generateLabelsSVG(rooms, t, opts) {
120
245
  for (const room of rooms) {
121
246
  if (!room.label)
122
247
  continue;
123
- const worldCenter = calculatePolygonCenter(room.polygon.points);
248
+ const worldCenter = getLabelPosition(room.polygon.points);
124
249
  const screenCenter = transformPoint(worldCenter, t);
125
250
  // Calculate room size in screen coordinates to adapt font size
126
251
  const worldBounds = calculatePolygonBounds(room.polygon.points);
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/exporters/svg.ts"],"names":[],"mappings":"AAgCA,MAAM,cAAc,GAA+B;IACjD,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;IACrB,uBAAuB,EAAE,IAAI;IAC7B,eAAe,EAAE,SAAS;IAC1B,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAaF,SAAS,eAAe,CAAC,QAAoB,EAAE,IAAgC;IAC7E,mBAAmB;IACnB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;IACrB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAElC,gEAAgE;IAChE,8EAA8E;IAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;QACxC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,EAAE,CAAC,iCAAiC;QAC7F,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;IAEvD,qDAAqD;IACrD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,gBAAgB,GAAG,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,cAAc,GAAG,YAAY,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAEpD,qBAAqB;IACrB,MAAM,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;IACzC,MAAM,YAAY,GAAG,aAAa,GAAG,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;IACrF,MAAM,OAAO,GAAG,gBAAgB,GAAG,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;IAEvF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,CAAQ,EAAE,CAAY;IAC5C,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO;QAC5B,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe,EAAE,CAAY;IACrD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAClE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,SAAS,oBAAoB,CAAC,SAAkB,EAAE,CAAY,EAAE,IAAgC;IAC9F,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,YAAY,IAAI,yBAAyB,IAAI,CAAC,cAAc,8CAA8C,CAAC;AACpH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqB,EAAE,CAAY,EAAE,IAAgC;IAC7F,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAElC,YAAY;QACZ,QAAQ,CAAC,IAAI,CACX,YAAY,IAAI,WAAW,IAAI,CAAC,aAAa,aAAa,IAAI,CAAC,eAAe,mBAAmB,IAAI,CAAC,eAAe,MAAM,CAC5H,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAqB,EAAE,CAAY,EAAE,IAAgC;IAC9F,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QAE1B,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEpD,+DAA+D;QAC/D,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAChD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzD,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,MAAM,kBAAkB,GAAG,GAAG,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAE7D,oDAAoD;QACpD,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC;QACxC,MAAM,aAAa,GAAG,YAAY,GAAG,GAAG,CAAC;QAEzC,IAAI,QAAQ,GAAG,YAAY,CAAC;QAC5B,IAAI,kBAAkB,GAAG,YAAY,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,uBAAuB;QACvB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC7C,+BAA+B;QAC/B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjC,wBAAwB;QACxB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5C,QAAQ,CAAC,IAAI,CACX,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC1E,cAAc,QAAQ,WAAW,IAAI,CAAC,UAAU,IAAI;YACpD,kFAAkF;YAClF,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAC7B,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB,EAAE,CAAY,EAAE,IAAgC;IAC5F,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAExC,QAAQ,CAAC,IAAI,CACX,aAAa,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC9D,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACpD,WAAW,IAAI,CAAC,SAAS,mBAAmB,IAAI,CAAC,SAAS,6BAA6B,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA4B,EAC5B,KAAoB,EACpB,CAAY,EACZ,IAAgC;IAEhC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,4DAA4D;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAE1C,yBAAyB;QACzB,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAEpC,yCAAyC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QAC7E,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QAE7E,kCAAkC;QAClC,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,+CAA+C;QAC/C,QAAQ,CAAC,IAAI,CACX,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACxD,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAClD,WAAW,KAAK,mBAAmB,WAAW,6BAA6B,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAkCD,SAAS,SAAS,CAAC,MAAe;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACtB,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,oCAAoC;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAyC,EACzC,UAAkB,EAClB,UAA0B,EAC1B,YAAoB,IAAI;IAExB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO,EAAE,oDAAoD;gBAChE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;oBAC7D,2BAA2B;oBAC3B,IAAI,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS;wBAC9C,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,OAAO,EAAE,oDAAoD;gBAChE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;oBAC7D,IAAI,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS;wBAC9C,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,MAAM,EAAE,2DAA2D;gBACtE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;oBAC7D,IAAI,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS;wBAC9C,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,MAAM,EAAE,0DAA0D;gBACrE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;oBAC7D,IAAI,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS;wBAC9C,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkB,EAClB,QAAwB,EACxB,QAAgB;IAEhB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,OAAO;QACL,KAAK,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QACxE,KAAK,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QACxE,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QACtE,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,YAAoB,EAAE,YAAoB,GAAG;IACzF,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAkB,EAClB,QAAwB,EACxB,IAAwB,EACxB,YAAoB,GAAG;IAEvB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IAExE,gFAAgF;IAChF,kFAAkF;IAClF,MAAM,aAAa,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEhF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEvC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;YAE3E,2CAA2C;YAC3C,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBAChF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACvF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACxF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACxF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,qEAAqE;gBACrE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,SAAS,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACrE,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpF,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,uCAAuC;QACvC,MAAM,aAAa,GAAmD,EAAE,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEvC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEpD,+DAA+D;YAC/D,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACjF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACxF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACvF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBACvF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;gBACxE,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;gBACxE,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAEvC,0EAA0E;QAC1E,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;gBACvC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,UAAU,IAAI,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC7C,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,sBAAsB;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE,IAAI,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,EAAS,EACT,EAAS,EACT,MAAc,EACd,KAAa,EACb,SAAoB,EACpB,IAAgC,EAChC,IAAyC;IAEzC,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAE/C,2DAA2D;IAC3D,IAAI,KAAY,EAAE,KAAY,CAAC;IAC/B,IAAI,KAAa,EAAE,KAAa,CAAC;IACjC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,CAAC,CAAC;IAErB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;QACnD,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;QACnD,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB;IAC1C,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB;QACxC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChC,YAAY,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CACX,aAAa,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACxD,WAAW,IAAI,CAAC,cAAc,uBAAuB,CACtD,CAAC;IAEF,qBAAqB;IACrB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,sCAAsC;QACtC,MAAM,OAAO,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CACX,aAAa,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACjF,WAAW,IAAI,CAAC,cAAc,uBAAuB,CACtD,CAAC;QACF,QAAQ,CAAC,IAAI,CACX,aAAa,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACjF,WAAW,IAAI,CAAC,cAAc,uBAAuB,CACtD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACjF,WAAW,IAAI,CAAC,cAAc,uBAAuB,CACtD,CAAC;QACF,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACjF,WAAW,IAAI,CAAC,cAAc,uBAAuB,CACtD,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC;IAC5B,MAAM,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAElI,iFAAiF;IACjF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG,GAAG,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAE9C,6CAA6C;IAC7C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,yDAAyD;QACzD,QAAQ,CAAC,IAAI,CACX,YAAY,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC7F,UAAU,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACpE,SAAS,IAAI,CAAC,eAAe,IAAI,cAAc,KAAK,CACrD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CACX,YAAY,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC7F,UAAU,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACpE,SAAS,IAAI,CAAC,eAAe,MAAM,CACpC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACxD,cAAc,IAAI,CAAC,iBAAiB,WAAW,IAAI,CAAC,cAAc,IAAI;QACtE,gBAAgB,UAAU,+BAA+B;QACzD,kCAAkC,cAAc,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,CAC9E,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,CAAqB,EAAE,CAAqB,EAAE,YAAoB,IAAI;IAC3F,8EAA8E;IAC9E,iFAAiF;IACjF,+EAA+E;IAE/E,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,kGAAkG;QAClG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS;YAAE,OAAO,KAAK,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,qEAAqE;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS;YAAE,OAAO,KAAK,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,CAAqB,EAAE,CAAqB,EAAE,YAAoB,GAAG;IAC5F,qEAAqE;IACrE,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,KAAK,GAAG,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,KAAK,GAAG,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAChE,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,UAAgC,EAChC,UAAkB,EAClB,WAAmB;IAEnB,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEvD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+D,CAAC;IAEtF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,0EAA0E;QAC1E,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAElE,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,WAAW,GAAwD,EAAE,CAAC;QAC5E,MAAM,YAAY,GAA0D,EAAE,CAAC;QAE/E,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,4EAA4E;YAC5E,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE9B,+DAA+D;gBAC/D,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBAEtF,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBAEpF,IAAI,qBAAqB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAChD,8DAA8D;oBAC9D,aAAa,GAAG,CAAC,CAAC;oBAClB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,0BAA0B;gBAC1B,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;gBACpC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,YAAY,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC;gBACf,SAAS;gBACT,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAqB,EACrB,SAAkB,EAClB,SAAoB,EACpB,IAAgC;IAEhC,IAAI,CAAC,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE7C,mCAAmC;IACnC,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAEhC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEzD,+BAA+B;QAC/B,8EAA8E;QAC9E,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;YACrD,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,qDAAqD;YACrD,IAAI,IAAsB,CAAC;YAC3B,IAAI,CAAS,CAAC;YAEd,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,CAAC;gBACb,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,QAAQ,CAAC;gBAChB,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YACtB,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,QAAQ;gBACR,IAAI;gBACJ,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC7B,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,+EAA+E;QAC/E,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;YACvD,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,mDAAmD;YACnD,IAAI,IAAsB,CAAC;YAC3B,IAAI,CAAS,CAAC;YAEd,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,GAAG,MAAM,CAAC;gBACd,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,OAAO,CAAC;gBACf,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YACtB,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,QAAQ;gBACR,IAAI;gBACJ,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE;gBAC7B,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE;gBAC7B,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,SAAS,GAAG,yBAAyB,CACzC,UAAU,EACV,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;IAEF,4DAA4D;IAC5D,MAAM,UAAU,GAA2B;QACzC,GAAG,EAAE,IAAI,CAAC,eAAe;QACzB,MAAM,EAAE,IAAI,CAAC,eAAe;QAC5B,IAAI,EAAE,IAAI,CAAC,eAAe;QAC1B,KAAK,EAAE,IAAI,CAAC,eAAe;KAC5B,CAAC;IAEF,gCAAgC;IAChC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CACX,qBAAqB,CACnB,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,EAAE,EACZ,MAAM,EACN,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,SAAS,EACT,IAAI,EACJ,SAAS,CAAC,IAAI,CACf,CACF,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,8BAA8B;QAC9B,QAAQ,CAAC,IAAI,CACX,qBAAqB,CACnB,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EACtC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EACtC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAC7C,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC/B,SAAS,EACT,IAAI,EACJ,QAAQ,CACT,CACF,CAAC;QAEF,6BAA6B;QAC7B,QAAQ,CAAC,IAAI,CACX,qBAAqB,CACnB,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EACtC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EACtC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAC3C,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAChC,SAAS,EACT,IAAI,EACJ,MAAM,CACP,CACF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,UAAU,SAAS,CAAC,QAAoB,EAAE,UAA4B,EAAE;IAC5E,MAAM,IAAI,GAA+B,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3E,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjG,MAAM,GAAG,GAAG;iDACmC,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,MAAM,kBAAkB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;;;;;;;;iBAQ7G,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,eAAe;;;IAG9E,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;;;IAGzD,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;;;IAGjD,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;;;IAGjD,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;;;IAGvE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;;;IAGlD,aAAa;OACV,CAAC;IAEN,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/exporters/svg.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAwD,MAAM,YAAY,CAAC;AAcnG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAW5D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,CAIrD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,SAAQ,GAAG,OAAO,CAE1E;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,OAAO,SAAQ,GACd;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CA8ClD;AAoUD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAmBpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAwD,MAAM,YAAY,CAAC;AAcnG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAW5D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,CAIrD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,SAAQ,GAAG,OAAO,CAE1E;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,OAAO,SAAQ,GACd;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CA8ClD;AA+XD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAmBpE"}