brighterscript 0.66.0-alpha.1 → 0.66.0-alpha.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +0 -6
  3. package/dist/BsConfig.d.ts +0 -5
  4. package/dist/Cache.js +3 -3
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CacheVerifier.d.ts +0 -1
  7. package/dist/CodeActionUtil.d.ts +2 -2
  8. package/dist/DiagnosticCollection.js +8 -5
  9. package/dist/DiagnosticCollection.js.map +1 -1
  10. package/dist/DiagnosticMessages.d.ts +6 -1
  11. package/dist/DiagnosticMessages.js +5 -0
  12. package/dist/DiagnosticMessages.js.map +1 -1
  13. package/dist/FunctionScope.d.ts +1 -1
  14. package/dist/LanguageServer.d.ts +5 -1
  15. package/dist/LanguageServer.js +7 -0
  16. package/dist/LanguageServer.js.map +1 -1
  17. package/dist/Logger.d.ts +2 -1
  18. package/dist/Logger.js +10 -2
  19. package/dist/Logger.js.map +1 -1
  20. package/dist/Program.d.ts +1 -3
  21. package/dist/Program.js +4 -14
  22. package/dist/Program.js.map +1 -1
  23. package/dist/ProgramBuilder.js +1 -1
  24. package/dist/ProgramBuilder.js.map +1 -1
  25. package/dist/Scope.d.ts +11 -6
  26. package/dist/Scope.js +77 -93
  27. package/dist/Scope.js.map +1 -1
  28. package/dist/SymbolTable.d.ts +13 -5
  29. package/dist/SymbolTable.js +34 -10
  30. package/dist/SymbolTable.js.map +1 -1
  31. package/dist/astUtils/reflection.d.ts +4 -0
  32. package/dist/astUtils/reflection.js +9 -1
  33. package/dist/astUtils/reflection.js.map +1 -1
  34. package/dist/bscPlugin/hover/HoverProcessor.d.ts +5 -0
  35. package/dist/bscPlugin/hover/HoverProcessor.js +108 -77
  36. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  37. package/dist/bscPlugin/hover/HoverProcessor.spec.js +83 -29
  38. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  39. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +0 -4
  40. package/dist/bscPlugin/validation/BrsFileValidator.js +10 -16
  41. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  42. package/dist/bscPlugin/validation/ScopeValidator.d.ts +4 -0
  43. package/dist/bscPlugin/validation/ScopeValidator.js +77 -42
  44. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  45. package/dist/bscPlugin/validation/ScopeValidator.spec.js +684 -0
  46. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  47. package/dist/cli.js +95 -13
  48. package/dist/cli.js.map +1 -1
  49. package/dist/files/BrsFile.Class.spec.js +5 -0
  50. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  51. package/dist/files/BrsFile.d.ts +1 -11
  52. package/dist/files/BrsFile.js +9 -101
  53. package/dist/files/BrsFile.js.map +1 -1
  54. package/dist/files/BrsFile.spec.js +3 -267
  55. package/dist/files/BrsFile.spec.js.map +1 -1
  56. package/dist/globalCallables.js +78 -78
  57. package/dist/globalCallables.js.map +1 -1
  58. package/dist/index.d.ts +1 -0
  59. package/dist/index.js +1 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/interfaces.d.ts +7 -5
  62. package/dist/interfaces.js.map +1 -1
  63. package/dist/parser/Expression.d.ts +4 -3
  64. package/dist/parser/Expression.js +32 -9
  65. package/dist/parser/Expression.js.map +1 -1
  66. package/dist/parser/SGParser.d.ts +2 -2
  67. package/dist/parser/Statement.d.ts +11 -6
  68. package/dist/parser/Statement.js +54 -21
  69. package/dist/parser/Statement.js.map +1 -1
  70. package/dist/parser/tests/expression/TernaryExpression.spec.js +2 -2
  71. package/dist/types/BaseFunctionType.d.ts +8 -0
  72. package/dist/types/BaseFunctionType.js +25 -0
  73. package/dist/types/BaseFunctionType.js.map +1 -0
  74. package/dist/types/BooleanType.js +2 -1
  75. package/dist/types/BooleanType.js.map +1 -1
  76. package/dist/types/BscTypeKind.d.ts +1 -0
  77. package/dist/types/BscTypeKind.js +1 -0
  78. package/dist/types/BscTypeKind.js.map +1 -1
  79. package/dist/types/ClassType.js +1 -1
  80. package/dist/types/ClassType.js.map +1 -1
  81. package/dist/types/DoubleType.js +1 -0
  82. package/dist/types/DoubleType.js.map +1 -1
  83. package/dist/types/EnumType.d.ts +20 -4
  84. package/dist/types/EnumType.js +14 -2
  85. package/dist/types/EnumType.js.map +1 -1
  86. package/dist/types/FloatType.js +1 -0
  87. package/dist/types/FloatType.js.map +1 -1
  88. package/dist/types/FunctionType.d.ts +6 -19
  89. package/dist/types/FunctionType.js +12 -44
  90. package/dist/types/FunctionType.js.map +1 -1
  91. package/dist/types/IntegerType.js +1 -0
  92. package/dist/types/IntegerType.js.map +1 -1
  93. package/dist/types/InterfaceType.js +3 -3
  94. package/dist/types/InterfaceType.js.map +1 -1
  95. package/dist/types/InvalidType.d.ts +1 -0
  96. package/dist/types/InvalidType.js +3 -1
  97. package/dist/types/InvalidType.js.map +1 -1
  98. package/dist/types/LongIntegerType.js +1 -0
  99. package/dist/types/LongIntegerType.js.map +1 -1
  100. package/dist/types/ObjectType.js +2 -9
  101. package/dist/types/ObjectType.js.map +1 -1
  102. package/dist/types/ReferenceType.d.ts +1 -3
  103. package/dist/types/ReferenceType.js +27 -13
  104. package/dist/types/ReferenceType.js.map +1 -1
  105. package/dist/types/ReferenceType.spec.js +6 -6
  106. package/dist/types/ReferenceType.spec.js.map +1 -1
  107. package/dist/types/StringType.js +4 -1
  108. package/dist/types/StringType.js.map +1 -1
  109. package/dist/types/TypedFunctionType.d.ts +27 -0
  110. package/dist/types/TypedFunctionType.js +69 -0
  111. package/dist/types/TypedFunctionType.js.map +1 -0
  112. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  113. package/dist/types/TypedFunctionType.spec.js +23 -0
  114. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  115. package/dist/types/UnionType.js +4 -1
  116. package/dist/types/UnionType.js.map +1 -1
  117. package/dist/types/VoidType.js +2 -1
  118. package/dist/types/VoidType.js.map +1 -1
  119. package/dist/types/index.d.ts +1 -1
  120. package/dist/types/index.js +1 -1
  121. package/dist/types/index.js.map +1 -1
  122. package/dist/util.d.ts +22 -5
  123. package/dist/util.js +245 -79
  124. package/dist/util.js.map +1 -1
  125. package/package.json +3 -1
  126. package/dist/types/FunctionType.spec.js +0 -23
  127. package/dist/types/FunctionType.spec.js.map +0 -1
  128. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/validation/ScopeValidator.spec.d.ts} +0 -0
package/dist/util.js CHANGED
@@ -13,7 +13,6 @@ const BooleanType_1 = require("./types/BooleanType");
13
13
  const DoubleType_1 = require("./types/DoubleType");
14
14
  const DynamicType_1 = require("./types/DynamicType");
15
15
  const FloatType_1 = require("./types/FloatType");
16
- const FunctionType_1 = require("./types/FunctionType");
17
16
  const IntegerType_1 = require("./types/IntegerType");
18
17
  const InvalidType_1 = require("./types/InvalidType");
19
18
  const LongIntegerType_1 = require("./types/LongIntegerType");
@@ -27,7 +26,9 @@ const reflection_1 = require("./astUtils/reflection");
27
26
  const visitors_1 = require("./astUtils/visitors");
28
27
  const source_map_1 = require("source-map");
29
28
  const requireRelative = require("require-relative");
29
+ const AstNode_1 = require("./parser/AstNode");
30
30
  const creators_1 = require("./astUtils/creators");
