@thi.ng/transducers-binary 1.0.4 → 2.0.3

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/lib/index.js DELETED
@@ -1,618 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var transducers = require('@thi.ng/transducers');
6
- var binary = require('@thi.ng/binary');
7
- var errors = require('@thi.ng/errors');
8
- var compose = require('@thi.ng/compose');
9
- var hex = require('@thi.ng/hex');
10
- var random = require('@thi.ng/random');
11
-
12
- const B64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
13
- const B64_SAFE = B64_CHARS.substr(0, 62) + "-_";
14
- function base64Decode(src) {
15
- return src
16
- ? transducers.iterator1(base64Decode(), src)
17
- : (rfn) => {
18
- const r = rfn[2];
19
- let bc = 0, bs = 0;
20
- return transducers.compR(rfn, (acc, x) => {
21
- switch (x) {
22
- case "-":
23
- x = "+";
24
- break;
25
- case "_":
26
- x = "/";
27
- break;
28
- case "=":
29
- return transducers.reduced(acc);
30
- }
31
- let y = B64_CHARS.indexOf(x);
32
- bs = bc & 3 ? (bs << 6) + y : y;
33
- if (bc++ & 3) {
34
- acc = r(acc, 255 & (bs >> ((-2 * bc) & 6)));
35
- }
36
- return acc;
37
- });
38
- };
39
- }
40
- function base64Encode(...args) {
41
- const iter = transducers.$iter(base64Encode, args, transducers.iterator);
42
- if (iter) {
43
- return [...iter].join("");
44
- }
45
- return ([init, complete, reduce]) => {
46
- let state = 0;
47
- let b;
48
- const opts = Object.assign({ safe: false, buffer: 1024 }, args[0]);
49
- const chars = opts.safe ? B64_SAFE : B64_CHARS;
50
- const buf = [];
51
- return [
52
- init,
53
- (acc) => {
54
- switch (state) {
55
- case 1:
56
- buf.push(chars[(b >> 18) & 0x3f], chars[(b >> 12) & 0x3f], "=", "=");
57
- break;
58
- case 2:
59
- buf.push(chars[(b >> 18) & 0x3f], chars[(b >> 12) & 0x3f], chars[(b >> 6) & 0x3f], "=");
60
- break;
61
- }
62
- while (buf.length && !transducers.isReduced(acc)) {
63
- acc = reduce(acc, buf.shift());
64
- }
65
- return complete(acc);
66
- },
67
- (acc, x) => {
68
- switch (state) {
69
- case 0:
70
- state = 1;
71
- b = x << 16;
72
- break;
73
- case 1:
74
- state = 2;
75
- b += x << 8;
76
- break;
77
- default:
78
- state = 0;
79
- b += x;
80
- buf.push(chars[(b >> 18) & 0x3f], chars[(b >> 12) & 0x3f], chars[(b >> 6) & 0x3f], chars[b & 0x3f]);
81
- if (buf.length >= opts.buffer) {
82
- for (let i = 0, n = buf.length; i < n && !transducers.isReduced(acc); i++) {
83
- acc = reduce(acc, buf[i]);
84
- }
85
- buf.length = 0;
86
- }
87
- }
88
- return acc;
89
- },
90
- ];
91
- };
92
- }
93
-
94
- function utf8Decode(src) {
95
- return src
96
- ? [...transducers.iterator1(utf8Decode(), src)].join("")
97
- : (rfn) => {
98
- const r = rfn[2];
99
- let state = 0;
100
- let u0;
101
- let u1;
102
- let u2;
103
- let u3;
104
- let u4;
105
- return transducers.compR(rfn, (acc, x) => {
106
- switch (state) {
107
- case 0:
108
- default:
109
- if (x < 0x80) {
110
- return r(acc, String.fromCharCode(x));
111
- }
112
- u0 = x;
113
- state = 1;
114
- break;
115
- case 1:
116
- u1 = x & 0x3f;
117
- if ((u0 & 0xe0) === 0xc0) {
118
- state = 0;
119
- return r(acc, String.fromCharCode(((u0 & 0x1f) << 6) | u1));
120
- }
121
- state = 2;
122
- break;
123
- case 2:
124
- u2 = x & 0x3f;
125
- if ((u0 & 0xf0) === 0xe0) {
126
- state = 0;
127
- return r(acc, String.fromCharCode(((u0 & 0x0f) << 12) | (u1 << 6) | u2));
128
- }
129
- state = 3;
130
- break;
131
- case 3:
132
- u3 = x & 0x3f;
133
- if ((u0 & 0xf8) === 0xf0) {
134
- state = 0;
135
- return r(acc, codePoint(((u0 & 7) << 18) |
136
- (u1 << 12) |
137
- (u2 << 6) |
138
- u3));
139
- }
140
- state = 4;
141
- break;
142
- case 4:
143
- u4 = x & 0x3f;
144
- if ((u0 & 0xfc) === 0xf8) {
145
- state = 0;
146
- return r(acc, codePoint(((u0 & 3) << 24) |
147
- (u1 << 18) |
148
- (u2 << 12) |
149
- (u3 << 6) |
150
- u4));
151
- }
152
- state = 5;
153
- break;
154
- case 5:
155
- state = 0;
156
- return r(acc, codePoint(((u0 & 1) << 30) |
157
- (u1 << 24) |
158
- (u2 << 18) |
159
- (u3 << 12) |
160
- (u4 << 6) |
161
- (x & 0x3f)));
162
- }
163
- return acc;
164
- });
165
- };
166
- }
167
- function utf8Encode(src) {
168
- return src != null
169
- ? transducers.iterator(utf8Encode(), src)
170
- : (rfn) => {
171
- const r = rfn[2];
172
- return transducers.compR(rfn, (acc, x) => {
173
- let u = x.charCodeAt(0), buf;
174
- if (u >= 0xd800 && u <= 0xdfff) {
175
- u =
176
- (0x10000 + ((u & 0x3ff) << 10)) |
177
- (x.charCodeAt(1) & 0x3ff);
178
- }
179
- if (u < 0x80) {
180
- return r(acc, u);
181
- }
182
- else if (u < 0x800) {
183
- buf = [0xc0 | (u >> 6), 0x80 | (u & 0x3f)];
184
- }
185
- else if (u < 0x10000) {
186
- buf = [
187
- 0xe0 | (u >> 12),
188
- 0x80 | ((u >> 6) & 0x3f),
189
- 0x80 | (u & 0x3f),
190
- ];
191
- }
192
- else if (u < 0x200000) {
193
- buf = [
194
- 0xf0 | (u >> 18),
195
- 0x80 | ((u >> 12) & 0x3f),
196
- 0x80 | ((u >> 6) & 0x3f),
197
- 0x80 | (u & 0x3f),
198
- ];
199
- }
200
- else if (u < 0x4000000) {
201
- buf = [
202
- 0xf8 | (u >> 24),
203
- 0x80 | ((u >> 18) & 0x3f),
204
- 0x80 | ((u >> 12) & 0x3f),
205
- 0x80 | ((u >> 6) & 0x3f),
206
- 0x80 | (u & 0x3f),
207
- ];
208
- }
209
- else {
210
- buf = [
211
- 0xfc | (u >> 30),
212
- 0x80 | ((u >> 24) & 0x3f),
213
- 0x80 | ((u >> 18) & 0x3f),
214
- 0x80 | ((u >> 12) & 0x3f),
215
- 0x80 | ((u >> 6) & 0x3f),
216
- 0x80 | (u & 0x3f),
217
- ];
218
- }
219
- for (let i = 0, n = buf.length; i < n; i++) {
220
- acc = r(acc, buf[i]);
221
- if (transducers.isReduced(acc)) {
222
- break;
223
- }
224
- }
225
- return acc;
226
- });
227
- };
228
- }
229
- const codePoint = (x) => x < 0x10000
230
- ? String.fromCharCode(x)
231
- : ((x -= 0x10000),
232
- String.fromCharCode(0xd800 | (x >> 10), 0xdc00 | (x & 0x3ff)));
233
- const utf8Length = (str) => {
234
- const n = str.length;
235
- let len = 0;
236
- for (let i = 0; i < n; ++i) {
237
- let u = str.charCodeAt(i);
238
- if (u >= 0xd800 && u <= 0xdfff) {
239
- u = (0x10000 + ((u & 0x3ff) << 10)) | (str.charCodeAt(++i) & 0x3ff);
240
- }
241
- len +=
242
- u <= 0x7f
243
- ? 1
244
- : u <= 0x7ff
245
- ? 2
246
- : u <= 0xffff
247
- ? 3
248
- : u <= 0x1fffff
249
- ? 4
250
- : u <= 0x3ffffff
251
- ? 5
252
- : 6;
253
- }
254
- return len;
255
- };
256
-
257
- const i8 = (x) => ["i8", x];
258
- const i8array = (x) => ["i8a", x];
259
- const u8 = (x) => ["u8", x];
260
- const u8array = (x) => ["u8a", x];
261
- const i16 = (x, le = false) => ["i16", x, le];
262
- const i16array = (x, le = false) => [
263
- "i16a",
264
- x,
265
- le,
266
- ];
267
- const u16 = (x, le = false) => ["u16", x, le];
268
- const u16array = (x, le = false) => [
269
- "u16a",
270
- x,
271
- le,
272
- ];
273
- const i24 = (x, le = false) => ["i24", x, le];
274
- const i24array = (x, le = false) => [
275
- "i24a",
276
- x,
277
- le,
278
- ];
279
- const u24 = (x, le = false) => ["u24", x, le];
280
- const u24array = (x, le = false) => [
281
- "u24a",
282
- x,
283
- le,
284
- ];
285
- const i32 = (x, le = false) => ["i32", x, le];
286
- const i32array = (x, le = false) => [
287
- "i32a",
288
- x,
289
- le,
290
- ];
291
- const u32 = (x, le = false) => ["u32", x, le];
292
- const u32array = (x, le = false) => [
293
- "u32a",
294
- x,
295
- le,
296
- ];
297
- const f32 = (x, le = false) => ["f32", x, le];
298
- const f32array = (x, le = false) => [
299
- "f32a",
300
- x,
301
- le,
302
- ];
303
- const f64 = (x, le = false) => ["f64", x, le];
304
- const f64array = (x, le = false) => [
305
- "f64a",
306
- x,
307
- le,
308
- ];
309
- const str = (x) => ["str", x];
310
- function asBytes(src) {
311
- return src
312
- ? transducers.iterator(asBytes(), src)
313
- : transducers.mapcat((x) => {
314
- const val = x[1];
315
- const le = x[2];
316
- switch (x[0]) {
317
- case "i8":
318
- case "u8":
319
- return [val];
320
- case "i8a":
321
- case "u8a":
322
- return x[1];
323
- case "i16":
324
- case "u16":
325
- return binary.bytes16(val, le);
326
- case "i16a":
327
- case "u16a":
328
- return transducers.mapcat((x) => binary.bytes16(x, le), x[1]);
329
- case "i24":
330
- case "u24":
331
- return binary.bytes24(val, le);
332
- case "i24a":
333
- case "u24a":
334
- return transducers.mapcat((x) => binary.bytes24(x, le), x[1]);
335
- case "i32":
336
- case "u32":
337
- return binary.bytes32(val, le);
338
- case "i32a":
339
- case "u32a":
340
- return transducers.mapcat((x) => binary.bytes32(x, le), x[1]);
341
- case "f32":
342
- return binary.bytesF32(val, le);
343
- case "f32a":
344
- return transducers.mapcat((x) => binary.bytesF32(x, le), x[1]);
345
- case "f64":
346
- return binary.bytesF64(val, le);
347
- case "f64a":
348
- return transducers.mapcat((x) => binary.bytesF64(x, le), x[1]);
349
- case "str":
350
- return utf8Encode(x[1]);
351
- default:
352
- errors.unsupported(`invalid struct item: ${x[0]}`);
353
- }
354
- });
355
- }
356
- function bytes(cap = 1024, src) {
357
- let view;
358
- let pos = 0;
359
- const ensure = (acc, size) => {
360
- if (pos + size <= cap)
361
- return acc;
362
- cap *= 2;
363
- const buf = new Uint8Array(cap);
364
- buf.set(acc);
365
- view = new DataView(buf.buffer);
366
- return buf;
367
- };
368
- const setArray = (fn, stride, acc, x, le) => {
369
- const n = x.length;
370
- acc = ensure(acc, stride * n);
371
- for (let i = 0; i < n; i++, pos += stride) {
372
- view[fn](pos, x[i], le);
373
- }
374
- return acc;
375
- };
376
- return src
377
- ? transducers.reduce(bytes(cap), src)
378
- : [
379
- () => new Uint8Array(cap),
380
- (acc) => acc.subarray(0, pos),
381
- (acc, [type, x, le = false]) => {
382
- if (!view || view.buffer !== acc.buffer) {
383
- cap = acc.byteLength;
384
- view = new DataView(acc.buffer, acc.byteOffset);
385
- }
386
- switch (type) {
387
- case "i8":
388
- acc = ensure(acc, 1);
389
- view.setInt8(pos, x);
390
- pos++;
391
- break;
392
- case "i8a": {
393
- const n = x.length;
394
- acc = ensure(acc, n);
395
- new Int8Array(acc.buffer, acc.byteOffset).set(x, pos);
396
- pos += n;
397
- break;
398
- }
399
- case "u8":
400
- acc = ensure(acc, 1);
401
- view.setUint8(pos, x);
402
- pos++;
403
- break;
404
- case "u8a": {
405
- const n = x.length;
406
- acc = ensure(acc, n);
407
- acc.set(x, pos);
408
- pos += n;
409
- break;
410
- }
411
- case "i16":
412
- acc = ensure(acc, 2);
413
- view.setInt16(pos, x, le);
414
- pos += 2;
415
- break;
416
- case "i16a":
417
- acc = setArray("setInt16", 2, acc, x, le);
418
- break;
419
- case "u16":
420
- acc = ensure(acc, 2);
421
- view.setUint16(pos, x, le);
422
- pos += 2;
423
- break;
424
- case "u16a":
425
- acc = setArray("setUint16", 2, acc, x, le);
426
- break;
427
- case "i24":
428
- acc = ensure(acc, 4);
429
- view.setInt32(pos, x, le);
430
- pos += 3;
431
- break;
432
- case "i24a":
433
- acc = setArray("setInt32", 3, acc, x, le);
434
- break;
435
- case "u24":
436
- acc = ensure(acc, 4);
437
- view.setUint32(pos, x, le);
438
- pos += 3;
439
- break;
440
- case "u24a":
441
- acc = setArray("setUint32", 3, acc, x, le);
442
- break;
443
- case "i32":
444
- acc = ensure(acc, 4);
445
- view.setInt32(pos, x, le);
446
- pos += 4;
447
- break;
448
- case "i32a":
449
- acc = setArray("setInt32", 4, acc, x, le);
450
- break;
451
- case "u32":
452
- acc = ensure(acc, 4);
453
- view.setUint32(pos, x, le);
454
- pos += 4;
455
- break;
456
- case "u32a":
457
- acc = setArray("setUint32", 4, acc, x, le);
458
- break;
459
- case "f32":
460
- acc = ensure(acc, 4);
461
- view.setFloat32(pos, x, le);
462
- pos += 4;
463
- break;
464
- case "f32a":
465
- acc = setArray("setFloat32", 4, acc, x, le);
466
- break;
467
- case "f64":
468
- acc = ensure(acc, 8);
469
- view.setFloat64(pos, x, le);
470
- pos += 8;
471
- break;
472
- case "f64a":
473
- acc = setArray("setFloat64", 8, acc, x, le);
474
- break;
475
- case "str": {
476
- let utf = [...utf8Encode(x)];
477
- acc = ensure(acc, utf.length);
478
- acc.set(utf, pos);
479
- pos += utf.length;
480
- break;
481
- }
482
- }
483
- return acc;
484
- },
485
- ];
486
- }
487
-
488
- function bits(...args) {
489
- return (transducers.$iter(bits, args, transducers.iterator) ||
490
- ((rfn) => {
491
- const reduce = rfn[2];
492
- const size = args[0] || 8;
493
- const msb = args[1] !== false;
494
- return transducers.compR(rfn, msb
495
- ? (acc, x) => {
496
- for (let i = size; --i >= 0 && !transducers.isReduced(acc);) {
497
- acc = reduce(acc, (x >>> i) & 1);
498
- }
499
- return acc;
500
- }
501
- : (acc, x) => {
502
- for (let i = 0; i < size && !transducers.isReduced(acc); i++) {
503
- acc = reduce(acc, (x >>> i) & 1);
504
- }
505
- return acc;
506
- });
507
- }));
508
- }
509
-
510
- function hexDump(...args) {
511
- const iter = transducers.$iter(hexDump, args, transducers.iterator);
512
- if (iter) {
513
- return iter;
514
- }
515
- const { cols, address } = Object.assign({ cols: 16, address: 0 }, args[0]);
516
- return transducers.comp(transducers.padLast(cols, 0), transducers.map(compose.juxt(hex.U8, (x) => (x > 31 && x < 127 ? String.fromCharCode(x) : "."))), transducers.partition(cols, true), transducers.map(compose.juxt((x) => x.map((y) => y[0]).join(" "), (x) => x.map((y) => y[1]).join(""))), transducers.mapIndexed((i, [h, a]) => `${hex.U32(address + i * cols)} | ${h} | ${a}`));
517
- }
518
- const hexDumpString = (opts, src) => [...hexDump(opts, src)].join("\n");
519
-
520
- function partitionBits(...args) {
521
- return (transducers.$iter(partitionBits, args, transducers.iterator) ||
522
- ((rfn) => {
523
- const destSize = args[0];
524
- const srcSize = args[1] || 8;
525
- return destSize < srcSize
526
- ? small(rfn, destSize, srcSize)
527
- : destSize > srcSize
528
- ? large(rfn, destSize, srcSize)
529
- : rfn;
530
- }));
531
- }
532
- const small = ([init, complete, reduce], n, wordSize) => {
533
- const maxb = wordSize - n;
534
- const m1 = (1 << wordSize) - 1;
535
- const m2 = (1 << n) - 1;
536
- let r = 0;
537
- let y = 0;
538
- return [
539
- init,
540
- (acc) => complete(r > 0 ? reduce(acc, y) : acc),
541
- (acc, x) => {
542
- let b = 0;
543
- do {
544
- acc = reduce(acc, y + ((x >>> (maxb + r)) & m2));
545
- b += n - r;
546
- x = (x << (n - r)) & m1;
547
- y = 0;
548
- r = 0;
549
- } while (b <= maxb && !transducers.isReduced(acc));
550
- r = wordSize - b;
551
- y = r > 0 ? (x >>> maxb) & m2 : 0;
552
- return acc;
553
- },
554
- ];
555
- };
556
- const large = ([init, complete, reduce], n, wordSize) => {
557
- const m1 = (1 << wordSize) - 1;
558
- let r = 0;
559
- let y = 0;
560
- return [
561
- init,
562
- (acc) => complete(r > 0 ? reduce(acc, y) : acc),
563
- (acc, x) => {
564
- if (r + wordSize <= n) {
565
- y |= (x & m1) << (n - wordSize - r);
566
- r += wordSize;
567
- if (r === n) {
568
- acc = reduce(acc, y);
569
- y = 0;
570
- r = 0;
571
- }
572
- }
573
- else {
574
- const k = n - r;
575
- r = wordSize - k;
576
- acc = reduce(acc, y | ((x >>> r) & ((1 << k) - 1)));
577
- y = (x & ((1 << r) - 1)) << (n - r);
578
- }
579
- return acc;
580
- },
581
- ];
582
- };
583
-
584
- const randomBits = (prob, num, rnd = random.SYSTEM) => transducers.repeatedly(() => (rnd.float() < prob ? 1 : 0), num);
585
-
586
- exports.asBytes = asBytes;
587
- exports.base64Decode = base64Decode;
588
- exports.base64Encode = base64Encode;
589
- exports.bits = bits;
590
- exports.bytes = bytes;
591
- exports.f32 = f32;
592
- exports.f32array = f32array;
593
- exports.f64 = f64;
594
- exports.f64array = f64array;
595
- exports.hexDump = hexDump;
596
- exports.hexDumpString = hexDumpString;
597
- exports.i16 = i16;
598
- exports.i16array = i16array;
599
- exports.i24 = i24;
600
- exports.i24array = i24array;
601
- exports.i32 = i32;
602
- exports.i32array = i32array;
603
- exports.i8 = i8;
604
- exports.i8array = i8array;
605
- exports.partitionBits = partitionBits;
606
- exports.randomBits = randomBits;
607
- exports.str = str;
608
- exports.u16 = u16;
609
- exports.u16array = u16array;
610
- exports.u24 = u24;
611
- exports.u24array = u24array;
612
- exports.u32 = u32;
613
- exports.u32array = u32array;
614
- exports.u8 = u8;
615
- exports.u8array = u8array;
616
- exports.utf8Decode = utf8Decode;
617
- exports.utf8Encode = utf8Encode;
618
- exports.utf8Length = utf8Length;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../base64.js","../utf8.js","../bytes.js","../bits.js","../hex-dump.js","../partition-bits.js","../random-bits.js"],"sourcesContent":null,"names":["iterator1","compR","reduced","$iter","iterator","isReduced","mapcat","bytes16","bytes24","bytes32","bytesF32","bytesF64","unsupported","reduce","comp","padLast","map","juxt","U8","partition","mapIndexed","U32","SYSTEM","repeatedly"],"mappings":";;;;;;;;;;;AACA,MAAM,SAAS,GAAG,kEAAkE,CAAC;AACrF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACzC,SAAS,YAAY,CAAC,GAAG,EAAE;AAClC,IAAI,OAAO,GAAG;AACd,UAAUA,qBAAS,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC;AACxC,UAAU,CAAC,GAAG,KAAK;AACnB,YAAY,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/B,YAAY,OAAOC,iBAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK;AAC1C,gBAAgB,QAAQ,CAAC;AACzB,oBAAoB,KAAK,GAAG;AAC5B,wBAAwB,CAAC,GAAG,GAAG,CAAC;AAChC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,GAAG;AAC5B,wBAAwB,CAAC,GAAG,GAAG,CAAC;AAChC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,GAAG;AAC5B,wBAAwB,OAAOC,mBAAO,CAAC,GAAG,CAAC,CAAC;AAE5C,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,gBAAgB,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;AAC9B,oBAAoB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,CAAC;AACM,SAAS,YAAY,CAAC,GAAG,IAAI,EAAE;AACtC,IAAI,MAAM,IAAI,GAAGC,iBAAK,CAAC,YAAY,EAAE,IAAI,EAAEC,oBAAQ,CAAC,CAAC;AACrD,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK;AACzC,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,CAAC;AACd,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AACvD,QAAQ,MAAM,GAAG,GAAG,EAAE,CAAC;AACvB,QAAQ,OAAO;AACf,YAAY,IAAI;AAChB,YAAY,CAAC,GAAG,KAAK;AACrB,gBAAgB,QAAQ,KAAK;AAC7B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7F,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChH,wBAAwB,MAAM;AAE9B,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC,MAAM,IAAI,CAACC,qBAAS,CAAC,GAAG,CAAC,EAAE;AACtD,oBAAoB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACnD,iBAAiB;AACjB,gBAAgB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrC,aAAa;AACb,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK;AACxB,gBAAgB,QAAQ,KAAK;AAC7B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACpC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,wBAAwB,MAAM;AAC9B,oBAAoB;AACpB,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC/B,wBAAwB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5H,wBAAwB,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvD,4BAA4B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAACA,qBAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3F,gCAAgC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,6BAA6B;AAC7B,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,yBAAyB;AACzB,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa;AACb,SAAS,CAAC;AACV,KAAK,CAAC;AACN;;AClFO,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,OAAO,GAAG;AACd,UAAU,CAAC,GAAGL,qBAAS,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,UAAU,CAAC,GAAG,KAAK;AACnB,YAAY,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,OAAOC,iBAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK;AAC1C,gBAAgB,QAAQ,KAAK;AAC7B,oBAAoB,KAAK,CAAC,CAAC;AAC3B,oBAAoB;AACpB,wBAAwB,IAAI,CAAC,GAAG,IAAI,EAAE;AACtC,4BAA4B,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,yBAAyB;AACzB,wBAAwB,EAAE,GAAG,CAAC,CAAC;AAC/B,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACtC,wBAAwB,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AAClD,4BAA4B,KAAK,GAAG,CAAC,CAAC;AACtC,4BAA4B,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxF,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACtC,wBAAwB,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AAClD,4BAA4B,KAAK,GAAG,CAAC,CAAC;AACtC,4BAA4B,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrG,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACtC,wBAAwB,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AAClD,4BAA4B,KAAK,GAAG,CAAC,CAAC;AACtC,4BAA4B,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE;AACnE,iCAAiC,EAAE,IAAI,EAAE,CAAC;AAC1C,iCAAiC,EAAE,IAAI,CAAC,CAAC;AACzC,gCAAgC,EAAE,CAAC,CAAC,CAAC;AACrC,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACtC,wBAAwB,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;AAClD,4BAA4B,KAAK,GAAG,CAAC,CAAC;AACtC,4BAA4B,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE;AACnE,iCAAiC,EAAE,IAAI,EAAE,CAAC;AAC1C,iCAAiC,EAAE,IAAI,EAAE,CAAC;AAC1C,iCAAiC,EAAE,IAAI,CAAC,CAAC;AACzC,gCAAgC,EAAE,CAAC,CAAC,CAAC;AACrC,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,KAAK,GAAG,CAAC,CAAC;AAClC,wBAAwB,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE;AAC/D,6BAA6B,EAAE,IAAI,EAAE,CAAC;AACtC,6BAA6B,EAAE,IAAI,EAAE,CAAC;AACtC,6BAA6B,EAAE,IAAI,EAAE,CAAC;AACtC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AACrC,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,CAAC;AACM,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,OAAO,GAAG,IAAI,IAAI;AACtB,UAAUG,oBAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC;AACrC,UAAU,CAAC,GAAG,KAAK;AACnB,YAAY,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,OAAOH,iBAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK;AAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7C,gBAAgB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;AAChD,oBAAoB,CAAC;AACrB,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;AACtD,6BAA6B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACtD,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE;AAC9B,oBAAoB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,iBAAiB;AACjB,qBAAqB,IAAI,CAAC,GAAG,KAAK,EAAE;AACpC,oBAAoB,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC/D,iBAAiB;AACjB,qBAAqB,IAAI,CAAC,GAAG,OAAO,EAAE;AACtC,oBAAoB,GAAG,GAAG;AAC1B,wBAAwB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACxC,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChD,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACzC,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,qBAAqB,IAAI,CAAC,GAAG,QAAQ,EAAE;AACvC,oBAAoB,GAAG,GAAG;AAC1B,wBAAwB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACxC,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChD,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACzC,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,qBAAqB,IAAI,CAAC,GAAG,SAAS,EAAE;AACxC,oBAAoB,GAAG,GAAG;AAC1B,wBAAwB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACxC,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChD,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACzC,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,GAAG,GAAG;AAC1B,wBAAwB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACxC,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACjD,wBAAwB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChD,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACzC,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,oBAAoB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,oBAAoB,IAAII,qBAAS,CAAC,GAAG,CAAC,EAAE;AACxC,wBAAwB,MAAM;AAC9B,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,CAAC;AACD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO;AACpC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5B,OAAO,CAAC,CAAC,IAAI,OAAO;AACpB,QAAQ,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAC,UAAU,GAAG,CAAC,GAAG,KAAK;AACnC,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;AACxC,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAChF,SAAS;AACT,QAAQ,GAAG;AACX,YAAY,CAAC,IAAI,IAAI;AACrB,kBAAkB,CAAC;AACnB,kBAAkB,CAAC,IAAI,KAAK;AAC5B,sBAAsB,CAAC;AACvB,sBAAsB,CAAC,IAAI,MAAM;AACjC,0BAA0B,CAAC;AAC3B,0BAA0B,CAAC,IAAI,QAAQ;AACvC,8BAA8B,CAAC;AAC/B,8BAA8B,CAAC,IAAI,SAAS;AAC5C,kCAAkC,CAAC;AACnC,kCAAkC,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf;;AC9JY,MAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;AACvB,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAC7B,MAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;AACvB,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAC7B,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK;AAC3C,IAAI,MAAM;AACV,IAAI,CAAC;AACL,IAAI,EAAE;AACN,EAAE;AACU,MAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAC9B,SAAS,OAAO,CAAC,GAAG,EAAE;AAC7B,IAAI,OAAO,GAAG;AACd,UAAUD,oBAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC;AAClC,UAAUE,kBAAM,CAAC,CAAC,CAAC,KAAK;AACxB,YAAY,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAgB,KAAK,IAAI,CAAC;AAC1B,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,OAAO,CAAC,GAAG,CAAC,CAAC;AACjC,gBAAgB,KAAK,KAAK,CAAC;AAC3B,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAgB,KAAK,KAAK,CAAC;AAC3B,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAOC,cAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAgB,KAAK,MAAM,CAAC;AAC5B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,OAAOD,kBAAM,CAAC,CAAC,CAAC,KAAKC,cAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,gBAAgB,KAAK,KAAK,CAAC;AAC3B,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAOC,cAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAgB,KAAK,MAAM,CAAC;AAC5B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,OAAOF,kBAAM,CAAC,CAAC,CAAC,KAAKE,cAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,gBAAgB,KAAK,KAAK,CAAC;AAC3B,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAOC,cAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAgB,KAAK,MAAM,CAAC;AAC5B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,OAAOH,kBAAM,CAAC,CAAC,CAAC,KAAKG,cAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAOC,eAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7C,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,OAAOJ,kBAAM,CAAC,CAAC,CAAC,KAAKI,eAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAOC,eAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7C,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,OAAOL,kBAAM,CAAC,CAAC,CAAC,KAAKK,eAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,gBAAgB,KAAK,KAAK;AAC1B,oBAAoB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,gBAAgB;AAChB,oBAAoBC,kBAAW,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,aAAa;AACb,SAAS,CAAC,CAAC;AACX,CAAC;AACM,SAAS,KAAK,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE;AACvC,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAClC,QAAQ,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG;AAC7B,YAAY,OAAO,GAAG,CAAC;AACvB,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACxC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK;AACjD,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,QAAQ,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AACtC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,MAAM,EAAE;AACnD,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,OAAO,GAAG;AACd,UAAUC,kBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACjC,UAAU;AACV,YAAY,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC;AACrC,YAAY,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACzC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK;AAC5C,gBAAgB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACzD,oBAAoB,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;AACzC,oBAAoB,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACpE,iBAAiB;AACjB,gBAAgB,QAAQ,IAAI;AAC5B,oBAAoB,KAAK,IAAI;AAC7B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,GAAG,EAAE,CAAC;AAC9B,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK,EAAE;AAChC,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3C,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9E,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,qBAAqB;AACrB,oBAAoB,KAAK,IAAI;AAC7B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,wBAAwB,GAAG,EAAE,CAAC;AAC9B,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK,EAAE;AAChC,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3C,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,qBAAqB;AACrB,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK;AAC9B,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,wBAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,wBAAwB,GAAG,IAAI,CAAC,CAAC;AACjC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,KAAK,EAAE;AAChC,wBAAwB,IAAI,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,wBAAwB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AAC1C,wBAAwB,MAAM;AAC9B,qBAAqB;AAErB,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa;AACb,SAAS,CAAC;AACV;;ACzOO,SAAS,IAAI,CAAC,GAAG,IAAI,EAAE;AAC9B,IAAI,QAAQV,iBAAK,CAAC,IAAI,EAAE,IAAI,EAAEC,oBAAQ,CAAC;AACvC,SAAS,CAAC,GAAG,KAAK;AAClB,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AAC1C,YAAY,OAAOH,iBAAK,CAAC,GAAG,EAAE,GAAG;AACjC,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK;AAC9B,oBAAoB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAACI,qBAAS,CAAC,GAAG,CAAC,GAAG;AACrE,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,qBAAqB;AACrB,oBAAoB,OAAO,GAAG,CAAC;AAC/B,iBAAiB;AACjB,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK;AAC9B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAACA,qBAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtE,wBAAwB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,qBAAqB;AACrB,oBAAoB,OAAO,GAAG,CAAC;AAC/B,iBAAiB,CAAC,CAAC;AACnB,SAAS,CAAC,EAAE;AACZ;;AClBO,SAAS,OAAO,CAAC,GAAG,IAAI,EAAE;AACjC,IAAI,MAAM,IAAI,GAAGF,iBAAK,CAAC,OAAO,EAAE,IAAI,EAAEC,oBAAQ,CAAC,CAAC;AAChD,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,IAAI,OAAOU,gBAAI,CAACC,mBAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAEC,eAAG,CAACC,YAAI,CAACC,MAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAEC,qBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAEH,eAAG,CAACC,YAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEG,sBAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAEC,OAAG,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9R,CAAC;AAQW,MAAC,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;;ACjBtE,SAAS,aAAa,CAAC,GAAG,IAAI,EAAE;AACvC,IAAI,QAAQlB,iBAAK,CAAC,aAAa,EAAE,IAAI,EAAEC,oBAAQ,CAAC;AAChD,SAAS,CAAC,GAAG,KAAK;AAClB,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,YAAY,OAAO,QAAQ,GAAG,OAAO;AACrC,kBAAkB,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC/C,kBAAkB,QAAQ,GAAG,OAAO;AACpC,sBAAsB,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;AACnD,sBAAsB,GAAG,CAAC;AAC1B,SAAS,CAAC,EAAE;AACZ,CAAC;AACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,KAAK;AACzD,IAAI,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK;AACpB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,YAAY,GAAG;AACf,gBAAgB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,aAAa,QAAQ,CAAC,IAAI,IAAI,IAAI,CAACC,qBAAS,CAAC,GAAG,CAAC,EAAE;AACnD,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9C,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,KAAK,CAAC;AACN,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,KAAK;AACzD,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK;AACpB,YAAY,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,EAAE;AACnC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;AACpD,gBAAgB,CAAC,IAAI,QAAQ,CAAC;AAC9B,gBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE;AAC7B,oBAAoB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,gBAAgB,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AACjC,gBAAgB,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,KAAK,CAAC;AACN,CAAC;;ACjDW,MAAC,UAAU,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAGiB,aAAM,KAAKC,sBAAU,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}