@zzzen/pyright-internal 1.2.0-dev.20261018 → 1.2.0-dev.20261108

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 (238) hide show
  1. package/dist/analyzer/binder.js +29 -12
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +4 -0
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/codeFlowEngine.js +3 -3
  6. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  7. package/dist/analyzer/constructorTransform.js +12 -0
  8. package/dist/analyzer/constructorTransform.js.map +1 -1
  9. package/dist/analyzer/constructors.d.ts +1 -1
  10. package/dist/analyzer/constructors.js +1 -1
  11. package/dist/analyzer/constructors.js.map +1 -1
  12. package/dist/analyzer/dataClasses.js +14 -5
  13. package/dist/analyzer/dataClasses.js.map +1 -1
  14. package/dist/analyzer/decorators.d.ts +2 -2
  15. package/dist/analyzer/decorators.js +22 -2
  16. package/dist/analyzer/decorators.js.map +1 -1
  17. package/dist/analyzer/functionTransform.d.ts +5 -0
  18. package/dist/analyzer/functionTransform.js +6 -3
  19. package/dist/analyzer/functionTransform.js.map +1 -1
  20. package/dist/analyzer/missingBindingMetadata.d.ts +6 -0
  21. package/dist/analyzer/missingBindingMetadata.js +22 -0
  22. package/dist/analyzer/missingBindingMetadata.js.map +1 -0
  23. package/dist/analyzer/namedTuples.d.ts +5 -1
  24. package/dist/analyzer/namedTuples.js +64 -35
  25. package/dist/analyzer/namedTuples.js.map +1 -1
  26. package/dist/analyzer/operations.js +45 -1
  27. package/dist/analyzer/operations.js.map +1 -1
  28. package/dist/analyzer/parseTreeUtils.d.ts +2 -0
  29. package/dist/analyzer/parseTreeUtils.js +43 -0
  30. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  31. package/dist/analyzer/patternMatching.d.ts +5 -1
  32. package/dist/analyzer/patternMatching.js +6 -1
  33. package/dist/analyzer/patternMatching.js.map +1 -1
  34. package/dist/analyzer/program.d.ts +3 -0
  35. package/dist/analyzer/program.js +71 -1
  36. package/dist/analyzer/program.js.map +1 -1
  37. package/dist/analyzer/sentinel.js +7 -1
  38. package/dist/analyzer/sentinel.js.map +1 -1
  39. package/dist/analyzer/sourceFile.js +13 -6
  40. package/dist/analyzer/sourceFile.js.map +1 -1
  41. package/dist/analyzer/tupleComparison.d.ts +6 -0
  42. package/dist/analyzer/tupleComparison.js +731 -0
  43. package/dist/analyzer/tupleComparison.js.map +1 -0
  44. package/dist/analyzer/tuples.d.ts +1 -1
  45. package/dist/analyzer/tuples.js +35 -4
  46. package/dist/analyzer/tuples.js.map +1 -1
  47. package/dist/analyzer/typeCacheUtils.d.ts +1 -0
  48. package/dist/analyzer/typeCacheUtils.js +10 -0
  49. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  50. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.d.ts +15 -0
  51. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js +98 -0
  52. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js.map +1 -0
  53. package/dist/analyzer/typeEvaluator/classConstruction.d.ts +25 -0
  54. package/dist/analyzer/typeEvaluator/classConstruction.js +251 -0
  55. package/dist/analyzer/typeEvaluator/classConstruction.js.map +1 -0
  56. package/dist/analyzer/typeEvaluator/collectionInference.d.ts +41 -0
  57. package/dist/analyzer/typeEvaluator/collectionInference.js +695 -0
  58. package/dist/analyzer/typeEvaluator/collectionInference.js.map +1 -0
  59. package/dist/analyzer/typeEvaluator/diagnostics.d.ts +33 -0
  60. package/dist/analyzer/typeEvaluator/diagnostics.js +198 -0
  61. package/dist/analyzer/typeEvaluator/diagnostics.js.map +1 -0
  62. package/dist/analyzer/typeEvaluator/evaluatorCore.d.ts +80 -0
  63. package/dist/analyzer/typeEvaluator/evaluatorCore.js +1126 -0
  64. package/dist/analyzer/typeEvaluator/evaluatorCore.js.map +1 -0
  65. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.d.ts +17 -0
  66. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js +370 -0
  67. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js.map +1 -0
  68. package/dist/analyzer/typeEvaluator/expressionEvaluation.d.ts +81 -0
  69. package/dist/analyzer/typeEvaluator/expressionEvaluation.js +1802 -0
  70. package/dist/analyzer/typeEvaluator/expressionEvaluation.js.map +1 -0
  71. package/dist/analyzer/typeEvaluator/flowAnalysis.d.ts +33 -0
  72. package/dist/analyzer/typeEvaluator/flowAnalysis.js +217 -0
  73. package/dist/analyzer/typeEvaluator/flowAnalysis.js.map +1 -0
  74. package/dist/analyzer/typeEvaluator/internals.d.ts +137 -0
  75. package/dist/analyzer/typeEvaluator/internals.js +10 -0
  76. package/dist/analyzer/typeEvaluator/internals.js.map +1 -0
  77. package/dist/analyzer/typeEvaluator/literalTypes.d.ts +3 -0
  78. package/dist/analyzer/typeEvaluator/literalTypes.js +52 -0
  79. package/dist/analyzer/typeEvaluator/literalTypes.js.map +1 -0
  80. package/dist/analyzer/typeEvaluator/memberResolution.d.ts +79 -0
  81. package/dist/analyzer/typeEvaluator/memberResolution.js +1007 -0
  82. package/dist/analyzer/typeEvaluator/memberResolution.js.map +1 -0
  83. package/dist/analyzer/typeEvaluator/overrideValidation.d.ts +15 -0
  84. package/dist/analyzer/typeEvaluator/overrideValidation.js +422 -0
  85. package/dist/analyzer/typeEvaluator/overrideValidation.js.map +1 -0
  86. package/dist/analyzer/typeEvaluator/returnTypeInference.d.ts +33 -0
  87. package/dist/analyzer/typeEvaluator/returnTypeInference.js +226 -0
  88. package/dist/analyzer/typeEvaluator/returnTypeInference.js.map +1 -0
  89. package/dist/analyzer/typeEvaluator/specialFormCreation.d.ts +39 -0
  90. package/dist/analyzer/typeEvaluator/specialFormCreation.js +1728 -0
  91. package/dist/analyzer/typeEvaluator/specialFormCreation.js.map +1 -0
  92. package/dist/analyzer/typeEvaluator/tupleUnpacking.d.ts +2 -0
  93. package/dist/analyzer/typeEvaluator/tupleUnpacking.js +36 -0
  94. package/dist/analyzer/typeEvaluator/tupleUnpacking.js.map +1 -0
  95. package/dist/analyzer/typeEvaluator/typeCompatibility.d.ts +36 -0
  96. package/dist/analyzer/typeEvaluator/typeCompatibility.js +1320 -0
  97. package/dist/analyzer/typeEvaluator/typeCompatibility.js.map +1 -0
  98. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.d.ts +186 -0
  99. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js +1683 -0
  100. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js.map +1 -0
  101. package/dist/analyzer/typeEvaluator/typeVarHandling.d.ts +48 -0
  102. package/dist/analyzer/typeEvaluator/typeVarHandling.js +756 -0
  103. package/dist/analyzer/typeEvaluator/typeVarHandling.js.map +1 -0
  104. package/dist/analyzer/typeEvaluator.d.ts +3 -31
  105. package/dist/analyzer/typeEvaluator.js +5140 -13656
  106. package/dist/analyzer/typeEvaluator.js.map +1 -1
  107. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
  108. package/dist/analyzer/typeEvaluatorTypes.js +2 -3
  109. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  110. package/dist/analyzer/typeGuards.d.ts +3 -2
  111. package/dist/analyzer/typeGuards.js +236 -1375
  112. package/dist/analyzer/typeGuards.js.map +1 -1
  113. package/dist/analyzer/typeUtils.js +9 -2
  114. package/dist/analyzer/typeUtils.js.map +1 -1
  115. package/dist/analyzer/typedDicts.js +111 -0
  116. package/dist/analyzer/typedDicts.js.map +1 -1
  117. package/dist/analyzer/types.d.ts +14 -0
  118. package/dist/analyzer/types.js +215 -10
  119. package/dist/analyzer/types.js.map +1 -1
  120. package/dist/browser/browserConnection.d.ts +12 -0
  121. package/dist/browser/browserConnection.js +23 -0
  122. package/dist/browser/browserConnection.js.map +1 -0
  123. package/dist/browser/browserFileSystem.d.ts +73 -0
  124. package/dist/browser/browserFileSystem.js +578 -0
  125. package/dist/browser/browserFileSystem.js.map +1 -0
  126. package/dist/browser/browserHost.d.ts +4 -0
  127. package/dist/browser/browserHost.js +10 -0
  128. package/dist/browser/browserHost.js.map +1 -0
  129. package/dist/browser/browserProcess.d.ts +1 -0
  130. package/dist/browser/browserProcess.js +17 -0
  131. package/dist/browser/browserProcess.js.map +1 -0
  132. package/dist/browser/browserServer.d.ts +8 -0
  133. package/dist/browser/browserServer.js +32 -0
  134. package/dist/browser/browserServer.js.map +1 -0
  135. package/dist/browser/cancellation/common.d.ts +10 -0
  136. package/dist/browser/cancellation/common.js +114 -0
  137. package/dist/browser/cancellation/common.js.map +1 -0
  138. package/dist/browser/cancellation/objectURLReceiverStrategy.d.ts +5 -0
  139. package/dist/browser/cancellation/objectURLReceiverStrategy.js +37 -0
  140. package/dist/browser/cancellation/objectURLReceiverStrategy.js.map +1 -0
  141. package/dist/browser/cancellation/objectURLSenderStrategy.d.ts +7 -0
  142. package/dist/browser/cancellation/objectURLSenderStrategy.js +32 -0
  143. package/dist/browser/cancellation/objectURLSenderStrategy.js.map +1 -0
  144. package/dist/browser/worker.d.ts +1 -0
  145. package/dist/browser/worker.js +33 -0
  146. package/dist/browser/worker.js.map +1 -0
  147. package/dist/common/processUtils.d.ts +6 -0
  148. package/dist/common/processUtils.js +56 -1
  149. package/dist/common/processUtils.js.map +1 -1
  150. package/dist/common/textEditTracker.js +1 -1
  151. package/dist/common/textEditTracker.js.map +1 -1
  152. package/dist/common/windowsProcessTree.d.ts +2 -0
  153. package/dist/common/windowsProcessTree.js +23 -0
  154. package/dist/common/windowsProcessTree.js.map +1 -1
  155. package/dist/common/windowsProcessTree.json +23 -3
  156. package/dist/languageServerBase.d.ts +3 -0
  157. package/dist/languageServerBase.js +44 -12
  158. package/dist/languageServerBase.js.map +1 -1
  159. package/dist/languageService/callHierarchyProvider.js +6 -6
  160. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  161. package/dist/languageService/referencesProvider.js +3 -3
  162. package/dist/languageService/referencesProvider.js.map +1 -1
  163. package/dist/languageService/renameProvider.js +1 -1
  164. package/dist/languageService/renameProvider.js.map +1 -1
  165. package/dist/languageService/symbolIndexer.js +2 -2
  166. package/dist/languageService/symbolIndexer.js.map +1 -1
  167. package/dist/localization/localize.d.ts +2 -0
  168. package/dist/localization/localize.js +2 -0
  169. package/dist/localization/localize.js.map +1 -1
  170. package/dist/localization/package.nls.en-us.json +8 -0
  171. package/dist/parser/parseTreeTokenReuse.d.ts +34 -0
  172. package/dist/parser/parseTreeTokenReuse.js +897 -0
  173. package/dist/parser/parseTreeTokenReuse.js.map +1 -0
  174. package/dist/parser/tokenizer.d.ts +10 -1
  175. package/dist/parser/tokenizer.js +184 -130
  176. package/dist/parser/tokenizer.js.map +1 -1
  177. package/dist/pyrightServer.d.ts +34 -0
  178. package/dist/pyrightServer.js +239 -0
  179. package/dist/pyrightServer.js.map +1 -0
  180. package/dist/server.d.ts +3 -23
  181. package/dist/server.js +12 -232
  182. package/dist/server.js.map +1 -1
  183. package/dist/tests/benchmarks/typeInferenceComparison.d.ts +1 -0
  184. package/dist/tests/benchmarks/typeInferenceComparison.js +1235 -0
  185. package/dist/tests/benchmarks/typeInferenceComparison.js.map +1 -0
  186. package/dist/tests/benchmarks/typeInferencePyrightEntry.d.ts +1 -0
  187. package/dist/tests/benchmarks/typeInferencePyrightEntry.js +53 -0
  188. package/dist/tests/benchmarks/typeInferencePyrightEntry.js.map +1 -0
  189. package/dist/tests/browserCancellation.test.d.ts +1 -0
  190. package/dist/tests/browserCancellation.test.js +63 -0
  191. package/dist/tests/browserCancellation.test.js.map +1 -0
  192. package/dist/tests/browserServer.test.d.ts +1 -0
  193. package/dist/tests/browserServer.test.js +177 -0
  194. package/dist/tests/browserServer.test.js.map +1 -0
  195. package/dist/tests/checker.test.js +8 -0
  196. package/dist/tests/checker.test.js.map +1 -1
  197. package/dist/tests/constraintSolver.test.js +45 -0
  198. package/dist/tests/constraintSolver.test.js.map +1 -1
  199. package/dist/tests/fourSlashParser.test.js +35 -0
  200. package/dist/tests/fourSlashParser.test.js.map +1 -1
  201. package/dist/tests/harness/fourslash/fourSlashParser.js +14 -4
  202. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  203. package/dist/tests/languageServer.test.js +15 -0
  204. package/dist/tests/languageServer.test.js.map +1 -1
  205. package/dist/tests/lsp/languageServer.js +6 -6
  206. package/dist/tests/lsp/languageServer.js.map +1 -1
  207. package/dist/tests/mypyPrimerAnalysis.test.js +148 -1
  208. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
  209. package/dist/tests/typeCacheUtils.test.js +46 -0
  210. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  211. package/dist/tests/typeEvaluator1.test.js +78 -1
  212. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  213. package/dist/tests/typeEvaluator2.test.js +54 -1
  214. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  215. package/dist/tests/typeEvaluator3.test.js +4 -0
  216. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  217. package/dist/tests/typeEvaluator4.test.js +42 -3
  218. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  219. package/dist/tests/typeEvaluator6.test.js +35 -0
  220. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  221. package/dist/tests/typeEvaluator7.test.js +414 -0
  222. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  223. package/dist/tests/typeEvaluator8.test.js +1291 -1
  224. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  225. package/dist/tests/typeUtils.test.js +28 -0
  226. package/dist/tests/typeUtils.test.js.map +1 -1
  227. package/dist/tests/types.test.js +55 -0
  228. package/dist/tests/types.test.js.map +1 -1
  229. package/dist/typeServer/programWrapper.js +8 -2
  230. package/dist/typeServer/programWrapper.js.map +1 -1
  231. package/dist/typeServer/server.d.ts +12 -2
  232. package/dist/typeServer/server.js +97 -0
  233. package/dist/typeServer/server.js.map +1 -1
  234. package/dist/typeServer/stubGenerator.js +136 -3
  235. package/dist/typeServer/stubGenerator.js.map +1 -1
  236. package/dist/typeServer/typeServerConversionUtils.js +13 -0
  237. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  238. package/package.json +3 -1
