codeguardian-mcp 1.1.7 → 1.1.9

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.
@@ -6,6 +6,8 @@
6
6
  *
7
7
  * @format
8
8
  */
9
+ import * as fsSync from "fs";
10
+ import { getParser } from "../../tools/validation/parser.js";
9
11
  // ============================================================================
10
12
  // Main Validation Function
11
13
  // ============================================================================
@@ -289,8 +291,457 @@ function validateRequestResponseTypes(mapping, apiContract, endpoint) {
289
291
  // Validate query parameters
290
292
  const queryParamIssues = validateQueryParameters(mapping, endpoint);
291
293
  issues.push(...queryParamIssues);
294
+ // Validate inline request/response field usage when types/models are missing.
295
+ // This catches common vibecoding errors like `data.username` when backend returns `name`.
296
+ issues.push(...validateInlineRequestResponseFields(mapping, endpoint));
292
297
  return issues;
293
298
  }
299
+ function validateInlineRequestResponseFields(mapping, endpoint) {
300
+ const issues = [];
301
+ const frontendFile = mapping?.frontend?.file;
302
+ const backendFile = mapping?.backend?.file;
303
+ const method = mapping?.backend?.method || mapping?.frontend?.method;
304
+ const backendPath = mapping?.backend?.path;
305
+ if (!frontendFile || !backendFile || !method || !backendPath)
306
+ return issues;
307
+ if (!fsSync.existsSync(frontendFile) || !fsSync.existsSync(backendFile))
308
+ return issues;
309
+ let feContent = "";
310
+ let beContent = "";
311
+ try {
312
+ feContent = fsSync.readFileSync(frontendFile, "utf-8");
313
+ beContent = fsSync.readFileSync(backendFile, "utf-8");
314
+ }
315
+ catch {
316
+ return issues;
317
+ }
318
+ // Best-effort TypeScript parsing. If parsers aren't ready, skip instead of failing the whole run.
319
+ let feTree;
320
+ let beTree;
321
+ try {
322
+ feTree = getParser("typescript").parse(feContent);
323
+ beTree = getParser("typescript").parse(beContent);
324
+ }
325
+ catch {
326
+ return issues;
327
+ }
328
+ const frontendFnName = mapping?.frontend?.name;
329
+ const feFnNode = frontendFnName ? findFunctionLikeByName(feTree.rootNode, feContent, frontendFnName) : null;
330
+ const feResponseFields = feFnNode ? extractResponseFieldsUsed(feFnNode, feContent) : new Set();
331
+ const feRequestFields = feFnNode ? extractRequestBodyFieldsUsed(feFnNode, feContent) : new Set();
332
+ const beRouteNode = findExpressRouteHandler(beTree.rootNode, beContent, method, backendPath);
333
+ const beResponseFields = beRouteNode ? extractBackendResponseFields(beRouteNode, beContent) : new Set();
334
+ const beRequestFields = beRouteNode ? extractBackendRequestFields(beRouteNode, beContent) : new Set();
335
+ // Response field mismatches
336
+ if (feResponseFields.size > 0 && beResponseFields.size > 0) {
337
+ for (const field of feResponseFields) {
338
+ if (!beResponseFields.has(field)) {
339
+ issues.push({
340
+ type: "apiMissingRequiredField",
341
+ severity: "high",
342
+ message: `Response field mismatch: frontend uses '${field}', but backend response for ${method.toUpperCase()} ${backendPath} does not include it`,
343
+ file: frontendFile,
344
+ line: mapping.frontend.line,
345
+ endpoint,
346
+ suggestion: `Update frontend to use one of: ${Array.from(beResponseFields).sort().join(", ")}`,
347
+ confidence: 80,
348
+ });
349
+ }
350
+ }
351
+ }
352
+ // Request body extra fields
353
+ if (feRequestFields.size > 0 && beRequestFields.size > 0) {
354
+ for (const field of feRequestFields) {
355
+ if (!beRequestFields.has(field)) {
356
+ issues.push({
357
+ type: "apiExtraField",
358
+ severity: "medium",
359
+ message: `Request field mismatch: frontend sends '${field}', but backend handler for ${method.toUpperCase()} ${backendPath} does not read/expect it`,
360
+ file: frontendFile,
361
+ line: mapping.frontend.line,
362
+ endpoint,
363
+ suggestion: `Remove '${field}' from request payload or update backend to accept it`,
364
+ confidence: 75,
365
+ });
366
+ }
367
+ }
368
+ }
369
+ return issues;
370
+ }
371
+ function findFunctionLikeByName(root, content, name) {
372
+ let found = null;
373
+ const target = name.trim();
374
+ const visit = (node) => {
375
+ if (!node || found)
376
+ return;
377
+ if (node.type === "function_declaration") {
378
+ const nameNode = node.childForFieldName?.("name");
379
+ if (nameNode && content.slice(nameNode.startIndex, nameNode.endIndex) === target) {
380
+ found = node;
381
+ return;
382
+ }
383
+ }
384
+ // const foo = async (...) => {}
385
+ if (node.type === "variable_declarator") {
386
+ const nameNode = node.childForFieldName?.("name");
387
+ const valueNode = node.childForFieldName?.("value");
388
+ const nodeName = nameNode ? content.slice(nameNode.startIndex, nameNode.endIndex) : "";
389
+ if (nodeName === target && (valueNode?.type === "arrow_function" || valueNode?.type === "function")) {
390
+ found = valueNode;
391
+ return;
392
+ }
393
+ }
394
+ // { getUser: async (...) => {} }
395
+ if (node.type === "pair") {
396
+ const keyNode = node.childForFieldName?.("key");
397
+ const valueNode = node.childForFieldName?.("value");
398
+ if (keyNode && valueNode && (valueNode.type === "arrow_function" || valueNode.type === "function")) {
399
+ const keyText = content
400
+ .slice(keyNode.startIndex, keyNode.endIndex)
401
+ .replace(/^['"`]/, "")
402
+ .replace(/['"`]$/, "");
403
+ if (keyText === target) {
404
+ found = valueNode;
405
+ return;
406
+ }
407
+ }
408
+ }
409
+ // { async getUser(...) { ... } }
410
+ if (node.type === "method_definition") {
411
+ const nameNode = node.childForFieldName?.("name");
412
+ if (nameNode) {
413
+ const nodeName = content
414
+ .slice(nameNode.startIndex, nameNode.endIndex)
415
+ .replace(/^['"`]/, "")
416
+ .replace(/['"`]$/, "");
417
+ if (nodeName === target) {
418
+ found = node;
419
+ return;
420
+ }
421
+ }
422
+ }
423
+ for (const child of node.children || [])
424
+ visit(child);
425
+ };
426
+ visit(root);
427
+ return found;
428
+ }
429
+ function extractResponseFieldsUsed(functionNode, content) {
430
+ const fields = new Set();
431
+ const jsonVars = new Set();
432
+ const visit = (node) => {
433
+ if (!node)
434
+ return;
435
+ // const data = await response.json()
436
+ if (node.type === "variable_declarator") {
437
+ const nameNode = node.childForFieldName?.("name");
438
+ const valueNode = node.childForFieldName?.("value");
439
+ if (nameNode && valueNode) {
440
+ const varName = content.slice(nameNode.startIndex, nameNode.endIndex);
441
+ if (isAwaitedJsonCall(valueNode, content)) {
442
+ jsonVars.add(varName);
443
+ }
444
+ }
445
+ }
446
+ // data.username
447
+ if (node.type === "member_expression") {
448
+ const objectNode = node.childForFieldName?.("object");
449
+ const propertyNode = node.childForFieldName?.("property");
450
+ if (objectNode?.type === "identifier" && propertyNode?.type === "property_identifier") {
451
+ const obj = content.slice(objectNode.startIndex, objectNode.endIndex);
452
+ const prop = content.slice(propertyNode.startIndex, propertyNode.endIndex);
453
+ if (jsonVars.has(obj))
454
+ fields.add(prop);
455
+ }
456
+ }
457
+ for (const child of node.children || [])
458
+ visit(child);
459
+ };
460
+ visit(functionNode);
461
+ return fields;
462
+ }
463
+ function isAwaitedJsonCall(node, content) {
464
+ const awaited = node.type === "await_expression"
465
+ ? node.childForFieldName?.("argument") ||
466
+ node.childForFieldName?.("expression") ||
467
+ (node.namedChildren ? node.namedChildren[0] : null)
468
+ : node;
469
+ const n = awaited;
470
+ if (!n || n.type !== "call_expression")
471
+ return false;
472
+ const fn = n.childForFieldName?.("function");
473
+ if (!fn || fn.type !== "member_expression")
474
+ return false;
475
+ const prop = fn.childForFieldName?.("property");
476
+ if (!prop)
477
+ return false;
478
+ const propText = content.slice(prop.startIndex, prop.endIndex);
479
+ return propText === "json";
480
+ }
481
+ function extractRequestBodyFieldsUsed(functionNode, content) {
482
+ const fields = new Set();
483
+ // Find request body identifier used in `body: JSON.stringify(x)`.
484
+ const bodyVars = new Set();
485
+ const visit = (node) => {
486
+ if (!node)
487
+ return;
488
+ if (node.type === "call_expression") {
489
+ const fn = node.childForFieldName?.("function");
490
+ const args = node.childForFieldName?.("arguments");
491
+ if (fn?.type === "identifier" && content.slice(fn.startIndex, fn.endIndex) === "fetch" && args) {
492
+ // Find an object arg that contains `body:`
493
+ for (const child of args.children || []) {
494
+ if (child.type !== "object")
495
+ continue;
496
+ for (const pair of child.children || []) {
497
+ if (pair.type !== "pair")
498
+ continue;
499
+ const keyNode = pair.childForFieldName?.("key");
500
+ const valNode = pair.childForFieldName?.("value");
501
+ if (!keyNode || !valNode)
502
+ continue;
503
+ const keyText = content.slice(keyNode.startIndex, keyNode.endIndex);
504
+ if (keyText !== "body")
505
+ continue;
506
+ const id = extractJsonStringifyIdentifier(valNode, content);
507
+ if (id)
508
+ bodyVars.add(id);
509
+ }
510
+ }
511
+ }
512
+ }
513
+ for (const child of node.children || [])
514
+ visit(child);
515
+ };
516
+ visit(functionNode);
517
+ if (bodyVars.size === 0)
518
+ return fields;
519
+ // If body var is a function parameter with an inline object type, extract fields from its type literal.
520
+ const paramsNode = functionNode.childForFieldName?.("parameters");
521
+ if (!paramsNode)
522
+ return fields;
523
+ for (const param of paramsNode.children || []) {
524
+ const nameNode = param.childForFieldName?.("pattern") ||
525
+ param.childForFieldName?.("name") ||
526
+ (param.namedChildren ? param.namedChildren.find((c) => c.type === "identifier") : null);
527
+ if (!nameNode)
528
+ continue;
529
+ const paramName = content.slice(nameNode.startIndex, nameNode.endIndex);
530
+ if (!bodyVars.has(paramName))
531
+ continue;
532
+ const typeNode = param.childForFieldName?.("type") ||
533
+ (param.namedChildren ? param.namedChildren.find((c) => c.type === "type_annotation") : null);
534
+ if (!typeNode)
535
+ continue;
536
+ const astKeys = extractKeysFromInlineObjectTypeNode(typeNode, content);
537
+ if (astKeys.length > 0) {
538
+ for (const key of astKeys)
539
+ fields.add(key);
540
+ }
541
+ else {
542
+ const typeText = content.slice(typeNode.startIndex, typeNode.endIndex);
543
+ for (const key of extractKeysFromInlineObjectType(typeText))
544
+ fields.add(key);
545
+ }
546
+ }
547
+ return fields;
548
+ }
549
+ function extractKeysFromInlineObjectTypeNode(typeNode, content) {
550
+ const keys = [];
551
+ let objectType = null;
552
+ const findObjectType = (node) => {
553
+ if (!node || objectType)
554
+ return;
555
+ if (node.type === "object_type") {
556
+ objectType = node;
557
+ return;
558
+ }
559
+ for (const child of node.children || [])
560
+ findObjectType(child);
561
+ };
562
+ findObjectType(typeNode);
563
+ if (!objectType)
564
+ return keys;
565
+ for (const child of objectType.children || []) {
566
+ if (child.type !== "property_signature")
567
+ continue;
568
+ const nameNode = child.childForFieldName?.("name") ||
569
+ (child.namedChildren ? child.namedChildren.find((c) => c.type === "property_identifier" || c.type === "identifier" || c.type === "string") : null);
570
+ if (!nameNode)
571
+ continue;
572
+ const raw = content.slice(nameNode.startIndex, nameNode.endIndex);
573
+ const cleaned = raw.replace(/^['"`]/, "").replace(/['"`]$/, "");
574
+ if (cleaned)
575
+ keys.push(cleaned);
576
+ }
577
+ return keys;
578
+ }
579
+ function extractJsonStringifyIdentifier(node, content) {
580
+ // JSON.stringify(userData)
581
+ if (node?.type !== "call_expression")
582
+ return null;
583
+ const fn = node.childForFieldName?.("function");
584
+ if (!fn || fn.type !== "member_expression")
585
+ return null;
586
+ const obj = fn.childForFieldName?.("object");
587
+ const prop = fn.childForFieldName?.("property");
588
+ if (!obj || !prop)
589
+ return null;
590
+ const objText = content.slice(obj.startIndex, obj.endIndex);
591
+ const propText = content.slice(prop.startIndex, prop.endIndex);
592
+ if (objText !== "JSON" || propText !== "stringify")
593
+ return null;
594
+ const args = node.childForFieldName?.("arguments");
595
+ if (!args)
596
+ return null;
597
+ const firstArg = (args.children || []).find((c) => c.type === "identifier");
598
+ if (!firstArg)
599
+ return null;
600
+ return content.slice(firstArg.startIndex, firstArg.endIndex);
601
+ }
602
+ function extractKeysFromInlineObjectType(typeText) {
603
+ // Very small heuristic parser for inline object types like:
604
+ // { name: string; email: string; phone: string; }
605
+ const keys = [];
606
+ let inside = typeText.trim();
607
+ // Tree-sitter may include a leading ':' in type annotations.
608
+ if (inside.startsWith(":"))
609
+ inside = inside.slice(1).trim();
610
+ if (!inside.startsWith("{") || !inside.endsWith("}"))
611
+ return keys;
612
+ const body = inside.slice(1, -1);
613
+ const re = /\b([A-Za-z_][A-Za-z0-9_]*)\s*\??\s*:/g;
614
+ let m;
615
+ while ((m = re.exec(body))) {
616
+ keys.push(m[1]);
617
+ }
618
+ return keys;
619
+ }
620
+ function findExpressRouteHandler(root, content, method, backendPath) {
621
+ let found = null;
622
+ const targetMethod = method.toLowerCase();
623
+ const targetPath = normalizePathForComparison(backendPath);
624
+ const visit = (node) => {
625
+ if (!node || found)
626
+ return;
627
+ if (node.type === "call_expression") {
628
+ const fn = node.childForFieldName?.("function");
629
+ const args = node.childForFieldName?.("arguments");
630
+ if (fn?.type === "member_expression" && args) {
631
+ const obj = fn.childForFieldName?.("object");
632
+ const prop = fn.childForFieldName?.("property");
633
+ const propText = prop ? content.slice(prop.startIndex, prop.endIndex).toLowerCase() : "";
634
+ if (propText === targetMethod && (obj?.type === "identifier")) {
635
+ const firstArg = (args.children || []).find((c) => c.type === "string" || c.type === "template_string");
636
+ if (firstArg && firstArg.type === "string") {
637
+ const raw = content.slice(firstArg.startIndex, firstArg.endIndex).trim().replace(/^['"`]/, "").replace(/['"`]$/, "");
638
+ if (normalizePathForComparison(raw) === targetPath) {
639
+ // Find the first function-like arg after the path
640
+ const fnArg = (args.children || []).find((c) => c.type === "arrow_function" || c.type === "function");
641
+ if (fnArg) {
642
+ found = fnArg;
643
+ return;
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }
649
+ }
650
+ for (const child of node.children || [])
651
+ visit(child);
652
+ };
653
+ visit(root);
654
+ return found;
655
+ }
656
+ function extractBackendResponseFields(handlerFnNode, content) {
657
+ const fields = new Set();
658
+ const visit = (node) => {
659
+ if (!node)
660
+ return;
661
+ if (node.type === "call_expression") {
662
+ const fn = node.childForFieldName?.("function");
663
+ const args = node.childForFieldName?.("arguments");
664
+ if (fn?.type === "member_expression" && args) {
665
+ const obj = fn.childForFieldName?.("object");
666
+ const prop = fn.childForFieldName?.("property");
667
+ const objText = obj ? content.slice(obj.startIndex, obj.endIndex) : "";
668
+ const propText = prop ? content.slice(prop.startIndex, prop.endIndex) : "";
669
+ if (objText === "res" && propText === "json") {
670
+ const objArg = (args.children || []).find((c) => c.type === "object");
671
+ if (objArg) {
672
+ for (const child of objArg.children || []) {
673
+ if (child.type === "pair") {
674
+ const keyNode = child.childForFieldName?.("key");
675
+ if (!keyNode)
676
+ continue;
677
+ const keyText = content
678
+ .slice(keyNode.startIndex, keyNode.endIndex)
679
+ .replace(/^['"`]/, "")
680
+ .replace(/['"`]$/, "");
681
+ if (keyText)
682
+ fields.add(keyText);
683
+ }
684
+ // Shorthand properties: { name, email }
685
+ if (child.type === "shorthand_property_identifier" || child.type === "shorthand_property_identifier_pattern") {
686
+ const keyText = content.slice(child.startIndex, child.endIndex);
687
+ if (keyText)
688
+ fields.add(keyText);
689
+ }
690
+ }
691
+ }
692
+ }
693
+ }
694
+ }
695
+ for (const child of node.children || [])
696
+ visit(child);
697
+ };
698
+ visit(handlerFnNode);
699
+ return fields;
700
+ }
701
+ function extractBackendRequestFields(handlerFnNode, content) {
702
+ const fields = new Set();
703
+ const visit = (node) => {
704
+ if (!node)
705
+ return;
706
+ // const { name, email } = req.body
707
+ if (node.type === "variable_declarator") {
708
+ const nameNode = node.childForFieldName?.("name");
709
+ const valueNode = node.childForFieldName?.("value");
710
+ if (nameNode?.type === "object_pattern" && valueNode?.type === "member_expression") {
711
+ const obj = valueNode.childForFieldName?.("object");
712
+ const prop = valueNode.childForFieldName?.("property");
713
+ const objText = obj ? content.slice(obj.startIndex, obj.endIndex) : "";
714
+ const propText = prop ? content.slice(prop.startIndex, prop.endIndex) : "";
715
+ if (objText === "req" && propText === "body") {
716
+ const patternText = content.slice(nameNode.startIndex, nameNode.endIndex);
717
+ const re = /\b([A-Za-z_][A-Za-z0-9_]*)\b/g;
718
+ let m;
719
+ while ((m = re.exec(patternText))) {
720
+ fields.add(m[1]);
721
+ }
722
+ }
723
+ }
724
+ }
725
+ // req.body.phone
726
+ if (node.type === "member_expression") {
727
+ const objectNode = node.childForFieldName?.("object");
728
+ const propertyNode = node.childForFieldName?.("property");
729
+ if (propertyNode?.type === "property_identifier" && objectNode?.type === "member_expression") {
730
+ const innerObj = objectNode.childForFieldName?.("object");
731
+ const innerProp = objectNode.childForFieldName?.("property");
732
+ const innerObjText = innerObj ? content.slice(innerObj.startIndex, innerObj.endIndex) : "";
733
+ const innerPropText = innerProp ? content.slice(innerProp.startIndex, innerProp.endIndex) : "";
734
+ if (innerObjText === "req" && innerPropText === "body") {
735
+ fields.add(content.slice(propertyNode.startIndex, propertyNode.endIndex));
736
+ }
737
+ }
738
+ }
739
+ for (const child of node.children || [])
740
+ visit(child);
741
+ };
742
+ visit(handlerFnNode);
743
+ return fields;
744
+ }
294
745
  /**
295
746
  * Validate query parameters between frontend and backend
296
747
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api-contract/validators/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api-contract/validators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AA0C7D,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE;gBACP,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,CAAC;gBACN,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,CAAC;gBACf,iBAAiB,EAAE,CAAC;gBACpB,gBAAgB,EAAE,CAAC;aACpB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3C,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvD,oBAAoB;IACpB,MAAM,OAAO,GAAG;QACd,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM;QAChE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;QACxD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;QAC5D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM;QACtD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI;QACnD,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI;QAC3C,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM;QACvD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,MAAM;KACtD,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,SAAS,iBAAiB,CAAC,WAA+B;IACxD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC/D,0BAA0B;QAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,uCAAuC,OAAO,CAAC,QAAQ,CAAC,MAAM,qBAAqB,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;gBACpH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAC3B,QAAQ;gBACR,UAAU,EAAE,0BAA0B,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC9D,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;YAE/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,wEAAwE;gBACxE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzD,MAAM,eAAe,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;gBAElE,IAAI,eAAe,IAAI,eAAe,KAAK,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC/G,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,mBAAmB;wBACzB,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,qCAAqC,OAAO,CAAC,QAAQ,CAAC,IAAI,cAAc,eAAe,uBAAuB,aAAa,4BAA4B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACzL,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;wBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;wBAC3B,QAAQ;wBACR,UAAU,EAAE,kBAAkB,eAAe,eAAe,aAAa,SAAS,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG;wBAC1G,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,yBAAyB,CAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CAAC,OAAO,CAAC,IAAI,EACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,EACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CACtB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3B,uCAAuC;QACvC,MAAM,UAAU,GAAG,4BAA4B,CAC7C,OAAO,EACP,WAAW,EACX,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAAC,YAAoB;IACvD,MAAM,cAAc,GAA6B;QAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC7E,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC5F,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;QACxD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;KAC3D,CAAC;IAEF,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAChE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAoB,EACpB,WAAmB,EACnB,IAAY,EACZ,IAAY;IAEZ,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAElE,uEAAuE;IACvE,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACvD,MAAM,qBAAqB,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAClE,MAAM,oBAAoB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,2CAA2C,YAAY,wBAAwB,WAAW,GAAG;gBACtG,IAAI;gBACJ,IAAI;gBACJ,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,2CAA2C,WAAW,GAAG;gBACrE,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM,cAAc,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAErD,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD,IAAI,gBAAgB,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,iEAAiE;gBACjE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,gEAAgE;gBAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7F,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,2BAA2B,KAAK,mBAAmB;gBAC5D,IAAI;gBACJ,IAAI;gBACJ,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,QAAQ,KAAK,kCAAkC,WAAW,GAAG;gBACzE,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,yBAAyB,KAAK,wCAAwC;gBAC/E,IAAI;gBACJ,IAAI;gBACJ,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,WAAW,KAAK,qCAAqC;gBACjE,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CACnC,OAAY,EACZ,WAA+B,EAC/B,QAAgB;IAEhB,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,6BAA6B;IAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACjE,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzD,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QAEzD,wEAAwE;QACxE,IAAI,aAAa,CAAC,mBAAmB,CAAC,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7E,2CAA2C;QAC7C,CAAC;aAAM,IAAI,mBAAmB,KAAK,mBAAmB,EAAE,CAAC;YACvD,sCAAsC;YACtC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC/F,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBACtE,+DAA+D;oBAC/D,yHAAyH;oBACzH,MAAM,cAAc,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;oBACxG,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,iBAAiB;4BACvB,QAAQ,EAAE,MAAM;4BAChB,OAAO,EAAE,+CAA+C,mBAAmB,uBAAuB,mBAAmB,GAAG;4BACxH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;4BAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;4BAC3B,QAAQ;4BACR,UAAU,EAAE,yBAAyB,mBAAmB,4BAA4B,mBAAmB,GAAG;4BAC1G,UAAU,EAAE,EAAE;yBACf,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;YACzF,IAAI,YAAY,EAAE,CAAC;gBACjB,oCAAoC;gBACpC,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC/C,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBAC1B,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CACpD,CAAC,CAAmB,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CACpF,CAAC;wBAEF,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,yBAAyB;gCAC/B,QAAQ,EAAE,UAAU;gCACpB,OAAO,EAAE,2BAA2B,YAAY,CAAC,IAAI,qCAAqC,mBAAmB,uBAAuB;gCACpI,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gCAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gCAC3B,QAAQ;gCACR,UAAU,EAAE,QAAQ,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,uBAAuB,mBAAmB,GAAG;gCACxG,UAAU,EAAE,EAAE;6BACf,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACnE,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3D,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAE3D,sCAAsC;QACtC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEzE,IAAI,sBAAsB,KAAK,sBAAsB,EAAE,CAAC;YACtD,2CAA2C;YAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,6CAA6C,oBAAoB,uBAAuB,oBAAoB,GAAG;oBACxH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,QAAQ;oBACR,UAAU,EAAE,yBAAyB,oBAAoB,uCAAuC,oBAAoB,GAAG;oBACvH,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAEjC,8EAA8E;IAC9E,0FAA0F;IAC1F,MAAM,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mCAAmC,CAAC,OAAY,EAAE,QAAgB;IACzE,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,MAAM,YAAY,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;IACrE,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAE3C,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvF,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kGAAkG;IAClG,IAAI,MAAW,CAAC;IAChB,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,cAAc,GAAuB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;IACnE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5G,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IACvG,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAEzG,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAChH,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAE9G,4BAA4B;IAC5B,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,2CAA2C,KAAK,+BAA+B,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,sBAAsB;oBACjJ,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,QAAQ;oBACR,UAAU,EAAE,kCAAkC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC9F,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,2CAA2C,KAAK,8BAA8B,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,0BAA0B;oBACpJ,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,QAAQ;oBACR,UAAU,EAAE,WAAW,KAAK,uDAAuD;oBACnF,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAS,EAAE,OAAe,EAAE,IAAY;IACtE,IAAI,KAAK,GAAe,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI,IAAI,KAAK;YAAE,OAAO;QAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;gBACjF,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO;YACT,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,gBAAgB,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBACpG,KAAK,GAAG,SAAS,CAAC;gBAClB,OAAO;YACT,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,OAAO,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBACnG,MAAM,OAAO,GAAG,OAAO;qBACpB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;qBAC3C,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;qBACrB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvB,KAAK,GAAG,SAAS,CAAC;oBAClB,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,OAAO;qBACrB,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;qBAC7C,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;qBACrB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,KAAK,GAAG,IAAI,CAAC;oBACb,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,YAAiB,EAAE,OAAe;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,qCAAqC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACtE,IAAI,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC1C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,UAAU,EAAE,IAAI,KAAK,YAAY,IAAI,YAAY,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACtF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC3E,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,KAAK,CAAC,YAAY,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAS,EAAE,OAAe;IACnD,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAC9B,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC;YACtC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,CAAC,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACzD,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,OAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B,CAAC;AAED,SAAS,4BAA4B,CAAC,YAAiB,EAAE,OAAe;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,kEAAkE;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,EAAE,EAAE,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC/F,2CAA2C;gBAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;wBAAE,SAAS;oBACtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;4BAAE,SAAS;wBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;wBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;wBAClD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;4BAAE,SAAS;wBACnC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACpE,IAAI,OAAO,KAAK,MAAM;4BAAE,SAAS;wBAEjC,MAAM,EAAE,GAAG,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC5D,IAAI,EAAE;4BAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,KAAK,CAAC,YAAY,CAAC,CAAC;IAEpB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,wGAAwG;IACxG,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,QAAQ,GACZ,KAAK,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC;YACpC,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;YACjC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,QAAQ,GACZ,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;YACjC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,OAAO,GAAG,mCAAmC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,OAAO;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvE,KAAK,MAAM,GAAG,IAAI,+BAA+B,CAAC,QAAQ,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mCAAmC,CAAC,QAAa,EAAE,OAAe;IACzE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAe,IAAI,CAAC;IAElC,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,EAAE;QACnC,IAAI,CAAC,IAAI,IAAI,UAAU;YAAE,OAAO;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB;YAAE,SAAS;QAClD,MAAM,QAAQ,GACZ,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;YACjC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1J,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAS,EAAE,OAAe;IAChE,2BAA2B;IAC3B,IAAI,IAAI,EAAE,IAAI,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,OAAO,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEhE,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAgB;IACvD,4DAA4D;IAC5D,kDAAkD;IAClD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,uCAAuC,CAAC;IACnD,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAS,EAAE,OAAe,EAAE,MAAc,EAAE,WAAmB;IAC9F,IAAI,KAAK,GAAe,IAAI,CAAC;IAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI,IAAI,KAAK;YAAE,OAAO;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,EAAE,EAAE,IAAI,KAAK,mBAAmB,IAAI,IAAI,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,IAAI,QAAQ,KAAK,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;oBAC9D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;oBAC7G,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACrH,IAAI,0BAA0B,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;4BACnD,kDAAkD;4BAClD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;4BAC3G,IAAI,KAAK,EAAE,CAAC;gCACV,KAAK,GAAG,KAAK,CAAC;gCACd,OAAO;4BACT,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CAAC,aAAkB,EAAE,OAAe;IACvE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,EAAE,EAAE,IAAI,KAAK,mBAAmB,IAAI,IAAI,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;oBAC3E,IAAI,MAAM,EAAE,CAAC;wBACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;4BAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;gCACjD,IAAI,CAAC,OAAO;oCAAE,SAAS;gCACvB,MAAM,OAAO,GAAG,OAAO;qCACpB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;qCAC3C,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;qCACrB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gCACzB,IAAI,OAAO;oCAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BACnC,CAAC;4BAED,wCAAwC;4BACxC,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,IAAI,KAAK,CAAC,IAAI,KAAK,uCAAuC,EAAE,CAAC;gCAC7G,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gCAChE,IAAI,OAAO;oCAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,KAAK,CAAC,aAAa,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAAC,aAAkB,EAAE,OAAe;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,mCAAmC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE,IAAI,KAAK,gBAAgB,IAAI,SAAS,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACnF,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1E,MAAM,EAAE,GAAG,+BAA+B,CAAC;oBAC3C,IAAI,CAAyB,CAAC;oBAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,YAAY,EAAE,IAAI,KAAK,qBAAqB,IAAI,UAAU,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC7F,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAC;gBAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,IAAI,YAAY,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBACvD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,KAAK,CAAC,aAAa,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,OAAY,EACZ,QAAgB;IAEhB,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAExD,sDAAsD;IACtD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CACvC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CACtD,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,qCAAqC,YAAY,CAAC,IAAI,kCAAkC,YAAY,CAAC,IAAI,EAAE;oBACpH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,QAAQ;oBACR,UAAU,EAAE,wBAAwB,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,uBAAuB;oBAClG,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CACrC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CACvD,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAG,MAAM,CAAC,QAAsC,IAAI,QAAQ;oBACpE,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,oBAAoB,aAAa,CAAC,IAAI,mCAAmC,aAAa,CAAC,IAAI,uBAAuB,YAAY,CAAC,IAAI,GAAG;oBAChK,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;oBAC3B,QAAQ;oBACR,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,2BAA2B,aAAa,CAAC,IAAI,wBAAwB;oBACtG,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,SAAS,aAAa,CAAC,WAA+B;IACpD,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;QAErC,gDAAgD;QAChD,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAC5C,CAAC,CAAmB,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CACpF,CAAC;gBAEF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,yBAAyB;wBAC/B,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,2BAA2B,YAAY,CAAC,IAAI,uBAAuB,YAAY,CAAC,IAAI,GAAG;wBAChG,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,UAAU,EAAE,QAAQ,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,QAAQ,YAAY,CAAC,IAAI,YAAY;wBAChG,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,iFAAiF;QACjF,MAAM,cAAc,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAC,CAAmB,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CACrF,CAAC;gBAEF,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,gCAAgC,aAAa,CAAC,IAAI,gBAAgB,YAAY,CAAC,IAAI,GAAG;wBAC/F,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,UAAU,EAAE,cAAc,YAAY,CAAC,IAAI,+BAA+B;wBAC1E,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,aAAa,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAC,CAAmB,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CACrF,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEzE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,iBAAiB;wBACvB,QAAQ,EAAG,MAAM,CAAC,QAAsC,IAAI,QAAQ;wBACpE,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,4BAA4B,aAAa,CAAC,IAAI,qBAAqB,aAAa,CAAC,IAAI,uBAAuB,YAAY,CAAC,IAAI,GAAG;wBAC1J,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,8BAA8B,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;wBACtG,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,SAAS,yBAAyB,CAAC,WAA+B;IAChE,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACpD,2DAA2D;QAC3D,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAE1E,IAAI,YAAY,EAAE,CAAC;YACjB,kCAAkC;YAClC,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ;gBACtC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,uCAAuC,OAAO,CAAC,MAAM,qBAAqB,YAAY,CAAC,MAAM,SAAS,OAAO,CAAC,QAAQ,GAAG;oBAClI,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,UAAU,EAAE,0BAA0B,YAAY,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,EAAE;oBACxF,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,2CAA2C,OAAO,CAAC,QAAQ,gCAAgC,YAAY,CAAC,IAAI,MAAM,YAAY,CAAC,MAAM,GAAG;oBACjJ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,UAAU,EAAE,4BAA4B,YAAY,CAAC,IAAI,2DAA2D;oBACpH,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,aAAa,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,wBAAwB;gBAChF,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,0DAA0D;gBACtE,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,uBAAuB,GAAG;IAC9B,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IAEnB,eAAe;IACf,UAAU;IACV,eAAe;IACf,eAAe;IACf,oBAAoB;IAEpB,wBAAwB;IACxB,UAAU;IACV,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,UAAU;IAEV,uBAAuB;IACvB,mBAAmB;IACnB,UAAU;IACV,WAAW;IACX,aAAa;IAEb,oBAAoB;IACpB,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA6C,EAC7C,aAAmC;IAEnC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExE,+EAA+E;IAC/E,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACzD,MAAM,eAAe,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,eAAe,KAAK,kBAAkB;YACtC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5D,MAAM,eAAe,GAAG,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,eAAe,KAAK,gBAAgB;YACpC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,0BAA0B,EAAE,CAAC;QAC/B,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,6EAA6E;IAC7E,6FAA6F;IAC7F,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,aAAuE,CAAC;IAE5E,MAAM,aAAa,GAAG,CAAC,MAAgB,EAAE,MAAgB,EAAU,EAAE;QACnE,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,KAAK,IAAI,GAAG,CAAC,CAAC,cAAc;YAC9B,CAAC;iBAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,KAAK,IAAI,GAAG,CAAC,CAAC,qEAAqE;YACrF,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;oBACtB,KAAK,IAAI,UAAU,CAAC,CAAC,sEAAsE;gBAC7F,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,aAAa,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,aAAa,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;QACrE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,aAAa,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC;IAE9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,qBAAqB,CAAC,YAAoB,EAAE,WAAmB;IACtE,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;IAE7B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnE,kCAAkC;IAClC,IAAI,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,mDAAmD;IACnD,IAAI,MAAM,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC;IAEnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa;IAC9C,4DAA4D;IAC5D,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,WAAW,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;YAAE,SAAS;QACrD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,IAAY;IAC9C,kCAAkC;IAClC,IAAI,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAErC,8DAA8D;IAC9D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACjE,kCAAkC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC5F,OAAO,IAAI,SAAS,GAAG,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACvE,OAAO,IAAI,SAAS,GAAG,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,CAAS,EAAE,CAAS;IAC7C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACxB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAEvB,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAE9C,4DAA4D;IAC5D,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnD,oEAAoE;IACpE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,YAAY,EAAE,CAAC;;YAC/B,MAAM;IACb,CAAC;IACD,gFAAgF;IAChF,kFAAkF;IAClF,MAAM,eAAe,GAAG,YAAY,GAAG,MAAM,CAAC;IAC9C,iFAAiF;IACjF,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;IAC7C,oEAAoE;IACpE,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC;IAEjE,kCAAkC;IAClC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAE7C,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,CAAS,EAAE,CAAS;IAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,gCAAgC;IAChC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,iDAAiD;IACjD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,wBAAwB;IACxB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,+DAA+D;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC3C,iDAAiD;YACjD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,MAAc;IACxD,+EAA+E;IAC/E,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,cAAc;IACd,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,yBAAyB;IACzB,MAAM,aAAa,GAA6B;QAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/D,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;QACxD,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,GAAG,EAAE,CAAC,KAAK,CAAC;QACZ,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;KAC7B,CAAC;IAEF,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,gEAAgE;IAChE,IAAI,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,iDAAiD;IACjD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,2FAA2F;IAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,uEAAuE;IACvE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAa,EAAE,KAAa;IACvD,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,8CAA8C,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,8CAA8C,EAAE,EAAE,CAAC,CAAC;IAEjF,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,YAAoB,EACpB,gBAAwB,EACxB,WAA+B;IAE/B,8CAA8C;IAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IACtF,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,kFAAkF;IAClF,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,gGAAgG;QAChG,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,YAAY,GAAG,CAAC;YAC3C,SAAS,CAAC,QAAQ,CAAC,YAAY,YAAY,GAAG,CAAC;YAC/C,SAAS,KAAK,GAAG,YAAY,IAAI,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc,EAAE,MAAc;IAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QACvC,CAAC;QACD,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,yCAAyC,MAAM,EAAE;YACzD,UAAU,EAAE,iEAAiE;SAC9E,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,0DAA0D;YAClE,UAAU,EAAE,oFAAoF;SACjG,CAAC;IACJ,CAAC;IAED,yFAAyF;IACzF,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC3D,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QACvC,CAAC;QACD,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,gBAAgB,MAAM,mBAAmB,MAAM,EAAE;YACzD,UAAU,EAAE,8DAA8D;SAC3E,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/F,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,wDAAwD,MAAM,EAAE;YACxE,UAAU,EAAE,8DAA8D;SAC3E,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACjF,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,wDAAwD,MAAM,EAAE;YACxE,UAAU,EAAE,8DAA8D;SAC3E,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAClH,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,wCAAwC,MAAM,EAAE;YACxD,UAAU,EAAE,2CAA2C;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,4DAA4D;SACnF,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;SACzB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;AAC7D,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAc,EAAE,MAAc;IACpE,MAAM,WAAW,GAA2C;QAC1D,MAAM,EAAE;YACN,IAAI,EAAE,0CAA0C;YAChD,QAAQ,EAAE,wCAAwC;YAClD,OAAO,EAAE,0CAA0C;SACpD;QACD,MAAM,EAAE;YACN,OAAO,EAAE,iDAAiD;YAC1D,GAAG,EAAE,4BAA4B;YACjC,KAAK,EAAE,0BAA0B;SAClC;KACF,CAAC;IAEF,OAAO,CACL,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,gCAAgC,MAAM,OAAO,MAAM,EAAE,CACvF,CAAC;AACJ,CAAC"}