node-opcua-variant 2.163.0 → 2.164.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/dist/variant.js
CHANGED
|
@@ -85,19 +85,21 @@ class Variant extends node_opcua_factory_1.BaseUAObject {
|
|
|
85
85
|
this.dimensions = options2.dimensions || null;
|
|
86
86
|
if (this.dataType === DataType_enum_1.DataType.ExtensionObject) {
|
|
87
87
|
if (this.arrayType === VariantArrayType_enum_1.VariantArrayType.Scalar) {
|
|
88
|
-
/*
|
|
88
|
+
/* c8 ignore start */
|
|
89
89
|
if (this.value && !(this.value instanceof node_opcua_factory_1.BaseUAObject)) {
|
|
90
90
|
throw new Error(`A variant with DataType.ExtensionObject must have a ExtensionObject value.\nMake sure that you specify a valid ExtensionObject to the value options in the Variant Constructor`);
|
|
91
91
|
}
|
|
92
|
+
/* c8 ignore stop */
|
|
92
93
|
}
|
|
93
94
|
else {
|
|
94
95
|
if (this.value) {
|
|
96
|
+
/* c8 ignore start */
|
|
95
97
|
for (const e of this.value) {
|
|
96
|
-
/* istanbul ignore next */
|
|
97
98
|
if (e && !(e instanceof node_opcua_factory_1.BaseUAObject)) {
|
|
98
99
|
throw new Error("A variant with DataType.ExtensionObject must have a ExtensionObject value\nMake sure that you specify a valid ExtensionObject for all element of the value array passed to the Variant Constructor`");
|
|
99
100
|
}
|
|
100
101
|
}
|
|
102
|
+
/* c8 ignore stop */
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
}
|
|
@@ -210,11 +212,39 @@ function encodeVariant(variant, stream) {
|
|
|
210
212
|
encodeDimension(variant.dimensions, stream);
|
|
211
213
|
}
|
|
212
214
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
/* c8 ignore start */
|
|
216
|
+
function _decodeVariantArrayDebug(stream, decode, tracer, dataType) {
|
|
217
|
+
let cursorBefore = stream.length;
|
|
218
|
+
const length = (0, node_opcua_basic_types_1.decodeUInt32)(stream);
|
|
219
|
+
let i;
|
|
220
|
+
let element;
|
|
221
|
+
tracer.trace("start_array", "Variant", -1, cursorBefore, stream.length);
|
|
222
|
+
if (length === 0xffffffff) {
|
|
223
|
+
// empty array
|
|
224
|
+
tracer.trace("end_array", "Variant", stream.length);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const n1 = Math.min(10, length);
|
|
228
|
+
// display a maximum of 10 elements
|
|
229
|
+
for (i = 0; i < n1; i++) {
|
|
230
|
+
tracer.trace("start_element", "", i);
|
|
231
|
+
cursorBefore = stream.length;
|
|
232
|
+
element = decode(stream);
|
|
233
|
+
// arr.push(element);
|
|
234
|
+
tracer.trace("member", "Variant", element, cursorBefore, stream.length, DataType_enum_1.DataType[dataType]);
|
|
235
|
+
tracer.trace("end_element", "", i);
|
|
236
|
+
}
|
|
237
|
+
// keep reading
|
|
238
|
+
if (length >= n1) {
|
|
239
|
+
for (i = n1; i < length; i++) {
|
|
240
|
+
decode(stream);
|
|
241
|
+
}
|
|
242
|
+
tracer.trace("start_element", "", n1);
|
|
243
|
+
tracer.trace("member", "Variant", "...", cursorBefore, stream.length, DataType_enum_1.DataType[dataType]);
|
|
244
|
+
tracer.trace("end_element", "", n1);
|
|
245
|
+
}
|
|
246
|
+
tracer.trace("end_array", "Variant", stream.length);
|
|
247
|
+
}
|
|
218
248
|
function decodeDebugVariant(self, stream, options) {
|
|
219
249
|
const tracer = options.tracer;
|
|
220
250
|
const encodingByte = (0, node_opcua_basic_types_1.decodeUInt8)(stream);
|
|
@@ -225,7 +255,7 @@ function decodeDebugVariant(self, stream, options) {
|
|
|
225
255
|
tracer.dump("isArray: ", isArray ? "true" : "false");
|
|
226
256
|
tracer.dump("dimension: ", hasDimension);
|
|
227
257
|
const decode = (0, node_opcua_factory_1.findBuiltInType)(DataType_enum_1.DataType[self.dataType]).decode;
|
|
228
|
-
/*
|
|
258
|
+
/* c8 ignore next */
|
|
229
259
|
if (!decode) {
|
|
230
260
|
throw new Error("Variant.decode : cannot find decoder for type " + DataType_enum_1.DataType[self.dataType]);
|
|
231
261
|
}
|
|
@@ -252,6 +282,7 @@ function decodeDebugVariant(self, stream, options) {
|
|
|
252
282
|
const verification = calculate_product(self.dimensions);
|
|
253
283
|
}
|
|
254
284
|
}
|
|
285
|
+
/* c8 ignore stop */
|
|
255
286
|
function internalDecodeVariant(self, stream) {
|
|
256
287
|
const encodingByte = (0, node_opcua_basic_types_1.decodeUInt8)(stream);
|
|
257
288
|
const isArray = (encodingByte & exports.VARIANT_ARRAY_MASK) === exports.VARIANT_ARRAY_MASK;
|
|
@@ -269,10 +300,11 @@ function internalDecodeVariant(self, stream) {
|
|
|
269
300
|
if (hasDimension) {
|
|
270
301
|
self.dimensions = decodeDimension(stream);
|
|
271
302
|
const verification = calculate_product(self.dimensions);
|
|
272
|
-
/*
|
|
303
|
+
/* c8 ignore start */
|
|
273
304
|
if (verification !== self.value.length) {
|
|
274
305
|
throw new Error("internalDecodeVariant: BadDecodingError: inconsistent matrix ");
|
|
275
306
|
}
|
|
307
|
+
/* c8 ignore stop */
|
|
276
308
|
}
|
|
277
309
|
}
|
|
278
310
|
/***
|
|
@@ -318,29 +350,32 @@ function constructHook(options) {
|
|
|
318
350
|
// dataType could be a string
|
|
319
351
|
if (typeof options.dataType === "string") {
|
|
320
352
|
const d = (0, node_opcua_factory_1.findBuiltInType)(options.dataType);
|
|
321
|
-
/*
|
|
353
|
+
/* c8 ignore start */
|
|
322
354
|
if (!d) {
|
|
323
355
|
throw new Error("Cannot find Built-In data type or any DataType resolving to " + options.dataType);
|
|
324
356
|
}
|
|
357
|
+
/* c8 ignore stop */
|
|
325
358
|
options.dataType = DataType_enum_1.DataType[d.name];
|
|
326
359
|
}
|
|
327
360
|
// array type could be a string
|
|
328
361
|
if (typeof options.arrayType === "string") {
|
|
329
362
|
const at = VariantArrayType_enum_1.VariantArrayType[options.arrayType];
|
|
330
|
-
/*
|
|
363
|
+
/* c8 ignore start */
|
|
331
364
|
if (at === undefined) {
|
|
332
365
|
throw new Error("ArrayType: invalid " + options.arrayType);
|
|
333
366
|
}
|
|
367
|
+
/* c8 ignore stop */
|
|
334
368
|
options.arrayType = at;
|
|
335
369
|
}
|
|
336
370
|
if (isArrayTypeUnspecified && Array.isArray(options.value)) {
|
|
337
371
|
// when using UInt64 ou Int64 arrayType must be specified , as automatic detection cannot be made
|
|
338
|
-
/*
|
|
372
|
+
/* c8 ignore start */
|
|
339
373
|
if (options.dataType === DataType_enum_1.DataType.UInt64 || options.dataType === DataType_enum_1.DataType.Int64) {
|
|
340
374
|
// we do nothing here ....
|
|
341
375
|
throw new Error("Variant#constructor : when using UInt64 ou Int64" +
|
|
342
376
|
" arrayType must be specified , as automatic detection cannot be made");
|
|
343
377
|
}
|
|
378
|
+
/* c8 ignore stop */
|
|
344
379
|
else {
|
|
345
380
|
options.arrayType = VariantArrayType_enum_1.VariantArrayType.Array;
|
|
346
381
|
isArrayTypeUnspecified = false;
|
|
@@ -348,21 +383,19 @@ function constructHook(options) {
|
|
|
348
383
|
}
|
|
349
384
|
if (options.arrayType !== VariantArrayType_enum_1.VariantArrayType.Scalar && !isArrayTypeUnspecified) {
|
|
350
385
|
(0, node_opcua_assert_1.assert)(options.arrayType === VariantArrayType_enum_1.VariantArrayType.Array || options.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix);
|
|
351
|
-
/* istanbul ignore else */
|
|
352
386
|
if (options.arrayType === VariantArrayType_enum_1.VariantArrayType.Array) {
|
|
353
387
|
const value1 = coerceVariantArray(options.dataType, options.value);
|
|
354
388
|
(0, node_opcua_assert_1.assert)(value1 === null || value1 !== options.value);
|
|
355
389
|
options.value = value1;
|
|
356
390
|
}
|
|
391
|
+
/* c8 ignore start */
|
|
357
392
|
else {
|
|
358
393
|
(0, node_opcua_assert_1.assert)(options.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix);
|
|
359
394
|
options.value = options.value || [];
|
|
360
395
|
options.value = coerceVariantArray(options.dataType, options.value);
|
|
361
|
-
/* istanbul ignore next */
|
|
362
396
|
if (!options.dimensions) {
|
|
363
397
|
throw new Error("Matrix Variant : missing dimensions");
|
|
364
398
|
}
|
|
365
|
-
/* istanbul ignore next */
|
|
366
399
|
if (options.value.length != 0 && options.value.length !== calculate_product(options.dimensions)) {
|
|
367
400
|
throw new Error("Matrix Variant : invalid value size = options.value.length " +
|
|
368
401
|
options.value.length +
|
|
@@ -372,6 +405,7 @@ function constructHook(options) {
|
|
|
372
405
|
JSON.stringify(options.dimensions));
|
|
373
406
|
}
|
|
374
407
|
}
|
|
408
|
+
/* c8 ignore stop */
|
|
375
409
|
}
|
|
376
410
|
else {
|
|
377
411
|
(0, node_opcua_assert_1.assert)(options.arrayType === VariantArrayType_enum_1.VariantArrayType.Scalar || options.arrayType === undefined);
|
|
@@ -379,7 +413,7 @@ function constructHook(options) {
|
|
|
379
413
|
const tmp = options.value;
|
|
380
414
|
// scalar
|
|
381
415
|
options.value = coerceVariantType(options.dataType, options.value);
|
|
382
|
-
/*
|
|
416
|
+
/* c8 ignore start */
|
|
383
417
|
if (!isValidVariant(options.arrayType, options.dataType, options.value, null)) {
|
|
384
418
|
throw new Error("Invalid variant arrayType: " +
|
|
385
419
|
VariantArrayType_enum_1.VariantArrayType[options.arrayType] +
|
|
@@ -391,6 +425,7 @@ function constructHook(options) {
|
|
|
391
425
|
typeof options.value +
|
|
392
426
|
" )");
|
|
393
427
|
}
|
|
428
|
+
/* c8 ignore stop */
|
|
394
429
|
}
|
|
395
430
|
if (options.dimensions) {
|
|
396
431
|
(0, node_opcua_assert_1.assert)(options.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix, "dimension can only provided if variant is a matrix");
|
|
@@ -398,7 +433,7 @@ function constructHook(options) {
|
|
|
398
433
|
return options;
|
|
399
434
|
}
|
|
400
435
|
function calculate_product(array) {
|
|
401
|
-
/*
|
|
436
|
+
/* c8 ignore next */
|
|
402
437
|
if (!array || array.length === 0) {
|
|
403
438
|
return 0;
|
|
404
439
|
}
|
|
@@ -406,42 +441,41 @@ function calculate_product(array) {
|
|
|
406
441
|
}
|
|
407
442
|
function get_encoder(dataType) {
|
|
408
443
|
const dataTypeAsString = typeof dataType === "string" ? dataType : DataType_enum_1.DataType[dataType];
|
|
409
|
-
/*
|
|
444
|
+
/* c8 ignore start */
|
|
410
445
|
if (!dataTypeAsString) {
|
|
411
446
|
throw new Error("invalid dataType " + dataType);
|
|
412
447
|
}
|
|
448
|
+
/* c8 ignore stop */
|
|
413
449
|
const encode = (0, node_opcua_factory_1.findBuiltInType)(dataTypeAsString).encode;
|
|
414
|
-
/*
|
|
450
|
+
/* c8 ignore start */
|
|
415
451
|
if (!encode) {
|
|
416
452
|
throw new Error("Cannot find encode function for dataType " + dataTypeAsString);
|
|
417
453
|
}
|
|
454
|
+
/* c8 ignore stop */
|
|
418
455
|
return encode;
|
|
419
456
|
}
|
|
420
457
|
function get_decoder(dataType) {
|
|
421
458
|
const dataTypeAsString = DataType_enum_1.DataType[dataType];
|
|
422
459
|
const decode = (0, node_opcua_factory_1.findBuiltInType)(dataTypeAsString).decode;
|
|
423
|
-
/*
|
|
460
|
+
/* c8 ignore start */
|
|
424
461
|
if (!decode) {
|
|
425
462
|
throw new Error("Variant.decode : cannot find decoder for type " + dataTypeAsString);
|
|
426
463
|
}
|
|
464
|
+
/* c8 ignore stop */
|
|
427
465
|
return decode;
|
|
428
466
|
}
|
|
429
467
|
const displayWarning = true;
|
|
430
468
|
function convertTo(dataType, arrayTypeConstructor, value) {
|
|
431
|
-
//
|
|
469
|
+
// c8 ignore next
|
|
432
470
|
if (value === undefined || value === null) {
|
|
433
471
|
return null;
|
|
434
472
|
}
|
|
435
473
|
if (arrayTypeConstructor && value instanceof arrayTypeConstructor) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
if (newArray instanceof Buffer) {
|
|
439
|
-
// required for nodejs 4.x
|
|
440
|
-
value.copy(newArray);
|
|
441
|
-
}
|
|
442
|
-
else {
|
|
443
|
-
newArray.set(value);
|
|
474
|
+
if (value instanceof Buffer) {
|
|
475
|
+
return Buffer.from(value); // preserve Buffer prototype
|
|
444
476
|
}
|
|
477
|
+
const newArray = new arrayTypeConstructor(value.length); // deep copy
|
|
478
|
+
newArray.set(value);
|
|
445
479
|
return newArray;
|
|
446
480
|
}
|
|
447
481
|
const coerceFunc = coerceVariantType.bind(null, dataType);
|
|
@@ -450,7 +484,7 @@ function convertTo(dataType, arrayTypeConstructor, value) {
|
|
|
450
484
|
for (let i = 0; i < n; i++) {
|
|
451
485
|
newArr[i] = coerceFunc(value[i]);
|
|
452
486
|
}
|
|
453
|
-
//
|
|
487
|
+
// c8 ignore next
|
|
454
488
|
if (arrayTypeConstructor && displayWarning && n > 10) {
|
|
455
489
|
warningLog("Warning ! an array containing " + DataType_enum_1.DataType[dataType] + " elements has been provided as a generic array. ");
|
|
456
490
|
warningLog(" This is inefficient as every array value will " + "have to be coerced and verified against the expected type");
|
|
@@ -497,7 +531,7 @@ function encodeVariantArray(dataType, stream, value) {
|
|
|
497
531
|
}
|
|
498
532
|
function decodeTypedArray(arrayTypeConstructor, stream) {
|
|
499
533
|
const length = (0, node_opcua_basic_types_1.decodeUInt32)(stream);
|
|
500
|
-
/*
|
|
534
|
+
/* c8 ignore next */
|
|
501
535
|
if (length === 0xffffffff) {
|
|
502
536
|
return null;
|
|
503
537
|
}
|
|
@@ -514,7 +548,7 @@ function decodeTypedArray(arrayTypeConstructor, stream) {
|
|
|
514
548
|
}
|
|
515
549
|
function decodeGeneralArray(dataType, stream) {
|
|
516
550
|
const length = (0, node_opcua_basic_types_1.decodeUInt32)(stream);
|
|
517
|
-
/*
|
|
551
|
+
/* c8 ignore next */
|
|
518
552
|
if (length === 0xffffffff) {
|
|
519
553
|
return null;
|
|
520
554
|
}
|
|
@@ -552,38 +586,6 @@ _declareTypeArrayHelper(DataType_enum_1.DataType.Int16, Int16Array);
|
|
|
552
586
|
_declareTypeArrayHelper(DataType_enum_1.DataType.Int32, Int32Array);
|
|
553
587
|
_declareTypeArrayHelper(DataType_enum_1.DataType.UInt16, Uint16Array);
|
|
554
588
|
_declareTypeArrayHelper(DataType_enum_1.DataType.UInt32, Uint32Array);
|
|
555
|
-
function _decodeVariantArrayDebug(stream, decode, tracer, dataType) {
|
|
556
|
-
let cursorBefore = stream.length;
|
|
557
|
-
const length = (0, node_opcua_basic_types_1.decodeUInt32)(stream);
|
|
558
|
-
let i;
|
|
559
|
-
let element;
|
|
560
|
-
tracer.trace("start_array", "Variant", -1, cursorBefore, stream.length);
|
|
561
|
-
if (length === 0xffffffff) {
|
|
562
|
-
// empty array
|
|
563
|
-
tracer.trace("end_array", "Variant", stream.length);
|
|
564
|
-
return;
|
|
565
|
-
}
|
|
566
|
-
const n1 = Math.min(10, length);
|
|
567
|
-
// display a maximum of 10 elements
|
|
568
|
-
for (i = 0; i < n1; i++) {
|
|
569
|
-
tracer.trace("start_element", "", i);
|
|
570
|
-
cursorBefore = stream.length;
|
|
571
|
-
element = decode(stream);
|
|
572
|
-
// arr.push(element);
|
|
573
|
-
tracer.trace("member", "Variant", element, cursorBefore, stream.length, DataType_enum_1.DataType[dataType]);
|
|
574
|
-
tracer.trace("end_element", "", i);
|
|
575
|
-
}
|
|
576
|
-
// keep reading
|
|
577
|
-
if (length >= n1) {
|
|
578
|
-
for (i = n1; i < length; i++) {
|
|
579
|
-
decode(stream);
|
|
580
|
-
}
|
|
581
|
-
tracer.trace("start_element", "", n1);
|
|
582
|
-
tracer.trace("member", "Variant", "...", cursorBefore, stream.length, DataType_enum_1.DataType[dataType]);
|
|
583
|
-
tracer.trace("end_element", "", n1);
|
|
584
|
-
}
|
|
585
|
-
tracer.trace("end_array", "Variant", stream.length);
|
|
586
|
-
}
|
|
587
589
|
function decodeDimension(stream) {
|
|
588
590
|
return decodeGeneralArray(DataType_enum_1.DataType.UInt32, stream);
|
|
589
591
|
}
|
|
@@ -601,14 +603,15 @@ function coerceVariantType(dataType, value) {
|
|
|
601
603
|
if (value === undefined) {
|
|
602
604
|
value = null;
|
|
603
605
|
}
|
|
606
|
+
/* c8 ignore start */
|
|
604
607
|
if (isEnumerationItem(value)) {
|
|
605
608
|
// OPCUA Specification 1.0.3 5.8.2 encoding rules for various dataType:
|
|
606
609
|
// [...]Enumeration are always encoded as Int32 on the wire [...]
|
|
607
|
-
/* istanbul ignore next */
|
|
608
610
|
if (dataType !== DataType_enum_1.DataType.Int32 && dataType !== DataType_enum_1.DataType.ExtensionObject) {
|
|
609
611
|
throw new Error("expecting DataType.Int32 for enumeration values ;" + " got DataType." + dataType.toString() + " instead");
|
|
610
612
|
}
|
|
611
613
|
}
|
|
614
|
+
/* c8 ignore stop */
|
|
612
615
|
switch (dataType) {
|
|
613
616
|
case DataType_enum_1.DataType.Null:
|
|
614
617
|
value = null;
|
|
@@ -629,10 +632,11 @@ function coerceVariantType(dataType, value) {
|
|
|
629
632
|
case DataType_enum_1.DataType.UInt16:
|
|
630
633
|
(0, node_opcua_assert_1.assert)(value !== undefined);
|
|
631
634
|
value = parseInt(value, 10);
|
|
632
|
-
/*
|
|
635
|
+
/* c8 ignore start */
|
|
633
636
|
if (!isFinite(value)) {
|
|
634
637
|
throw new Error("expecting a number " + value);
|
|
635
638
|
}
|
|
639
|
+
/* c8 ignore stop */
|
|
636
640
|
break;
|
|
637
641
|
case DataType_enum_1.DataType.UInt64:
|
|
638
642
|
value = (0, node_opcua_basic_types_1.coerceUInt64)(value);
|
|
@@ -650,10 +654,11 @@ function coerceVariantType(dataType, value) {
|
|
|
650
654
|
break;
|
|
651
655
|
case DataType_enum_1.DataType.ByteString:
|
|
652
656
|
value = typeof value === "string" ? Buffer.from(value) : value;
|
|
653
|
-
|
|
657
|
+
/* c8 ignore start */
|
|
654
658
|
if (!(value === null || value instanceof Buffer)) {
|
|
655
659
|
throw new Error("ByteString should be null or a Buffer");
|
|
656
660
|
}
|
|
661
|
+
/* c8 ignore stop */
|
|
657
662
|
(0, node_opcua_assert_1.assert)(value === null || value instanceof Buffer);
|
|
658
663
|
break;
|
|
659
664
|
default:
|
|
@@ -738,7 +743,7 @@ function isValidArrayVariant(dataType, value) {
|
|
|
738
743
|
}
|
|
739
744
|
return true;
|
|
740
745
|
}
|
|
741
|
-
/*
|
|
746
|
+
/* c8 ignore start */
|
|
742
747
|
function isValidMatrixVariant(dataType, value, dimensions) {
|
|
743
748
|
if (!dimensions) {
|
|
744
749
|
return false;
|
|
@@ -748,6 +753,7 @@ function isValidMatrixVariant(dataType, value, dimensions) {
|
|
|
748
753
|
}
|
|
749
754
|
return true;
|
|
750
755
|
}
|
|
756
|
+
/* c8 ignore stop */
|
|
751
757
|
function isValidVariant(arrayType, dataType, value, dimensions) {
|
|
752
758
|
switch (arrayType) {
|
|
753
759
|
case VariantArrayType_enum_1.VariantArrayType.Scalar:
|
|
@@ -819,7 +825,7 @@ function __check_same_object(o1, o2) {
|
|
|
819
825
|
}
|
|
820
826
|
const keys1 = Object.keys(o1);
|
|
821
827
|
const keys2 = Object.keys(o2);
|
|
822
|
-
|
|
828
|
+
/* c8 ignore next */
|
|
823
829
|
if (keys1.length !== keys2.length) {
|
|
824
830
|
return false;
|
|
825
831
|
}
|
package/dist/variant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variant.js","sourceRoot":"","sources":["../source/variant.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"variant.js","sourceRoot":"","sources":["../source/variant.ts"],"names":[],"mappings":";;;AAyPA,sCAyBC;AAoHD,sCAIC;AAmWD,8CA6EC;AAqFD,wCAeC;AAED,8CAwCC;AA4FD,kCAqCC;AAzkCD;;GAEG;AACH,yDAA2C;AAC3C,yDAA2C;AAC3C,mEAkBgC;AAChC,iEAAqE;AACrE,2DAS4B;AAE5B,uDAAqD;AACrD,uDAAmD;AAGnD,mDAAiE;AACjE,mEAAyF;AAChF,iGAD8B,wCAAgB,OAC9B;AACzB,4BAA4B;AAE5B,MAAM,UAAU,GAAG,IAAA,kCAAe,EAAC,UAAU,CAAC,CAAC;AAE/C,MAAM,aAAa,GAAG,IAAA,wCAAmB,EAAC;IACtC,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,kCAAa,CAAC,KAAK;IAC7B,MAAM,EAAE;QACJ;YACI,YAAY,EAAE,wBAAQ,CAAC,IAAI;YAC3B,aAAa,EAAE,mBAAmB;YAClC,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,UAAU;SACnB;QACD;YACI,YAAY,EAAE,wCAAgB,CAAC,MAAM;YACrC,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,WAAW;SACpB;QACD;YACI,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,OAAO;SAChB;QACD;YACI,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,uBAAuB;YACtC,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,YAAY;SACrB;KACJ;IACD,IAAI,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,WAAqC;IACzD,MAAM,KAAK,GAAG,WAAW,YAAY,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC;AACjB,CAAC;AAgBD,MAAa,OAAQ,SAAQ,iCAAY;IAC9B,MAAM,CAAC,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAExC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;IAC/B,MAAM,CAAC,sBAAsB,GAAG,GAAY,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,wBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,QAAQ,CAAW;IACnB,SAAS,CAAmB;IAC5B,KAAK,CAAM;IACX,UAAU,CAAkB;IAEnC,YAAY,OAA+B;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,wBAAQ,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,GAAG,wBAAQ,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;QAEzC,MAAM,MAAM,GAAG,aAAa,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAA,qCAAgB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;QAE9C,IAAI,IAAI,CAAC,QAAQ,KAAK,wBAAQ,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;gBAC7C,qBAAqB;gBACrB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,iCAAY,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,KAAK,CACX,gLAAgL,CACnL,CAAC;gBACN,CAAC;gBACD,oBAAoB;YACxB,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,qBAAqB;oBACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACzB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,iCAAY,CAAC,EAAE,CAAC;4BACpC,MAAM,IAAI,KAAK,CACX,sMAAsM,CACzM,CAAC;wBACN,CAAC;oBACL,CAAC;oBACD,oBAAoB;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACM,MAAM,CAAC,MAA0B;QACpC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,MAAoB;QAC9B,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEM,WAAW,CAAC,MAAoB,EAAE,OAA2B;QAChE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,QAAQ;QACX,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACM,OAAO;QACV,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtF,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;;AA9EL,0BA+EC;AAED,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;AAIzC,SAAS,eAAe,CAAC,IAAa,EAAE,OAAa;IACjD,SAAS,QAAQ,CAAC,KAAU;QACxB,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,wBAAQ,CAAC,UAAU;gBACpB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3D,KAAK,wBAAQ,CAAC,MAAM;gBAChB,OAAO,KAAK,YAAY,0BAAM,CAAC,CAAC,CAAE,KAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5G,KAAK,wBAAQ,CAAC,OAAO;gBACjB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5B,KAAK,wBAAQ,CAAC,QAAQ;gBAClB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3F;gBACI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,CAAC;IACL,CAAC;IAED,SAAS,CAAC,CAAC,KAAU;QACjB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,GAAG,wCAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,GAAG,GAAG,wBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IAC5C,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QACjG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,IAAI,QAAQ,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,IAAA,0BAAM,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,CAAC;YAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACjF,CAAC;IACL,CAAC;IACD,OAAO,UAAU,GAAG,IAAI,GAAG,GAAG,CAAC;AACnC,CAAC;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAG,IAAI,CAAC;AACvC;;GAEG;AACU,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAClD;;GAEG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,wBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7D;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAmC,EAAE,MAA0B;IACzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAEpC,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QAChG,YAAY,IAAI,0BAAkB,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QACtE,IAAA,0BAAM,EAAC,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QACvC,YAAY,IAAI,qCAA6B,CAAC;IAClD,CAAC;IACD,IAAA,oCAAW,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAElC,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QAChG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACJ,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,wBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,qCAA6B,CAAC,KAAK,qCAA6B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACzG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAED,qBAAqB;AACrB,SAAS,wBAAwB,CAAC,MAAoB,EAAE,MAAW,EAAE,MAAW,EAAE,QAAkB;IAChG,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC,MAAM,CAAC,CAAC;IAEpC,IAAI,CAAC,CAAC;IACN,IAAI,OAAO,CAAC;IACZ,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACxB,cAAc;QACd,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO;IACX,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEhC,mCAAmC;IACnC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,qBAAqB;QACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5F,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,eAAe;IACf,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACf,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,MAAoB,EAAE,OAA2B;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,MAAM,YAAY,GAAG,IAAA,oCAAW,EAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,CAAC,YAAY,GAAG,0BAAkB,CAAC,KAAK,0BAAkB,CAAC;IAC3E,MAAM,YAAY,GAAG,CAAC,YAAY,GAAG,qCAA6B,CAAC,KAAK,qCAA6B,CAAC;IAEtG,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,GAAG,yBAAiB,CAAa,CAAC;IAE/D,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,wBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/D,oBAAoB;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,wBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IAEnC,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,wCAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAgB,CAAC,KAAK,CAAC;QACjF,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,kBAAkB;IAClB,UAAU;IACV,iCAAiC;IACjC,0FAA0F;IAC1F,0DAA0D;IAC1D,uEAAuE;IACvE,qFAAqF;IACrF,uCAAuC;IACvC,IAAI,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC;AACD,oBAAoB;AACpB,SAAS,qBAAqB,CAAC,IAAa,EAAE,MAAoB;IAC9D,MAAM,YAAY,GAAG,IAAA,oCAAW,EAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAY,CAAC,YAAY,GAAG,0BAAkB,CAAC,KAAK,0BAAkB,CAAC;IAEpF,MAAM,YAAY,GAAY,CAAC,YAAY,GAAG,qCAA6B,CAAC,KAAK,qCAA6B,CAAC;IAE/G,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,GAAG,yBAAiB,CAAa,CAAC;IAE/D,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,wCAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAgB,CAAC,KAAK,CAAC;QACjF,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,qBAAqB;QACrB,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACrF,CAAC;QACD,oBAAoB;IACxB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAoB,EAAE,KAAe;IAC/D,KAAK,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,OAAiC;IACpD,IAAI,sBAAsB,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;IAE7D,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAoB;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,wBAAQ,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACvC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;wBACnC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;4BACrB,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC;wBACD,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,wBAAQ,CAAC,IAAI,CAAC;IAErD,6BAA6B;IAC7B,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,qBAAqB;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,8DAA8D,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvG,CAAC;QACD,oBAAoB;QACpB,OAAO,CAAC,QAAQ,GAAG,wBAAQ,CAAC,CAAC,CAAC,IAA6B,CAAC,CAAC;IACjE,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,EAAE,GAAkC,wCAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtF,qBAAqB;QACrB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,oBAAoB;QACpB,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,sBAAsB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,iGAAiG;QAEjG,qBAAqB;QACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,KAAK,EAAE,CAAC;YAC9E,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CACX,kDAAkD;gBAClD,sEAAsE,CACzE,CAAC;QACN,CAAC;QACD,oBAAoB;aACf,CAAC;YACF,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,KAAK,CAAC;YAC3C,sBAAsB,GAAG,KAAK,CAAC;QACnC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3E,IAAA,0BAAM,EAAC,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,CAAC,CAAC;QACtG,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACnE,IAAA,0BAAM,EAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,qBAAqB;aAChB,CAAC;YACF,IAAA,0BAAM,EAAC,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAEpC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEpE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9F,MAAM,IAAI,KAAK,CACX,6DAA6D;oBAC7D,OAAO,CAAC,KAAK,CAAC,MAAM;oBACpB,IAAI;oBACJ,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;oBACrC,MAAM;oBACN,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CACrC,CAAC;YACN,CAAC;QACL,CAAC;QACD,oBAAoB;IACxB,CAAC;SAAM,CAAC;QACJ,IAAA,0BAAM,EAAC,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACzF,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,SAAS;QACT,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnE,qBAAqB;QACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CACX,6BAA6B;gBAC7B,wCAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;gBACnC,cAAc;gBACd,wBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1B,SAAS;gBACT,OAAO,CAAC,KAAK;gBACb,sBAAsB;gBACtB,OAAO,OAAO,CAAC,KAAK;gBACpB,IAAI,CACP,CAAC;QACN,CAAC;QACD,oBAAoB;IACxB,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,IAAA,0BAAM,EAAC,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,oDAAoD,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,OAA0B,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC7C,oBAAoB;IACpB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACnC,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAQ,CAAC,QAAQ,CAAC,CAAC;IACtF,qBAAqB;IACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;IACxD,qBAAqB;IACrB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,gBAAgB,CAAC,CAAC;IACpF,CAAC;IACD,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACnC,MAAM,gBAAgB,GAAG,wBAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;IACxD,qBAAqB;IACrB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,gBAAgB,CAAC,CAAC;IACzF,CAAC;IACD,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,CAAC;AAoB5B,SAAS,SAAS,CAAC,QAAkB,EAAE,oBAAqD,EAAE,KAAU;IACpG,iBAAiB;IACjB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,oBAAoB,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAChE,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY;QACrE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvB,MAAM,MAAM,GAAQ,oBAAoB,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,iBAAiB;IACjB,IAAI,oBAAoB,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACnD,UAAU,CAAC,iCAAiC,GAAG,wBAAQ,CAAC,QAAQ,CAAC,GAAG,kDAAkD,CAAC,CAAC;QACxH,UAAU,CACN,0DAA0D,GAAG,2DAA2D,CAC3H,CAAC;QACF,UAAU,CACN,oDAAoD,GAAG,eAAe,EACtE,oBAAoB,CAAC,WAAW,CAAC,IAAI,EACrC,UAAU,CACb,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAQD,MAAM,iBAAiB,GAAsC,EAAE,CAAC;AAEhE,SAAS,UAAU,CAAC,QAAkB;IAClC,OAAO,iBAAiB,CAAC,wBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB,EAAE,KAAU;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACJ,OAAO,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,oBAA8C,EAAE,MAA0B,EAAE,KAAU;IAC5G,IAAA,0BAAM,EAAC,KAAK,YAAY,oBAAoB,CAAC,CAAC;IAC9C,IAAA,0BAAM,EAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,CAAC;IAC5C,IAAA,qCAAY,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB,EAAE,MAA0B,EAAE,KAAmB;IAC3F,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,IAAA,0BAAM,EAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACvB,IAAA,qCAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;IACX,CAAC;IACD,IAAA,qCAAY,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB,EAAE,MAA0B,EAAE,KAAU;IAClF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,oBAA8C,EAAE,MAAoB;IAC1F,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC,MAAM,CAAC,CAAC;IAEpC,oBAAoB;IACpB,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACX,uBAAuB,OAAO,CAAC,mBAAmB,gEAAgE,MAAM,EAAE,CAC7H,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,GAAG,oBAAoB,CAAC,iBAAiB,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB,EAAE,MAAoB;IAChE,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC,MAAM,CAAC,CAAC;IAEpC,oBAAoB;IACpB,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,cAAc,kDAAkD,MAAM,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB,EAAE,MAAoB;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB,EAAE,qBAA0B;IAC3E,iBAAiB,CAAC,wBAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG;QACpC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC;QAC7D,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAC1D,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;KAC7D,CAAC;AACN,CAAC;AAED,uBAAuB,CAAC,wBAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtD,uBAAuB,CAAC,wBAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACvD,uBAAuB,CAAC,wBAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACnD,uBAAuB,CAAC,wBAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACnD,uBAAuB,CAAC,wBAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpD,uBAAuB,CAAC,wBAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpD,uBAAuB,CAAC,wBAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACtD,uBAAuB,CAAC,wBAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,SAAS,eAAe,CAAC,MAAoB;IACzC,OAAO,kBAAkB,CAAC,wBAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,UAAoB,EAAE,MAA0B;IACrE,OAAO,kBAAkB,CAAC,wBAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAU;IACjC,OAAO,CACH,KAAK,YAAY,MAAM;QACvB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAClD,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,CAC7C,CAAC;AACN,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAkB,EAAE,KAAsB;IACxE,sEAAsE;IACtE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,KAAK,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,qBAAqB;IACrB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,uEAAuE;QACvE,iEAAiE;QAEjE,IAAI,QAAQ,KAAK,wBAAQ,CAAC,KAAK,IAAI,QAAQ,KAAK,wBAAQ,CAAC,eAAe,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACX,mDAAmD,GAAG,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,UAAU,CAC5G,CAAC;QACN,CAAC;IACL,CAAC;IACD,oBAAoB;IAEpB,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,wBAAQ,CAAC,IAAI;YACd,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QAEV,KAAK,wBAAQ,CAAC,aAAa;YACvB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,qCAAa,CAAC,MAAM,EAAE,CAAC;gBACnE,KAAK,GAAG,IAAI,qCAAa,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,MAAM;QAEV,KAAK,wBAAQ,CAAC,aAAa;YACvB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,qCAAa,CAAC,MAAM,EAAE,CAAC;gBACnE,KAAK,GAAG,IAAI,qCAAa,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,MAAM;QACV,KAAK,wBAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,wBAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,wBAAQ,CAAC,MAAM,CAAC;QACrB,KAAK,wBAAQ,CAAC,MAAM;YAChB,IAAA,0BAAM,EAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC5B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,qBAAqB;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,oBAAoB;YACpB,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,KAAK,GAAG,IAAA,qCAAY,EAAC,KAAK,CAAC,CAAC;YAC5B,MAAM;QACV,KAAK,wBAAQ,CAAC,KAAK;YACf,KAAK,GAAG,IAAA,oCAAW,EAAC,KAAK,CAAC,CAAC;YAC3B,MAAM;QACV,KAAK,wBAAQ,CAAC,eAAe;YACzB,MAAM;QACV,KAAK,wBAAQ,CAAC,QAAQ;YAClB,IAAA,0BAAM,EAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,IAAA,0BAAM,EAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;YACpD,MAAM;QACV,KAAK,wBAAQ,CAAC,UAAU;YACpB,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE/D,qBAAqB;YACrB,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D,CAAC;YACD,oBAAoB;YACpB,IAAA,0BAAM,EAAC,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,MAAM,CAAC,CAAC;YAClD,MAAM;QACV;YACI,IAAA,0BAAM,EAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACxE,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,MAAM;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB,EAAE,KAAU;IACxD,IAAA,0BAAM,EACF,KAAK,KAAK,IAAI;QACd,wBAAQ,CAAC,KAAK,KAAK,QAAQ;QAC3B,wBAAQ,CAAC,UAAU,KAAK,QAAQ;QAChC,wBAAQ,CAAC,MAAM,KAAK,QAAQ;QAC5B,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAC5B,CAAC;IACF,IAAA,0BAAM,EAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC;IACzD,IAAA,0BAAM,EAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC;IAC1D,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,wBAAQ,CAAC,MAAM;YAChB,OAAO,IAAA,sCAAa,EAAC,KAAK,CAAC,CAAC;QAChC,KAAK,wBAAQ,CAAC,MAAM;YAChB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,oCAAiB,EAAC,KAAK,CAAC,CAAC;QACjE,KAAK,wBAAQ,CAAC,KAAK;YACf,OAAO,IAAA,qCAAY,EAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,wBAAQ,CAAC,MAAM;YAChB,OAAO,IAAA,sCAAa,EAAC,KAAK,CAAC,CAAC;QAChC,KAAK,wBAAQ,CAAC,MAAM;YAChB,OAAO,IAAA,sCAAa,EAAC,KAAK,CAAC,CAAC;QAChC,KAAK,wBAAQ,CAAC,KAAK;YACf,OAAO,IAAA,qCAAY,EAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,wBAAQ,CAAC,MAAM;YAChB,OAAO,IAAA,sCAAa,EAAC,KAAK,CAAC,CAAC;QAChC,KAAK,wBAAQ,CAAC,KAAK;YACf,OAAO,IAAA,qCAAY,EAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,wBAAQ,CAAC,IAAI;YACd,OAAO,IAAA,qCAAY,EAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,wBAAQ,CAAC,KAAK;YACf,OAAO,IAAA,oCAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,wBAAQ,CAAC,OAAO;YACjB,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAC;QACjC,KAAK,wBAAQ,CAAC,UAAU;YACpB,OAAO,IAAA,0CAAiB,EAAC,KAAK,CAAC,CAAC;QACpC;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB,EAAE,KAAU;IACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,KAAK,wBAAQ,CAAC,KAAK,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,MAAM,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,KAAK,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,KAAK,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,KAAK,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,MAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,wBAAQ,CAAC,MAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,oDAAoD;IACpD,IAAA,0BAAM,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,qBAAqB;AACrB,SAAS,oBAAoB,CAAC,QAAkB,EAAE,KAAU,EAAE,UAA2B;IACrF,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,oBAAoB;AAEpB,SAAgB,cAAc,CAC1B,SAA2B,EAC3B,QAAkB,EAClB,KAAc,EACd,UAA4B;IAE5B,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,wCAAgB,CAAC,MAAM;YACxB,OAAO,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjD,KAAK,wCAAgB,CAAC,KAAK;YACvB,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD;YACI,IAAA,0BAAM,EAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAW,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAC7B,QAAkB,EAClB,UAAkB,EAClB,YAAqB;IAErB,IAAI,KAAK,CAAC;IACV,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,wBAAQ,CAAC,KAAK;YACf,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM;QACV,KAAK,wBAAQ,CAAC,KAAK;YACf,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM;QACV,KAAK,wBAAQ,CAAC,MAAM;YAChB,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM;QACV,KAAK,wBAAQ,CAAC,KAAK;YACf,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM;QACV,KAAK,wBAAQ,CAAC,IAAI;YACd,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM;QACV,KAAK,wBAAQ,CAAC,KAAK;YACf,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM;QACV;YACI,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,4DAA4D;AAC5D,MAAM,cAAc,GAChB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;AAE9H,SAAS,MAAM,CAAC,CAAM;IAClB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,mBAAmB,CAAC,EAAO,EAAE,EAAO;IACzC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,EAAE,EAAE,CAAC;QACT,KAAK,gBAAgB;YACjB,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,oBAAoB;YACpB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,KAAK,wBAAwB,CAAC;QAC9B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,4BAA4B,CAAC;QAElC,KAAK,uBAAuB,CAAC;QAC7B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAChE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,iBAAiB;YAClB,OAAO,EAAE,KAAK,EAAE,CAAC;QACrB,KAAK,eAAe;YAChB,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACxC;YACI,OAAO,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAS,EAAE,IAAS;IAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,mDAAmD;QACnD,4FAA4F;QAC5F,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC;QACtE,uBAAuB;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAW,EAAE,EAAW;IAChD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,QAAQ,KAAK,wBAAQ,CAAC,eAAe,EAAE,CAAC;YAC3C,gCAAgC;YAChC,OAAO,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,EAAE,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,4GAA4G;AAC5G,IAAA,kDAA6B,EAAC,OAAO,CAAC,CAAC;AAgBvC,IAAA,iCAAY,EAAC;IACT,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,EAAE;IAEX,MAAM,EAAE,cAAc;IAEtB,MAAM,EAAE,aAAa;IAErB,MAAM,EAAE,aAAa;CACxB,CAAC,CAAC"}
|
|
@@ -33,15 +33,18 @@ function verifyRankAndDimensions(options) {
|
|
|
33
33
|
if (options.valueRank > 0 && (!options.arrayDimensions || options.arrayDimensions.length === 0)) {
|
|
34
34
|
options.arrayDimensions = new Array(options.valueRank).fill(0);
|
|
35
35
|
}
|
|
36
|
-
//
|
|
36
|
+
// c8 ignore start
|
|
37
37
|
if (!options.arrayDimensions && options.valueRank > 0) {
|
|
38
38
|
throw new Error("[CONFORMANCE] arrayDimension must be specified if valueRank >0 " + options.valueRank);
|
|
39
39
|
}
|
|
40
|
+
// c8 ignore stop
|
|
41
|
+
// c8 ignore start
|
|
40
42
|
if (options.valueRank > 0 && options.arrayDimensions.length !== options.valueRank) {
|
|
41
43
|
throw new Error("[CONFORMANCE] when valueRank> 0, arrayDimensions must have valueRank elements, this.valueRank =" +
|
|
42
44
|
options.valueRank +
|
|
43
45
|
" whereas arrayDimensions.length =" +
|
|
44
46
|
options.arrayDimensions.length);
|
|
45
47
|
}
|
|
48
|
+
// c8 ignore stop
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=verify_rank_and_dimension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify_rank_and_dimension.js","sourceRoot":"","sources":["../source/verify_rank_and_dimension.ts"],"names":[],"mappings":";;;;;AAYA,
|
|
1
|
+
{"version":3,"file":"verify_rank_and_dimension.js","sourceRoot":"","sources":["../source/verify_rank_and_dimension.ts"],"names":[],"mappings":";;;;;AAYA,0DAqCC;AAjDD,0EAAuC;AAEvC;;;;;;;;GAQG;AAEH,SAAgB,uBAAuB,CAAC,OAAkE;IACtG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IAC1D,IAAA,2BAAM,EAAC,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAEnF,wEAAwE;IACxE,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS;IAC5F,IAAA,2BAAM,EAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,iDAAiD;IACjD,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,eAAe,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,kBAAkB;IAClB,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kEAAkE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5G,CAAC;IACD,iBAAiB;IAEjB,kBAAkB;IAClB,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,eAAgB,CAAC,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACX,iGAAiG;YACjG,OAAO,CAAC,SAAS;YACjB,oCAAoC;YACpC,OAAO,CAAC,eAAgB,CAAC,MAAM,CAClC,CAAC;IACN,CAAC;IACD,iBAAiB;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-variant",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.164.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module variant",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -12,26 +12,26 @@
|
|
|
12
12
|
"clean": "npx rimraf -g node_modules dist *.tsbuildinfo"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"node-opcua-assert": "2.
|
|
16
|
-
"node-opcua-basic-types": "2.
|
|
17
|
-
"node-opcua-binary-stream": "2.
|
|
18
|
-
"node-opcua-data-model": "2.
|
|
19
|
-
"node-opcua-debug": "2.
|
|
20
|
-
"node-opcua-enum": "2.
|
|
21
|
-
"node-opcua-factory": "2.
|
|
22
|
-
"node-opcua-nodeid": "2.
|
|
23
|
-
"node-opcua-utils": "2.
|
|
15
|
+
"node-opcua-assert": "2.164.0",
|
|
16
|
+
"node-opcua-basic-types": "2.164.0",
|
|
17
|
+
"node-opcua-binary-stream": "2.164.0",
|
|
18
|
+
"node-opcua-data-model": "2.164.0",
|
|
19
|
+
"node-opcua-debug": "2.164.0",
|
|
20
|
+
"node-opcua-enum": "2.164.0",
|
|
21
|
+
"node-opcua-factory": "2.164.0",
|
|
22
|
+
"node-opcua-nodeid": "2.164.0",
|
|
23
|
+
"node-opcua-utils": "2.164.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@types/lodash": "4.17.
|
|
26
|
+
"@types/lodash": "4.17.24",
|
|
27
27
|
"@types/underscore": "1.13.0",
|
|
28
28
|
"lodash": "4.17.23",
|
|
29
|
-
"node-opcua-benchmarker": "2.
|
|
30
|
-
"node-opcua-extension-object": "2.
|
|
31
|
-
"node-opcua-numeric-range": "2.
|
|
32
|
-
"node-opcua-packet-analyzer": "2.
|
|
33
|
-
"node-opcua-status-code": "2.
|
|
34
|
-
"underscore": "^1.13.
|
|
29
|
+
"node-opcua-benchmarker": "2.164.0",
|
|
30
|
+
"node-opcua-extension-object": "2.164.0",
|
|
31
|
+
"node-opcua-numeric-range": "2.164.0",
|
|
32
|
+
"node-opcua-packet-analyzer": "2.164.0",
|
|
33
|
+
"node-opcua-status-code": "2.164.0",
|
|
34
|
+
"underscore": "^1.13.8"
|
|
35
35
|
},
|
|
36
36
|
"author": "Etienne Rossignon",
|
|
37
37
|
"license": "MIT",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"internet of things"
|
|
49
49
|
],
|
|
50
50
|
"homepage": "http://node-opcua.github.io/",
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "eb76d34b885c7584785d8eff69ada66f95b55c2e",
|
|
52
52
|
"files": [
|
|
53
53
|
"dist",
|
|
54
54
|
"source"
|
package/source/variant.ts
CHANGED
|
@@ -130,22 +130,24 @@ export class Variant extends BaseUAObject {
|
|
|
130
130
|
|
|
131
131
|
if (this.dataType === DataType.ExtensionObject) {
|
|
132
132
|
if (this.arrayType === VariantArrayType.Scalar) {
|
|
133
|
-
/*
|
|
133
|
+
/* c8 ignore start */
|
|
134
134
|
if (this.value && !(this.value instanceof BaseUAObject)) {
|
|
135
135
|
throw new Error(
|
|
136
136
|
`A variant with DataType.ExtensionObject must have a ExtensionObject value.\nMake sure that you specify a valid ExtensionObject to the value options in the Variant Constructor`
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
|
+
/* c8 ignore stop */
|
|
139
140
|
} else {
|
|
140
141
|
if (this.value) {
|
|
142
|
+
/* c8 ignore start */
|
|
141
143
|
for (const e of this.value) {
|
|
142
|
-
/* istanbul ignore next */
|
|
143
144
|
if (e && !(e instanceof BaseUAObject)) {
|
|
144
145
|
throw new Error(
|
|
145
146
|
"A variant with DataType.ExtensionObject must have a ExtensionObject value\nMake sure that you specify a valid ExtensionObject for all element of the value array passed to the Variant Constructor`"
|
|
146
147
|
);
|
|
147
148
|
}
|
|
148
149
|
}
|
|
150
|
+
/* c8 ignore stop */
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
}
|
|
@@ -272,11 +274,43 @@ export function encodeVariant(variant: Variant | undefined | null, stream: Outpu
|
|
|
272
274
|
}
|
|
273
275
|
}
|
|
274
276
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
277
|
+
/* c8 ignore start */
|
|
278
|
+
function _decodeVariantArrayDebug(stream: BinaryStream, decode: any, tracer: any, dataType: DataType) {
|
|
279
|
+
let cursorBefore = stream.length;
|
|
280
|
+
const length = decodeUInt32(stream);
|
|
281
|
+
|
|
282
|
+
let i;
|
|
283
|
+
let element;
|
|
284
|
+
tracer.trace("start_array", "Variant", -1, cursorBefore, stream.length);
|
|
285
|
+
if (length === 0xffffffff) {
|
|
286
|
+
// empty array
|
|
287
|
+
tracer.trace("end_array", "Variant", stream.length);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const n1 = Math.min(10, length);
|
|
292
|
+
|
|
293
|
+
// display a maximum of 10 elements
|
|
294
|
+
for (i = 0; i < n1; i++) {
|
|
295
|
+
tracer.trace("start_element", "", i);
|
|
296
|
+
cursorBefore = stream.length;
|
|
297
|
+
element = decode(stream);
|
|
298
|
+
// arr.push(element);
|
|
299
|
+
tracer.trace("member", "Variant", element, cursorBefore, stream.length, DataType[dataType]);
|
|
300
|
+
tracer.trace("end_element", "", i);
|
|
301
|
+
}
|
|
302
|
+
// keep reading
|
|
303
|
+
if (length >= n1) {
|
|
304
|
+
for (i = n1; i < length; i++) {
|
|
305
|
+
decode(stream);
|
|
306
|
+
}
|
|
307
|
+
tracer.trace("start_element", "", n1);
|
|
308
|
+
tracer.trace("member", "Variant", "...", cursorBefore, stream.length, DataType[dataType]);
|
|
309
|
+
tracer.trace("end_element", "", n1);
|
|
310
|
+
}
|
|
311
|
+
tracer.trace("end_array", "Variant", stream.length);
|
|
312
|
+
}
|
|
313
|
+
|
|
280
314
|
function decodeDebugVariant(self: Variant, stream: BinaryStream, options: DecodeDebugOptions): void {
|
|
281
315
|
const tracer = options.tracer;
|
|
282
316
|
|
|
@@ -293,7 +327,7 @@ function decodeDebugVariant(self: Variant, stream: BinaryStream, options: Decode
|
|
|
293
327
|
|
|
294
328
|
const decode = findBuiltInType(DataType[self.dataType]).decode;
|
|
295
329
|
|
|
296
|
-
/*
|
|
330
|
+
/* c8 ignore next */
|
|
297
331
|
if (!decode) {
|
|
298
332
|
throw new Error("Variant.decode : cannot find decoder for type " + DataType[self.dataType]);
|
|
299
333
|
}
|
|
@@ -322,7 +356,7 @@ function decodeDebugVariant(self: Variant, stream: BinaryStream, options: Decode
|
|
|
322
356
|
const verification = calculate_product(self.dimensions);
|
|
323
357
|
}
|
|
324
358
|
}
|
|
325
|
-
|
|
359
|
+
/* c8 ignore stop */
|
|
326
360
|
function internalDecodeVariant(self: Variant, stream: BinaryStream) {
|
|
327
361
|
const encodingByte = decodeUInt8(stream);
|
|
328
362
|
|
|
@@ -343,10 +377,11 @@ function internalDecodeVariant(self: Variant, stream: BinaryStream) {
|
|
|
343
377
|
if (hasDimension) {
|
|
344
378
|
self.dimensions = decodeDimension(stream);
|
|
345
379
|
const verification = calculate_product(self.dimensions);
|
|
346
|
-
/*
|
|
380
|
+
/* c8 ignore start */
|
|
347
381
|
if (verification !== self.value.length) {
|
|
348
382
|
throw new Error("internalDecodeVariant: BadDecodingError: inconsistent matrix ");
|
|
349
383
|
}
|
|
384
|
+
/* c8 ignore stop */
|
|
350
385
|
}
|
|
351
386
|
}
|
|
352
387
|
|
|
@@ -395,34 +430,38 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
395
430
|
// dataType could be a string
|
|
396
431
|
if (typeof options.dataType === "string") {
|
|
397
432
|
const d = findBuiltInType(options.dataType);
|
|
398
|
-
/*
|
|
433
|
+
/* c8 ignore start */
|
|
399
434
|
if (!d) {
|
|
400
435
|
throw new Error("Cannot find Built-In data type or any DataType resolving to " + options.dataType);
|
|
401
436
|
}
|
|
437
|
+
/* c8 ignore stop */
|
|
402
438
|
options.dataType = DataType[d.name as keyof typeof DataType];
|
|
403
439
|
}
|
|
404
440
|
|
|
405
441
|
// array type could be a string
|
|
406
442
|
if (typeof options.arrayType === "string") {
|
|
407
443
|
const at: VariantArrayType | undefined = (VariantArrayType as any)[options.arrayType];
|
|
408
|
-
/*
|
|
444
|
+
/* c8 ignore start */
|
|
409
445
|
if (at === undefined) {
|
|
410
446
|
throw new Error("ArrayType: invalid " + options.arrayType);
|
|
411
447
|
}
|
|
448
|
+
/* c8 ignore stop */
|
|
412
449
|
options.arrayType = at;
|
|
413
450
|
}
|
|
414
451
|
|
|
415
452
|
if (isArrayTypeUnspecified && Array.isArray(options.value)) {
|
|
416
453
|
// when using UInt64 ou Int64 arrayType must be specified , as automatic detection cannot be made
|
|
417
454
|
|
|
418
|
-
/*
|
|
455
|
+
/* c8 ignore start */
|
|
419
456
|
if (options.dataType === DataType.UInt64 || options.dataType === DataType.Int64) {
|
|
420
457
|
// we do nothing here ....
|
|
421
458
|
throw new Error(
|
|
422
459
|
"Variant#constructor : when using UInt64 ou Int64" +
|
|
423
460
|
" arrayType must be specified , as automatic detection cannot be made"
|
|
424
461
|
);
|
|
425
|
-
}
|
|
462
|
+
}
|
|
463
|
+
/* c8 ignore stop */
|
|
464
|
+
else {
|
|
426
465
|
options.arrayType = VariantArrayType.Array;
|
|
427
466
|
isArrayTypeUnspecified = false;
|
|
428
467
|
}
|
|
@@ -430,22 +469,21 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
430
469
|
|
|
431
470
|
if (options.arrayType !== VariantArrayType.Scalar && !isArrayTypeUnspecified) {
|
|
432
471
|
assert(options.arrayType === VariantArrayType.Array || options.arrayType === VariantArrayType.Matrix);
|
|
433
|
-
/* istanbul ignore else */
|
|
434
472
|
if (options.arrayType === VariantArrayType.Array) {
|
|
435
473
|
const value1 = coerceVariantArray(options.dataType, options.value);
|
|
436
474
|
assert(value1 === null || value1 !== options.value);
|
|
437
475
|
options.value = value1;
|
|
438
|
-
}
|
|
476
|
+
}
|
|
477
|
+
/* c8 ignore start */
|
|
478
|
+
else {
|
|
439
479
|
assert(options.arrayType === VariantArrayType.Matrix);
|
|
440
480
|
options.value = options.value || [];
|
|
441
481
|
|
|
442
482
|
options.value = coerceVariantArray(options.dataType, options.value);
|
|
443
483
|
|
|
444
|
-
/* istanbul ignore next */
|
|
445
484
|
if (!options.dimensions) {
|
|
446
485
|
throw new Error("Matrix Variant : missing dimensions");
|
|
447
486
|
}
|
|
448
|
-
/* istanbul ignore next */
|
|
449
487
|
if (options.value.length != 0 && options.value.length !== calculate_product(options.dimensions)) {
|
|
450
488
|
throw new Error(
|
|
451
489
|
"Matrix Variant : invalid value size = options.value.length " +
|
|
@@ -457,6 +495,7 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
457
495
|
);
|
|
458
496
|
}
|
|
459
497
|
}
|
|
498
|
+
/* c8 ignore stop */
|
|
460
499
|
} else {
|
|
461
500
|
assert(options.arrayType === VariantArrayType.Scalar || options.arrayType === undefined);
|
|
462
501
|
options.arrayType = VariantArrayType.Scalar;
|
|
@@ -464,7 +503,7 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
464
503
|
// scalar
|
|
465
504
|
options.value = coerceVariantType(options.dataType, options.value);
|
|
466
505
|
|
|
467
|
-
/*
|
|
506
|
+
/* c8 ignore start */
|
|
468
507
|
if (!isValidVariant(options.arrayType, options.dataType, options.value, null)) {
|
|
469
508
|
throw new Error(
|
|
470
509
|
"Invalid variant arrayType: " +
|
|
@@ -478,6 +517,7 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
478
517
|
" )"
|
|
479
518
|
);
|
|
480
519
|
}
|
|
520
|
+
/* c8 ignore stop */
|
|
481
521
|
}
|
|
482
522
|
if (options.dimensions) {
|
|
483
523
|
assert(options.arrayType === VariantArrayType.Matrix, "dimension can only provided if variant is a matrix");
|
|
@@ -486,7 +526,7 @@ function constructHook(options: VariantOptions | Variant): VariantOptions2 {
|
|
|
486
526
|
}
|
|
487
527
|
|
|
488
528
|
function calculate_product(array: number[] | null): number {
|
|
489
|
-
/*
|
|
529
|
+
/* c8 ignore next */
|
|
490
530
|
if (!array || array.length === 0) {
|
|
491
531
|
return 0;
|
|
492
532
|
}
|
|
@@ -495,25 +535,28 @@ function calculate_product(array: number[] | null): number {
|
|
|
495
535
|
|
|
496
536
|
function get_encoder(dataType: DataType) {
|
|
497
537
|
const dataTypeAsString = typeof dataType === "string" ? dataType : DataType[dataType];
|
|
498
|
-
/*
|
|
538
|
+
/* c8 ignore start */
|
|
499
539
|
if (!dataTypeAsString) {
|
|
500
540
|
throw new Error("invalid dataType " + dataType);
|
|
501
541
|
}
|
|
542
|
+
/* c8 ignore stop */
|
|
502
543
|
const encode = findBuiltInType(dataTypeAsString).encode;
|
|
503
|
-
/*
|
|
544
|
+
/* c8 ignore start */
|
|
504
545
|
if (!encode) {
|
|
505
546
|
throw new Error("Cannot find encode function for dataType " + dataTypeAsString);
|
|
506
547
|
}
|
|
548
|
+
/* c8 ignore stop */
|
|
507
549
|
return encode;
|
|
508
550
|
}
|
|
509
551
|
|
|
510
552
|
function get_decoder(dataType: DataType) {
|
|
511
553
|
const dataTypeAsString = DataType[dataType];
|
|
512
554
|
const decode = findBuiltInType(dataTypeAsString).decode;
|
|
513
|
-
/*
|
|
555
|
+
/* c8 ignore start */
|
|
514
556
|
if (!decode) {
|
|
515
557
|
throw new Error("Variant.decode : cannot find decoder for type " + dataTypeAsString);
|
|
516
558
|
}
|
|
559
|
+
/* c8 ignore stop */
|
|
517
560
|
return decode;
|
|
518
561
|
}
|
|
519
562
|
|
|
@@ -538,22 +581,17 @@ interface BufferedArrayConstructor {
|
|
|
538
581
|
}
|
|
539
582
|
|
|
540
583
|
function convertTo(dataType: DataType, arrayTypeConstructor: BufferedArrayConstructor | null, value: any) {
|
|
541
|
-
//
|
|
584
|
+
// c8 ignore next
|
|
542
585
|
if (value === undefined || value === null) {
|
|
543
586
|
return null;
|
|
544
587
|
}
|
|
545
588
|
|
|
546
589
|
if (arrayTypeConstructor && value instanceof arrayTypeConstructor) {
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
/* istanbul ignore if */
|
|
550
|
-
if (newArray instanceof Buffer) {
|
|
551
|
-
// required for nodejs 4.x
|
|
552
|
-
value.copy(newArray);
|
|
553
|
-
} else {
|
|
554
|
-
newArray.set(value);
|
|
590
|
+
if (value instanceof Buffer) {
|
|
591
|
+
return Buffer.from(value); // preserve Buffer prototype
|
|
555
592
|
}
|
|
556
|
-
|
|
593
|
+
const newArray = new arrayTypeConstructor(value.length); // deep copy
|
|
594
|
+
newArray.set(value);
|
|
557
595
|
return newArray;
|
|
558
596
|
}
|
|
559
597
|
const coerceFunc = coerceVariantType.bind(null, dataType);
|
|
@@ -563,7 +601,7 @@ function convertTo(dataType: DataType, arrayTypeConstructor: BufferedArrayConstr
|
|
|
563
601
|
for (let i = 0; i < n; i++) {
|
|
564
602
|
newArr[i] = coerceFunc(value[i]);
|
|
565
603
|
}
|
|
566
|
-
//
|
|
604
|
+
// c8 ignore next
|
|
567
605
|
if (arrayTypeConstructor && displayWarning && n > 10) {
|
|
568
606
|
warningLog("Warning ! an array containing " + DataType[dataType] + " elements has been provided as a generic array. ");
|
|
569
607
|
warningLog(
|
|
@@ -629,7 +667,7 @@ function encodeVariantArray(dataType: DataType, stream: OutputBinaryStream, valu
|
|
|
629
667
|
function decodeTypedArray(arrayTypeConstructor: BufferedArrayConstructor, stream: BinaryStream) {
|
|
630
668
|
const length = decodeUInt32(stream);
|
|
631
669
|
|
|
632
|
-
/*
|
|
670
|
+
/* c8 ignore next */
|
|
633
671
|
if (length === 0xffffffff) {
|
|
634
672
|
return null;
|
|
635
673
|
}
|
|
@@ -650,7 +688,7 @@ function decodeTypedArray(arrayTypeConstructor: BufferedArrayConstructor, stream
|
|
|
650
688
|
function decodeGeneralArray(dataType: DataType, stream: BinaryStream) {
|
|
651
689
|
const length = decodeUInt32(stream);
|
|
652
690
|
|
|
653
|
-
/*
|
|
691
|
+
/* c8 ignore next */
|
|
654
692
|
if (length === 0xffffffff) {
|
|
655
693
|
return null;
|
|
656
694
|
}
|
|
@@ -692,42 +730,6 @@ _declareTypeArrayHelper(DataType.Int32, Int32Array);
|
|
|
692
730
|
_declareTypeArrayHelper(DataType.UInt16, Uint16Array);
|
|
693
731
|
_declareTypeArrayHelper(DataType.UInt32, Uint32Array);
|
|
694
732
|
|
|
695
|
-
function _decodeVariantArrayDebug(stream: BinaryStream, decode: any, tracer: any, dataType: DataType) {
|
|
696
|
-
let cursorBefore = stream.length;
|
|
697
|
-
const length = decodeUInt32(stream);
|
|
698
|
-
|
|
699
|
-
let i;
|
|
700
|
-
let element;
|
|
701
|
-
tracer.trace("start_array", "Variant", -1, cursorBefore, stream.length);
|
|
702
|
-
if (length === 0xffffffff) {
|
|
703
|
-
// empty array
|
|
704
|
-
tracer.trace("end_array", "Variant", stream.length);
|
|
705
|
-
return;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
const n1 = Math.min(10, length);
|
|
709
|
-
|
|
710
|
-
// display a maximum of 10 elements
|
|
711
|
-
for (i = 0; i < n1; i++) {
|
|
712
|
-
tracer.trace("start_element", "", i);
|
|
713
|
-
cursorBefore = stream.length;
|
|
714
|
-
element = decode(stream);
|
|
715
|
-
// arr.push(element);
|
|
716
|
-
tracer.trace("member", "Variant", element, cursorBefore, stream.length, DataType[dataType]);
|
|
717
|
-
tracer.trace("end_element", "", i);
|
|
718
|
-
}
|
|
719
|
-
// keep reading
|
|
720
|
-
if (length >= n1) {
|
|
721
|
-
for (i = n1; i < length; i++) {
|
|
722
|
-
decode(stream);
|
|
723
|
-
}
|
|
724
|
-
tracer.trace("start_element", "", n1);
|
|
725
|
-
tracer.trace("member", "Variant", "...", cursorBefore, stream.length, DataType[dataType]);
|
|
726
|
-
tracer.trace("end_element", "", n1);
|
|
727
|
-
}
|
|
728
|
-
tracer.trace("end_array", "Variant", stream.length);
|
|
729
|
-
}
|
|
730
|
-
|
|
731
733
|
function decodeDimension(stream: BinaryStream) {
|
|
732
734
|
return decodeGeneralArray(DataType.UInt32, stream);
|
|
733
735
|
}
|
|
@@ -750,17 +752,18 @@ export function coerceVariantType(dataType: DataType, value: undefined | any): a
|
|
|
750
752
|
if (value === undefined) {
|
|
751
753
|
value = null;
|
|
752
754
|
}
|
|
755
|
+
/* c8 ignore start */
|
|
753
756
|
if (isEnumerationItem(value)) {
|
|
754
757
|
// OPCUA Specification 1.0.3 5.8.2 encoding rules for various dataType:
|
|
755
758
|
// [...]Enumeration are always encoded as Int32 on the wire [...]
|
|
756
759
|
|
|
757
|
-
/* istanbul ignore next */
|
|
758
760
|
if (dataType !== DataType.Int32 && dataType !== DataType.ExtensionObject) {
|
|
759
761
|
throw new Error(
|
|
760
762
|
"expecting DataType.Int32 for enumeration values ;" + " got DataType." + dataType.toString() + " instead"
|
|
761
763
|
);
|
|
762
764
|
}
|
|
763
765
|
}
|
|
766
|
+
/* c8 ignore stop */
|
|
764
767
|
|
|
765
768
|
switch (dataType) {
|
|
766
769
|
case DataType.Null:
|
|
@@ -784,10 +787,11 @@ export function coerceVariantType(dataType: DataType, value: undefined | any): a
|
|
|
784
787
|
case DataType.UInt16:
|
|
785
788
|
assert(value !== undefined);
|
|
786
789
|
value = parseInt(value, 10);
|
|
787
|
-
/*
|
|
790
|
+
/* c8 ignore start */
|
|
788
791
|
if (!isFinite(value)) {
|
|
789
792
|
throw new Error("expecting a number " + value);
|
|
790
793
|
}
|
|
794
|
+
/* c8 ignore stop */
|
|
791
795
|
break;
|
|
792
796
|
case DataType.UInt64:
|
|
793
797
|
value = coerceUInt64(value);
|
|
@@ -806,10 +810,11 @@ export function coerceVariantType(dataType: DataType, value: undefined | any): a
|
|
|
806
810
|
case DataType.ByteString:
|
|
807
811
|
value = typeof value === "string" ? Buffer.from(value) : value;
|
|
808
812
|
|
|
809
|
-
|
|
813
|
+
/* c8 ignore start */
|
|
810
814
|
if (!(value === null || value instanceof Buffer)) {
|
|
811
815
|
throw new Error("ByteString should be null or a Buffer");
|
|
812
816
|
}
|
|
817
|
+
/* c8 ignore stop */
|
|
813
818
|
assert(value === null || value instanceof Buffer);
|
|
814
819
|
break;
|
|
815
820
|
default:
|
|
@@ -892,7 +897,7 @@ function isValidArrayVariant(dataType: DataType, value: any): boolean {
|
|
|
892
897
|
return true;
|
|
893
898
|
}
|
|
894
899
|
|
|
895
|
-
/*
|
|
900
|
+
/* c8 ignore start */
|
|
896
901
|
function isValidMatrixVariant(dataType: DataType, value: any, dimensions: number[] | null) {
|
|
897
902
|
if (!dimensions) {
|
|
898
903
|
return false;
|
|
@@ -902,6 +907,7 @@ function isValidMatrixVariant(dataType: DataType, value: any, dimensions: number
|
|
|
902
907
|
}
|
|
903
908
|
return true;
|
|
904
909
|
}
|
|
910
|
+
/* c8 ignore stop */
|
|
905
911
|
|
|
906
912
|
export function isValidVariant(
|
|
907
913
|
arrayType: VariantArrayType,
|
|
@@ -984,7 +990,7 @@ function __check_same_object(o1: any, o2: any): boolean {
|
|
|
984
990
|
}
|
|
985
991
|
const keys1 = Object.keys(o1);
|
|
986
992
|
const keys2 = Object.keys(o2);
|
|
987
|
-
|
|
993
|
+
/* c8 ignore next */
|
|
988
994
|
if (keys1.length !== keys2.length) {
|
|
989
995
|
return false;
|
|
990
996
|
}
|
|
@@ -31,16 +31,20 @@ export function verifyRankAndDimensions(options: { valueRank?: number; arrayDime
|
|
|
31
31
|
if (options.valueRank > 0 && (!options.arrayDimensions || options.arrayDimensions.length === 0)) {
|
|
32
32
|
options.arrayDimensions = new Array(options.valueRank).fill(0);
|
|
33
33
|
}
|
|
34
|
-
//
|
|
34
|
+
// c8 ignore start
|
|
35
35
|
if (!options.arrayDimensions && options.valueRank > 0) {
|
|
36
36
|
throw new Error("[CONFORMANCE] arrayDimension must be specified if valueRank >0 " + options.valueRank);
|
|
37
37
|
}
|
|
38
|
+
// c8 ignore stop
|
|
39
|
+
|
|
40
|
+
// c8 ignore start
|
|
38
41
|
if (options.valueRank > 0 && options.arrayDimensions!.length !== options.valueRank) {
|
|
39
42
|
throw new Error(
|
|
40
43
|
"[CONFORMANCE] when valueRank> 0, arrayDimensions must have valueRank elements, this.valueRank =" +
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
options.valueRank +
|
|
45
|
+
" whereas arrayDimensions.length =" +
|
|
46
|
+
options.arrayDimensions!.length
|
|
44
47
|
);
|
|
45
48
|
}
|
|
49
|
+
// c8 ignore stop
|
|
46
50
|
}
|