@ifc-lite/drawing-2d 1.18.6 → 1.20.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.
Files changed (42) hide show
  1. package/README.md +23 -0
  2. package/dist/dxf/aci-colors.d.ts +17 -0
  3. package/dist/dxf/aci-colors.d.ts.map +1 -0
  4. package/dist/dxf/aci-colors.js +142 -0
  5. package/dist/dxf/aci-colors.js.map +1 -0
  6. package/dist/dxf/convert.d.ts +32 -0
  7. package/dist/dxf/convert.d.ts.map +1 -0
  8. package/dist/dxf/convert.js +382 -0
  9. package/dist/dxf/convert.js.map +1 -0
  10. package/dist/dxf/geom.d.ts +70 -0
  11. package/dist/dxf/geom.d.ts.map +1 -0
  12. package/dist/dxf/geom.js +194 -0
  13. package/dist/dxf/geom.js.map +1 -0
  14. package/dist/dxf/index.d.ts +13 -0
  15. package/dist/dxf/index.d.ts.map +1 -0
  16. package/dist/dxf/index.js +44 -0
  17. package/dist/dxf/index.js.map +1 -0
  18. package/dist/dxf/parser.d.ts +9 -0
  19. package/dist/dxf/parser.d.ts.map +1 -0
  20. package/dist/dxf/parser.js +903 -0
  21. package/dist/dxf/parser.js.map +1 -0
  22. package/dist/dxf/types.d.ts +255 -0
  23. package/dist/dxf/types.d.ts.map +1 -0
  24. package/dist/dxf/types.js +10 -0
  25. package/dist/dxf/types.js.map +1 -0
  26. package/dist/dxf/writer.d.ts +111 -0
  27. package/dist/dxf/writer.d.ts.map +1 -0
  28. package/dist/dxf/writer.js +338 -0
  29. package/dist/dxf/writer.js.map +1 -0
  30. package/dist/dxf-exporter.d.ts +66 -0
  31. package/dist/dxf-exporter.d.ts.map +1 -0
  32. package/dist/dxf-exporter.js +137 -0
  33. package/dist/dxf-exporter.js.map +1 -0
  34. package/dist/index.d.ts +5 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +13 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/svg-exporter.d.ts +23 -0
  39. package/dist/svg-exporter.d.ts.map +1 -1
  40. package/dist/svg-exporter.js +80 -1
  41. package/dist/svg-exporter.js.map +1 -1
  42. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/dxf/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * DXF import types (issue #1782).
3
+ *
4
+ * Two layers of model:
5
+ * - the raw parsed document (`DxfDocument` + `DxfEntity` variants), a direct
6
+ * reading of the group-code stream, still in DXF drawing units, and
7
+ * - the converted reference underlay (`DxfUnderlay`), tessellated into the
8
+ * drawing-2d Point2D/Polygon2D vocabulary in WORLD plan coordinates:
9
+ * metres, IFC XY (+Y = north). DXF and IFC are both Z-up, so no axis
10
+ * swap happens here; consumers map world → drawing space themselves
11
+ * (plan drawing space is `(x, -y)` plus any render-frame origin shift).
12
+ */
13
+ import type { Point2D, Polygon2D, Bounds2D } from '../types.js';
14
+ /** One group-code/value pair from an ASCII DXF file. */
15
+ export interface DxfPair {
16
+ code: number;
17
+ value: string;
18
+ }
19
+ /** Fields shared by every parsed DXF entity. */
20
+ export interface DxfEntityCommon {
21
+ /** Layer name (group 8); DXF defaults to layer "0". */
22
+ layer: string;
23
+ /** ACI colour number (group 62): 0 = BYBLOCK, 256 = BYLAYER. */
24
+ colorNumber: number;
25
+ /** 24-bit true colour (group 420); overrides `colorNumber` when present. */
26
+ trueColor?: number;
27
+ /** Linetype name (group 6); anything non-continuous renders dashed. */
28
+ linetype?: string;
29
+ /** Lineweight in mm (group 370 is 1/100 mm); undefined = BYLAYER/default. */
30
+ lineweightMm?: number;
31
+ /** Entity invisibility flag (group 60). */
32
+ invisible: boolean;
33
+ /**
34
+ * Z component of the OCS extrusion direction (group 230). Planar entities
35
+ * with extrusion (0,0,-1) have their X axis mirrored; other tilted
36
+ * extrusions are rare in 2D drawings and are treated as +Z.
37
+ */
38
+ extrusionZ: number;
39
+ }
40
+ /** Polyline vertex; `bulge` is tan(sweep/4) of the arc to the next vertex. */
41
+ export interface DxfVertex {
42
+ x: number;
43
+ y: number;
44
+ bulge: number;
45
+ }
46
+ export interface DxfLineEntity extends DxfEntityCommon {
47
+ kind: 'line';
48
+ x1: number;
49
+ y1: number;
50
+ x2: number;
51
+ y2: number;
52
+ }
53
+ /** LWPOLYLINE and classic POLYLINE/VERTEX chains, unified. */
54
+ export interface DxfPolylineEntity extends DxfEntityCommon {
55
+ kind: 'polyline';
56
+ vertices: DxfVertex[];
57
+ closed: boolean;
58
+ }
59
+ export interface DxfCircleEntity extends DxfEntityCommon {
60
+ kind: 'circle';
61
+ cx: number;
62
+ cy: number;
63
+ r: number;
64
+ }
65
+ export interface DxfArcEntity extends DxfEntityCommon {
66
+ kind: 'arc';
67
+ cx: number;
68
+ cy: number;
69
+ r: number;
70
+ /** Start/end angles in degrees, counter-clockwise from +X. */
71
+ startDeg: number;
72
+ endDeg: number;
73
+ }
74
+ export interface DxfEllipseEntity extends DxfEntityCommon {
75
+ kind: 'ellipse';
76
+ cx: number;
77
+ cy: number;
78
+ /** Endpoint of the major axis relative to the centre. */
79
+ majorX: number;
80
+ majorY: number;
81
+ /** Minor-to-major axis ratio. */
82
+ ratio: number;
83
+ /** Start/end parameters in radians (0..2π = full ellipse). */
84
+ startParam: number;
85
+ endParam: number;
86
+ }
87
+ export interface DxfTextEntity extends DxfEntityCommon {
88
+ kind: 'text';
89
+ x: number;
90
+ y: number;
91
+ /** Text height in DXF drawing units. */
92
+ height: number;
93
+ /** Rotation in degrees, counter-clockwise. */
94
+ rotationDeg: number;
95
+ text: string;
96
+ hAlign: 'left' | 'center' | 'right';
97
+ vAlign: 'baseline' | 'bottom' | 'middle' | 'top';
98
+ }
99
+ /** SPLINE entity: clamped B-spline control net (or fit points). */
100
+ export interface DxfSplineEntity extends DxfEntityCommon {
101
+ kind: 'spline';
102
+ degree: number;
103
+ closed: boolean;
104
+ knots: number[];
105
+ controlPoints: Array<{
106
+ x: number;
107
+ y: number;
108
+ }>;
109
+ fitPoints: Array<{
110
+ x: number;
111
+ y: number;
112
+ }>;
113
+ }
114
+ /** SOLID/TRACE entity: a filled triangle or quad. Corners in draw order. */
115
+ export interface DxfSolidEntity extends DxfEntityCommon {
116
+ kind: 'solid';
117
+ corners: Array<{
118
+ x: number;
119
+ y: number;
120
+ }>;
121
+ }
122
+ export interface DxfInsertEntity extends DxfEntityCommon {
123
+ kind: 'insert';
124
+ blockName: string;
125
+ x: number;
126
+ y: number;
127
+ scaleX: number;
128
+ scaleY: number;
129
+ rotationDeg: number;
130
+ columnCount: number;
131
+ rowCount: number;
132
+ columnSpacing: number;
133
+ rowSpacing: number;
134
+ }
135
+ /**
136
+ * DIMENSION entities carry a pre-rendered anonymous block (`*D…`, group 2)
137
+ * with the dimension's lines, arrows, and text in WCS coordinates; importing
138
+ * renders that block rather than re-deriving dimension geometry.
139
+ */
140
+ export interface DxfDimensionEntity extends DxfEntityCommon {
141
+ kind: 'dimension';
142
+ blockName: string;
143
+ }
144
+ /** One HATCH boundary path, tessellated to a vertex loop at parse time. */
145
+ export interface DxfHatchPath {
146
+ vertices: DxfVertex[];
147
+ }
148
+ export interface DxfHatchEntity extends DxfEntityCommon {
149
+ kind: 'hatch';
150
+ /** True for SOLID fills (group 70 = 1); pattern hatches render translucent. */
151
+ solid: boolean;
152
+ paths: DxfHatchPath[];
153
+ }
154
+ export type DxfEntity = DxfLineEntity | DxfPolylineEntity | DxfCircleEntity | DxfArcEntity | DxfEllipseEntity | DxfTextEntity | DxfSplineEntity | DxfSolidEntity | DxfInsertEntity | DxfDimensionEntity | DxfHatchEntity;
155
+ /** LAYER table record. */
156
+ export interface DxfLayerInfo {
157
+ name: string;
158
+ /** ACI colour number (absolute value of group 62). */
159
+ colorNumber: number;
160
+ /** 24-bit true colour (group 420); wins over `colorNumber` when present. */
161
+ trueColor?: number;
162
+ /** False when the layer is off (negative group 62) or frozen (70 bit 1). */
163
+ visible: boolean;
164
+ linetype?: string;
165
+ /** Default lineweight in mm (group 370, 1/100 mm), if set. */
166
+ lineweightMm?: number;
167
+ }
168
+ /** BLOCK definition. */
169
+ export interface DxfBlockInfo {
170
+ name: string;
171
+ baseX: number;
172
+ baseY: number;
173
+ entities: DxfEntity[];
174
+ }
175
+ /** Parsed DXF document (drawing units, unscaled). */
176
+ export interface DxfDocument {
177
+ /** $INSUNITS header value (0 = unitless / absent). */
178
+ insunits: number;
179
+ layers: Map<string, DxfLayerInfo>;
180
+ blocks: Map<string, DxfBlockInfo>;
181
+ entities: DxfEntity[];
182
+ /** Entity types encountered but not supported, with occurrence counts. */
183
+ skipped: Record<string, number>;
184
+ warnings: string[];
185
+ }
186
+ /** Stroked path (already tessellated; arcs/circles become segments). */
187
+ export interface DxfUnderlayPath {
188
+ points: Point2D[];
189
+ closed: boolean;
190
+ /** CSS colour; set only when the entity overrides its layer colour. */
191
+ color?: string;
192
+ /** True when the entity's linetype is not continuous. */
193
+ dashed?: boolean;
194
+ /** Lineweight in mm on paper (entity or layer group 370), if set. */
195
+ widthMm?: number;
196
+ }
197
+ /** Filled region from a HATCH. */
198
+ export interface DxfUnderlayFill {
199
+ polygon: Polygon2D;
200
+ color?: string;
201
+ /** True for pattern (non-SOLID) hatches, rendered translucent. */
202
+ pattern: boolean;
203
+ }
204
+ /** Text label. Position and direction are in world plan coordinates. */
205
+ export interface DxfUnderlayText {
206
+ position: Point2D;
207
+ text: string;
208
+ /** Cap height in metres. */
209
+ height: number;
210
+ /** Baseline direction in world space (unit vector; +Y = north). */
211
+ dirX: number;
212
+ dirY: number;
213
+ align: 'left' | 'center' | 'right';
214
+ valign: 'baseline' | 'bottom' | 'middle' | 'top';
215
+ color?: string;
216
+ }
217
+ /** All converted content of one DXF layer. */
218
+ export interface DxfUnderlayLayer {
219
+ name: string;
220
+ /** Default CSS colour for entities on this layer. */
221
+ color: string;
222
+ /** Initial visibility from the DXF layer table (off/frozen start hidden). */
223
+ visible: boolean;
224
+ paths: DxfUnderlayPath[];
225
+ fills: DxfUnderlayFill[];
226
+ texts: DxfUnderlayText[];
227
+ }
228
+ /**
229
+ * A DXF file converted to a 2D reference underlay. Geometry is in world
230
+ * plan coordinates: metres, IFC XY, +Y = north (DXF and IFC are both
231
+ * Z-up). Mapping to a concrete drawing view (y-flip, render-frame origin
232
+ * shift, flipped-section mirror) is the consumer's job.
233
+ */
234
+ export interface DxfUnderlay {
235
+ name: string;
236
+ layers: DxfUnderlayLayer[];
237
+ bounds: Bounds2D;
238
+ /** DXF drawing units → metres factor derived from $INSUNITS. */
239
+ unitScale: number;
240
+ /** Entity types skipped during import, with counts. */
241
+ skipped: Record<string, number>;
242
+ warnings: string[];
243
+ }
244
+ /** User placement of an underlay in drawing space. */
245
+ export interface DxfPlacement {
246
+ /** Offset in metres (drawing space). */
247
+ offsetX: number;
248
+ offsetY: number;
249
+ /** Rotation in degrees, counter-clockwise as seen on a plan view. */
250
+ rotationDeg: number;
251
+ /** Uniform scale multiplier on top of the unit conversion. */
252
+ scale: number;
253
+ }
254
+ export declare const DEFAULT_DXF_PLACEMENT: DxfPlacement;
255
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dxf/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export const DEFAULT_DXF_PLACEMENT = {
5
+ offsetX: 0,
6
+ offsetY: 0,
7
+ rotationDeg: 0,
8
+ scale: 1,
9
+ };
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dxf/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoS/D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;CACT,CAAC"}
@@ -0,0 +1,111 @@
1
+ import type { Point2D } from '../types.js';
2
+ /** Line style resolved to a DXF linetype. `dashed` maps to the `DASHED` LTYPE. */
3
+ export type DxfLinetype = 'CONTINUOUS' | 'DASHED';
4
+ /** Horizontal text justification (subset of DXF group 72). */
5
+ export type DxfTextHAlign = 'left' | 'center' | 'right';
6
+ /** Vertical text justification (subset of DXF group 73). */
7
+ export type DxfTextVAlign = 'baseline' | 'bottom' | 'middle' | 'top';
8
+ /**
9
+ * Sanitize a free-text label into a valid DXF R12 LAYER name: every
10
+ * character outside the R12 symbol-name set (`A-Z a-z 0-9 $ - _` — spaces,
11
+ * unicode and punctuation included) becomes `_`, runs of `_` produced by
12
+ * adjacent replacements are collapsed, the result is made non-empty, and
13
+ * truncated to the R12 31-character symbol-name limit.
14
+ *
15
+ * Distinct inputs can collide after this mapping (`Wände`/`Wønde` →
16
+ * `W_nde`); {@link DxfWriter.layer} disambiguates with a numeric suffix so
17
+ * two source layers never silently merge.
18
+ */
19
+ export declare function sanitizeDxfLayerName(name: string): string;
20
+ export interface DxfWriterOptions {
21
+ /**
22
+ * `999` comment written at the very top of the file, before the HEADER
23
+ * section (valid DXF in every version; the conventional place to state
24
+ * metadata a reader should show a human but never needs to parse — here,
25
+ * the unit R12 can't declare via `$INSUNITS`). Defaults to a generic
26
+ * "units: metres" note; pass a longer string (e.g. including the
27
+ * `IfcProjectedCRS` name) for a georeferenced export.
28
+ */
29
+ headerComment?: string;
30
+ }
31
+ /**
32
+ * Accumulates DXF entities and layer definitions, then assembles the full
33
+ * ASCII DXF R12 (AC1009) document text. One writer instance == one DXF
34
+ * file; layers are registered on first use (`addPolyline`/`addLine`/
35
+ * `addText`) via a CSS colour, resolved to the nearest ACI with
36
+ * {@link cssToAci}.
37
+ */
38
+ export declare class DxfWriter {
39
+ private readonly layers;
40
+ /** Raw (pre-sanitization) name → assigned safe name, for stable reuse + collision disambiguation. */
41
+ private readonly layerNameBySource;
42
+ private readonly entities;
43
+ private readonly headerComment;
44
+ private minX;
45
+ private minY;
46
+ private maxX;
47
+ private maxY;
48
+ /** One warning per document for non-finite input coordinates — see extend(). */
49
+ private warnedNonFinite;
50
+ constructor(options?: DxfWriterOptions);
51
+ private extend;
52
+ /**
53
+ * Register (or reuse) a layer. Returns the sanitized layer name to pass to
54
+ * `addPolyline`/`addLine`/`addText`. Re-registering the same source name
55
+ * with a different colour/linetype is a no-op (first registration wins) —
56
+ * callers should derive one style per logical layer. DIFFERENT source
57
+ * names whose sanitized forms collide (`Wände`/`Wønde` → `W_nde`) get a
58
+ * numeric suffix (`W_nde`, `W_nde_2`, …) instead of silently merging onto
59
+ * one layer.
60
+ */
61
+ layer(name: string, cssColor: string, linetype?: DxfLinetype): string;
62
+ /** `62\n<aci>\n` when an entity overrides its layer's colour, else ''. */
63
+ private colorOverrideGroup;
64
+ /**
65
+ * Add a closed or open polyline (tessellated arcs/circles are pre-sampled
66
+ * by the caller), written as classic `POLYLINE` + `VERTEX`* + `SEQEND` —
67
+ * `LWPOLYLINE` does not exist before R14. `colorOverride` (CSS colour)
68
+ * emits a per-entity ACI (group 62) on the POLYLINE header instead of
69
+ * inheriting the layer colour — used when several IFC types share one
70
+ * category layer but render with distinct colours in the source drawing
71
+ * (matching the SVG exporter's per-entity fill/stroke).
72
+ */
73
+ addPolyline(points: readonly Point2D[], layer: string, closed: boolean, colorOverride?: string): void;
74
+ /** Add a single straight segment. `colorOverride`: see {@link addPolyline}. */
75
+ addLine(start: Point2D, end: Point2D, layer: string, colorOverride?: string): void;
76
+ /**
77
+ * Add single-line text. Multiline callers (annotations/MTEXT) should split
78
+ * on `\n` and call this once per line, offsetting `position` themselves
79
+ * (matching the SVG exporter's tspan stacking) — DXF `TEXT` group 1 is a
80
+ * single line. `colorOverride`: see {@link addPolyline}.
81
+ */
82
+ addText(position: Point2D, text: string, height: number, layer: string, options?: {
83
+ rotationDeg?: number;
84
+ hAlign?: DxfTextHAlign;
85
+ vAlign?: DxfTextVAlign;
86
+ colorOverride?: string;
87
+ }): void;
88
+ /** True once at least one finite point has been written (controls $EXTMIN/$EXTMAX). */
89
+ private hasExtents;
90
+ private buildHeader;
91
+ private buildLtypeTable;
92
+ /**
93
+ * STYLE table with the single `STANDARD` text style. Every TEXT entity
94
+ * this writer emits carries no group 7 and therefore implicitly
95
+ * references STANDARD; defining it keeps strict R12 readers from having
96
+ * to invent it. (Fixed-height 0, width factor 1, `txt` font — the
97
+ * classic defaults.)
98
+ */
99
+ private buildStyleTable;
100
+ private buildLayerTable;
101
+ private buildTables;
102
+ private buildEntities;
103
+ /**
104
+ * Assemble the full ASCII DXF R12 document: a leading `999` comment
105
+ * (units — see class docs), then HEADER + TABLES + ENTITIES + EOF. No
106
+ * BLOCKS/OBJECTS sections and no BLOCK_RECORD table — R12 doesn't require
107
+ * them (unlike R13+, where their absence would make the file invalid).
108
+ */
109
+ toString(): string;
110
+ }
111
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/dxf/writer.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElD,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACxD,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AA4CrE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKzD;AAyBD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAS;gBAEpB,OAAO,GAAE,gBAAqB;IAI1C,OAAO,CAAC,MAAM;IAsBd;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,WAA0B,GAAG,MAAM;IAcnF,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;;OAQG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBrG,+EAA+E;IAC/E,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAYlF;;;;;OAKG;IACH,OAAO,CACL,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB,GACL,IAAI;IA8BP,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAcvB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAOrB;;;;;OAKG;IACH,QAAQ,IAAI,MAAM;CAYnB"}