31
+ const FunctionType_1 = require("./types/FunctionType");
31
32
  class Util {
32
33
  clearConsole() {
33
34
  // process.stdout.write('\x1Bc');
@@ -315,7 +316,6 @@ class Util {
315
316
  config.allowBrighterScriptInBrightScript = config.allowBrighterScriptInBrightScript === true ? true : false;
316
317
  config.emitDefinitions = config.emitDefinitions === true ? true : false;
317
318
  config.removeParameterTypes = config.removeParameterTypes === true ? true : false;
318
- config.enableTypeValidation = config.enableTypeValidation === true ? true : false;
319
319
  if (typeof config.logLevel === 'string') {
320
320
  config.logLevel = Logger_1.LogLevel[config.logLevel.toLowerCase()];
321
321
  }
@@ -649,7 +649,7 @@ class Util {
649
649
  const diagnosticCode = typeof diagnostic.code === 'string' ? diagnostic.code.toLowerCase() : diagnostic.code;
650
650
  for (let flag of (_b = (_a = diagnostic.file) === null || _a === void 0 ? void 0 : _a.commentFlags) !== null && _b !== void 0 ? _b : []) {
651
651
  //this diagnostic is affected by this flag
652
- if (this.rangeContains(flag.affectedRange, diagnostic.range.start)) {
652
+ if (diagnostic.range && this.rangeContains(flag.affectedRange, diagnostic.range.start)) {
653
653
  //if the flag acts upon this diagnostic's code
654
654
  if (flag.codes === null || flag.codes.includes(diagnosticCode)) {
655
655
  return true;
@@ -938,8 +938,7 @@ class Util {
938
938
  case TokenKind_1.TokenKind.FloatLiteral:
939
939
  return FloatType_1.FloatType.instance;
940
940
  case TokenKind_1.TokenKind.Function:
941
- //TODO should there be a more generic function type without a signature that's assignable to all other function types?
942
- return new FunctionType_1.FunctionType(new DynamicType_1.DynamicType(token.text));
941
+ return new FunctionType_1.FunctionType(token.text);
943
942
  case TokenKind_1.TokenKind.Integer:
944
943
  return new IntegerType_1.IntegerType(token.text);
945
944
  case TokenKind_1.TokenKind.IntegerLiteral:
@@ -972,7 +971,7 @@ class Util {
972
971
  case 'float':
973
972
  return new FloatType_1.FloatType(token.text);
974
973
  case 'function':
975
- return new FunctionType_1.FunctionType(new DynamicType_1.DynamicType(token.text));
974
+ return new FunctionType_1.FunctionType(token.text);
976
975
  case 'integer':
977
976
  return new IntegerType_1.IntegerType(token.text);
978
977
  case 'invalid':
@@ -988,6 +987,157 @@ class Util {
988
987
  }
989
988
  }
990
989
  }
990
+ isNumberType(targetType) {
991
+ return (0, reflection_1.isIntegerType)(targetType) ||
992
+ (0, reflection_1.isFloatType)(targetType) ||
993
+ (0, reflection_1.isDoubleType)(targetType) ||
994
+ (0, reflection_1.isLongIntegerType)(targetType);
995
+ }
996
+ /**
997
+ * Return the type of the result of a binary operator
998
+ * Note: compound assignments (eg. +=) internally use a binary expression, so that's why TokenKind.PlusEqual, etc. are here too
999
+ */
1000
+ binaryOperatorResultType(leftType, operator, rightType) {
1001
+ let hasDouble = (0, reflection_1.isDoubleType)(leftType) || (0, reflection_1.isDoubleType)(rightType);
1002
+ let hasFloat = (0, reflection_1.isFloatType)(leftType) || (0, reflection_1.isFloatType)(rightType);
1003
+ let hasLongInteger = (0, reflection_1.isLongIntegerType)(leftType) || (0, reflection_1.isLongIntegerType)(rightType);
1004
+ let hasInvalid = (0, reflection_1.isInvalidType)(leftType) || (0, reflection_1.isInvalidType)(rightType);
1005
+ let bothNumbers = this.isNumberType(leftType) && this.isNumberType(rightType);
1006
+ let bothStrings = (0, reflection_1.isStringType)(leftType) && (0, reflection_1.isStringType)(rightType);
1007
+ let eitherBooleanOrNum = (this.isNumberType(leftType) || (0, reflection_1.isBooleanType)(leftType)) && (this.isNumberType(rightType) || (0, reflection_1.isBooleanType)(rightType));
1008
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
1009
+ switch (operator.kind) {
1010
+ // Math operators
1011
+ case TokenKind_1.TokenKind.Plus:
1012
+ case TokenKind_1.TokenKind.PlusEqual:
1013
+ if (bothStrings) {
1014
+ // "string" + "string" is the only binary expression allowed with strings
1015
+ return StringType_1.StringType.instance;
1016
+ }
1017
+ // eslint-disable-next-line no-fallthrough
1018
+ case TokenKind_1.TokenKind.Minus:
1019
+ case TokenKind_1.TokenKind.MinusEqual:
1020
+ case TokenKind_1.TokenKind.Star:
1021
+ case TokenKind_1.TokenKind.StarEqual:
1022
+ case TokenKind_1.TokenKind.Mod:
1023
+ if (bothNumbers) {
1024
+ if (hasDouble) {
1025
+ return DoubleType_1.DoubleType.instance;
1026
+ }
1027
+ else if (hasFloat) {
1028
+ return FloatType_1.FloatType.instance;
1029
+ }
1030
+ else if (hasLongInteger) {
1031
+ return LongIntegerType_1.LongIntegerType.instance;
1032
+ }
1033
+ return IntegerType_1.IntegerType.instance;
1034
+ }
1035
+ break;
1036
+ case TokenKind_1.TokenKind.Forwardslash:
1037
+ case TokenKind_1.TokenKind.ForwardslashEqual:
1038
+ if (bothNumbers) {
1039
+ if (hasDouble) {
1040
+ return DoubleType_1.DoubleType.instance;
1041
+ }
1042
+ else if (hasFloat) {
1043
+ return FloatType_1.FloatType.instance;
1044
+ }
1045
+ else if (hasLongInteger) {
1046
+ return LongIntegerType_1.LongIntegerType.instance;
1047
+ }
1048
+ return FloatType_1.FloatType.instance;
1049
+ }
1050
+ break;
1051
+ case TokenKind_1.TokenKind.Backslash:
1052
+ case TokenKind_1.TokenKind.BackslashEqual:
1053
+ if (bothNumbers) {
1054
+ if (hasLongInteger) {
1055
+ return LongIntegerType_1.LongIntegerType.instance;
1056
+ }
1057
+ return IntegerType_1.IntegerType.instance;
1058
+ }
1059
+ break;
1060
+ case TokenKind_1.TokenKind.Caret:
1061
+ if (bothNumbers) {
1062
+ if (hasDouble || hasLongInteger) {
1063
+ return DoubleType_1.DoubleType.instance;
1064
+ }
1065
+ else if (hasFloat) {
1066
+ return FloatType_1.FloatType.instance;
1067
+ }
1068
+ return IntegerType_1.IntegerType.instance;
1069
+ }
1070
+ break;
1071
+ // Bitshift operators
1072
+ case TokenKind_1.TokenKind.LeftShift:
1073
+ case TokenKind_1.TokenKind.LeftShiftEqual:
1074
+ case TokenKind_1.TokenKind.RightShift:
1075
+ case TokenKind_1.TokenKind.RightShiftEqual:
1076
+ if (bothNumbers) {
1077
+ if (hasLongInteger) {
1078
+ return LongIntegerType_1.LongIntegerType.instance;
1079
+ }
1080
+ // Bitshifts are allowed with non-integer numerics
1081
+ // but will always truncate to ints
1082
+ return IntegerType_1.IntegerType.instance;
1083
+ }
1084
+ break;
1085
+ // Comparison operators
1086
+ // All comparison operators result in boolean
1087
+ case TokenKind_1.TokenKind.Equal:
1088
+ case TokenKind_1.TokenKind.LessGreater:
1089
+ // = and <> can accept invalid
1090
+ if (hasInvalid || bothStrings || eitherBooleanOrNum) {
1091
+ return BooleanType_1.BooleanType.instance;
1092
+ }
1093
+ break;
1094
+ case TokenKind_1.TokenKind.Greater:
1095
+ case TokenKind_1.TokenKind.Less:
1096
+ case TokenKind_1.TokenKind.GreaterEqual:
1097
+ case TokenKind_1.TokenKind.LessEqual:
1098
+ if (bothStrings || bothNumbers) {
1099
+ return BooleanType_1.BooleanType.instance;
1100
+ }
1101
+ break;
1102
+ // Logical operators
1103
+ case TokenKind_1.TokenKind.Or:
1104
+ case TokenKind_1.TokenKind.And:
1105
+ if (eitherBooleanOrNum) {
1106
+ return BooleanType_1.BooleanType.instance;
1107
+ }
1108
+ break;
1109
+ }
1110
+ return DynamicType_1.DynamicType.instance;
1111
+ }
1112
+ /**
1113
+ * Return the type of the result of a binary operator
1114
+ */
1115
+ unaryOperatorResultType(operator, exprType) {
1116
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
1117
+ switch (operator.kind) {
1118
+ // Math operators
1119
+ case TokenKind_1.TokenKind.Minus:
1120
+ if (this.isNumberType(exprType)) {
1121
+ // a negative number will be the same type, eg, double->double, int->int, etc.
1122
+ return exprType;
1123
+ }
1124
+ break;
1125
+ case TokenKind_1.TokenKind.Not:
1126
+ if ((0, reflection_1.isBooleanType)(exprType)) {
1127
+ return BooleanType_1.BooleanType.instance;
1128
+ }
1129
+ else if (this.isNumberType(exprType)) {
1130
+ //numbers can be "notted"
1131
+ // by default they go to ints, except longints, which stay that way
1132
+ if ((0, reflection_1.isLongIntegerType)(exprType)) {
1133
+ return LongIntegerType_1.LongIntegerType.instance;
1134
+ }
1135
+ return IntegerType_1.IntegerType.instance;
1136
+ }
1137
+ break;
1138
+ }
1139
+ return DynamicType_1.DynamicType.instance;
1140
+ }
991
1141
  /**
992
1142
  * Get the extension for the given file path. Basically the part after the final dot, except for
993
1143
  * `d.bs` which is treated as single extension
@@ -1222,55 +1372,70 @@ class Util {
1222
1372
  * @returns an array of the parts of the dotted get. If not fully a dotted get, then returns undefined
1223
1373
  */
1224
1374
  getAllDottedGetParts(node) {
1375
+ //this is a hot function and has been optimized. Don't rewrite unless necessary
1225
1376
  const parts = [];
1226
1377
  let nextPart = node;
1227
- while (nextPart) {
1228
- if ((0, reflection_1.isAssignmentStatement)(node)) {
1229
- return [node.name];
1230
- }
1231
- else if ((0, reflection_1.isDottedGetExpression)(nextPart)) {
1232
- parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.name);
1233
- nextPart = nextPart.obj;
1234
- }
1235
- else if ((0, reflection_1.isCallExpression)(nextPart)) {
1236
- nextPart = nextPart.callee;
1237
- }
1238
- else if ((0, reflection_1.isTypeExpression)(nextPart)) {
1239
- nextPart = nextPart.expression;
1240
- }
1241
- else if ((0, reflection_1.isVariableExpression)(nextPart)) {
1242
- parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.name);
1243
- break;
1244
- }
1245
- else if ((0, reflection_1.isLiteralExpression)(nextPart)) {
1246
- parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.token);
1247
- break;
1248
- }
1249
- else if ((0, reflection_1.isIndexedGetExpression)(nextPart)) {
1250
- nextPart = nextPart.obj;
1251
- }
1252
- else if ((0, reflection_1.isFunctionParameterExpression)(nextPart)) {
1253
- return [nextPart.name];
1254
- }
1255
- else if ((0, reflection_1.isGroupingExpression)(nextPart)) {
1256
- parts.push((0, creators_1.createIdentifier)('()', nextPart.range));
1257
- break;
1258
- }
1259
- else {
1260
- //we found a non-DottedGet expression, so return because this whole operation is invalid.
1261
- return undefined;
1378
+ loop: while (nextPart) {
1379
+ switch (nextPart === null || nextPart === void 0 ? void 0 : nextPart.kind) {
1380
+ case AstNode_1.AstNodeKind.AssignmentStatement:
1381
+ return [node.name];
1382
+ case AstNode_1.AstNodeKind.DottedGetExpression:
1383
+ parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.name);
1384
+ nextPart = nextPart.obj;
1385
+ continue;
1386
+ case AstNode_1.AstNodeKind.CallExpression:
1387
+ nextPart = nextPart.callee;
1388
+ continue;
1389
+ case AstNode_1.AstNodeKind.TypeExpression:
1390
+ nextPart = nextPart.expression;
1391
+ continue;
1392
+ case AstNode_1.AstNodeKind.VariableExpression:
1393
+ parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.name);
1394
+ break loop;
1395
+ case AstNode_1.AstNodeKind.LiteralExpression:
1396
+ parts.push(nextPart === null || nextPart === void 0 ? void 0 : nextPart.token);
1397
+ break loop;
1398
+ case AstNode_1.AstNodeKind.IndexedGetExpression:
1399
+ nextPart = nextPart.obj;
1400
+ continue;
1401
+ case AstNode_1.AstNodeKind.FunctionParameterExpression:
1402
+ return [nextPart.name];
1403
+ case AstNode_1.AstNodeKind.GroupingExpression:
1404
+ parts.push((0, creators_1.createIdentifier)('()', nextPart.range));
1405
+ break loop;
1406
+ default:
1407
+ //we found a non-DottedGet expression, so return because this whole operation is invalid.
1408
+ return undefined;
1262
1409
  }
1263
1410
  }
1264
1411
  return parts.reverse();
1265
1412
  }
1413
+ /**
1414
+ * Given an expression, return all the DottedGet name parts as a string.
1415
+ * Mostly used to convert namespaced item full names to a strings
1416
+ */
1266
1417
  getAllDottedGetPartsAsString(node, parseMode = Parser_1.ParseMode.BrighterScript) {
1418
+ var _a, _b;
1419
+ //this is a hot function and has been optimized. Don't rewrite unless necessary
1420
+ /* eslint-disable no-var */
1421
+ var sep = parseMode === Parser_1.ParseMode.BrighterScript ? '.' : '_';
1422
+ const parts = (_a = this.getAllDottedGetParts(node)) !== null && _a !== void 0 ? _a : [];
1423
+ var result = (_b = parts[0]) === null || _b === void 0 ? void 0 : _b.text;
1424
+ for (var i = 1; i < parts.length; i++) {
1425
+ result += sep + parts[i].text;
1426
+ }
1427
+ return result;
1428
+ /* eslint-enable no-var */
1429
+ }
1430
+ stringJoin(strings, separator) {
1267
1431
  var _a;
1268
- const sep = parseMode === Parser_1.ParseMode.BrighterScript ? '.' : '_';
1269
- const hello = (_a = this.getAllDottedGetParts(node)) === null || _a === void 0 ? void 0 : _a.map(part => part.text).join(sep);
1270
- if (!hello) {
1271
- console.log(node);
1432
+ // eslint-disable-next-line no-var
1433
+ var result = (_a = strings[0]) !== null && _a !== void 0 ? _a : '';
1434
+ // eslint-disable-next-line no-var
1435
+ for (var i = 1; i < strings.length; i++) {
1436
+ result += separator + strings[i];
1272
1437
  }
1273
- return hello;
1438
+ return result;
1274
1439
  }
1275
1440
  /**
1276
1441
  * Break an expression into each part.
@@ -1301,36 +1466,37 @@ class Util {
1301
1466
  getDottedGetPath(expression) {
1302
1467
  let parts = [];
1303
1468
  let nextPart = expression;
1304
- while (nextPart) {
1305
- if ((0, reflection_1.isDottedGetExpression)(nextPart)) {
1306
- parts.unshift(nextPart);
1307
- nextPart = nextPart.obj;
1308
- }
1309
- else if ((0, reflection_1.isIndexedGetExpression)(nextPart) || (0, reflection_1.isXmlAttributeGetExpression)(nextPart)) {
1310
- nextPart = nextPart.obj;
1311
- parts = [];
1312
- }
1313
- else if ((0, reflection_1.isCallExpression)(nextPart) || (0, reflection_1.isCallfuncExpression)(nextPart)) {
1314
- nextPart = nextPart.callee;
1315
- parts = [];
1316
- }
1317
- else if ((0, reflection_1.isNewExpression)(nextPart)) {
1318
- nextPart = nextPart.call.callee;
1319
- parts = [];
1320
- }
1321
- else if ((0, reflection_1.isTypeExpression)(nextPart)) {
1322
- nextPart = nextPart.expression;
1323
- }
1324
- else if ((0, reflection_1.isVariableExpression)(nextPart)) {
1325
- parts.unshift(nextPart);
1326
- break;
1327
- }
1328
- else {
1329
- parts = [];
1330
- break;
1469
+ loop: while (nextPart) {
1470
+ switch (nextPart === null || nextPart === void 0 ? void 0 : nextPart.kind) {
1471
+ case AstNode_1.AstNodeKind.DottedGetExpression:
1472
+ parts.push(nextPart);
1473
+ nextPart = nextPart.obj;
1474
+ continue;
1475
+ case AstNode_1.AstNodeKind.IndexedGetExpression:
1476
+ case AstNode_1.AstNodeKind.XmlAttributeGetExpression:
1477
+ nextPart = nextPart.obj;
1478
+ parts = [];
1479
+ continue;
1480
+ case AstNode_1.AstNodeKind.CallExpression:
1481
+ case AstNode_1.AstNodeKind.CallfuncExpression:
1482
+ nextPart = nextPart.callee;
1483
+ parts = [];
1484
+ continue;
1485
+ case AstNode_1.AstNodeKind.NewExpression:
1486
+ nextPart = nextPart.call.callee;
1487
+ parts = [];
1488
+ continue;
1489
+ case AstNode_1.AstNodeKind.TypeExpression:
1490
+ nextPart = nextPart.expression;
1491
+ continue;
1492
+ case AstNode_1.AstNodeKind.VariableExpression:
1493
+ parts.push(nextPart);
1494
+ break loop;
1495
+ default:
1496
+ return [];
1331
1497
  }
1332
1498
  }
1333
- return parts;
1499
+ return parts.reverse();
1334
1500
  }
1335
1501
  /**
1336
1502
  * Returns an integer if valid, or undefined. Eliminates checking for NaN
@@ -1380,7 +1546,7 @@ class Util {
1380
1546
  processTypeChain(typeChain) {
1381
1547
  let fullChainName = '';
1382
1548
  let fullErrorName = '';
1383
- let missingItemName = '';
1549
+ let itemName = '';
1384
1550
  let previousTypeName = '';
1385
1551
  let parentTypeName = '';
1386
1552
  let errorRange;
@@ -1393,16 +1559,16 @@ class Util {
1393
1559
  parentTypeName = previousTypeName;
1394
1560
  fullErrorName = previousTypeName ? `${previousTypeName}.${chainItem.name}` : chainItem.name;
1395
1561
  previousTypeName = chainItem.type.toString();
1396
- missingItemName = chainItem.name;
1562
+ itemName = chainItem.name;
1397
1563
  if (!chainItem.isResolved) {
1398
1564
  errorRange = chainItem.range;
1399
1565
  break;
1400
1566
  }
1401
1567
  }
1402
1568
  return {
1403
- missingItemName: missingItemName,
1404
- missingItemParentTypeName: parentTypeName,
1405
- fullNameOfMissingItem: fullErrorName,
1569
+ itemName: itemName,
1570
+ itemParentTypeName: parentTypeName,
1571
+ fullNameOfItem: fullErrorName,
1406
1572
  fullChainName: fullChainName,
1407
1573
  range: errorRange
1408
1574
  };
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,oCAAoC;AAEpC,+CAAwE;AACxE,6BAA6B;AAC7B,6CAAqG;AAErG,2CAAiC;AACjC,iCAAiC;AAEjC,6DAA0D;AAE1D,qDAAkD;AAClD,mDAAgD;AAChD,qDAAkD;AAClD,iDAA8C;AAC9C,uDAAoD;AACpD,qDAAkD;AAClD,qDAAkD;AAClD,6DAA0D;AAC1D,mDAAgD;AAChD,mDAAgD;AAChD,+CAA4C;AAC5C,4CAA4C;AAE5C,qCAA4C;AAE5C,iDAA8C;AAC9C,sDAAyV;AACzV,kDAA+C;AAC/C,2CAAwC;AACxC,oDAAoD;AAIpD,kDAAuD;AAEvD,MAAa,IAAI;IACN,YAAY;QACf,iCAAiC;IACrC,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,QAA4B;QACvD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,CAAC,CAAC;SACb;aAAM;YACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACnE;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,QAA4B;QAChD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACvC;IACL,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,QAA4B;QAC9C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC3C;IACL,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAA2B;QAC9C,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAe;QAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;SAC/B;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,IAAY;QAClC,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,OAAe;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,QAAgB,EAAE,SAAkB;QACxD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,QAAQ,CAAC;SACnB;QACD,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,GAAY;QACjC,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,mCAAmC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;gBACjC,OAAO,UAAU,CAAC;aACrB;iBAAM;gBACH,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC3D,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;aAC1D;SACJ;IACL,CAAC;IAEM,wBAAwB,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;QACxE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,MAAM;aACT;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC1D,SAAS,EAAE,CAAC;gBACZ,QAAQ,GAAG,CAAC,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,SAAS;aACZ;iBAAM;gBACH,QAAQ,EAAE,CAAC;aACd;SACJ;QACD,OAAO,YAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,cAAsB,EAAE,kBAA6B,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC5F,IAAI,cAAc,EAAE;YAChB,6GAA6G;YAC7G,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAChC,8BAA8B;gBAC9B,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,KAAK,EAAE;oBACrE,OAAO,SAAS,CAAC;iBACpB;aACJ;YACD,qCAAqC;YACrC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACnD,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC9C,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;aAC/F;YACD,uBAAuB;YACvB,IAAI,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1E,IAAI,WAAW,GAAG,EAAkB,CAAC;YACrC,IAAI,aAAa,GAAG,MAAA,IAAA,oBAAU,EAAC,mBAAmB,EAAE,WAAW,EAAE;gBAC7D,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB,EAAE,KAAK;aAC1B,CAAa,mCAAI,EAAE,CAAC;YACrB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,UAAU,GAAG,gCACV,uCAAkB,CAAC,2BAA2B,CAAC,IAAA,kCAAmB,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5F,IAAI,EAAE;wBACF,OAAO,EAAE,cAAc;qBAC1B,EACD,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GACpE,CAAC;gBAClB,MAAM,UAAU,CAAC,CAAC,yDAAyD;aAC9E;YAED,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAElD,4DAA4D;YAC5D,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEtE,2CAA2C;YAC3C,YAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEtE,IAAI,MAAgB,CAAC;YACrB,yCAAyC;YACzC,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC5D,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,kBAAkB,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC5H,0DAA0D;gBAC1D,MAAM,mCAAQ,iBAAiB,GAAK,aAAa,CAAE,CAAC;aACvD;iBAAM;gBACH,MAAM,GAAG,aAAa,CAAC;gBACvB,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,MAAc,CAAC,UAAU,GAAG,kBAAkB,CAAC;aACnD;YAED,6EAA6E;YAC7E,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;aACzD;YACD,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,UAAe,EAAE,GAAW,EAAE,WAAmB;;QAC3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO;SACV;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,MAAA,UAAU,CAAC,GAAG,CAAa,mCAAI,EAAE,EAAE;YAC/C,IAAI,CAAC,EAAE;gBACH,MAAM,CAAC,GAAG,CACN,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;aACL;SACJ;QACD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAI,SAAoC,EAAE,QAAiB;QACrE,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,SAAS,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5B;QAED,IAAI,MAAS,CAAC;QACd,IAAI,GAAG,CAAC;QAER,IAAI;YACA,MAAM,GAAG,QAAQ,EAAE,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACR,GAAG,GAAG,CAAC,CAAC;SACX;QAED,IAAI,SAAS,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAC9B;QAED,IAAI,GAAG,EAAE;YACL,MAAM,GAAG,CAAC;SACb;aAAM;YACH,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAAC,MAAgB;QAC7C,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAEtC,+DAA+D;QAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,+BAA+B;YAC/B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;YACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC9C;QAED,kDAAkD;QAClD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAgB;;QACnC,MAAM,GAAG,MAAM,IAAI,EAAc,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,mCAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,yCAAyC;QACzC,MAAM,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,GAAG,0BAAY,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,SAAS,cAAc,MAAM,CAAC;QACjE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QAC7C,MAAM,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,CAAC;QAC/C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,KAAK,CAAC;QAC3D,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC;QACxD,MAAM,CAAC,2BAA2B,GAAG,MAAA,MAAM,CAAC,2BAA2B,mCAAI,EAAE,CAAC;QAC9E,MAAM,CAAC,iBAAiB,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACtC,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5F,MAAM,CAAC,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,CAAC,iCAAiC,GAAG,MAAM,CAAC,iCAAiC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5G,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACrC,MAAM,CAAC,QAAQ,GAAG,iBAAQ,CAAE,MAAM,CAAC,QAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,iBAAQ,CAAC,GAAG,CAAC;QAClD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,OAAiB;QAC/B,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QACD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,gCAAgC,CAAC,SAA8B;QAClE,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEtD,KAAK,IAAI,iBAAiB,IAAI,SAAS,EAAE;YACrC,IAAI,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzF,kCAAkC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChC;iBAAM;gBACH,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAC9C;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,oBAAoB,CAAC,0BAAkC,EAAE,UAAkB;QAC9E,uEAAuE;QACvE,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAChC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,EAAE,EAAE;gBACnB,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACrC;SACJ;QACD,IAAI,UAAU,KAAK,MAAM,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,qBAAqB;QACrB,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAChF,kDAAkD;QAClD,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9C,gBAAgB;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,KAAK,IAAI,IAAI,IAAI,WAAW,EAAE;YAC1B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE;gBAC7B,wCAAwC;gBACxC,SAAS;aACZ;YACD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACf,qBAAqB;gBACrB,MAAM,CAAC,GAAG,EAAE,CAAC;aAChB;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,UAAkB,EAAE,aAAqB;QAC5D,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE9C,yBAAyB;QACzB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,WAAW,GAAG,EAAc,CAAC;QACjC,wBAAwB;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC/D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC;iBAAM;gBACH,yEAAyE;gBACzE,MAAM;aACT;SACJ;QAED,2CAA2C;QAC3C,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,uCAAuC;QACvC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,gEAAgE;QAChE,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9C,2BAA2B;QAC3B,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,+BAA+B,CAAC,SAA8B;QACjE,IAAI,IAAI,GAAQ,SAAS,CAAC;QAC1B,OAAO,IAAI,EAAE;YACT,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACf;iBAAM,IAAI,IAAA,kCAAqB,EAAC,IAAI,CAAC,EAAE;gBACpC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;aACnB;iBAAM;gBACH,MAAM;aACT;SACJ;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,CAAC,CAAQ,EAAE,CAAQ;QACrC,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpG,OAAO,KAAK,CAAC;SAChB;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpG,OAAO,KAAK,CAAC;SAChB;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACI,sBAAsB,CAAC,CAAQ,EAAE,CAAQ;QAC5C,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnG,OAAO,KAAK,CAAC;SAChB;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnG,OAAO,KAAK,CAAC;SAChB;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,KAAY,EAAE,QAAkB;QACjD,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEM,sBAAsB,CAAC,QAAkB,EAAE,KAAY;QAC1D,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACxH,OAAO,CAAC,CAAC,CAAC;SACb;QACD,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClH,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACnC,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,aAAa,CAAC,MAA+B;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC5B,KAAK,EAAE,CAAC;aACX;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,WAAmB,EAAE,IAAY;QAC7D,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,OAAO,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;YACjC,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,GAAW;QACxB,IAAI,UAAU,GAAG,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAEvC,8GAA8G;QAC9G,IAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE;YACP,IAAI,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,UAAU,GAAG,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC9D;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,QAAgB;QACtC,IAAI,QAAQ,EAAE;YACV,IAAI,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3C;YACI,mBAAmB;YACnB,aAAa,IAAI,EAAE,IAAI,aAAa,IAAI,EAAE;gBAC1C,oBAAoB;gBACpB,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EACrB;gBACE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAChE;SACJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,OAAe,EAAE,MAAc,EAAE,WAAmB;QAC9E,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACV,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9F,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,OAAO,CAAC;SAClB;IACL,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,IAAW,EAAE,IAAW;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,QAAgB;QAC7B,OAAO,gBAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,OAAiB;QAC9B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxE;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,OAAiB;QACvC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,MAAM,wBAAU,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,UAAkB;QACpC,MAAM,WAAW,GAAG,UAAU;aACzB,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;aAC3B,WAAW,EAAE,CAAC;QAEnB,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,UAAwB;;QAClD,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7G,KAAK,IAAI,IAAI,IAAI,MAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,YAAY,mCAAI,EAAE,EAAE;YAClD,0CAA0C;YAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChE,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBAC5D,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAClD,wBAAwB;QACxB,WAAW,GAAG,IAAI,CAAC,OAAO,CACtB,IAAI,CAAC,SAAS,CACV,WAAW,CACd,CACJ,CAAC;QAEF,IAAI,YAAoB,CAAC;QACzB,4GAA4G;QAC5G,OAAO,YAAY,KAAK,WAAW,EAAE;YACjC,YAAY,GAAG,WAAW,CAAC;YAE3B,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACvD,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,MAAM,CAAC;aACjB;iBAAM,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACvC,OAAO,OAAO,CAAC;aAClB;iBAAM;gBACH,4BAA4B;gBAC5B,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;aAC7D;SACJ;QACD,6CAA6C;IACjD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAoB;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,8EAA8E;YAC9E,IAAI,YAAY,KAAK,CAAC,EAAE;gBACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC7B;iBAAM;gBACH,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAO,KAAU,EAAE,QAAuB;QACpD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAe,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,0BAA0B,CAAC,QAAkB,EAAE,KAAY;QAE9D,iDAAiD;QACjD,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACvC,OAAO,KAAK,CAAC;SAChB;QACD,2BAA2B;QAE3B,gEAAgE;QAChE,IAAI,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,QAA0B,EAAE,MAAwB;QAChE,OAAO,YAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAuB,EAAE,MAAwB;QAClE,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACvE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAuB,EAAE,MAAwB;QAC/D,IAAI,KAAK,IAAI,MAAM,IAAI,CACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAClD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAChD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAChD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CACjD,EAAE;YACC,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;OAGG;IACI,oBAAoB,CAAC,IAAY;QACpC,IAAI,IAAI,EAAE;YACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED;;OAEG;IACI,yBAAyB,CAAC,aAA8B,EAAE,QAAkB;QAC/E,IAAI,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;gBAC/C,8BAA8B;gBAC9B,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS;gBACrD,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACI,0BAA0B,CAAC,SAAiB,EAAE,aAAsB;QACvE,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,GAAG,CAAC,MAAK,KAAK,IAAI,aAAa,EAAE;YACrD,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAC;SAC1C;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAEM,cAAc,CAAC,MAAc;QAChC,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEM,eAAe,CAAC,MAAyB,EAAE,KAAY;QAC1D,IAAI,KAAe,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,KAAK,GAAG,MAAM,CAAC;SAClB;aAAM;YACH,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACvC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;QACjC,oGAAoG;QACpG,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;YACzB,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC;SACnC;QAED,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,GAAW,EAAE,KAAY;QAC3C,OAAO;YACH,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,SAAiB,EAAE,cAAsB,EAAE,OAAe,EAAE,YAAoB;QAC/F,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,cAAc;aAC5B;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,YAAY;aAC1B;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACI,wBAAwB,CAAC,aAAuB,EAAE,WAAqB;QAC1E,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;aACrC;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,SAAS,EAAE,WAAW,CAAC,SAAS;aACnC;SACJ,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,GAAG,UAAoC;QAC9D,IAAI,aAAoB,CAAC;QACzB,IAAI,cAAqB,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,sCAAsC;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,wDAAwD;YACxD,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;gBAC7B,aAAa,GAAG,SAAS,CAAC;aAC7B;YAED,uCAAuC;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,wDAAwD;YACxD,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;gBAC/B,cAAc,GAAG,UAAU,CAAC;aAC/B;YAED,6BAA6B;YAC7B,IAAI,aAAa,IAAI,cAAc,EAAE;gBACjC,MAAM;aACT;SACJ;QACD,IAAI,aAAa,EAAE;YACf,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;SACjF;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,IAAY,EAAE,SAAiB;QACjD,OAAO;YACH,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS;SACvB,CAAC;IACN,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,MAAe;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,gCAAgC;QAChC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;SAClD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAY;QAC9B,0EAA0E;QAC1E,QAAQ,KAAK,CAAC,IAAI,EAAE;YAChB,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,qBAAS,CAAC,KAAK;gBAChB,OAAO,yBAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,aAAa;gBACxB,OAAO,uBAAU,CAAC,QAAQ,CAAC;YAC/B,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,qBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAS,CAAC,YAAY;gBACvB,OAAO,qBAAS,CAAC,QAAQ,CAAC;YAC9B,KAAK,qBAAS,CAAC,QAAQ;gBACnB,sHAAsH;gBACtH,OAAO,IAAI,2BAAY,CAAC,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,cAAc;gBACzB,OAAO,yBAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,WAAW;gBACtB,OAAO,IAAI,iCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,qBAAS,CAAC,kBAAkB;gBAC7B,OAAO,iCAAe,CAAC,QAAQ,CAAC;YACpC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,aAAa,CAAC;YAC7B,KAAK,qBAAS,CAAC,6BAA6B,CAAC;YAC7C,KAAK,qBAAS,CAAC,2BAA2B,CAAC;YAC3C,KAAK,qBAAS,CAAC,mBAAmB;gBAC9B,OAAO,uBAAU,CAAC,QAAQ,CAAC;YAC/B,KAAK,qBAAS,CAAC,IAAI;gBACf,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,qBAAS,CAAC,UAAU;gBACrB,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;oBAC9B,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,OAAO;wBACR,OAAO,IAAI,qBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrC,KAAK,UAAU;wBACX,OAAO,IAAI,2BAAY,CAAC,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,aAAa;wBACd,OAAO,IAAI,iCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,MAAM;wBACP,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACvC;SACR;IACL,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,QAAgB;QAChC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,OAAO,CAAC;SAClB;aAAM;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;gBACV,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,GAAW,EAAE,aAAuB,EAAE,OAAoD;QACzG,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YAChE,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBAClC,IAAI;oBACA,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;oBAClD,MAAM,SAAS,GAA2C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEnG,IAAI,MAAsB,CAAC;oBAE3B,+EAA+E;oBAC/E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,mGAAmG,CAAC,CAAC;wBACxI,MAAM,GAAG,SAAS,CAAC;wBAEnB,4FAA4F;qBAC/F;yBAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;wBACxC,MAAM,GAAG,SAAS,EAAE,CAAC;qBACxB;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACd,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;qBAC9B;oBACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACpB;gBAAC,OAAO,GAAQ,EAAE;oBACf,IAAI,OAAO,EAAE;wBACT,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;qBAC9B;yBAAM;wBACH,MAAM,GAAG,CAAC;qBACb;iBACJ;aACJ;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,UAAsB;QAC3C,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,mBAAmB,GAAG,EAA0B,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,SAAS,gBAAgB,CAAC,UAAU;YAChC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;gBAC1B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC;YACD,IAAI,IAAA,iCAAoB,EAAC,UAAU,CAAC,EAAE;gBAClC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5C;QACL,CAAC;QAED,+FAA+F;QAC/F,sFAAsF;QACtF,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,gBAAgB,EAAE;YAC/B,QAAQ,EAAE,mBAAQ,CAAC,gBAAgB;SACtC,CAAC,CAAC;QAEH,uFAAuF;QACvF,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;IAClH,CAAC;IAGD;;;OAGG;IACI,SAAS,CAAC,MAAc,EAAE,GAAW;QACxC,mDAAmD;QACnD,IAAI,MAAM,GAAG,EAA6B,CAAC;QAC3C,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CACP,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EACzB,IAAI,uBAAU,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CACjD,CAAC;SACL;QACD,OAAO,IAAI,uBAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAe;QAClC,OAAO,YAAI,CAAC,kBAAkB,CAC1B,IAAA,6BAAyB,EAAC,OAAO,CAAC,CACrC,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QAC9C,oCAAoC;QACpC,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;QACjE,2BAA2B;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;QAEpC,4CAA4C;QAC5C,IAAI,KAAsB,CAAC;QAC3B,MAAM,SAAS,GAAG,EAAc,CAAC;QACjC,MAAM,MAAM,GAAG,yCAAyC,CAAC;QACzD,0CAA0C;QAC1C,OAAO,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAChC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACjD;QAED,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC1E;QACD,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,UAAU,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,UAAqC,EAAE,kCAA0C;;QACjG,OAAO;YACH,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,kBAAkB,EAAE,MAAA,UAAU,CAAC,kBAAkB,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE;gBAEvD,8EAA8E;gBAC9E,MAAM,KAAK,qBAAQ,CAAC,CAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACjB,yCAAyC;oBACzC,IAAI,kCAAkC,EAAE;wBACpC,KAAK,CAAC,QAAQ,GAAG,YAAI,CAAC,cAAc,CAAC,kCAAkC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;qBAC9F;yBAAM;wBACH,+EAA+E;wBAC/E,OAAO,SAAS,CAAC;qBACpB;iBACJ;gBACD,OAAO,KAAK,CAAC;gBACb,0CAA0C;YAC9C,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,UAAuB,EAAE,QAAkB;QAClE,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE;YAC1B,IAAI,YAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAC3C,OAAO,KAAK,CAAC;aAChB;SACJ;IACL,CAAC;IAED;;OAEG;IACI,WAAW,CAAsB,UAAe;QACnD,0BAA0B;QAC1B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBACzC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBACzC,OAAO,CAAC,CAAC;aACZ;YACD,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,OAAO,CAAC,CAAC;aACZ;YACD,UAAU;YACV,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBACrC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBACrC,OAAO,CAAC,CAAC;aACZ;YACD,UAAU;YACV,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC/C,OAAO,CAAC,CAAC,CAAC;aACb;iBAAM,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;gBACtD,OAAO,CAAC,CAAC;aACZ;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAY;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,EAA2C,CAAC;QAC3D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,0BAA0B;YAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,IAAI,CAAC,WAAW,CACnB,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,EAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,EACd,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAChD;iBACJ,CAAC,CAAC;aACN;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;SAC7C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,EAAE;QACtC,OAAO,KAAK,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,IAA4B;QACpD,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,OAAO,QAAQ,EAAE;YACb,IAAI,IAAA,kCAAqB,EAAC,IAAI,CAAC,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;iBAAM,IAAI,IAAA,kCAAqB,EAAC,QAAQ,CAAC,EAAE;gBACxC,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC;gBAC3B,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;aAC3B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,EAAE;gBACnC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;aAC9B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,EAAE;gBACnC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;aAClC;iBAAM,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC;gBAC3B,MAAM;aACT;iBAAM,IAAI,IAAA,gCAAmB,EAAC,QAAQ,CAAC,EAAE;gBACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAmB,CAAC,CAAC;gBAC1C,MAAM;aACT;iBAAM,IAAI,IAAA,mCAAsB,EAAC,QAAQ,CAAC,EAAE;gBACzC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;aAC3B;iBAAM,IAAI,IAAA,0CAA6B,EAAC,QAAQ,CAAC,EAAE;gBAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC,IAAA,2BAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,MAAM;aACT;iBAAM;gBACH,yFAAyF;gBACzF,OAAO,SAAS,CAAC;aACpB;SACJ;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,4BAA4B,CAAC,IAA4B,EAAE,SAAS,GAAG,kBAAS,CAAC,cAAc;;QAClG,MAAM,GAAG,GAAG,SAAS,KAAK,kBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,UAAsB;QACzC,MAAM,KAAK,GAAiB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,OAAO,QAAQ,EAAE;YACb,IAAI,IAAA,kCAAqB,EAAC,QAAQ,CAAC,IAAI,IAAA,mCAAsB,EAAC,QAAQ,CAAC,IAAI,IAAA,wCAA2B,EAAC,QAAQ,CAAC,EAAE;gBAC9G,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;aAE3B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACrE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;aAE9B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,EAAE;gBACnC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;aAClC;iBAAM;gBACH,MAAM;aACT;YACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,UAAsB;QAC1C,IAAI,KAAK,GAAiB,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,OAAO,QAAQ,EAAE;YACb,IAAI,IAAA,kCAAqB,EAAC,QAAQ,CAAC,EAAE;gBACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;aAE3B;iBAAM,IAAI,IAAA,mCAAsB,EAAC,QAAQ,CAAC,IAAI,IAAA,wCAA2B,EAAC,QAAQ,CAAC,EAAE;gBAClF,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;gBACxB,KAAK,GAAG,EAAE,CAAC;aAEd;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACrE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC3B,KAAK,GAAG,EAAE,CAAC;aAEd;iBAAM,IAAI,IAAA,4BAAe,EAAC,QAAQ,CAAC,EAAE;gBAClC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,KAAK,GAAG,EAAE,CAAC;aAEd;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,EAAE;gBACnC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;aAElC;iBAAM,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM;aACT;iBAAM;gBACH,KAAK,GAAG,EAAE,CAAC;gBACX,MAAM;aACT;SACJ;QACD,OAAO,KAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAU;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAY;;QAC7B,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,IAAI,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,SAAS,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,0CAAE,IAAI,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,0CAAE,SAAS,EAAE,CAAC;IAC3G,CAAC;IAEM,mBAAmB,CAAC,IAAyB;;QAChD,gCAAgC;QAChC,IAAI,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtD,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE/E,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC5C,OAAO;SACV;QAED,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,UAAU,KAAK,YAAY,EAAE;YAChD,OAAO;SACV;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,SAAS,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,cAAc,CAAC,iCACb,uCAAkB,CAAC,yBAAyB,CAAC,SAAS,CAAC,KAC1D,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,IACpD,CAAC,CAAC;SACP;IACL,CAAC;IAED;;OAEG;IACI,aAAa,CAAI,KAAU,EAAE,OAAuB;QACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnB,OAAO,CAAC,CAAC;aACZ;SACJ;IACL,CAAC;IAEM,gBAAgB,CAAC,SAA2B;QAC/C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,UAAiB,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,aAAa,IAAI,GAAG,CAAC;aACxB;YACD,aAAa,IAAI,SAAS,CAAC,IAAI,CAAC;YAChC,cAAc,GAAG,gBAAgB,CAAC;YAClC,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5F,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7C,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;gBACvB,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC7B,MAAM;aACT;SACJ;QACD,OAAO;YACH,eAAe,EAAE,eAAe;YAChC,yBAAyB,EAAE,cAAc;YACzC,qBAAqB,EAAE,aAAa;YACpC,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,UAAU;SACpB,CAAC;IACN,CAAC;CACJ;AA38CD,oBA28CC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,WAAW,EAAE,GAAG,WAAkB;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,YAAI,CAAC,kBAAkB,CAC1B,IAAA,6BAAyB,EACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAClB,CACJ,CAAC;AACN,CAAC;AAVD,0CAUC;AAEU,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAC7B,kBAAe,YAAI,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,oCAAoC;AAEpC,+CAAwE;AACxE,6BAA6B;AAC7B,6CAAqG;AAErG,2CAAiC;AACjC,iCAAiC;AAEjC,6DAA0D;AAE1D,qDAAkD;AAClD,mDAAgD;AAChD,qDAAkD;AAClD,iDAA8C;AAC9C,qDAAkD;AAClD,qDAAkD;AAClD,6DAA0D;AAC1D,mDAAgD;AAChD,mDAAgD;AAChD,+CAA4C;AAC5C,4CAA4C;AAE5C,qCAA4C;AAE5C,iDAA8C;AAC9C,sDAAgV;AAChV,kDAA+C;AAC/C,2CAAwC;AACxC,oDAAoD;AAIpD,8CAAgF;AAChF,kDAAuD;AAGvD,uDAAoD;AAEpD,MAAa,IAAI;IACN,YAAY;QACf,iCAAiC;IACrC,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,QAA4B;QACvD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,CAAC,CAAC;SACb;aAAM;YACH,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACnE;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,QAA4B;QAChD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACvC;IACL,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,QAA4B;QAC9C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC3C;IACL,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAA2B;QAC9C,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAe;QAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;SAC/B;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,IAAY;QAClC,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,OAAe;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,QAAgB,EAAE,SAAkB;QACxD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,QAAQ,CAAC;SACnB;QACD,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,GAAY;QACjC,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,mCAAmC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;gBACjC,OAAO,UAAU,CAAC;aACrB;iBAAM;gBACH,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC3D,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;aAC1D;SACJ;IACL,CAAC;IAEM,wBAAwB,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;QACxE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,MAAM;aACT;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC1D,SAAS,EAAE,CAAC;gBACZ,QAAQ,GAAG,CAAC,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,SAAS;aACZ;iBAAM;gBACH,QAAQ,EAAE,CAAC;aACd;SACJ;QACD,OAAO,YAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,cAAsB,EAAE,kBAA6B,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC5F,IAAI,cAAc,EAAE;YAChB,6GAA6G;YAC7G,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAChC,8BAA8B;gBAC9B,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,KAAK,EAAE;oBACrE,OAAO,SAAS,CAAC;iBACpB;aACJ;YACD,qCAAqC;YACrC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACnD,IAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC9C,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;aAC/F;YACD,uBAAuB;YACvB,IAAI,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1E,IAAI,WAAW,GAAG,EAAkB,CAAC;YACrC,IAAI,aAAa,GAAG,MAAA,IAAA,oBAAU,EAAC,mBAAmB,EAAE,WAAW,EAAE;gBAC7D,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB,EAAE,KAAK;aAC1B,CAAa,mCAAI,EAAE,CAAC;YACrB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,UAAU,GAAG,gCACV,uCAAkB,CAAC,2BAA2B,CAAC,IAAA,kCAAmB,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5F,IAAI,EAAE;wBACF,OAAO,EAAE,cAAc;qBAC1B,EACD,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GACpE,CAAC;gBAClB,MAAM,UAAU,CAAC,CAAC,yDAAyD;aAC9E;YAED,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAElD,4DAA4D;YAC5D,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEtE,2CAA2C;YAC3C,YAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEtE,IAAI,MAAgB,CAAC;YACrB,yCAAyC;YACzC,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC5D,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,kBAAkB,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC5H,0DAA0D;gBAC1D,MAAM,mCAAQ,iBAAiB,GAAK,aAAa,CAAE,CAAC;aACvD;iBAAM;gBACH,MAAM,GAAG,aAAa,CAAC;gBACvB,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,MAAc,CAAC,UAAU,GAAG,kBAAkB,CAAC;aACnD;YAED,6EAA6E;YAC7E,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;aACzD;YACD,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,UAAe,EAAE,GAAW,EAAE,WAAmB;;QAC3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO;SACV;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,MAAA,UAAU,CAAC,GAAG,CAAa,mCAAI,EAAE,EAAE;YAC/C,IAAI,CAAC,EAAE;gBACH,MAAM,CAAC,GAAG,CACN,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;aACL;SACJ;QACD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAI,SAAoC,EAAE,QAAiB;QACrE,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,SAAS,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5B;QAED,IAAI,MAAS,CAAC;QACd,IAAI,GAAG,CAAC;QAER,IAAI;YACA,MAAM,GAAG,QAAQ,EAAE,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACR,GAAG,GAAG,CAAC,CAAC;SACX;QAED,IAAI,SAAS,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAC9B;QAED,IAAI,GAAG,EAAE;YACL,MAAM,GAAG,CAAC;SACb;aAAM;YACH,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAAC,MAAgB;QAC7C,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAEtC,+DAA+D;QAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,+BAA+B;YAC/B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;YACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC9C;QAED,kDAAkD;QAClD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAgB;;QACnC,MAAM,GAAG,MAAM,IAAI,EAAc,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,mCAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,yCAAyC;QACzC,MAAM,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,GAAG,0BAAY,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,SAAS,cAAc,MAAM,CAAC;QACjE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QAC7C,MAAM,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,SAAS,CAAC;QAC/C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,KAAK,CAAC;QAC3D,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC;QACxD,MAAM,CAAC,2BAA2B,GAAG,MAAA,MAAM,CAAC,2BAA2B,mCAAI,EAAE,CAAC;QAC9E,MAAM,CAAC,iBAAiB,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACtC,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5F,MAAM,CAAC,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,CAAC,iCAAiC,GAAG,MAAM,CAAC,iCAAiC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5G,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACrC,MAAM,CAAC,QAAQ,GAAG,iBAAQ,CAAE,MAAM,CAAC,QAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,iBAAQ,CAAC,GAAG,CAAC;QAClD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,OAAiB;QAC/B,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QACD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,gCAAgC,CAAC,SAA8B;QAClE,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEtD,KAAK,IAAI,iBAAiB,IAAI,SAAS,EAAE;YACrC,IAAI,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzF,kCAAkC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChC;iBAAM;gBACH,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAC9C;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,oBAAoB,CAAC,0BAAkC,EAAE,UAAkB;QAC9E,uEAAuE;QACvE,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAChC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,EAAE,EAAE;gBACnB,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACrC;SACJ;QACD,IAAI,UAAU,KAAK,MAAM,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,qBAAqB;QACrB,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAChF,kDAAkD;QAClD,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9C,gBAAgB;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,KAAK,IAAI,IAAI,IAAI,WAAW,EAAE;YAC1B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE;gBAC7B,wCAAwC;gBACxC,SAAS;aACZ;YACD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACf,qBAAqB;gBACrB,MAAM,CAAC,GAAG,EAAE,CAAC;aAChB;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,UAAkB,EAAE,aAAqB;QAC5D,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE9C,yBAAyB;QACzB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,WAAW,GAAG,EAAc,CAAC;QACjC,wBAAwB;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC/D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC;iBAAM;gBACH,yEAAyE;gBACzE,MAAM;aACT;SACJ;QAED,2CAA2C;QAC3C,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,uCAAuC;QACvC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,gEAAgE;QAChE,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9C,2BAA2B;QAC3B,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,+BAA+B,CAAC,SAA8B;QACjE,IAAI,IAAI,GAAQ,SAAS,CAAC;QAC1B,OAAO,IAAI,EAAE;YACT,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACf;iBAAM,IAAI,IAAA,kCAAqB,EAAC,IAAI,CAAC,EAAE;gBACpC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;aACnB;iBAAM;gBACH,MAAM;aACT;SACJ;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,CAAC,CAAQ,EAAE,CAAQ;QACrC,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpG,OAAO,KAAK,CAAC;SAChB;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpG,OAAO,KAAK,CAAC;SAChB;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACI,sBAAsB,CAAC,CAAQ,EAAE,CAAQ;QAC5C,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnG,OAAO,KAAK,CAAC;SAChB;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnG,OAAO,KAAK,CAAC;SAChB;QAED,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,KAAY,EAAE,QAAkB;QACjD,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEM,sBAAsB,CAAC,QAAkB,EAAE,KAAY;QAC1D,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACxH,OAAO,CAAC,CAAC,CAAC;SACb;QACD,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAClH,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACnC,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,aAAa,CAAC,MAA+B;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC5B,KAAK,EAAE,CAAC;aACX;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,WAAmB,EAAE,IAAY;QAC7D,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,OAAO,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;YACjC,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,GAAW;QACxB,IAAI,UAAU,GAAG,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAEvC,8GAA8G;QAC9G,IAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE;YACP,IAAI,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,UAAU,GAAG,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC9D;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,QAAgB;QACtC,IAAI,QAAQ,EAAE;YACV,IAAI,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3C;YACI,mBAAmB;YACnB,aAAa,IAAI,EAAE,IAAI,aAAa,IAAI,EAAE;gBAC1C,oBAAoB;gBACpB,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EACrB;gBACE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAChE;SACJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,OAAe,EAAE,MAAc,EAAE,WAAmB;QAC9E,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YACV,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9F,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,OAAO,CAAC;SAClB;IACL,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,IAAW,EAAE,IAAW;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,QAAgB;QAC7B,OAAO,gBAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,OAAiB;QAC9B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxE;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,OAAiB;QACvC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,MAAM,wBAAU,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,UAAkB;QACpC,MAAM,WAAW,GAAG,UAAU;aACzB,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;aAC3B,WAAW,EAAE,CAAC;QAEnB,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,UAAwB;;QAClD,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7G,KAAK,IAAI,IAAI,IAAI,MAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,YAAY,mCAAI,EAAE,EAAE;YAClD,0CAA0C;YAC1C,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACpF,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBAC5D,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAClD,wBAAwB;QACxB,WAAW,GAAG,IAAI,CAAC,OAAO,CACtB,IAAI,CAAC,SAAS,CACV,WAAW,CACd,CACJ,CAAC;QAEF,IAAI,YAAoB,CAAC;QACzB,4GAA4G;QAC5G,OAAO,YAAY,KAAK,WAAW,EAAE;YACjC,YAAY,GAAG,WAAW,CAAC;YAE3B,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACvD,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,MAAM,CAAC;aACjB;iBAAM,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACvC,OAAO,OAAO,CAAC;aAClB;iBAAM;gBACH,4BAA4B;gBAC5B,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;aAC7D;SACJ;QACD,6CAA6C;IACjD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAoB;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,8EAA8E;YAC9E,IAAI,YAAY,KAAK,CAAC,EAAE;gBACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC7B;iBAAM;gBACH,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAO,KAAU,EAAE,QAAuB;QACpD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAe,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,0BAA0B,CAAC,QAAkB,EAAE,KAAY;QAE9D,iDAAiD;QACjD,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACvC,OAAO,KAAK,CAAC;SAChB;QACD,2BAA2B;QAE3B,gEAAgE;QAChE,IAAI,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,QAA0B,EAAE,MAAwB;QAChE,OAAO,YAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAuB,EAAE,MAAwB;QAClE,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACvE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAuB,EAAE,MAAwB;QAC/D,IAAI,KAAK,IAAI,MAAM,IAAI,CACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAClD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAChD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAChD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CACjD,EAAE;YACC,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;OAGG;IACI,oBAAoB,CAAC,IAAY;QACpC,IAAI,IAAI,EAAE;YACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED;;OAEG;IACI,yBAAyB,CAAC,aAA8B,EAAE,QAAkB;QAC/E,IAAI,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;gBAC/C,8BAA8B;gBAC9B,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS;gBACrD,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACI,0BAA0B,CAAC,SAAiB,EAAE,aAAsB;QACvE,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,GAAG,CAAC,MAAK,KAAK,IAAI,aAAa,EAAE;YACrD,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAC;SAC1C;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAEM,cAAc,CAAC,MAAc;QAChC,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEM,eAAe,CAAC,MAAyB,EAAE,KAAY;QAC1D,IAAI,KAAe,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,KAAK,GAAG,MAAM,CAAC;SAClB;aAAM;YACH,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACvC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;QACjC,oGAAoG;QACpG,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;YACzB,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC;SACnC;QAED,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,GAAW,EAAE,KAAY;QAC3C,OAAO;YACH,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,SAAiB,EAAE,cAAsB,EAAE,OAAe,EAAE,YAAoB;QAC/F,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,cAAc;aAC5B;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,YAAY;aAC1B;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACI,wBAAwB,CAAC,aAAuB,EAAE,WAAqB;QAC1E,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;aACrC;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,SAAS,EAAE,WAAW,CAAC,SAAS;aACnC;SACJ,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,GAAG,UAAoC;QAC9D,IAAI,aAAoB,CAAC;QACzB,IAAI,cAAqB,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,sCAAsC;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,wDAAwD;YACxD,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;gBAC7B,aAAa,GAAG,SAAS,CAAC;aAC7B;YAED,uCAAuC;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,wDAAwD;YACxD,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;gBAC/B,cAAc,GAAG,UAAU,CAAC;aAC/B;YAED,6BAA6B;YAC7B,IAAI,aAAa,IAAI,cAAc,EAAE;gBACjC,MAAM;aACT;SACJ;QACD,IAAI,aAAa,EAAE;YACf,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;SACjF;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,IAAY,EAAE,SAAiB;QACjD,OAAO;YACH,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS;SACvB,CAAC;IACN,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,MAAe;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,gCAAgC;QAChC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;SAClD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAY;QAC9B,0EAA0E;QAC1E,QAAQ,KAAK,CAAC,IAAI,EAAE;YAChB,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,qBAAS,CAAC,KAAK;gBAChB,OAAO,yBAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,aAAa;gBACxB,OAAO,uBAAU,CAAC,QAAQ,CAAC;YAC/B,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,qBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAS,CAAC,YAAY;gBACvB,OAAO,qBAAS,CAAC,QAAQ,CAAC;YAC9B,KAAK,qBAAS,CAAC,QAAQ;gBACnB,OAAO,IAAI,2BAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,cAAc;gBACzB,OAAO,yBAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,qBAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAS,CAAC,WAAW;gBACtB,OAAO,IAAI,iCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,qBAAS,CAAC,kBAAkB;gBAC7B,OAAO,iCAAe,CAAC,QAAQ,CAAC;YACpC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,qBAAS,CAAC,aAAa,CAAC;YAC7B,KAAK,qBAAS,CAAC,6BAA6B,CAAC;YAC7C,KAAK,qBAAS,CAAC,2BAA2B,CAAC;YAC3C,KAAK,qBAAS,CAAC,mBAAmB;gBAC9B,OAAO,uBAAU,CAAC,QAAQ,CAAC;YAC/B,KAAK,qBAAS,CAAC,IAAI;gBACf,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,qBAAS,CAAC,UAAU;gBACrB,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;oBAC9B,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,OAAO;wBACR,OAAO,IAAI,qBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrC,KAAK,UAAU;wBACX,OAAO,IAAI,2BAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,SAAS;wBACV,OAAO,IAAI,yBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,KAAK,aAAa;wBACd,OAAO,IAAI,iCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,QAAQ;wBACT,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,MAAM;wBACP,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACvC;SACR;IACL,CAAC;IAEM,YAAY,CAAC,UAAmB;QACnC,OAAO,IAAA,0BAAa,EAAC,UAAU,CAAC;YAC5B,IAAA,wBAAW,EAAC,UAAU,CAAC;YACvB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,8BAAiB,EAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,wBAAwB,CAAC,QAAiB,EAAE,QAAe,EAAE,SAAkB;QAClF,IAAI,SAAS,GAAG,IAAA,yBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,yBAAY,EAAC,SAAS,CAAC,CAAC;QAClE,IAAI,QAAQ,GAAG,IAAA,wBAAW,EAAC,QAAQ,CAAC,IAAI,IAAA,wBAAW,EAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,cAAc,GAAG,IAAA,8BAAiB,EAAC,QAAQ,CAAC,IAAI,IAAA,8BAAiB,EAAC,SAAS,CAAC,CAAC;QACjF,IAAI,UAAU,GAAG,IAAA,0BAAa,EAAC,QAAQ,CAAC,IAAI,IAAA,0BAAa,EAAC,SAAS,CAAC,CAAC;QACrE,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,WAAW,GAAG,IAAA,yBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,yBAAY,EAAC,SAAS,CAAC,CAAC;QACpE,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAA,0BAAa,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAA,0BAAa,EAAC,SAAS,CAAC,CAAC,CAAC;QAEhJ,0EAA0E;QAC1E,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACnB,iBAAiB;YACjB,KAAK,qBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,qBAAS,CAAC,SAAS;gBACpB,IAAI,WAAW,EAAE;oBACb,yEAAyE;oBACzE,OAAO,uBAAU,CAAC,QAAQ,CAAC;iBAC9B;YACL,0CAA0C;YAC1C,KAAK,qBAAS,CAAC,KAAK,CAAC;YACrB,KAAK,qBAAS,CAAC,UAAU,CAAC;YAC1B,KAAK,qBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,qBAAS,CAAC,SAAS,CAAC;YACzB,KAAK,qBAAS,CAAC,GAAG;gBACd,IAAI,WAAW,EAAE;oBACb,IAAI,SAAS,EAAE;wBACX,OAAO,uBAAU,CAAC,QAAQ,CAAC;qBAC9B;yBAAM,IAAI,QAAQ,EAAE;wBACjB,OAAO,qBAAS,CAAC,QAAQ,CAAC;qBAE7B;yBAAM,IAAI,cAAc,EAAE;wBACvB,OAAO,iCAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,KAAK,qBAAS,CAAC,YAAY,CAAC;YAC5B,KAAK,qBAAS,CAAC,iBAAiB;gBAC5B,IAAI,WAAW,EAAE;oBACb,IAAI,SAAS,EAAE;wBACX,OAAO,uBAAU,CAAC,QAAQ,CAAC;qBAC9B;yBAAM,IAAI,QAAQ,EAAE;wBACjB,OAAO,qBAAS,CAAC,QAAQ,CAAC;qBAE7B;yBAAM,IAAI,cAAc,EAAE;wBACvB,OAAO,iCAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,OAAO,qBAAS,CAAC,QAAQ,CAAC;iBAC7B;gBACD,MAAM;YACV,KAAK,qBAAS,CAAC,SAAS,CAAC;YACzB,KAAK,qBAAS,CAAC,cAAc;gBACzB,IAAI,WAAW,EAAE;oBACb,IAAI,cAAc,EAAE;wBAChB,OAAO,iCAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,KAAK,qBAAS,CAAC,KAAK;gBAChB,IAAI,WAAW,EAAE;oBACb,IAAI,SAAS,IAAI,cAAc,EAAE;wBAC7B,OAAO,uBAAU,CAAC,QAAQ,CAAC;qBAC9B;yBAAM,IAAI,QAAQ,EAAE;wBACjB,OAAO,qBAAS,CAAC,QAAQ,CAAC;qBAC7B;oBACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,qBAAqB;YACrB,KAAK,qBAAS,CAAC,SAAS,CAAC;YACzB,KAAK,qBAAS,CAAC,cAAc,CAAC;YAC9B,KAAK,qBAAS,CAAC,UAAU,CAAC;YAC1B,KAAK,qBAAS,CAAC,eAAe;gBAC1B,IAAI,WAAW,EAAE;oBACb,IAAI,cAAc,EAAE;wBAChB,OAAO,iCAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,kDAAkD;oBAClD,mCAAmC;oBACnC,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,uBAAuB;YACvB,6CAA6C;YAC7C,KAAK,qBAAS,CAAC,KAAK,CAAC;YACrB,KAAK,qBAAS,CAAC,WAAW;gBACtB,8BAA8B;gBAC9B,IAAI,UAAU,IAAI,WAAW,IAAI,kBAAkB,EAAE;oBACjD,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,KAAK,qBAAS,CAAC,OAAO,CAAC;YACvB,KAAK,qBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,qBAAS,CAAC,YAAY,CAAC;YAC5B,KAAK,qBAAS,CAAC,SAAS;gBACpB,IAAI,WAAW,IAAI,WAAW,EAAE;oBAC5B,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;YACV,oBAAoB;YACpB,KAAK,qBAAS,CAAC,EAAE,CAAC;YAClB,KAAK,qBAAS,CAAC,GAAG;gBACd,IAAI,kBAAkB,EAAE;oBACpB,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;SACb;QACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,QAAe,EAAE,QAAiB;QAC7D,0EAA0E;QAC1E,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACnB,iBAAiB;YACjB,KAAK,qBAAS,CAAC,KAAK;gBAChB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;oBAC7B,8EAA8E;oBAC9E,OAAO,QAAQ,CAAC;iBACnB;gBACD,MAAM;YACV,KAAK,qBAAS,CAAC,GAAG;gBACd,IAAI,IAAA,0BAAa,EAAC,QAAQ,CAAC,EAAE;oBACzB,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;oBACpC,yBAAyB;oBACzB,mEAAmE;oBACnE,IAAI,IAAA,8BAAiB,EAAC,QAAQ,CAAC,EAAE;wBAC7B,OAAO,iCAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;iBAC/B;gBACD,MAAM;SACb;QACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,QAAgB;QAChC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,OAAO,CAAC;SAClB;aAAM;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;gBACV,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,GAAW,EAAE,aAAuB,EAAE,OAAoD;QACzG,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YAChE,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBAClC,IAAI;oBACA,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;oBAClD,MAAM,SAAS,GAA2C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEnG,IAAI,MAAsB,CAAC;oBAE3B,+EAA+E;oBAC/E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,mGAAmG,CAAC,CAAC;wBACxI,MAAM,GAAG,SAAS,CAAC;wBAEnB,4FAA4F;qBAC/F;yBAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;wBACxC,MAAM,GAAG,SAAS,EAAE,CAAC;qBACxB;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACd,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;qBAC9B;oBACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACpB;gBAAC,OAAO,GAAQ,EAAE;oBACf,IAAI,OAAO,EAAE;wBACT,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;qBAC9B;yBAAM;wBACH,MAAM,GAAG,CAAC;qBACb;iBACJ;aACJ;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,UAAsB;QAC3C,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,mBAAmB,GAAG,EAA0B,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,SAAS,gBAAgB,CAAC,UAAU;YAChC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;gBAC1B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC;YACD,IAAI,IAAA,iCAAoB,EAAC,UAAU,CAAC,EAAE;gBAClC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5C;QACL,CAAC;QAED,+FAA+F;QAC/F,sFAAsF;QACtF,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,gBAAgB,EAAE;YAC/B,QAAQ,EAAE,mBAAQ,CAAC,gBAAgB;SACtC,CAAC,CAAC;QAEH,uFAAuF;QACvF,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;IAClH,CAAC;IAGD;;;OAGG;IACI,SAAS,CAAC,MAAc,EAAE,GAAW;QACxC,mDAAmD;QACnD,IAAI,MAAM,GAAG,EAA6B,CAAC;QAC3C,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CACP,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EACzB,IAAI,uBAAU,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CACjD,CAAC;SACL;QACD,OAAO,IAAI,uBAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAe;QAClC,OAAO,YAAI,CAAC,kBAAkB,CAC1B,IAAA,6BAAyB,EAAC,OAAO,CAAC,CACrC,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QAC9C,oCAAoC;QACpC,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;QACjE,2BAA2B;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;QAEpC,4CAA4C;QAC5C,IAAI,KAAsB,CAAC;QAC3B,MAAM,SAAS,GAAG,EAAc,CAAC;QACjC,MAAM,MAAM,GAAG,yCAAyC,CAAC;QACzD,0CAA0C;QAC1C,OAAO,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAChC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACjD;QAED,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC1E;QACD,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,UAAU,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,UAAqC,EAAE,kCAA0C;;QACjG,OAAO;YACH,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,kBAAkB,EAAE,MAAA,UAAU,CAAC,kBAAkB,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE;gBAEvD,8EAA8E;gBAC9E,MAAM,KAAK,qBAAQ,CAAC,CAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACjB,yCAAyC;oBACzC,IAAI,kCAAkC,EAAE;wBACpC,KAAK,CAAC,QAAQ,GAAG,YAAI,CAAC,cAAc,CAAC,kCAAkC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;qBAC9F;yBAAM;wBACH,+EAA+E;wBAC/E,OAAO,SAAS,CAAC;qBACpB;iBACJ;gBACD,OAAO,KAAK,CAAC;gBACb,0CAA0C;YAC9C,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,UAAuB,EAAE,QAAkB;QAClE,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE;YAC1B,IAAI,YAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAC3C,OAAO,KAAK,CAAC;aAChB;SACJ;IACL,CAAC;IAED;;OAEG;IACI,WAAW,CAAsB,UAAe;QACnD,0BAA0B;QAC1B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBACzC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBACzC,OAAO,CAAC,CAAC;aACZ;YACD,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,OAAO,CAAC,CAAC;aACZ;YACD,UAAU;YACV,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBACrC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBACrC,OAAO,CAAC,CAAC;aACZ;YACD,UAAU;YACV,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC/C,OAAO,CAAC,CAAC,CAAC;aACb;iBAAM,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;gBACtD,OAAO,CAAC,CAAC;aACZ;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAY;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,EAA2C,CAAC;QAC3D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,0BAA0B;YAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,IAAI,CAAC,WAAW,CACnB,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,EAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,EACd,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAChD;iBACJ,CAAC,CAAC;aACN;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;SAC7C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,EAAE;QACtC,OAAO,KAAK,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,IAAa;QACrC,+EAA+E;QAC/E,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,OAAO,QAAQ,EAAE;YACnB,QAAQ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;gBACpB,KAAK,qBAAW,CAAC,mBAAmB;oBAChC,OAAO,CAAE,IAA4B,CAAC,IAAI,CAAC,CAAC;gBAChD,KAAK,qBAAW,CAAC,mBAAmB;oBAChC,KAAK,CAAC,IAAI,CAAE,QAAgC,aAAhC,QAAQ,uBAAR,QAAQ,CAA0B,IAAI,CAAC,CAAC;oBACpD,QAAQ,GAAI,QAAgC,CAAC,GAAG,CAAC;oBACjD,SAAS;gBACb,KAAK,qBAAW,CAAC,cAAc;oBAC3B,QAAQ,GAAI,QAA2B,CAAC,MAAM,CAAC;oBAC/C,SAAS;gBACb,KAAK,qBAAW,CAAC,cAAc;oBAC3B,QAAQ,GAAI,QAA2B,CAAC,UAAU,CAAC;oBACnD,SAAS;gBACb,KAAK,qBAAW,CAAC,kBAAkB;oBAC/B,KAAK,CAAC,IAAI,CAAE,QAA+B,aAA/B,QAAQ,uBAAR,QAAQ,CAAyB,IAAI,CAAC,CAAC;oBACnD,MAAM,IAAI,CAAC;gBACf,KAAK,qBAAW,CAAC,iBAAiB;oBAC9B,KAAK,CAAC,IAAI,CAAE,QAA8B,aAA9B,QAAQ,uBAAR,QAAQ,CAAwB,KAAmB,CAAC,CAAC;oBACjE,MAAM,IAAI,CAAC;gBACf,KAAK,qBAAW,CAAC,oBAAoB;oBACjC,QAAQ,GAAI,QAAiC,CAAC,GAAG,CAAC;oBAClD,SAAS;gBACb,KAAK,qBAAW,CAAC,2BAA2B;oBACxC,OAAO,CAAE,QAAwC,CAAC,IAAI,CAAC,CAAC;gBAC5D,KAAK,qBAAW,CAAC,kBAAkB;oBAC/B,KAAK,CAAC,IAAI,CAAC,IAAA,2BAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnD,MAAM,IAAI,CAAC;gBACf;oBACI,yFAAyF;oBACzF,OAAO,SAAS,CAAC;aACxB;SACJ;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,4BAA4B,CAAC,IAA4B,EAAE,SAAS,GAAG,kBAAS,CAAC,cAAc;;QAClG,+EAA+E;QAC/E,2BAA2B;QAC3B,IAAI,GAAG,GAAG,SAAS,KAAK,kBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;QACpD,IAAI,MAAM,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;QACd,0BAA0B;IAC9B,CAAC;IAEM,UAAU,CAAC,OAAiB,EAAE,SAAiB;;QAClD,kCAAkC;QAClC,IAAI,MAAM,GAAG,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC9B,kCAAkC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,UAAsB;QACzC,MAAM,KAAK,GAAiB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,OAAO,QAAQ,EAAE;YACb,IAAI,IAAA,kCAAqB,EAAC,QAAQ,CAAC,IAAI,IAAA,mCAAsB,EAAC,QAAQ,CAAC,IAAI,IAAA,wCAA2B,EAAC,QAAQ,CAAC,EAAE;gBAC9G,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;aAE3B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAoB,EAAC,QAAQ,CAAC,EAAE;gBACrE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;aAE9B;iBAAM,IAAI,IAAA,6BAAgB,EAAC,QAAQ,CAAC,EAAE;gBACnC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;aAClC;iBAAM;gBACH,MAAM;aACT;YACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,UAAsB;QAC1C,IAAI,KAAK,GAAiB,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,UAAU,CAAC;QAC1B,IAAI,EAAE,OAAO,QAAQ,EAAE;YACnB,QAAQ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;gBACpB,KAAK,qBAAW,CAAC,mBAAmB;oBAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACrB,QAAQ,GAAI,QAAgC,CAAC,GAAG,CAAC;oBACjD,SAAS;gBACb,KAAK,qBAAW,CAAC,oBAAoB,CAAC;gBACtC,KAAK,qBAAW,CAAC,yBAAyB;oBACtC,QAAQ,GAAI,QAA6D,CAAC,GAAG,CAAC;oBAC9E,KAAK,GAAG,EAAE,CAAC;oBACX,SAAS;gBACb,KAAK,qBAAW,CAAC,cAAc,CAAC;gBAChC,KAAK,qBAAW,CAAC,kBAAkB;oBAC/B,QAAQ,GAAI,QAAgD,CAAC,MAAM,CAAC;oBACpE,KAAK,GAAG,EAAE,CAAC;oBACX,SAAS;gBACb,KAAK,qBAAW,CAAC,aAAa;oBAC1B,QAAQ,GAAI,QAA0B,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnD,KAAK,GAAG,EAAE,CAAC;oBACX,SAAS;gBACb,KAAK,qBAAW,CAAC,cAAc;oBAC3B,QAAQ,GAAI,QAA2B,CAAC,UAAU,CAAC;oBACnD,SAAS;gBACb,KAAK,qBAAW,CAAC,kBAAkB;oBAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACrB,MAAM,IAAI,CAAC;gBACf;oBACI,OAAO,EAAS,CAAC;aACxB;SACJ;QACD,OAAO,KAAK,CAAC,OAAO,EAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAU;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,KAAY;;QAC7B,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,IAAI,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,SAAS,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,0CAAE,IAAI,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,0CAAE,SAAS,EAAE,CAAC;IAC3G,CAAC;IAEM,mBAAmB,CAAC,IAAyB;;QAChD,gCAAgC;QAChC,IAAI,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtD,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE/E,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC5C,OAAO;SACV;QAED,IAAI,IAAA,sBAAS,EAAC,IAAI,CAAC,IAAI,UAAU,KAAK,YAAY,EAAE;YAChD,OAAO;SACV;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,SAAS,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,cAAc,CAAC,iCACb,uCAAkB,CAAC,yBAAyB,CAAC,SAAS,CAAC,KAC1D,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,IACpD,CAAC,CAAC;SACP;IACL,CAAC;IAED;;OAEG;IACI,aAAa,CAAI,KAAU,EAAE,OAAuB;QACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnB,OAAO,CAAC,CAAC;aACZ;SACJ;IACL,CAAC;IAEM,gBAAgB,CAAC,SAA2B;QAC/C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,UAAiB,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,aAAa,IAAI,GAAG,CAAC;aACxB;YACD,aAAa,IAAI,SAAS,CAAC,IAAI,CAAC;YAChC,cAAc,GAAG,gBAAgB,CAAC;YAClC,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5F,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7C,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;gBACvB,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC7B,MAAM;aACT;SACJ;QACD,OAAO;YACH,QAAQ,EAAE,QAAQ;YAClB,kBAAkB,EAAE,cAAc;YAClC,cAAc,EAAE,aAAa;YAC7B,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,UAAU;SACpB,CAAC;IACN,CAAC;CACJ;AA1nDD,oBA0nDC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,WAAW,EAAE,GAAG,WAAkB;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,YAAI,CAAC,kBAAkB,CAC1B,IAAA,6BAAyB,EACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAClB,CACJ,CAAC;AACN,CAAC;AAVD,0CAUC;AAEU,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAC7B,kBAAe,YAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brighterscript",
3
- "version": "0.66.0-alpha.1",
3
+ "version": "0.66.0-alpha.3",
4
4
  "description": "A superset of Roku's BrightScript language.",
5
5
  "scripts": {
6
6
  "preversion": "npm run build && npm run lint && npm run test",
@@ -148,9 +148,11 @@
148
148
  "serialize-error": "^7.0.1",
149
149
  "source-map": "^0.7.4",
150
150
  "uuid": "^9.0.0",
151
+ "v8-profiler-next": "^1.9.0",
151
152
  "vscode-languageserver": "7.0.0",
152
153
  "vscode-languageserver-protocol": "3.16.0",
153
154
  "vscode-languageserver-textdocument": "^1.0.1",
155
+ "vscode-languageserver-types": "^3.17.3",
154
156
  "vscode-uri": "^2.1.1",
155
157
  "xml2js": "^0.5.0",
156
158
  "yargs": "^16.2.0"