@@ -43,9 +43,12 @@ var __importStar = (this && this.__importStar) || (function () {
43
43
  })();
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.createNamedTupleType = createNamedTupleType;
46
+ exports.synthesizeNamedTupleReplaceMethods = synthesizeNamedTupleReplaceMethods;
47
+ exports.createNamedTupleReplaceFromDunderReplace = createNamedTupleReplaceFromDunderReplace;
46
48
  exports.updateNamedTupleBaseClass = updateNamedTupleBaseClass;
47
49
  const diagnosticRules_1 = require("../common/diagnosticRules");
48
50
  const positionUtils_1 = require("../common/positionUtils");
51
+ const pythonVersion_1 = require("../common/pythonVersion");
49
52
  const textRange_1 = require("../common/textRange");
50
53
  const localize_1 = require("../localization/localize");
51
54
  const tokenizer_1 = require("../parser/tokenizer");
@@ -136,13 +139,13 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
136
139
  const entries = entriesArg.valueExpression.d.strings
137
140
  .map((s) => s.d.value)
138
141
  .join('')
139
- .split(/[,\s]+/);
142
+ .split(/[,\s]+/)
143
+ .filter((entryName) => entryName.length > 0);
140
144
  const firstParamWithDefaultIndex = defaultArgCount === undefined ? 0 : Math.max(0, entries.length - defaultArgCount);
141
145
  entries.forEach((entryName, index) => {
142
146
  entryName = entryName.trim();
143
147
  if (entryName) {
144
- entryName = renameUnderscore(evaluator, entryName, allowRename, entryNameNode, index);
145
- entryName = renameKeyword(evaluator, entryName, allowRename, entryNameNode, index);
148
+ entryName = validateAndRenameField(evaluator, entryName, allowRename, entryNameNode, index, namedTupleEntries);
146
149
  const entryType = types_1.UnknownType.create();
147
150
  const paramInfo = types_1.FunctionParam.create(0 /* ParamCategory.Simple */, entryType, types_1.FunctionParamFlags.TypeDeclared, entryName, index >= firstParamWithDefaultIndex ? entryType : undefined);
148
151
  types_1.FunctionType.addParam(constructorType, paramInfo);
@@ -163,6 +166,7 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
163
166
  };
164
167
  newSymbol.addDeclaration(declaration);
165
168
  classFields.set(entryName, newSymbol);
169
+ namedTupleEntries.add(entryName);
166
170
  entryTypes.push(entryType);
167
171
  }
168
172
  });
@@ -170,7 +174,6 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
170
174
  else if (entriesArg.valueExpression?.nodeType === 34 /* ParseNodeType.List */ ||
171
175
  entriesArg.valueExpression?.nodeType === 52 /* ParseNodeType.Tuple */) {
172
176
  const entryList = entriesArg.valueExpression;
173
- const entryMap = new Map();
174
177
  const entryExpressions = entriesArg.valueExpression?.nodeType === 34 /* ParseNodeType.List */
175
178
  ? entriesArg.valueExpression.d.items
176
179
  : entriesArg.valueExpression.d.items;
@@ -201,13 +204,7 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
201
204
  types_1.ClassType.isBuiltIn(nameTypeResult.type, 'str') &&
202
205
  (0, typeUtils_1.isLiteralType)(nameTypeResult.type)) {
203
206
  entryName = nameTypeResult.type.priv.literalValue;
204
- if (!entryName) {
205
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleEmptyName(), entryNameNode);
206
- }
207
- else {
208
- entryName = renameUnderscore(evaluator, entryName, allowRename, entryNameNode, index);
209
- entryName = renameKeyword(evaluator, entryName, allowRename, entryNameNode, index);
210
- }
207
+ entryName = validateAndRenameField(evaluator, entryName, allowRename, entryNameNode, index, namedTupleEntries);
211
208
  }
