@ifc-lite/ids 1.0.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 (75) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +76 -0
  3. package/dist/constraints/index.d.ts +17 -0
  4. package/dist/constraints/index.d.ts.map +1 -0
  5. package/dist/constraints/index.js +226 -0
  6. package/dist/constraints/index.js.map +1 -0
  7. package/dist/facets/attribute-facet.d.ts +10 -0
  8. package/dist/facets/attribute-facet.d.ts.map +1 -0
  9. package/dist/facets/attribute-facet.js +107 -0
  10. package/dist/facets/attribute-facet.js.map +1 -0
  11. package/dist/facets/classification-facet.d.ts +10 -0
  12. package/dist/facets/classification-facet.d.ts.map +1 -0
  13. package/dist/facets/classification-facet.js +98 -0
  14. package/dist/facets/classification-facet.js.map +1 -0
  15. package/dist/facets/entity-facet.d.ts +18 -0
  16. package/dist/facets/entity-facet.d.ts.map +1 -0
  17. package/dist/facets/entity-facet.js +116 -0
  18. package/dist/facets/entity-facet.js.map +1 -0
  19. package/dist/facets/index.d.ts +31 -0
  20. package/dist/facets/index.d.ts.map +1 -0
  21. package/dist/facets/index.js +57 -0
  22. package/dist/facets/index.js.map +1 -0
  23. package/dist/facets/material-facet.d.ts +10 -0
  24. package/dist/facets/material-facet.d.ts.map +1 -0
  25. package/dist/facets/material-facet.js +67 -0
  26. package/dist/facets/material-facet.js.map +1 -0
  27. package/dist/facets/partof-facet.d.ts +10 -0
  28. package/dist/facets/partof-facet.d.ts.map +1 -0
  29. package/dist/facets/partof-facet.js +112 -0
  30. package/dist/facets/partof-facet.js.map +1 -0
  31. package/dist/facets/property-facet.d.ts +10 -0
  32. package/dist/facets/property-facet.d.ts.map +1 -0
  33. package/dist/facets/property-facet.js +156 -0
  34. package/dist/facets/property-facet.js.map +1 -0
  35. package/dist/index.d.ts +18 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +26 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/parser/xml-parser.d.ts +15 -0
  40. package/dist/parser/xml-parser.d.ts.map +1 -0
  41. package/dist/parser/xml-parser.js +486 -0
  42. package/dist/parser/xml-parser.js.map +1 -0
  43. package/dist/translation/index.d.ts +3 -0
  44. package/dist/translation/index.d.ts.map +1 -0
  45. package/dist/translation/index.js +6 -0
  46. package/dist/translation/index.js.map +1 -0
  47. package/dist/translation/locales/de.d.ts +189 -0
  48. package/dist/translation/locales/de.d.ts.map +1 -0
  49. package/dist/translation/locales/de.js +226 -0
  50. package/dist/translation/locales/de.js.map +1 -0
  51. package/dist/translation/locales/en.d.ts +190 -0
  52. package/dist/translation/locales/en.d.ts.map +1 -0
  53. package/dist/translation/locales/en.js +226 -0
  54. package/dist/translation/locales/en.js.map +1 -0
  55. package/dist/translation/locales/fr.d.ts +189 -0
  56. package/dist/translation/locales/fr.d.ts.map +1 -0
  57. package/dist/translation/locales/fr.js +226 -0
  58. package/dist/translation/locales/fr.js.map +1 -0
  59. package/dist/translation/locales/index.d.ts +4 -0
  60. package/dist/translation/locales/index.d.ts.map +1 -0
  61. package/dist/translation/locales/index.js +7 -0
  62. package/dist/translation/locales/index.js.map +1 -0
  63. package/dist/translation/service.d.ts +62 -0
  64. package/dist/translation/service.d.ts.map +1 -0
  65. package/dist/translation/service.js +569 -0
  66. package/dist/translation/service.js.map +1 -0
  67. package/dist/types.d.ts +407 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +5 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/validation/validator.d.ts +9 -0
  72. package/dist/validation/validator.d.ts.map +1 -0
  73. package/dist/validation/validator.js +431 -0
  74. package/dist/validation/validator.js.map +1 -0
  75. package/package.json +51 -0