212
209
  else {
213
210
  addGenericGetAttribute = true;
@@ -219,11 +216,6 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
219
216
  if (!entryName) {
220
217
  entryName = `_${index.toString()}`;
221
218
  }
222
- if (entryMap.has(entryName)) {
223
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleNameUnique(), entryNameNode || entry);
224
- }
225
- // Record names in a map to detect duplicates.
226
- entryMap.set(entryName, entryName);
227
219
  if (!entryType) {
228
220
  entryType = types_1.UnknownType.create();
229
221
  }
@@ -279,6 +271,7 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
279
271
  initType.priv.constructorTypeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(classType);
280
272
  classFields.set('__new__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, constructorType));
281
273
  classFields.set('__init__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, initType));
274
+ synthesizeNamedTupleReplaceMethods(classFields, constructorType, selfParam, addGenericGetAttribute, fileInfo.executionEnvironment.pythonVersion);
282
275
  const lenType = types_1.FunctionType.createSynthesizedInstance('__len__');
283
276
  lenType.shared.declaredReturnType = evaluator.getBuiltInObject(errorNode, 'int');
284
277
  types_1.FunctionType.addParam(lenType, selfParam);
@@ -308,6 +301,45 @@ function createNamedTupleType(evaluator, errorNode, argList, includesTypes, node
308
301
  (0, typeUtils_1.computeMroLinearization)(classType);
309
302
  return classType;
310
303
  }
304
+ function synthesizeNamedTupleReplaceMethods(classFields, constructorType, selfParam, addGenericGetAttribute, pythonVersion) {
305
+ const replaceParams = [];
306
+ if (addGenericGetAttribute) {
307
+ // The fields are unknown, so accept any keyword arguments. _replace
308
+ // is keyword-only, so don't add an *args parameter.
309
+ replaceParams.push(types_1.FunctionParam.create(2 /* ParamCategory.KwargsDict */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'kwargs'));
310
+ }
311
+ else {
312
+ // Skip the receiver (the first parameter of __new__). Fields may
313
+ // legitimately be named "self" or "cls".
314
+ constructorType.shared.parameters.slice(1).forEach((param) => {
315
+ if (!param.name || (0, types_1.isPositionOnlySeparator)(param) || (0, types_1.isKeywordOnlySeparator)(param)) {
316
+ return;
317
+ }
318
+ replaceParams.push(types_1.FunctionParam.create(param.category, param._type, param.flags, param.name, types_1.AnyType.create(/* isEllipsis */ true)));
319
+ });
320
+ }
321
+ const createReplaceMethod = (name, flags) => {
322
+ const replaceType = types_1.FunctionType.createSynthesizedInstance(name, flags);
323
+ types_1.FunctionType.addParam(replaceType, selfParam);
324
+ types_1.FunctionType.addKeywordOnlyParamSeparator(replaceType);
325
+ replaceParams.forEach((param) => types_1.FunctionType.addParam(replaceType, param));
326
+ replaceType.shared.declaredReturnType = selfParam._type;
327
+ return replaceType;
328
+ };
329
+ if (pythonVersion_1.PythonVersion.isGreaterOrEqualTo(pythonVersion, pythonVersion_1.pythonVersion3_13)) {
330
+ classFields.set('__replace__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, createReplaceMethod('__replace__', 0 /* FunctionTypeFlags.None */)));
331
+ }
332
+ // _replace is declared @final in typeshed.
333
+ classFields.set('_replace', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, createReplaceMethod('_replace', 8192 /* FunctionTypeFlags.Final */)));
334
+ }
335
+ // Creates a NamedTuple _replace method with the same signature as the
336
+ // provided synthesized __replace__ method.
337
+ function createNamedTupleReplaceFromDunderReplace(replaceType) {
338
+ const namedTupleReplaceType = types_1.FunctionType.createSynthesizedInstance('_replace', 8192 /* FunctionTypeFlags.Final */);
339
+ replaceType.shared.parameters.forEach((param) => types_1.FunctionType.addParam(namedTupleReplaceType, param));
340
+ namedTupleReplaceType.shared.declaredReturnType = replaceType.shared.declaredReturnType;
341
+ return namedTupleReplaceType;
342
+ }
311
343
  function updateNamedTupleBaseClass(classType, typeArgs, isTypeArgExplicit) {
312
344
  let isUpdateNeeded = false;
313
345
  classType.shared.baseClasses = classType.shared.baseClasses.map((baseClass) => {
@@ -341,30 +373,27 @@ function updateNamedTupleBaseClass(classType, typeArgs, isTypeArgExplicit) {
341
373
  });
342
374
  return isUpdateNeeded;
343
375
  }
344
- function renameKeyword(evaluator, name, allowRename, errorNode, index) {
345
- // Determine whether the name is a keyword in python.
376
+ function validateAndRenameField(evaluator, name, allowRename, errorNode, index, existingNames) {
346
377
  const isKeyword = tokenizer_1.Tokenizer.isPythonKeyword(name);
347
- if (!isKeyword) {
348
- // No rename necessary.
349
- return name;
350
- }
351
- if (allowRename) {
352
- // Rename based on index.
378
+ if (allowRename &&
379
+ (!name || !tokenizer_1.Tokenizer.isPythonIdentifier(name) || name.startsWith('_') || isKeyword || existingNames.has(name))) {
353
380
  return `_${index}`;
354
381
  }
355
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleNameKeyword(), errorNode);
356
- return name;
357
- }
358
- function renameUnderscore(evaluator, name, allowRename, errorNode, index) {
359
- if (!name.startsWith('_')) {
360
- // No rename necessary.
361
- return name;
382
+ if (!name) {
383
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleEmptyName(), errorNode);
384
+ name = `_${index}`;
362
385
  }
363
- if (allowRename) {
364
- // Rename based on index.
365
- return `_${index}`;
386
+ else {
387
+ if (name.startsWith('_')) {
388
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleFieldUnderscore(), errorNode);
389
+ }
390
+ if (isKeyword) {
391
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleNameKeyword(), errorNode);
392
+ }
393
+ }
394
+ if (existingNames.has(name)) {
395
+ evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleNameUnique(), errorNode);
366
396
  }
367
- evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.namedTupleFieldUnderscore(), errorNode);
368
397
  return name;
369
398
  }
370
399
  //# sourceMappingURL=namedTuples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namedTuples.js","sourceRoot":"","sources":["../../../../../src/analyzer/namedTuples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namedTuples.js","sourceRoot":"","sources":["../../../../../src/analyzer/namedTuples.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
23
23
  const parseTreeUtils_1 = require("./parseTreeUtils");
24
24
  const scopeUtils_1 = require("./scopeUtils");
25
25
  const staticExpressions_1 = require("./staticExpressions");
26
+ const tupleComparison_1 = require("./tupleComparison");
26
27
  const typeUtils_1 = require("./typeUtils");
27
28
  const types_1 = require("./types");
28
29
  // Maps binary operators to the magic methods that implement them.
@@ -60,7 +61,9 @@ const booleanOperatorMap = {
60
61
  // cut off the literal union and fall back to the non-literal supertype.
61
62
  const maxLiteralMathSubtypeCount = 64;
62
63
  function validateBinaryOperation(evaluator, operator, leftTypeResult, rightTypeResult, errorNode, inferenceContext, diag, options) {
63
- const leftType = leftTypeResult.type;
64
+ const leftType = operator === 36 /* OperatorType.And */ || operator === 37 /* OperatorType.Or */
65
+ ? (0, types_1.getInferredTupleLiteralBase)(leftTypeResult.type)
66
+ : leftTypeResult.type;
64
67
  const rightType = rightTypeResult.type;
65
68
  const isIncomplete = !!leftTypeResult.isIncomplete || !!rightTypeResult.isIncomplete;
66
69
  let type;
@@ -594,6 +597,7 @@ function createUnionType(evaluator, node, flags, leftTypeResult, rightTypeResult
594
597
  }
595
598
  // Attempts to apply "literal math" for a literal operands.
596
599
  function calcLiteralForUnaryOp(operator, operandType) {
600
+ operandType = (0, types_1.getInferredTupleLiteralBase)(operandType);
597
601
  let type;
598
602
  if ((0, typeUtils_1.getUnionSubtypeCount)(operandType) >= maxLiteralMathSubtypeCount) {
599
603
  return undefined;
@@ -640,6 +644,8 @@ function calcLiteralForUnaryOp(operator, operandType) {
640
644
  }
641
645
  // Attempts to apply "literal math" for two literal operands.
642
646
  function calcLiteralForBinaryOp(operator, leftType, rightType) {
647
+ leftType = (0, types_1.getInferredTupleLiteralBase)(leftType);
648
+ rightType = (0, types_1.getInferredTupleLiteralBase)(rightType);
643
649
  const leftLiteralClassName = (0, typeUtils_1.getLiteralTypeClassName)(leftType);
644
650
  if (!leftLiteralClassName ||
645
651
  (0, typeUtils_1.getTypeCondition)(leftType) ||
@@ -865,6 +871,27 @@ function validateContainmentOperation(evaluator, operator, leftTypeResult, concr
865
871
  function validateArithmeticOperation(evaluator, operator, leftTypeResult, rightTypeResult, errorNode, inferenceContext, diag, options) {
866
872
  let deprecatedInfo;
867
873
  const isIncomplete = !!leftTypeResult.isIncomplete || !!rightTypeResult.isIncomplete;
874
+ if ((0, types_1.exceedsInferredTupleLiteralProduct)(leftTypeResult.type, rightTypeResult.type)) {
875
+ leftTypeResult = { ...leftTypeResult, type: (0, types_1.getInferredTupleLiteralBase)(leftTypeResult.type) };
876
+ rightTypeResult = { ...rightTypeResult, type: (0, types_1.getInferredTupleLiteralBase)(rightTypeResult.type) };
877
+ }
878
+ if ((0, tupleComparison_1.isTupleOrdering)(operator) &&
879
+ (leftTypeResult.type.props?.inferredTupleLiteral || rightTypeResult.type.props?.inferredTupleLiteral)) {
880
+ const plainInts = (type) => ((0, types_1.isUnion)(type) ? type.priv.subtypes : [type]).every((subtype) => (0, types_1.isClassInstance)(subtype) &&
881
+ types_1.ClassType.isBuiltIn(subtype, 'int') &&
882
+ !(0, typeUtils_1.getTypeCondition)(subtype)?.length);
883
+ const leftBase = (0, types_1.getInferredTupleLiteralBase)(leftTypeResult.type);
884
+ const rightBase = (0, types_1.getInferredTupleLiteralBase)(rightTypeResult.type);
885
+ if (plainInts(leftTypeResult.type) &&
886
+ plainInts(rightTypeResult.type) &&
887
+ plainInts(leftBase) &&
888
+ plainInts(rightBase)) {
889
+ // Int ordering cannot observe optional literal alternatives. Keep
890
+ // them on the operands, but avoid their Cartesian product here.
891
+ leftTypeResult = { ...leftTypeResult, type: leftBase };
892
+ rightTypeResult = { ...rightTypeResult, type: rightBase };
893
+ }
894
+ }
868
895
  const type = evaluator.mapSubtypesExpandTypeVars(leftTypeResult.type,
869
896
  /* options */ undefined, (leftSubtypeExpanded, leftSubtypeUnexpanded) => {
870
897
  return evaluator.mapSubtypesExpandTypeVars(rightTypeResult.type, { conditionFilter: (0, typeUtils_1.getTypeCondition)(leftSubtypeExpanded) }, (rightSubtypeExpanded, rightSubtypeUnexpanded) => {
@@ -872,6 +899,23 @@ function validateArithmeticOperation(evaluator, operator, leftTypeResult, rightT
872
899
  return (0, typeUtils_1.preserveUnknown)(leftSubtypeUnexpanded, rightSubtypeUnexpanded);
873
900
  }
874
901
  const tupleClassType = evaluator.getTupleClassType();
902
+ if ((0, tupleComparison_1.isTupleOrdering)(operator) &&
903
+ (0, types_1.isClassInstance)(leftSubtypeExpanded) &&
904
+ (0, typeUtils_1.isTupleClass)(leftSubtypeExpanded) &&
905
+ leftSubtypeExpanded.priv.tupleTypeArgs &&
906
+ (0, types_1.isClassInstance)(rightSubtypeExpanded) &&
907
+ (0, typeUtils_1.isTupleClass)(rightSubtypeExpanded) &&
908
+ rightSubtypeExpanded.priv.tupleTypeArgs) {
909
+ const result = (0, tupleComparison_1.getTupleComparisonResult)(evaluator, leftSubtypeExpanded, rightSubtypeExpanded, operator, errorNode);
910
+ if (!result) {
911
+ diag.addMessage(localize_1.LocMessage.typeNotSupportBinaryOperator().format({
912
+ operator: (0, parseTreeUtils_1.printOperator)(operator),
913
+ leftType: evaluator.printType(leftSubtypeExpanded),
914
+ rightType: evaluator.printType(rightSubtypeExpanded),
915
+ }));
916
+ }
917
+ return result?.type ?? types_1.UnknownType.create(isIncomplete);
918
+ }
875
919
  // Special-case __add__ for tuples when the types for both tuples are known.
876
920
  if (options.isTupleAddAllowed &&
877
921
  operator === 0 /* OperatorType.Add */ &&
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../../src/analyzer/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../../src/analyzer/operations.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAsGH,0DA6IC;AAED,4DAkPC;AAED,oEAwJC;AAED,0DA0HC;AAED,8DAiDC;AA+SD,sEA+BC;AA5nCD,qDAA0D;AAC1D,+DAA2D;AAC3D,2DAA2E;AAC3E,uDAAsD;AAUtD,yDAA6E;AAC7E,qDAA6G;AAC7G,6CAA+C;AAC/C,2DAAmE;AACnE,uDAA8E;AAE9E,2CAoBqB;AACrB,mCAgBiB;AAEjB,kEAAkE;AAClE,MAAM,iBAAiB,GAA6C;IAChE,0BAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC3C,gCAAuB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAChD,gCAAuB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAChD,mCAA0B,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAC7D,8BAAqB,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IACtD,2BAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC3C,6BAAoB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC7C,sCAA6B,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IAC5D,iCAAyB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAClD,gCAAwB,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC/C,iCAAyB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAClD,iCAAwB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IACvD,kCAAyB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IACxD,8BAAqB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC3C,iCAAwB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC9C,gCAAuB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7C,uCAA8B,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpD,mCAA0B,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAChD,0CAAiC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC1D,CAAC;AAEF,qDAAqD;AACrD,MAAM,kBAAkB,GAAiC;IACrD,2BAAkB,EAAE,IAAI;IACxB,0BAAiB,EAAE,IAAI;IACvB,0BAAiB,EAAE,IAAI;IACvB,6BAAoB,EAAE,IAAI;IAC1B,0BAAiB,EAAE,IAAI;IACvB,6BAAoB,EAAE,IAAI;CAC7B,CAAC;AAOF,4EAA4E;AAC5E,wEAAwE;AACxE,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,SAAgB,uBAAuB,CACnC,SAAwB,EACxB,QAAsB,EACtB,cAA0B,EAC1B,eAA2B,EAC3B,SAAyB,EACzB,gBAA8C,EAC9C,IAAwB,EACxB,OAA+B;IAE/B,MAAM,QAAQ,GACV,QAAQ,8BAAqB,IAAI,QAAQ,6BAAoB;QACzD,CAAC,CAAC,IAAA,mCAA2B,EAAC,cAAc,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,YAAY,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;IACrF,IAAI,IAAsB,CAAC;IAC3B,IAAI,gBAAgB,GAAG,SAAS,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,cAAsD,CAAC;IAE3D,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7C,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,QAAQ,8BAAqB,EAAE,CAAC;YAChC,yDAAyD;YACzD,gDAAgD;YAChD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAED,0DAA0D;YAC1D,iDAAiD;YACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YAED,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YAExE,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;YACtC,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,6BAAoB,EAAE,CAAC;YACtC,yDAAyD;YACzD,gDAAgD;YAChD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAED,wDAAwD;YACxD,iDAAiD;YACjD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YAED,gBAAgB,GAAG,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;YAEvE,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;YACtC,CAAC;QACL,CAAC;QAED,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,CAAC;QAED,+DAA+D;QAC/D,gBAAgB;QAChB,IAAI,QAAQ,6BAAoB,IAAI,QAAQ,gCAAuB,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,4BAA4B,CACvC,SAAS,EACT,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,IAAI,CACP,CAAC;YAEF,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;gBACpC,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;YACvD,CAAC;YAED,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAEnB,8DAA8D;YAC9D,IAAI,IAAI,IAAI,CAAC,IAAA,eAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,SAAS,CAAC,yBAAyB,CACtC,gBAAgB;YAChB,aAAa,CAAC,SAAS,EACvB,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,EAAE;gBAC3C,OAAO,SAAS,CAAC,yBAAyB,CACtC,SAAS,EACT,EAAE,eAAe,EAAE,IAAA,4BAAgB,EAAC,mBAAmB,CAAC,EAAE,EAC1D,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,EAAE;oBAC7C,qEAAqE;oBACrE,IAAI,QAAQ,8BAAqB,IAAI,QAAQ,6BAAoB,EAAE,CAAC;wBAChE,OAAO,IAAA,oBAAY,EAAC,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,CAAC;oBACzE,CAAC;oBACD,0DAA0D;oBAC1D,OAAO,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACzD,CAAC,CACJ,CAAC;YACN,CAAC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;SAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,CAAC;QAED,gEAAgE;QAChE,sEAAsE;QACtE,qCAAqC;QACrC,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,GAAG,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,2BAA2B,CACtC,SAAS,EACT,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,IAAI,EACJ,OAAO,CACV,CAAC;YAEF,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;gBACpC,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;YACvD,CAAC;YAED,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,mBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC;AAC1G,CAAC;AAED,SAAgB,wBAAwB,CACpC,SAAwB,EACxB,IAAyB,EACzB,KAAgB,EAChB,gBAA8C,EAC9C,QAAkC;IAElC,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACvC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,wEAAwE;IACxE,kEAAkE;IAClE,wBAAwB;IACxB,IAAI,IAAA,yCAAwB,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,IACI,eAAe,CAAC,QAAQ,0CAAkC;YAC1D,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAC5B,IAAA,yCAAwB,EAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EACtD,CAAC;YACC,uDAAuD;YACvD,wBAAwB,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAExF,qEAAqE;YACrE,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjD,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,gFAAgF;IAChF,iFAAiF;IACjF,IAAI,mBAAmB,GACnB,IAAI,CAAC,CAAC,CAAC,QAAQ,6BAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,8BAAqB;QACvE,CAAC,CAAC,gBAAgB,EAAE,YAAY;QAChC,CAAC,CAAC,SAAS,CAAC;IAEpB,iEAAiE;IACjE,mEAAmE;IACnE,wEAAwE;IACxE,IAAI,uBAAyC,CAAC;IAC9C,IACI,IAAI,CAAC,CAAC,CAAC,QAAQ,mCAA0B;QACzC,gBAAgB;QAChB,IAAA,uBAAe,EAAC,gBAAgB,CAAC,YAAY,CAAC;QAC9C,iBAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC;QAC1D,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ;QAC3C,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;QACvD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,gCAAuB,EACjD,CAAC;QACC,uBAAuB,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAC5D,CAAC;IAED,MAAM,qBAAqB,GAAG,mBAAmB,IAAI,uBAAuB,CAAC;IAC7E,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAChD,cAAc,EACd,KAAK,EACL,IAAA,gCAAoB,EAAC,qBAAqB,CAAC,CAC9C,CAAC;IACF,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;IAEnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,6BAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,8BAAqB,EAAE,CAAC;YAC9E,qEAAqE;YACrE,uEAAuE;YACvE,2EAA2E;YAC3E,kBAAkB;YAClB,IACI,IAAA,wBAAY,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAED,OAAO,iBAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACvF,CAAC,CAAC,EACJ,CAAC;gBACC,mBAAmB,GAAG,QAAQ,CAAC;YACnC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,6BAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,gCAAuB,EAAE,CAAC;YAClG,yEAAyE;YACzE,gFAAgF;YAChF,mBAAmB,GAAG,QAAQ,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,mCAA2B,EAAE,CAAC;YACpD,+EAA+E;YAC/E,oFAAoF;YACpF,IAAI,IAAA,uBAAe,EAAC,QAAQ,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,mBAAmB,GAAG,QAAQ,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CACjD,eAAe,EACf,KAAK,EACL,IAAA,gCAAoB,EAAC,mBAAmB,CAAC,CAC5C,CAAC;IACF,IAAI,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;IAErC,IAAI,cAAc,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;QAC9D,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,sEAAsE;IACtE,mCAAmC;IACnC,IACI,IAAI,CAAC,CAAC,CAAC,QAAQ,mCAA2B;QAC1C,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClD,CAAC,6BAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,EACtD,CAAC;QACC,IAAI,iBAAiB,GAAG,SAAS,CAAC;QAClC,IAAI,gBAAgB,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAA,0BAAc,EAAC,QAAQ,CAAC,IAAI,IAAA,0BAAc,EAAC,SAAS,CAAC,EAAE,CAAC;YACzD,mEAAmE;YACnE,uEAAuE;YACvE,yEAAyE;YACzE,gCAAgC;YAChC,iBAAiB,GAAG,IAAA,iCAAqB,EAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,CAAC,IAAA,0BAAc,EAAC,SAAS,CAAC,IAAI,IAAA,0BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,gBAAgB,GAAG,IAAA,iCAAqB,EAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,IAAA,uBAAW,EAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACnD,IAAI,IAAA,2BAAmB,EAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxC,gBAAgB,GAAG,IAAA,yCAA6B,EAAC,gBAAgB,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,iBAAiB,GAAG,IAAA,yCAA6B,EAAC,iBAAiB,CAAC,CAAC;YACzE,CAAC;YAED,OAAO,eAAe,CAClB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,CACX,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,uEAAuE;QACvE,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,mCAA2B,EAAE,CAAC;YAC7C,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,yBAAyB,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5G,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QACpD,8EAA8E;QAC9E,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,iCAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,oCAA2B,EAAE,CAAC;YACxF,QAAQ,GAAG,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,kBAAkB,GAAG,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,8EAA8E;QAC9E,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,iCAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,oCAA2B,EAAE,CAAC;YACxF,SAAS,GAAG,IAAA,+BAAmB,EAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;IAEtC,2DAA2D;IAC3D,yEAAyE;IACzE,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,oBAAoB,GAAG,CAAC,IAAA,6BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,mCAAkB,EAAC,IAAI,CAAC,CAAC;IAE9E,qEAAqE;IACrE,qEAAqE;IACrE,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,CAAC,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,uBAAuB,CACtC,SAAS,EACT,IAAI,CAAC,CAAC,CAAC,QAAQ,EACf,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,EAC7D,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,EAC/D,IAAI,EACJ,gBAAgB,EAChB,IAAI,EACJ,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAC9C,CAAC;IAEF,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1B,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAClB,UAAU,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,IAAI,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,qEAAqE;gBACrE,iEAAiE;gBACjE,2DAA2D;gBAC3D,sCAAsC;gBACtC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,qBAAqB,EACpC,qBAAU,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;oBAC7B,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,4EAA4E;gBAC5E,6EAA6E;gBAC7E,wEAAwE;gBACxE,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IACI,IAAA,eAAO,EAAC,SAAS,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;oBACzD,IAAA,eAAO,EAAC,SAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,EAC5D,CAAC;oBACC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,CAAC;gBAED,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,mBAAmB,EAClC,qBAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC;oBAC7C,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACxC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACvC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;iBAC5C,CAAC,GAAG,UAAU,EACf,IAAI,CACP,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,YAAY;QACZ,UAAU;QACV,0BAA0B,EAAE,UAAU,CAAC,0BAA0B;KACpE,CAAC;AACN,CAAC;AAED,SAAgB,4BAA4B,CACxC,SAAwB,EACxB,IAA6B,EAC7B,gBAA8C;IAE9C,MAAM,WAAW,GAAmD;QAChE,+BAAuB,EAAE,CAAC,UAAU,2BAAmB;QACvD,qCAA4B,EAAE,CAAC,UAAU,iCAAwB;QACjE,qCAA4B,EAAE,CAAC,UAAU,iCAAwB;QACjE,wCAA+B,EAAE,CAAC,eAAe,oCAA2B;QAC5E,mCAA0B,EAAE,CAAC,cAAc,+BAAsB;QACjE,gCAAuB,EAAE,CAAC,UAAU,4BAAmB;QACvD,kCAAyB,EAAE,CAAC,UAAU,8BAAqB;QAC3D,2CAAkC,EAAE,CAAC,aAAa,uCAA8B;QAChF,sCAA8B,EAAE,CAAC,UAAU,kCAA0B;QACrE,qCAA6B,EAAE,CAAC,SAAS,iCAAyB;QAClE,sCAA8B,EAAE,CAAC,UAAU,kCAA0B;QACrE,sCAA6B,EAAE,CAAC,aAAa,kCAAyB;QACtE,uCAA8B,EAAE,CAAC,aAAa,mCAA0B;KAC3E,CAAC;IAEF,IAAI,IAAsB,CAAC;IAC3B,IAAI,UAAkC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;IACtC,IAAI,cAAsD,CAAC;IAE3D,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;IAErC,IAAI,mBAAqC,CAAC;IAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,wCAAgC,EAAE,CAAC;QAClD,gFAAgF;QAChF,oFAAoF;QACpF,mBAAmB,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CACjD,IAAI,CAAC,CAAC,CAAC,SAAS;IAChB,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,mBAAmB,CAAC,CAC5C,CAAC;IACF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;IAErF,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,EAAE,IAAI,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC;IACjE,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,SAAS,CAAC,yBAAyB,CACtC,QAAQ;QACR,aAAa,CAAC,SAAS,EACvB,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,EAAE;YAC3C,OAAO,SAAS,CAAC,yBAAyB,CACtC,SAAS,EACT,EAAE,eAAe,EAAE,IAAA,4BAAgB,EAAC,mBAAmB,CAAC,EAAE,EAC1D,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,EAAE;gBAC7C,IAAI,IAAA,sBAAc,EAAC,qBAAqB,CAAC,IAAI,IAAA,sBAAc,EAAC,sBAAsB,CAAC,EAAE,CAAC;oBAClF,OAAO,IAAA,2BAAe,EAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;gBAC1E,CAAC;gBAED,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACrD,qBAAqB,EACrB,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC9E,IAAI,EACJ,gBAAgB,CACnB,CAAC;gBAEF,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,KAAK,mBAAmB,EAAE,CAAC;oBACrE,mCAAmC;oBACnC,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,mBAAmB,EACnB,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC9E,IAAI,EACJ,gBAAgB,CACnB,CAAC;gBACN,CAAC;gBAED,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,KAAK,oBAAoB,EAAE,CAAC;oBACvE,6CAA6C;oBAC7C,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,mBAAmB,EACnB,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC5E,IAAI,EACJ,gBAAgB,CACnB,CAAC;gBACN,CAAC;gBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,iEAAiE;oBACjE,mEAAmE;oBACnE,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEvD,2DAA2D;oBAC3D,mDAAmD;oBACnD,MAAM,oBAAoB,GACtB,CAAC,IAAA,6BAAY,EAAC,IAAI,CAAC;wBACnB,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACrD,IAAA,gCAAoB,EAAC,QAAQ,CAAC,GAAG,IAAA,gCAAoB,EAAC,SAAS,CAAC;4BAC5D,0BAA0B,CAAC;oBAEnC,qEAAqE;oBACrE,qEAAqE;oBACrE,yCAAyC;oBACzC,MAAM,iBAAiB,GAAG,CAAC,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;oBAE7C,gBAAgB,GAAG,uBAAuB,CACtC,SAAS,EACT,cAAc,EACd,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,EAC1E,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,EAC5E,IAAI,EACJ,gBAAgB,EAChB,IAAI,EACJ,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAC9C,CAAC;gBACN,CAAC;gBAED,IAAI,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;oBAC/C,cAAc,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;gBACjE,CAAC;gBAED,OAAO,gBAAgB,EAAE,IAAI,CAAC;YAClC,CAAC,CACJ,CAAC;QACN,CAAC,CACJ,CAAC;QAEF,iEAAiE;QACjE,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,mBAAmB,EAClC,qBAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC;oBAC7C,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACxC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACvC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;iBAC5C,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EACrB,IAAI,CACP,CAAC;YACN,CAAC;QACL,CAAC;QAED,UAAU,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC;IACpF,CAAC;IAED,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhF,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAgB,uBAAuB,CACnC,SAAwB,EACxB,IAAwB,EACxB,KAAgB,EAChB,gBAA8C;IAE9C,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3G,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,SAAS,CAAC,4BAA4B,CAAC,IAAA,+CAAmC,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhH,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;IAEjD,IAAI,IAAA,eAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,iBAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC;IAC3D,CAAC;IAED,gEAAgE;IAChE,iEAAiE;IACjE,MAAM,gBAAgB,GAAmC;QACrD,0BAAkB,EAAE,SAAS;QAC7B,gCAAuB,EAAE,SAAS;QAClC,oCAA4B,EAAE,YAAY;QAC1C,2BAAkB,EAAE,UAAU;KACjC,CAAC;IAEF,IAAI,IAAsB,CAAC;IAC3B,IAAI,cAAsD,CAAC;IAE3D,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,8BAAqB,EAAE,CAAC;QACvC,IAAI,IAAA,0BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,qBAAqB,EACpC,qBAAU,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;gBAC7B,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC3C,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,IAAI,CACd,CAAC;YACF,QAAQ,GAAG,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,+DAA+D;IAC/D,kEAAkE;IAClE,qDAAqD;IACrD,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,IAAA,sBAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,aAAa,GAAG,IAAI,CAAC;YAEzB,IAAI,GAAG,SAAS,CAAC,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,EAAE;gBAC9F,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CACjD,eAAe,EACf,eAAe,EACf,EAAE,EACF,IAAI,EACJ,gBAAgB,CACnB,CAAC;gBAEF,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,aAAa,GAAG,KAAK,CAAC;gBAC1B,CAAC;gBAED,IAAI,UAAU,EAAE,0BAA0B,EAAE,CAAC;oBACzC,cAAc,GAAG,UAAU,CAAC,0BAA0B,CAAC;gBAC3D,CAAC;gBAED,OAAO,UAAU,EAAE,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,IAAI,GAAG,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,8BAAqB,EAAE,CAAC;YACvC,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,IAAI,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,IAAI,gBAAgB,IAAI,CAAC,IAAA,sBAAc,EAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrE,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,mBAAmB,EAClC,qBAAU,CAAC,wCAAwC,EAAE,CAAC,MAAM,CAAC;wBACzD,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACxC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;wBACnC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC;qBACnE,CAAC,EACF,IAAI,CACP,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,mBAAmB,EAClC,qBAAU,CAAC,2BAA2B,EAAE,CAAC,MAAM,CAAC;wBAC5C,QAAQ,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACxC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;qBACtC,CAAC,EACF,IAAI,CACP,CAAC;gBACN,CAAC;YACL,CAAC;YAED,IAAI,GAAG,mBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC;AAC9E,CAAC;AAED,SAAgB,yBAAyB,CACrC,SAAwB,EACxB,IAAiB,EACjB,KAAgB,EAChB,gBAA8C,EAC9C,QAAkC;IAElC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;QACpG,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAW,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,cAAc,GAAG,IAAA,gDAA4B,EAC/C,IAAI,CAAC,CAAC,CAAC,QAAQ,EACf,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,gBAAgB,CAC5B,CAAC;IAEF,IAAI,cAAc,KAAK,KAAK,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACrF,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC;QACtB,CAAC;IACL,CAAC;IAED,IAAI,cAAc,KAAK,IAAI,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACzF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YACxB,YAAY,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC;QACtB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAA,oBAAY,EAAC,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CACpB,SAAwB,EACxB,IAAyB,EACzB,KAAgB,EAChB,cAA0B,EAC1B,eAA2B,EAC3B,iBAAuB,EACvB,gBAAsB,EACtB,QAAkC;IAElC,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,sBAAsB,GACxB,QAAQ,CAAC,UAAU;QACnB,CAAC,KAAK,gCAAwB,CAAC,KAAK,CAAC;QACrC,6BAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,EAAE,iCAAiB,CAAC,CAAC;IAErG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,8DAA8D;QAC9D,mEAAmE;QACnE,IAAI,CAAC,IAAA,sBAAc,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,aAAa,CACvB,CAAC;QACN,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAClG,MAAM,mBAAmB,GAAG,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAErG,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,gBAAgB,GAAG,SAAS,CAAC,qBAAqB,CAC9C,IAAI,CAAC,CAAC,CAAC,QAAQ,EACf,gBAAgB,EAChB,KAAK,uCAA6B,CACrC,CAAC;IACF,iBAAiB,GAAG,SAAS,CAAC,qBAAqB,CAC/C,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,iBAAiB,EACjB,KAAK,uCAA6B,CACrC,CAAC;IAEF,IAAI,QAAQ,GAAG,IAAA,oBAAY,EAAC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzG,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IACjD,IAAI,UAAU,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,IAAI,CAAC,KAAK,0CAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,QAAQ,GAAG,gBAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,iBAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5G,QAAQ,GAAG,gBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,+EAA+E;IAC/E,mFAAmF;IACnF,iFAAiF;IACjF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,UAAsC,CAAC;QAC3C,IAAI,SAAqC,CAAC;QAC1C,IAAI,SAA2B,CAAC;QAEhC,IAAI,cAAc,CAAC,QAAQ,sCAA6B,EAAE,CAAC;YACvD,UAAU,GAAG,cAAc,CAAC;YAC5B,SAAS,GAAG,eAAe,CAAC;YAC5B,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;QACrC,CAAC;aAAM,IAAI,eAAe,CAAC,QAAQ,sCAA6B,EAAE,CAAC;YAC/D,UAAU,GAAG,eAAe,CAAC;YAC7B,SAAS,GAAG,cAAc,CAAC;YAC3B,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;QACpC,CAAC;QAED,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YACvC,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,IAAA,eAAO,EAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAA,uBAAe,EAAC,SAAS,CAAC,EAAE,CAAC;oBAClE,SAAS,GAAG,KAAK,CAAC;gBACtB,CAAC;YACL,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,+BAA+B,EAAE,EAC5C,UAAU,CACb,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,2DAA2D;AAC3D,SAAS,qBAAqB,CAAC,QAAsB,EAAE,WAAiB;IACpE,WAAW,GAAG,IAAA,mCAA2B,EAAC,WAAW,CAAC,CAAC;IACvD,IAAI,IAAsB,CAAC;IAE3B,IAAI,IAAA,gCAAoB,EAAC,WAAW,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,CAAC,IAAA,4BAAgB,EAAC,WAAW,CAAC,IAAI,IAAA,wBAAY,EAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,mCAAuB,EAAC,WAAW,CAAC,CAAC;IAE9D,IAAI,gBAAgB,KAAK,KAAK,EAAE,CAAC;QAC7B,IAAI,QAAQ,6BAAqB,EAAE,CAAC;YAChC,IAAI,GAAG,WAAW,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,mCAA0B,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAA,uBAAW,EAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;gBACxC,MAAM,YAAY,GAAG,OAAoB,CAAC;gBAC1C,OAAO,iBAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAE,YAAY,CAAC,IAAI,CAAC,YAAgC,CAAC,CAAC;YAC1G,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,QAAQ,uCAA+B,EAAE,CAAC;YACjD,kEAAkE;YAClE,oEAAoE;YACpE,oBAAoB;YACpB,IAAI,GAAG,IAAA,uBAAW,EAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;gBACxC,MAAM,YAAY,GAAG,OAAoB,CAAC;gBAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,YAA+B,CAAC;gBACvE,MAAM,MAAM,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAsB,CAAC,CAAC;gBAChG,IAAI,QAAQ,GAAoB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC7F,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,iBAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;SAAM,IAAI,gBAAgB,KAAK,MAAM,EAAE,CAAC;QACrC,IAAI,QAAQ,8BAAqB,EAAE,CAAC;YAChC,IAAI,GAAG,IAAA,uBAAW,EAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;gBACxC,MAAM,YAAY,GAAG,OAAoB,CAAC;gBAC1C,OAAO,iBAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAE,YAAY,CAAC,IAAI,CAAC,YAAwB,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,6DAA6D;AAC7D,SAAS,sBAAsB,CAAC,QAAsB,EAAE,QAAc,EAAE,SAAe;IACnF,QAAQ,GAAG,IAAA,mCAA2B,EAAC,QAAQ,CAAC,CAAC;IACjD,SAAS,GAAG,IAAA,mCAA2B,EAAC,SAAS,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,IAAA,mCAAuB,EAAC,QAAQ,CAAC,CAAC;IAC/D,IACI,CAAC,oBAAoB;QACrB,IAAA,4BAAgB,EAAC,QAAQ,CAAC;QAC1B,IAAA,wBAAY,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC,EAClE,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,qBAAqB,GAAG,IAAA,mCAAuB,EAAC,SAAS,CAAC,CAAC;IACjE,IACI,oBAAoB,KAAK,qBAAqB;QAC9C,IAAA,4BAAgB,EAAC,SAAS,CAAC;QAC3B,IAAA,wBAAY,EAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC;QACjE,IAAA,gCAAoB,EAAC,QAAQ,CAAC,GAAG,IAAA,gCAAoB,EAAC,SAAS,CAAC,IAAI,0BAA0B,EAChG,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,iCAAiC;IACjC,IAAI,oBAAoB,KAAK,KAAK,IAAI,oBAAoB,KAAK,OAAO,EAAE,CAAC;QACrE,IAAI,QAAQ,6BAAqB,EAAE,CAAC;YAChC,OAAO,IAAA,uBAAW,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;gBACzC,OAAO,IAAA,uBAAW,EAAC,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE;oBAC3C,MAAM,gBAAgB,GAAG,WAAwB,CAAC;oBAClD,MAAM,iBAAiB,GAAG,YAAyB,CAAC;oBAEpD,OAAO,iBAAS,CAAC,gBAAgB,CAC7B,gBAAgB,EAChB,CAAE,gBAAgB,CAAC,IAAI,CAAC,YAAuB,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAW,CACnG,CAAC;gBACN,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG;;;;;;;;;;;;SAYpB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;YAC/C,OAAO,IAAA,uBAAW,EAAC,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE;gBAC3C,IAAI,CAAC;oBACD,MAAM,gBAAgB,GAAG,WAAwB,CAAC;oBAClD,MAAM,iBAAiB,GAAG,YAAyB,CAAC;oBACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAA+B,CAAC,CAAC;oBACvF,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAA+B,CAAC,CAAC;oBAEzF,IAAI,QAAqC,CAAC;oBAC1C,IAAI,QAAQ,6BAAqB,EAAE,CAAC;wBAChC,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;yBAAM,IAAI,QAAQ,mCAA0B,EAAE,CAAC;wBAC5C,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;yBAAM,IAAI,QAAQ,mCAA0B,EAAE,CAAC;wBAC5C,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;yBAAM,IAAI,QAAQ,sCAA6B,EAAE,CAAC;wBAC/C,IAAI,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;4BAEhD,6DAA6D;4BAC7D,yDAAyD;4BACzD,iCAAiC;4BACjC,IACI,QAAQ,GAAG,iBAAiB,KAAK,gBAAgB;gCACjD,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,EAChE,CAAC;gCACC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC1B,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,8BAAqB,EAAE,CAAC;wBACvC,IAAI,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClC,0DAA0D;4BAC1D,uDAAuD;4BACvD,iBAAiB;4BACjB,QAAQ,GAAG,CAAC,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;wBAChG,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,gCAAuB,EAAE,CAAC;wBACzC,IAAI,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,IAAI,CAAC;gCACD,QAAQ,GAAG,gBAAgB,IAAI,iBAAiB,CAAC;4BACrD,CAAC;4BAAC,MAAM,CAAC;gCACL,qDAAqD;4BACzD,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,oCAA2B,EAAE,CAAC;wBAC7C,IAAI,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ,GAAG,gBAAgB,IAAI,iBAAiB,CAAC;wBACrD,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,qCAA4B,EAAE,CAAC;wBAC9C,IAAI,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ,GAAG,gBAAgB,IAAI,iBAAiB,CAAC;wBACrD,CAAC;oBACL,CAAC;yBAAM,IAAI,QAAQ,oCAA4B,EAAE,CAAC;wBAC9C,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;yBAAM,IAAI,QAAQ,mCAA2B,EAAE,CAAC;wBAC7C,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;yBAAM,IAAI,QAAQ,oCAA4B,EAAE,CAAC;wBAC9C,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;oBACpD,CAAC;oBAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACzB,aAAa,GAAG,KAAK,CAAC;wBACtB,OAAO,SAAS,CAAC;oBACrB,CAAC;yBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzD,aAAa,GAAG,KAAK,CAAC;wBACtB,OAAO,SAAS,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACJ,gEAAgE;wBAChE,iBAAiB;wBACjB,IAAI,QAAQ,IAAI,MAAM,CAAC,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;4BAC7E,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAChC,CAAC;wBAED,OAAO,iBAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;oBAClE,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACL,aAAa,GAAG,KAAK,CAAC;oBACtB,OAAO,SAAS,CAAC;gBACrB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAU,EAAE,UAAkB;IACxE,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACjD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,6BAAiB,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kEAAkE;IAClE,qEAAqE;IACrE,2BAA2B;IAC3B,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,SAAS,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,kEAAkE;AAClE,sEAAsE;AACtE,yBAAyB;AACzB,SAAS,uBAAuB,CAAC,SAAwB,EAAE,IAAU;IACjE,IAAI,IAAA,8BAAsB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,2DAA2D;AAC3D,SAAS,yBAAyB,CAAC,SAAwB,EAAE,IAAoB;IAC7E,IAAI,IAAI,CAAC,QAAQ,gCAAuB,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvG,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,4BAAe,EAAC,IAAI,EAAE,IAAA,gCAAa,EAAC,SAAS,CAAC,CAAC,CAAC;IACrE,OAAO,YAAY,KAAK,eAAe,CAAC,KAAK,CAAC;AAClD,CAAC;AAED,SAAS,4BAA4B,CACjC,SAAwB,EACxB,QAAsB,EACtB,cAA0B,EAC1B,gBAAsB,EACtB,eAA2B,EAC3B,SAAyB,EACzB,IAAwB;IAExB,IAAI,cAAsD,CAAC;IAE3D,MAAM,IAAI,GAAG,SAAS,CAAC,yBAAyB,CAC5C,eAAe,CAAC,IAAI;IACpB,aAAa,CAAC,SAAS,EACvB,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,EAAE;QAC7C,OAAO,SAAS,CAAC,yBAAyB,CACtC,gBAAgB,EAChB,EAAE,eAAe,EAAE,IAAA,4BAAgB,EAAC,oBAAoB,CAAC,EAAE,EAC3D,CAAC,WAAW,EAAE,EAAE;YACZ,IAAI,IAAA,sBAAc,EAAC,WAAW,CAAC,IAAI,IAAA,sBAAc,EAAC,sBAAsB,CAAC,EAAE,CAAC;gBACxE,OAAO,IAAA,2BAAe,EAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACrD,oBAAoB,EACpB,cAAc,EACd,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,EAClE,SAAS;YACT,sBAAsB,CAAC,SAAS,CACnC,CAAC;YAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,+CAA+C;gBAC/C,kBAAkB;gBAClB,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,CAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE;gBAC1E,aAAa,CAAC,KAAK,EACnB,SAAS;gBACT,0BAA0B,CAAC,KAAK,CACnC,EAAE,IAAI,CAAC;gBAER,IAAI,YAAY,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBAClE,gBAAgB,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC/E,CAAC;YACL,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CACX,qBAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC;oBAC7C,QAAQ,EAAE,IAAA,8BAAa,EAAC,QAAQ,CAAC;oBACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;oBAC1C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;iBACvD,CAAC,CACL,CAAC;YACN,CAAC;YAED,IAAI,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;gBAC/C,cAAc,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;YACjE,CAAC;YAED,OAAO,gBAAgB,EAAE,IAAI,IAAI,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnF,CAAC,CACJ,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,2BAA2B,CAChC,SAAwB,EACxB,QAAsB,EACtB,cAA0B,EAC1B,eAA2B,EAC3B,SAAyB,EACzB,gBAA8C,EAC9C,IAAwB,EACxB,OAA+B;IAE/B,IAAI,cAAsD,CAAC;IAC3D,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,YAAY,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;IAErF,IAAI,IAAA,0CAAkC,EAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,IAAA,mCAA2B,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/F,eAAe,GAAG,EAAE,GAAG,eAAe,EAAE,IAAI,EAAE,IAAA,mCAA2B,EAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,IACI,IAAA,iCAAe,EAAC,QAAQ,CAAC;QACzB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,EACvG,CAAC;QACC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAW,EAAE,CACtC,CAAC,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC,OAAO,EAAE,EAAE,CACR,IAAA,uBAAe,EAAC,OAAO,CAAC;YACxB,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;YACnC,CAAC,IAAA,4BAAgB,EAAC,OAAO,CAAC,EAAE,MAAM,CACzC,CAAC;QACN,MAAM,QAAQ,GAAG,IAAA,mCAA2B,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,mCAA2B,EAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpE,IACI,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;YAC9B,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,QAAQ,CAAC;YACnB,SAAS,CAAC,SAAS,CAAC,EACtB,CAAC;YACC,kEAAkE;YAClE,gEAAgE;YAChE,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACvD,eAAe,GAAG,EAAE,GAAG,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,yBAAyB,CAC5C,cAAc,CAAC,IAAI;IACnB,aAAa,CAAC,SAAS,EACvB,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,EAAE;QAC3C,OAAO,SAAS,CAAC,yBAAyB,CACtC,eAAe,CAAC,IAAI,EACpB,EAAE,eAAe,EAAE,IAAA,4BAAgB,EAAC,mBAAmB,CAAC,EAAE,EAC1D,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,EAAE;YAC7C,IAAI,IAAA,sBAAc,EAAC,qBAAqB,CAAC,IAAI,IAAA,sBAAc,EAAC,sBAAsB,CAAC,EAAE,CAAC;gBAClF,OAAO,IAAA,2BAAe,EAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,cAAc,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAErD,IACI,IAAA,iCAAe,EAAC,QAAQ,CAAC;gBACzB,IAAA,uBAAe,EAAC,mBAAmB,CAAC;gBACpC,IAAA,wBAAY,EAAC,mBAAmB,CAAC;gBACjC,mBAAmB,CAAC,IAAI,CAAC,aAAa;gBACtC,IAAA,uBAAe,EAAC,oBAAoB,CAAC;gBACrC,IAAA,wBAAY,EAAC,oBAAoB,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EACzC,CAAC;gBACC,MAAM,MAAM,GAAG,IAAA,0CAAwB,EACnC,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,SAAS,CACZ,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,IAAI,CAAC,UAAU,CACX,qBAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC;wBAC7C,QAAQ,EAAE,IAAA,8BAAa,EAAC,QAAQ,CAAC;wBACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;wBAClD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;qBACvD,CAAC,CACL,CAAC;gBACN,CAAC;gBACD,OAAO,MAAM,EAAE,IAAI,IAAI,mBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5D,CAAC;YAED,4EAA4E;YAC5E,IACI,OAAO,CAAC,iBAAiB;gBACzB,QAAQ,6BAAqB;gBAC7B,IAAA,uBAAe,EAAC,mBAAmB,CAAC;gBACpC,IAAA,wBAAY,EAAC,mBAAmB,CAAC;gBACjC,mBAAmB,CAAC,IAAI,CAAC,aAAa;gBACtC,IAAA,uBAAe,EAAC,oBAAoB,CAAC;gBACrC,IAAA,wBAAY,EAAC,oBAAoB,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,aAAa;gBACvC,cAAc;gBACd,IAAA,2BAAmB,EAAC,cAAc,CAAC,EACrC,CAAC;gBACC,yDAAyD;gBACzD,8DAA8D;gBAC9D,4DAA4D;gBAC5D,wDAAwD;gBACxD,qBAAqB;gBACrB,IACI,CAAC,IAAA,iCAAqB,EAAC,mBAAmB,CAAC;oBAC3C,CAAC,IAAA,iCAAqB,EAAC,oBAAoB,CAAC,EAC9C,CAAC;oBACC,OAAO,iBAAS,CAAC,eAAe,CAC5B,IAAA,gCAAoB,EAAC,cAAc,EAAE;wBACjC,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa;wBACzC,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa;qBAC7C,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC;YAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACrD,uBAAuB,CAAC,SAAS,EAAE,qBAAqB,CAAC,EACzD,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC9E,SAAS,EACT,gBAAgB,CACnB,CAAC;YAEF,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,KAAK,mBAAmB,EAAE,CAAC;gBACrE,8BAA8B;gBAC9B,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACvD,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC9E,SAAS,EACT,gBAAgB,CACnB,CAAC;YACN,CAAC;YAED,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,KAAK,oBAAoB,EAAE,CAAC;gBACvE,wCAAwC;gBACxC,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACvD,eAAe,EACf,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,EAC5E,SAAS,EACT,gBAAgB,CACnB,CAAC;YACN,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,oDAAoD;gBACpD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAC1D,kBAAkB,EAClB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,EAC5E,SAAS,EACT,gBAAgB,CACnB,CAAC;gBAEF,IAAI,CAAC,gBAAgB,IAAI,sBAAsB,KAAK,oBAAoB,EAAE,CAAC;oBACvE,+BAA+B;oBAC/B,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,uBAAuB,CAAC,SAAS,EAAE,oBAAoB,CAAC,EACxD,kBAAkB,EAClB;wBACI;4BACI,IAAI,EAAE,qBAAqB;4BAC3B,YAAY,EAAE,cAAc,CAAC,YAAY;yBAC5C;qBACJ,EACD,SAAS,EACT,gBAAgB,CACnB,CAAC;gBACN,CAAC;gBAED,IAAI,CAAC,gBAAgB,IAAI,qBAAqB,KAAK,mBAAmB,EAAE,CAAC;oBACrE,wCAAwC;oBACxC,gBAAgB,GAAG,SAAS,CAAC,wBAAwB,CACjD,uBAAuB,CAAC,SAAS,EAAE,oBAAoB,CAAC,EACxD,kBAAkB,EAClB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,EAC1E,SAAS,EACT,gBAAgB,CACnB,CAAC;gBACN,CAAC;YACL,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,IAAI,gBAAgB,IAAI,CAAC,IAAA,sBAAc,EAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrE,IAAI,CAAC,UAAU,CACX,qBAAU,CAAC,yCAAyC,EAAE,CAAC,MAAM,CAAC;wBAC1D,QAAQ,EAAE,IAAA,8BAAa,EAAC,QAAQ,CAAC;wBACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;wBAClD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;wBACpD,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC;qBACnE,CAAC,CACL,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,UAAU,CACX,qBAAU,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC;wBAC7C,QAAQ,EAAE,IAAA,8BAAa,EAAC,QAAQ,CAAC;wBACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;wBAClD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;qBACvD,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC;YAED,IAAI,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;gBAC/C,cAAc,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;YACjE,CAAC;YAED,OAAO,gBAAgB,EAAE,IAAI,IAAI,mBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC,CACJ,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,cAAc,EAAE,CAAC;AAChE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as AnalyzerNodeInfo from '../analyzer/analyzerNodeInfo';
2
+ import { PythonVersion } from '../common/pythonVersion';
2
3
  import { Position, Range, TextRange } from '../common/textRange';
3
4
  import { TextRangeCollection } from '../common/textRangeCollection';
4
5
  import { ArgumentNode, AssignmentExpressionNode, AwaitNode, CallNode, ClassNode, DecoratorNode, EvaluationScopeNode, ExecutionScopeNode, ExpressionNode, FunctionNode, ImportFromNode, IndexNode, LambdaNode, MemberAccessNode, ModuleNode, NameNode, ParameterNode, ParseNode, ParseNodeType, StatementListNode, StatementNode, StringListNode, StringNode, SuiteNode, TypeAnnotationNode, TypeParameterScopeNode } from '../parser/parseNodes';
@@ -35,6 +36,7 @@ export declare function getEnclosingClass(node: ParseNode, stopAtFunction?: bool
35
36
  export declare function getEnclosingModule(node: ParseNode): ModuleNode;
36
37
  export declare function getEnclosingClassOrModule(node: ParseNode, stopAtFunction?: boolean): ClassNode | ModuleNode | undefined;
37
38
  export declare function getEnclosingFunction(node: ParseNode): FunctionNode | undefined;
39
+ export declare function isZeroArgSuperCallAllowed(node: ParseNode, pythonVersion: PythonVersion, nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoReader): boolean;
38
40
  export declare function getEnclosingFunctionEvaluationScope(node: ParseNode, nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoReader): FunctionNode | undefined;
39
41
  export declare function getEnclosingLambda(node: ParseNode): LambdaNode | undefined;
40
42
  export declare function getEnclosingClassOrFunction(node: ParseNode): FunctionNode | ClassNode | undefined;
@@ -60,6 +60,7 @@ exports.getEnclosingClass = getEnclosingClass;
60
60
  exports.getEnclosingModule = getEnclosingModule;
61
61
  exports.getEnclosingClassOrModule = getEnclosingClassOrModule;
62
62
  exports.getEnclosingFunction = getEnclosingFunction;
63
+ exports.isZeroArgSuperCallAllowed = isZeroArgSuperCallAllowed;
63
64
  exports.getEnclosingFunctionEvaluationScope = getEnclosingFunctionEvaluationScope;
64
65
  exports.getEnclosingLambda = getEnclosingLambda;
65
66
  exports.getEnclosingClassOrFunction = getEnclosingClassOrFunction;
@@ -142,6 +143,7 @@ const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
142
143
  const core_1 = require("../common/core");
143
144
  const debug_1 = require("../common/debug");
144
145
  const positionUtils_1 = require("../common/positionUtils");
146
+ const pythonVersion_1 = require("../common/pythonVersion");
145
147
  const textRange_1 = require("../common/textRange");
146
148
  const textRangeCollection_1 = require("../common/textRangeCollection");
147
149
  const parseNodes_1 = require("../parser/parseNodes");
@@ -703,6 +705,47 @@ function getEnclosingFunction(node) {
703
705
  }
704
706
  return undefined;
705
707
  }
708
+ // Checks whether the evaluation scope can supply a first positional argument
709
+ // for a zero-argument `super()` call. This is not proof of runtime validity:
710
+ // the caller must check for an enclosing class, and this routine does not
711
+ // establish compatibility of the implicit receiver or model annotation frames.
712
+ function isZeroArgSuperCallAllowed(node, pythonVersion, nodeInfo) {
713
+ // Use the evaluation scope machinery to determine which frame executes
714
+ // the call. This handles decorators, parameter default values, class
715
+ // headers, lambdas, and comprehensions.
716
+ let curNode = getEvaluationScopeNode(node, nodeInfo).node;
717
+ while (curNode) {
718
+ switch (curNode.nodeType) {
719
+ case 31 /* ParseNodeType.Function */:
720
+ case 33 /* ParseNodeType.Lambda */: {
721
+ // The zero-argument form requires that the executing frame
722
+ // accept a first positional argument.
723
+ const firstParam = curNode.d.params.length > 0 ? curNode.d.params[0] : undefined;
724
+ return firstParam?.d.category === 0 /* ParamCategory.Simple */ && firstParam.d.name !== undefined;
725
+ }
726
+ case 11 /* ParseNodeType.Comprehension */: {
727
+ // A separate comprehension frame receives its iterator as the
728
+ // first argument. That iterator could itself be an instance of
729
+ // the enclosing class, so this frame alone cannot prove failure.
730
+ if (curNode.d.isGenerator || pythonVersion_1.PythonVersion.isLessThan(pythonVersion, pythonVersion_1.pythonVersion3_12)) {
731
+ return true;
732
+ }
733
+ break;
734
+ }
735
+ case 76 /* ParseNodeType.TypeParameterList */: {
736
+ // A type parameter scope is a proxy scope, so continue
737
+ // searching for the enclosing execution frame.
738
+ break;
739
+ }
740
+ default: {
741
+ // A class body or module frame receives no first argument.
742
+ return false;
743
+ }
744
+ }
745
+ curNode = curNode.parent ? getEvaluationScopeNode(curNode.parent, nodeInfo).node : undefined;
746
+ }
747
+ return false;
748
+ }
706
749
  // This is similar to getEnclosingFunction except that it uses evaluation
707
750
  // scopes rather than the parse tree to determine whether the specified node
708
751
  // is within the scope. That means if the node is within a class decorator