@@ -0,0 +1,486 @@
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
+ const IDS_NAMESPACE = 'http://standards.buildingsmart.org/IDS';
5
+ const XS_NAMESPACE = 'http://www.w3.org/2001/XMLSchema';
6
+ /** Error thrown when parsing invalid IDS XML */
7
+ export class IDSParseError extends Error {
8
+ details;
9
+ constructor(message, details) {
10
+ super(message);
11
+ this.details = details;
12
+ this.name = 'IDSParseError';
13
+ }
14
+ }
15
+ /**
16
+ * Parse IDS XML content into an IDSDocument
17
+ */
18
+ export function parseIDS(xmlContent) {
19
+ const xmlString = typeof xmlContent === 'string'
20
+ ? xmlContent
21
+ : new TextDecoder().decode(xmlContent);
22
+ const parser = new DOMParser();
23
+ const doc = parser.parseFromString(xmlString, 'text/xml');
24
+ // Check for parse errors
25
+ const parseError = doc.querySelector('parsererror');
26
+ if (parseError) {
27
+ throw new IDSParseError('Invalid XML format', parseError.textContent || undefined);
28
+ }
29
+ const root = doc.documentElement;
30
+ // Validate root element
31
+ if (root.localName !== 'ids') {
32
+ throw new IDSParseError(`Invalid root element: expected "ids", got "${root.localName}"`);
33
+ }
34
+ return {
35
+ info: parseInfo(root),
36
+ specifications: parseSpecifications(root),
37
+ };
38
+ }
39
+ /**
40
+ * Parse the <info> section
41
+ */
42
+ function parseInfo(root) {
43
+ const info = getChildElement(root, 'info');
44
+ if (!info) {
45
+ return { title: 'Untitled IDS' };
46
+ }
47
+ return {
48
+ title: getChildText(info, 'title') || 'Untitled IDS',
49
+ copyright: getChildText(info, 'copyright'),
50
+ version: getChildText(info, 'version'),
51
+ author: getChildText(info, 'author'),
52
+ date: getChildText(info, 'date'),
53
+ purpose: getChildText(info, 'purpose'),
54
+ milestone: getChildText(info, 'milestone'),
55
+ description: getChildText(info, 'description'),
56
+ };
57
+ }
58
+ /**
59
+ * Parse the <specifications> section
60
+ */
61
+ function parseSpecifications(root) {
62
+ const specsContainer = getChildElement(root, 'specifications');
63
+ if (!specsContainer) {
64
+ return [];
65
+ }
66
+ const specElements = getChildElements(specsContainer, 'specification');
67
+ return specElements.map((el, index) => parseSpecification(el, index));
68
+ }
69
+ /**
70
+ * Parse a single <specification>
71
+ */
72
+ function parseSpecification(el, index) {
73
+ const name = el.getAttribute('name') || `Specification ${index + 1}`;
74
+ const ifcVersionAttr = el.getAttribute('ifcVersion') || 'IFC4';
75
+ // Parse IFC versions (can be space-separated)
76
+ const ifcVersions = ifcVersionAttr
77
+ .split(/\s+/)
78
+ .map((v) => normalizeIfcVersion(v))
79
+ .filter((v) => v !== null);
80
+ // Parse minOccurs/maxOccurs with NaN validation
81
+ const minOccursAttr = el.getAttribute('minOccurs');
82
+ const maxOccursAttr = el.getAttribute('maxOccurs');
83
+ let minOccurs;
84
+ if (minOccursAttr) {
85
+ const parsed = parseInt(minOccursAttr, 10);
86
+ if (Number.isFinite(parsed)) {
87
+ minOccurs = parsed;
88
+ }
89
+ }
90
+ let maxOccurs;
91
+ if (maxOccursAttr) {
92
+ if (maxOccursAttr === 'unbounded') {
93
+ maxOccurs = 'unbounded';
94
+ }
95
+ else {
96
+ const parsed = parseInt(maxOccursAttr, 10);
97
+ if (Number.isFinite(parsed)) {
98
+ maxOccurs = parsed;
99
+ }
100
+ }
101
+ }
102
+ // Parse applicability
103
+ const applicabilityEl = getChildElement(el, 'applicability');
104
+ const applicability = {
105
+ facets: applicabilityEl ? parseFacets(applicabilityEl) : [],
106
+ };
107
+ // Parse requirements
108
+ const requirementsEl = getChildElement(el, 'requirements');
109
+ const requirements = requirementsEl
110
+ ? parseRequirements(requirementsEl)
111
+ : [];
112
+ return {
113
+ id: el.getAttribute('identifier') || `spec-${index}`,
114
+ name,
115
+ description: el.getAttribute('description') || undefined,
116
+ instructions: el.getAttribute('instructions') || undefined,
117
+ identifier: el.getAttribute('identifier') || undefined,
118
+ ifcVersions: ifcVersions.length > 0 ? ifcVersions : ['IFC4'],
119
+ applicability,
120
+ requirements,
121
+ minOccurs,
122
+ maxOccurs,
123
+ };
124
+ }
125
+ /**
126
+ * Normalize IFC version string
127
+ */
128
+ function normalizeIfcVersion(version) {
129
+ const upper = version.toUpperCase().replace(/[^A-Z0-9]/g, '');
130
+ switch (upper) {
131
+ case 'IFC2X3':
132
+ return 'IFC2X3';
133
+ case 'IFC4':
134
+ return 'IFC4';
135
+ case 'IFC4X3':
136
+ case 'IFC4X3ADD2':
137
+ return 'IFC4X3';
138
+ default:
139
+ // Try to match common patterns
140
+ if (upper.startsWith('IFC4X3'))
141
+ return 'IFC4X3';
142
+ if (upper.startsWith('IFC4'))
143
+ return 'IFC4';
144
+ if (upper.startsWith('IFC2X3'))
145
+ return 'IFC2X3';
146
+ return null;
147
+ }
148
+ }
149
+ /**
150
+ * Parse facets from an element (applicability or requirements)
151
+ */
152
+ function parseFacets(parent) {
153
+ const facets = [];
154
+ for (const child of Array.from(parent.children)) {
155
+ const facet = parseFacet(child);
156
+ if (facet) {
157
+ facets.push(facet);
158
+ }
159
+ }
160
+ return facets;
161
+ }
162
+ /**
163
+ * Parse a single facet element
164
+ */
165
+ function parseFacet(el) {
166
+ const localName = el.localName.toLowerCase();
167
+ switch (localName) {
168
+ case 'entity':
169
+ return parseEntityFacet(el);
170
+ case 'attribute':
171
+ return parseAttributeFacet(el);
172
+ case 'property':
173
+ return parsePropertyFacet(el);
174
+ case 'classification':
175
+ return parseClassificationFacet(el);
176
+ case 'material':
177
+ return parseMaterialFacet(el);
178
+ case 'partof':
179
+ return parsePartOfFacet(el);
180
+ default:
181
+ return null;
182
+ }
183
+ }
184
+ /**
185
+ * Parse entity facet
186
+ */
187
+ function parseEntityFacet(el) {
188
+ const nameEl = getChildElement(el, 'name');
189
+ const predefinedTypeEl = getChildElement(el, 'predefinedType');
190
+ if (!nameEl) {
191
+ throw new IDSParseError('Entity facet must have a name element');
192
+ }
193
+ return {
194
+ type: 'entity',
195
+ name: parseConstraintElement(nameEl),
196
+ predefinedType: predefinedTypeEl
197
+ ? parseConstraintElement(predefinedTypeEl)
198
+ : undefined,
199
+ };
200
+ }
201
+ /**
202
+ * Parse attribute facet
203
+ */
204
+ function parseAttributeFacet(el) {
205
+ const nameEl = getChildElement(el, 'name');
206
+ const valueEl = getChildElement(el, 'value');
207
+ if (!nameEl) {
208
+ throw new IDSParseError('Attribute facet must have a name element');
209
+ }
210
+ return {
211
+ type: 'attribute',
212
+ name: parseConstraintElement(nameEl),
213
+ value: valueEl ? parseConstraintElement(valueEl) : undefined,
214
+ };
215
+ }
216
+ /**
217
+ * Parse property facet
218
+ */
219
+ function parsePropertyFacet(el) {
220
+ const propertySetEl = getChildElement(el, 'propertySet');
221
+ const baseNameEl = getChildElement(el, 'baseName');
222
+ const dataTypeEl = getChildElement(el, 'dataType');
223
+ const valueEl = getChildElement(el, 'value');
224
+ if (!propertySetEl) {
225
+ throw new IDSParseError('Property facet must have a propertySet element');
226
+ }
227
+ if (!baseNameEl) {
228
+ throw new IDSParseError('Property facet must have a baseName element');
229
+ }
230
+ return {
231
+ type: 'property',
232
+ propertySet: parseConstraintElement(propertySetEl),
233
+ baseName: parseConstraintElement(baseNameEl),
234
+ dataType: dataTypeEl ? parseConstraintElement(dataTypeEl) : undefined,
235
+ value: valueEl ? parseConstraintElement(valueEl) : undefined,
236
+ };
237
+ }
238
+ /**
239
+ * Parse classification facet
240
+ */
241
+ function parseClassificationFacet(el) {
242
+ const systemEl = getChildElement(el, 'system');
243
+ const valueEl = getChildElement(el, 'value');
244
+ return {
245
+ type: 'classification',
246
+ system: systemEl ? parseConstraintElement(systemEl) : undefined,
247
+ value: valueEl ? parseConstraintElement(valueEl) : undefined,
248
+ };
249
+ }
250
+ /**
251
+ * Parse material facet
252
+ */
253
+ function parseMaterialFacet(el) {
254
+ const valueEl = getChildElement(el, 'value');
255
+ return {
256
+ type: 'material',
257
+ value: valueEl ? parseConstraintElement(valueEl) : undefined,
258
+ };
259
+ }
260
+ /**
261
+ * Parse partOf facet
262
+ */
263
+ function parsePartOfFacet(el) {
264
+ const relationAttr = el.getAttribute('relation') || 'IfcRelContainedInSpatialStructure';
265
+ const entityEl = getChildElement(el, 'entity');
266
+ const relation = normalizePartOfRelation(relationAttr);
267
+ return {
268
+ type: 'partOf',
269
+ relation,
270
+ entity: entityEl ? parseEntityFacet(entityEl) : undefined,
271
+ };
272
+ }
273
+ /**
274
+ * Normalize partOf relation string
275
+ */
276
+ function normalizePartOfRelation(relation) {
277
+ const upper = relation.toUpperCase();
278
+ if (upper.includes('AGGREGATE'))
279
+ return 'IfcRelAggregates';
280
+ if (upper.includes('CONTAINED') || upper.includes('SPATIAL'))
281
+ return 'IfcRelContainedInSpatialStructure';
282
+ if (upper.includes('NEST'))
283
+ return 'IfcRelNests';
284
+ if (upper.includes('VOID'))
285
+ return 'IfcRelVoidsElement';
286
+ if (upper.includes('FILL'))
287
+ return 'IfcRelFillsElement';
288
+ return 'IfcRelContainedInSpatialStructure';
289
+ }
290
+ /**
291
+ * Parse requirements section
292
+ */
293
+ function parseRequirements(parent) {
294
+ const requirements = [];
295
+ let reqIndex = 0;
296
+ for (const child of Array.from(parent.children)) {
297
+ const facet = parseFacet(child);
298
+ if (facet) {
299
+ // Get optionality from the element
300
+ const minOccurs = child.getAttribute('minOccurs');
301
+ const maxOccurs = child.getAttribute('maxOccurs');
302
+ let optionality = 'required';
303
+ if (minOccurs === '0' && maxOccurs === '0') {
304
+ optionality = 'prohibited';
305
+ }
306
+ else if (minOccurs === '0') {
307
+ optionality = 'optional';
308
+ }
309
+ requirements.push({
310
+ id: `req-${reqIndex++}`,
311
+ facet,
312
+ optionality,
313
+ description: child.getAttribute('description') || undefined,
314
+ instructions: child.getAttribute('instructions') || undefined,
315
+ });
316
+ }
317
+ }
318
+ return requirements;
319
+ }
320
+ /**
321
+ * Parse a constraint element (can be simpleValue, restriction with pattern/enumeration/bounds)
322
+ */
323
+ function parseConstraintElement(el) {
324
+ // Check for simpleValue child
325
+ const simpleValueEl = getChildElement(el, 'simpleValue');
326
+ if (simpleValueEl) {
327
+ return {
328
+ type: 'simpleValue',
329
+ value: simpleValueEl.textContent?.trim() || '',
330
+ };
331
+ }
332
+ // Check for restriction child (XSD-style)
333
+ const restrictionEl = getChildElementNS(el, 'restriction', XS_NAMESPACE) ||
334
+ getChildElement(el, 'restriction');
335
+ if (restrictionEl) {
336
+ return parseRestriction(restrictionEl);
337
+ }
338
+ // Check direct text content (simple case)
339
+ const textContent = el.textContent?.trim();
340
+ if (textContent) {
341
+ return {
342
+ type: 'simpleValue',
343
+ value: textContent,
344
+ };
345
+ }
346
+ // Default to empty simple value
347
+ return {
348
+ type: 'simpleValue',
349
+ value: '',
350
+ };
351
+ }
352
+ /**
353
+ * Parse XSD restriction element
354
+ */
355
+ function parseRestriction(el) {
356
+ // Check for pattern
357
+ const patternEl = getChildElementNS(el, 'pattern', XS_NAMESPACE) ||
358
+ getChildElement(el, 'pattern');
359
+ if (patternEl) {
360
+ return {
361
+ type: 'pattern',
362
+ pattern: patternEl.getAttribute('value') || patternEl.textContent || '',
363
+ };
364
+ }
365
+ // Check for enumeration
366
+ const enumEls = getChildElementsNS(el, 'enumeration', XS_NAMESPACE);
367
+ if (enumEls.length === 0) {
368
+ // Try without namespace
369
+ const enumElsNoNS = getChildElements(el, 'enumeration');
370
+ if (enumElsNoNS.length > 0) {
371
+ return {
372
+ type: 'enumeration',
373
+ values: enumElsNoNS.map((e) => e.getAttribute('value') || e.textContent || ''),
374
+ };
375
+ }
376
+ }
377
+ else {
378
+ return {
379
+ type: 'enumeration',
380
+ values: enumEls.map((e) => e.getAttribute('value') || e.textContent || ''),
381
+ };
382
+ }
383
+ // Check for bounds (minInclusive, maxInclusive, minExclusive, maxExclusive)
384
+ const minInclusiveEl = getChildElementNS(el, 'minInclusive', XS_NAMESPACE) ||
385
+ getChildElement(el, 'minInclusive');
386
+ const maxInclusiveEl = getChildElementNS(el, 'maxInclusive', XS_NAMESPACE) ||
387
+ getChildElement(el, 'maxInclusive');
388
+ const minExclusiveEl = getChildElementNS(el, 'minExclusive', XS_NAMESPACE) ||
389
+ getChildElement(el, 'minExclusive');
390
+ const maxExclusiveEl = getChildElementNS(el, 'maxExclusive', XS_NAMESPACE) ||
391
+ getChildElement(el, 'maxExclusive');
392
+ if (minInclusiveEl || maxInclusiveEl || minExclusiveEl || maxExclusiveEl) {
393
+ const bounds = {
394
+ type: 'bounds',
395
+ };
396
+ if (minInclusiveEl) {
397
+ const val = parseFloat(minInclusiveEl.getAttribute('value') ||
398
+ minInclusiveEl.textContent ||
399
+ '');
400
+ if (!isNaN(val)) {
401
+ bounds.minInclusive = val;
402
+ }
403
+ }
404
+ if (maxInclusiveEl) {
405
+ const val = parseFloat(maxInclusiveEl.getAttribute('value') ||
406
+ maxInclusiveEl.textContent ||
407
+ '');
408
+ if (!isNaN(val)) {
409
+ bounds.maxInclusive = val;
410
+ }
411
+ }
412
+ if (minExclusiveEl) {
413
+ const val = parseFloat(minExclusiveEl.getAttribute('value') ||
414
+ minExclusiveEl.textContent ||
415
+ '');
416
+ if (!isNaN(val)) {
417
+ bounds.minExclusive = val;
418
+ }
419
+ }
420
+ if (maxExclusiveEl) {
421
+ const val = parseFloat(maxExclusiveEl.getAttribute('value') ||
422
+ maxExclusiveEl.textContent ||
423
+ '');
424
+ if (!isNaN(val)) {
425
+ bounds.maxExclusive = val;
426
+ }
427
+ }
428
+ return bounds;
429
+ }
430
+ // Default: treat base attribute or text content as simple value
431
+ const base = el.getAttribute('base');
432
+ if (base) {
433
+ return {
434
+ type: 'simpleValue',
435
+ value: base,
436
+ };
437
+ }
438
+ return {
439
+ type: 'simpleValue',
440
+ value: el.textContent?.trim() || '',
441
+ };
442
+ }
443
+ // ============================================================================
444
+ // DOM Helper Functions
445
+ // ============================================================================
446
+ function getChildElement(parent, localName) {
447
+ for (const child of Array.from(parent.children)) {
448
+ if (child.localName.toLowerCase() === localName.toLowerCase()) {
449
+ return child;
450
+ }
451
+ }
452
+ return null;
453
+ }
454
+ function getChildElements(parent, localName) {
455
+ const elements = [];
456
+ for (const child of Array.from(parent.children)) {
457
+ if (child.localName.toLowerCase() === localName.toLowerCase()) {
458
+ elements.push(child);
459
+ }
460
+ }
461
+ return elements;
462
+ }
463
+ function getChildElementNS(parent, localName, namespace) {
464
+ for (const child of Array.from(parent.children)) {
465
+ if (child.localName.toLowerCase() === localName.toLowerCase() &&
466
+ child.namespaceURI === namespace) {
467
+ return child;
468
+ }
469
+ }
470
+ return null;
471
+ }
472
+ function getChildElementsNS(parent, localName, namespace) {
473
+ const elements = [];
474
+ for (const child of Array.from(parent.children)) {
475
+ if (child.localName.toLowerCase() === localName.toLowerCase() &&
476
+ child.namespaceURI === namespace) {
477
+ elements.push(child);
478
+ }
479
+ }
480
+ return elements;
481
+ }
482
+ function getChildText(parent, localName) {
483
+ const child = getChildElement(parent, localName);
484
+ return child?.textContent?.trim() || undefined;
485
+ }
486
+ //# sourceMappingURL=xml-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../src/parser/xml-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createTranslationService, IDSTranslationServiceImpl } from './service.js';
2
+ export { en, de, fr } from './locales/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
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 { createTranslationService, IDSTranslationServiceImpl } from './service.js';
5
+ export { en, de, fr } from './locales/index.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC"}