@osdk/maker-experimental 0.6.0-beta.2 → 0.6.0-beta.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 (302) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/maker-experimental.mjs +6 -0
  3. package/build/browser/api/defineOntologyV2.js +35 -0
  4. package/build/browser/api/defineOntologyV2.js.map +1 -0
  5. package/build/browser/cli/main.js +120 -0
  6. package/build/browser/cli/main.js.map +1 -0
  7. package/build/browser/cli/marketplaceSerialization/BlockGeneratorResult.js +2 -0
  8. package/build/browser/cli/marketplaceSerialization/BlockGeneratorResult.js.map +1 -0
  9. package/build/browser/cli/marketplaceSerialization/CodeBlockSetSpec.js +2 -0
  10. package/build/browser/cli/marketplaceSerialization/CodeBlockSetSpec.js.map +1 -0
  11. package/build/browser/cli/marketplaceSerialization/CodeBlockSpec.js +53 -0
  12. package/build/browser/cli/marketplaceSerialization/CodeBlockSpec.js.map +1 -0
  13. package/build/browser/cli/marketplaceSerialization/StoreManifestEntry.js +2 -0
  14. package/build/browser/cli/marketplaceSerialization/StoreManifestEntry.js.map +1 -0
  15. package/build/browser/cli/marketplaceSerialization/index.js +2 -0
  16. package/build/browser/cli/marketplaceSerialization/index.js.map +1 -0
  17. package/build/browser/cli/marketplaceSerialization/specGenerators.js +70 -0
  18. package/build/browser/cli/marketplaceSerialization/specGenerators.js.map +1 -0
  19. package/build/browser/cli/marketplaceSerialization/supportingTypes.js +2 -0
  20. package/build/browser/cli/marketplaceSerialization/supportingTypes.js.map +1 -0
  21. package/build/browser/conversion/toConjure/distributeTypeHelper.js +23 -0
  22. package/build/browser/conversion/toConjure/distributeTypeHelper.js.map +1 -0
  23. package/build/browser/conversion/toMarketplace/convertActionHelpers.js +469 -0
  24. package/build/browser/conversion/toMarketplace/convertActionHelpers.js.map +1 -0
  25. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +96 -0
  26. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -0
  27. package/build/browser/conversion/toMarketplace/convertActionParameters.js +81 -0
  28. package/build/browser/conversion/toMarketplace/convertActionParameters.js.map +1 -0
  29. package/build/browser/conversion/toMarketplace/convertActionSections.js +45 -0
  30. package/build/browser/conversion/toMarketplace/convertActionSections.js.map +1 -0
  31. package/build/browser/conversion/toMarketplace/convertActionValidation.js +160 -0
  32. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -0
  33. package/build/browser/conversion/toMarketplace/convertActionVisibility.js +41 -0
  34. package/build/browser/conversion/toMarketplace/convertActionVisibility.js.map +1 -0
  35. package/build/browser/conversion/toMarketplace/convertCardinality.js +23 -0
  36. package/build/browser/conversion/toMarketplace/convertCardinality.js.map +1 -0
  37. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js +88 -0
  38. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js.map +1 -0
  39. package/build/browser/conversion/toMarketplace/convertDataConstraintToDataConstraints.js +26 -0
  40. package/build/browser/conversion/toMarketplace/convertDataConstraintToDataConstraints.js.map +1 -0
  41. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js +352 -0
  42. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -0
  43. package/build/browser/conversion/toMarketplace/convertInterface.js +75 -0
  44. package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -0
  45. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js +62 -0
  46. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  47. package/build/browser/conversion/toMarketplace/convertLink.js +247 -0
  48. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -0
  49. package/build/browser/conversion/toMarketplace/convertMappingValue.js +76 -0
  50. package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -0
  51. package/build/browser/conversion/toMarketplace/convertNullabilityToDataConstraint.js +42 -0
  52. package/build/browser/conversion/toMarketplace/convertNullabilityToDataConstraint.js.map +1 -0
  53. package/build/browser/conversion/toMarketplace/convertObject.js +262 -0
  54. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -0
  55. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +59 -0
  56. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -0
  57. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js +29 -0
  58. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -0
  59. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +236 -0
  60. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -0
  61. package/build/browser/conversion/toMarketplace/convertOntologyToValueTypeIr.js +24 -0
  62. package/build/browser/conversion/toMarketplace/convertOntologyToValueTypeIr.js.map +1 -0
  63. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js +35 -0
  64. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -0
  65. package/build/browser/conversion/toMarketplace/convertSpt.js +65 -0
  66. package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -0
  67. package/build/browser/conversion/toMarketplace/convertValueType.js +20 -0
  68. package/build/browser/conversion/toMarketplace/convertValueType.js.map +1 -0
  69. package/build/browser/conversion/toMarketplace/convertValueTypeDataConstraints.js +30 -0
  70. package/build/browser/conversion/toMarketplace/convertValueTypeDataConstraints.js.map +1 -0
  71. package/build/browser/conversion/toMarketplace/convertValueTypesToIr.js +34 -0
  72. package/build/browser/conversion/toMarketplace/convertValueTypesToIr.js.map +1 -0
  73. package/build/browser/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js +83 -0
  74. package/build/browser/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js.map +1 -0
  75. package/build/browser/conversion/toMarketplace/getFormContentOrdering.js +39 -0
  76. package/build/browser/conversion/toMarketplace/getFormContentOrdering.js.map +1 -0
  77. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +146 -0
  78. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  79. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +156 -0
  80. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -0
  81. package/build/browser/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.js +442 -0
  82. package/build/browser/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.js.map +1 -0
  83. package/build/browser/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.js +562 -0
  84. package/build/browser/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.js.map +1 -0
  85. package/build/browser/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.js +513 -0
  86. package/build/browser/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.js.map +1 -0
  87. package/build/browser/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.js +274 -0
  88. package/build/browser/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.js.map +1 -0
  89. package/build/browser/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.js +425 -0
  90. package/build/browser/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.js.map +1 -0
  91. package/build/browser/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.js +677 -0
  92. package/build/browser/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.js.map +1 -0
  93. package/build/browser/conversion/toMarketplace/typeVisitors.js +615 -0
  94. package/build/browser/conversion/toMarketplace/typeVisitors.js.map +1 -0
  95. package/build/browser/index.js +2 -0
  96. package/build/browser/index.js.map +1 -1
  97. package/build/browser/util/generateRid.js +476 -0
  98. package/build/browser/util/generateRid.js.map +1 -0
  99. package/build/cjs/ActionTypeShapeExtractor-5IVLHAPH.cjs +395 -0
  100. package/build/cjs/ActionTypeShapeExtractor-5IVLHAPH.cjs.map +1 -0
  101. package/build/cjs/chunk-AWYOBJ25.cjs +440 -0
  102. package/build/cjs/chunk-AWYOBJ25.cjs.map +1 -0
  103. package/build/cjs/index.cjs +3965 -2663
  104. package/build/cjs/index.cjs.map +1 -1
  105. package/build/cjs/index.d.cts +103 -1
  106. package/build/esm/api/defineOntologyV2.js +35 -0
  107. package/build/esm/api/defineOntologyV2.js.map +1 -0
  108. package/build/esm/cli/main.js +120 -0
  109. package/build/esm/cli/main.js.map +1 -0
  110. package/build/esm/cli/marketplaceSerialization/BlockGeneratorResult.js +2 -0
  111. package/build/esm/cli/marketplaceSerialization/BlockGeneratorResult.js.map +1 -0
  112. package/build/esm/cli/marketplaceSerialization/CodeBlockSetSpec.js +2 -0
  113. package/build/esm/cli/marketplaceSerialization/CodeBlockSetSpec.js.map +1 -0
  114. package/build/esm/cli/marketplaceSerialization/CodeBlockSpec.js +53 -0
  115. package/build/esm/cli/marketplaceSerialization/CodeBlockSpec.js.map +1 -0
  116. package/build/esm/cli/marketplaceSerialization/StoreManifestEntry.js +2 -0
  117. package/build/esm/cli/marketplaceSerialization/StoreManifestEntry.js.map +1 -0
  118. package/build/esm/cli/marketplaceSerialization/index.js +2 -0
  119. package/build/esm/cli/marketplaceSerialization/index.js.map +1 -0
  120. package/build/esm/cli/marketplaceSerialization/specGenerators.js +70 -0
  121. package/build/esm/cli/marketplaceSerialization/specGenerators.js.map +1 -0
  122. package/build/esm/cli/marketplaceSerialization/supportingTypes.js +2 -0
  123. package/build/esm/cli/marketplaceSerialization/supportingTypes.js.map +1 -0
  124. package/build/esm/conversion/toConjure/distributeTypeHelper.js +23 -0
  125. package/build/esm/conversion/toConjure/distributeTypeHelper.js.map +1 -0
  126. package/build/esm/conversion/toMarketplace/convertActionHelpers.js +469 -0
  127. package/build/esm/conversion/toMarketplace/convertActionHelpers.js.map +1 -0
  128. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +96 -0
  129. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -0
  130. package/build/esm/conversion/toMarketplace/convertActionParameters.js +81 -0
  131. package/build/esm/conversion/toMarketplace/convertActionParameters.js.map +1 -0
  132. package/build/esm/conversion/toMarketplace/convertActionSections.js +45 -0
  133. package/build/esm/conversion/toMarketplace/convertActionSections.js.map +1 -0
  134. package/build/esm/conversion/toMarketplace/convertActionValidation.js +160 -0
  135. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -0
  136. package/build/esm/conversion/toMarketplace/convertActionVisibility.js +41 -0
  137. package/build/esm/conversion/toMarketplace/convertActionVisibility.js.map +1 -0
  138. package/build/esm/conversion/toMarketplace/convertCardinality.js +23 -0
  139. package/build/esm/conversion/toMarketplace/convertCardinality.js.map +1 -0
  140. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js +88 -0
  141. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js.map +1 -0
  142. package/build/esm/conversion/toMarketplace/convertDataConstraintToDataConstraints.js +26 -0
  143. package/build/esm/conversion/toMarketplace/convertDataConstraintToDataConstraints.js.map +1 -0
  144. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js +352 -0
  145. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -0
  146. package/build/esm/conversion/toMarketplace/convertInterface.js +75 -0
  147. package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -0
  148. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js +62 -0
  149. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  150. package/build/esm/conversion/toMarketplace/convertLink.js +247 -0
  151. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -0
  152. package/build/esm/conversion/toMarketplace/convertMappingValue.js +76 -0
  153. package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -0
  154. package/build/esm/conversion/toMarketplace/convertNullabilityToDataConstraint.js +42 -0
  155. package/build/esm/conversion/toMarketplace/convertNullabilityToDataConstraint.js.map +1 -0
  156. package/build/esm/conversion/toMarketplace/convertObject.js +262 -0
  157. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -0
  158. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +59 -0
  159. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -0
  160. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js +29 -0
  161. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -0
  162. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +236 -0
  163. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -0
  164. package/build/esm/conversion/toMarketplace/convertOntologyToValueTypeIr.js +24 -0
  165. package/build/esm/conversion/toMarketplace/convertOntologyToValueTypeIr.js.map +1 -0
  166. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js +35 -0
  167. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -0
  168. package/build/esm/conversion/toMarketplace/convertSpt.js +65 -0
  169. package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -0
  170. package/build/esm/conversion/toMarketplace/convertValueType.js +20 -0
  171. package/build/esm/conversion/toMarketplace/convertValueType.js.map +1 -0
  172. package/build/esm/conversion/toMarketplace/convertValueTypeDataConstraints.js +30 -0
  173. package/build/esm/conversion/toMarketplace/convertValueTypeDataConstraints.js.map +1 -0
  174. package/build/esm/conversion/toMarketplace/convertValueTypesToIr.js +34 -0
  175. package/build/esm/conversion/toMarketplace/convertValueTypesToIr.js.map +1 -0
  176. package/build/esm/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js +83 -0
  177. package/build/esm/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js.map +1 -0
  178. package/build/esm/conversion/toMarketplace/getFormContentOrdering.js +39 -0
  179. package/build/esm/conversion/toMarketplace/getFormContentOrdering.js.map +1 -0
  180. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +146 -0
  181. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  182. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +156 -0
  183. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -0
  184. package/build/esm/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.js +442 -0
  185. package/build/esm/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.js.map +1 -0
  186. package/build/esm/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.js +562 -0
  187. package/build/esm/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.js.map +1 -0
  188. package/build/esm/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.js +513 -0
  189. package/build/esm/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.js.map +1 -0
  190. package/build/esm/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.js +274 -0
  191. package/build/esm/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.js.map +1 -0
  192. package/build/esm/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.js +425 -0
  193. package/build/esm/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.js.map +1 -0
  194. package/build/esm/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.js +677 -0
  195. package/build/esm/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.js.map +1 -0
  196. package/build/esm/conversion/toMarketplace/typeVisitors.js +615 -0
  197. package/build/esm/conversion/toMarketplace/typeVisitors.js.map +1 -0
  198. package/build/esm/index.js +2 -0
  199. package/build/esm/index.js.map +1 -1
  200. package/build/esm/util/generateRid.js +476 -0
  201. package/build/esm/util/generateRid.js.map +1 -0
  202. package/build/types/api/defineOntologyV2.d.ts +3 -0
  203. package/build/types/api/defineOntologyV2.d.ts.map +1 -0
  204. package/build/types/cli/main.d.ts +1 -0
  205. package/build/types/cli/main.d.ts.map +1 -0
  206. package/build/types/cli/marketplaceSerialization/BlockGeneratorResult.d.ts +69 -0
  207. package/build/types/cli/marketplaceSerialization/BlockGeneratorResult.d.ts.map +1 -0
  208. package/build/types/cli/marketplaceSerialization/CodeBlockSetSpec.d.ts +60 -0
  209. package/build/types/cli/marketplaceSerialization/CodeBlockSetSpec.d.ts.map +1 -0
  210. package/build/types/cli/marketplaceSerialization/CodeBlockSpec.d.ts +48 -0
  211. package/build/types/cli/marketplaceSerialization/CodeBlockSpec.d.ts.map +1 -0
  212. package/build/types/cli/marketplaceSerialization/StoreManifestEntry.d.ts +13 -0
  213. package/build/types/cli/marketplaceSerialization/StoreManifestEntry.d.ts.map +1 -0
  214. package/build/types/cli/marketplaceSerialization/index.d.ts +11 -0
  215. package/build/types/cli/marketplaceSerialization/index.d.ts.map +1 -0
  216. package/build/types/cli/marketplaceSerialization/specGenerators.d.ts +10 -0
  217. package/build/types/cli/marketplaceSerialization/specGenerators.d.ts.map +1 -0
  218. package/build/types/cli/marketplaceSerialization/supportingTypes.d.ts +31 -0
  219. package/build/types/cli/marketplaceSerialization/supportingTypes.d.ts.map +1 -0
  220. package/build/types/conversion/toConjure/distributeTypeHelper.d.ts +3 -0
  221. package/build/types/conversion/toConjure/distributeTypeHelper.d.ts.map +1 -0
  222. package/build/types/conversion/toMarketplace/convertActionHelpers.d.ts +7 -0
  223. package/build/types/conversion/toMarketplace/convertActionHelpers.d.ts.map +1 -0
  224. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts +4 -0
  225. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts.map +1 -0
  226. package/build/types/conversion/toMarketplace/convertActionParameters.d.ts +4 -0
  227. package/build/types/conversion/toMarketplace/convertActionParameters.d.ts.map +1 -0
  228. package/build/types/conversion/toMarketplace/convertActionSections.d.ts +4 -0
  229. package/build/types/conversion/toMarketplace/convertActionSections.d.ts.map +1 -0
  230. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts +4 -0
  231. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts.map +1 -0
  232. package/build/types/conversion/toMarketplace/convertActionVisibility.d.ts +2 -0
  233. package/build/types/conversion/toMarketplace/convertActionVisibility.d.ts.map +1 -0
  234. package/build/types/conversion/toMarketplace/convertCardinality.d.ts +3 -0
  235. package/build/types/conversion/toMarketplace/convertCardinality.d.ts.map +1 -0
  236. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts +3 -0
  237. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts.map +1 -0
  238. package/build/types/conversion/toMarketplace/convertDataConstraintToDataConstraints.d.ts +2 -0
  239. package/build/types/conversion/toMarketplace/convertDataConstraintToDataConstraints.d.ts.map +1 -0
  240. package/build/types/conversion/toMarketplace/convertDatasourceDefinition.d.ts +4 -0
  241. package/build/types/conversion/toMarketplace/convertDatasourceDefinition.d.ts.map +1 -0
  242. package/build/types/conversion/toMarketplace/convertInterface.d.ts +4 -0
  243. package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -0
  244. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts +4 -0
  245. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts.map +1 -0
  246. package/build/types/conversion/toMarketplace/convertLink.d.ts +9 -0
  247. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -0
  248. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +4 -0
  249. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -0
  250. package/build/types/conversion/toMarketplace/convertNullabilityToDataConstraint.d.ts +6 -0
  251. package/build/types/conversion/toMarketplace/convertNullabilityToDataConstraint.d.ts.map +1 -0
  252. package/build/types/conversion/toMarketplace/convertObject.d.ts +10 -0
  253. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -0
  254. package/build/types/conversion/toMarketplace/convertObjectPropertyType.d.ts +4 -0
  255. package/build/types/conversion/toMarketplace/convertObjectPropertyType.d.ts.map +1 -0
  256. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts +4 -0
  257. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts.map +1 -0
  258. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts +4 -0
  259. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts.map +1 -0
  260. package/build/types/conversion/toMarketplace/convertOntologyToValueTypeIr.d.ts +3 -0
  261. package/build/types/conversion/toMarketplace/convertOntologyToValueTypeIr.d.ts.map +1 -0
  262. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts +3 -0
  263. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts.map +1 -0
  264. package/build/types/conversion/toMarketplace/convertSpt.d.ts +4 -0
  265. package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -0
  266. package/build/types/conversion/toMarketplace/convertValueType.d.ts +4 -0
  267. package/build/types/conversion/toMarketplace/convertValueType.d.ts.map +1 -0
  268. package/build/types/conversion/toMarketplace/convertValueTypeDataConstraints.d.ts +2 -0
  269. package/build/types/conversion/toMarketplace/convertValueTypeDataConstraints.d.ts.map +1 -0
  270. package/build/types/conversion/toMarketplace/convertValueTypesToIr.d.ts +3 -0
  271. package/build/types/conversion/toMarketplace/convertValueTypesToIr.d.ts.map +1 -0
  272. package/build/types/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.d.ts +2 -0
  273. package/build/types/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.d.ts.map +1 -0
  274. package/build/types/conversion/toMarketplace/getFormContentOrdering.d.ts +3 -0
  275. package/build/types/conversion/toMarketplace/getFormContentOrdering.d.ts.map +1 -0
  276. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts +4 -0
  277. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts.map +1 -0
  278. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts +4 -0
  279. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts.map +1 -0
  280. package/build/types/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.d.ts +13 -0
  281. package/build/types/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.d.ts.map +1 -0
  282. package/build/types/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.d.ts +1 -0
  283. package/build/types/conversion/toMarketplace/shapeExtractors/ActionTypeShapeExtractor.test.d.ts.map +1 -0
  284. package/build/types/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.d.ts +11 -0
  285. package/build/types/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.d.ts.map +1 -0
  286. package/build/types/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.d.ts +43 -0
  287. package/build/types/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.d.ts.map +1 -0
  288. package/build/types/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.d.ts +28 -0
  289. package/build/types/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.d.ts.map +1 -0
  290. package/build/types/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.d.ts +1 -0
  291. package/build/types/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.test.d.ts.map +1 -0
  292. package/build/types/conversion/toMarketplace/typeVisitors.d.ts +17 -0
  293. package/build/types/conversion/toMarketplace/typeVisitors.d.ts.map +1 -0
  294. package/build/types/index.d.ts +3 -0
  295. package/build/types/index.d.ts.map +1 -1
  296. package/build/types/util/generateRid.d.ts +216 -0
  297. package/build/types/util/generateRid.d.ts.map +1 -0
  298. package/package.json +10 -4
  299. package/build/cjs/chunk-ZPP374PZ.cjs +0 -17
  300. package/build/cjs/chunk-ZPP374PZ.cjs.map +0 -1
  301. package/build/cjs/prompt-VSXFWPU4.cjs +0 -955
  302. package/build/cjs/prompt-VSXFWPU4.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/core.mjs","../../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs","../../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs","../../../../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs","../../../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/string-utils.js","../../../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser.js","../../../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/index.js","../../../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/platform-shims/node.js","../../../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/index.js","../../../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/index.mjs","../../../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/lib/platform-shims/esm.mjs","../../../maker/build/esm/api/common/OntologyEntityTypeEnum.js","../../../maker/build/esm/api/defineObject.js","../../../../node_modules/.pnpm/outdent@0.8.0/node_modules/outdent/lib-module/index.js","../../../../node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.mjs","../../../maker/build/esm/api/defineOntology.js","../../../maker/build/esm/api/importOntologyEntity.js","../../src/api/importObjectType.ts"],"names":["namespace","c","i","sep","l","formatWithOptions","tty","left","right","s","ansiRegex","stripAnsi","env","g$1","_","getColor","createConsola","DefaultValuesForTypeKey","mixin","key","argv","args","a","value","val","aliases","defaults","o","y","guessType","format","normalize","resolve","path","__require","readFileSync","writeFile","statSync","y18n","__dirname","fileURLToPath","importMetaUrl","OntologyEntityTypeEnum","isFunction","clearCache","parse","render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,SAAY,GAAA;AAAA,EAEhB,KAAO,EAAA,CAAA;AAAA,EACP,KAAO,EAAA,CAAA;AAAA,EACP,IAAM,EAAA,CAAA;AAAA,EACN,GAAK,EAAA,CAAA;AAAA,EACL,IAAM,EAAA,CAAA;AAAA,EACN,OAAS,EAAA,CAAA;AAAA,EACT,IAAM,EAAA,CAAA;AAAA,EAIN,KAAO,EAAA,CAAA;AAAA,EACP,KAAO,EAAA,CAAA;AAAA,EACP,SAAS,MAAO,CAAA;AAClB,CAAA;AACA,IAAM,QAAW,GAAA;AAAA;AAAA,EAEf,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA;AAAA,GACT;AAAA;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,IAAM,EAAA;AAAA,IACJ,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,GAAK,EAAA;AAAA,IACH,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,IAAM,EAAA;AAAA,IACJ,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,OAAS,EAAA;AAAA,IACP,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA,EACA,GAAK,EAAA;AAAA,IACH,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,OAAO,SAAU,CAAA;AAAA,GACnB;AAAA;AAAA,EAEA,OAAS,EAAA;AAAA,IACP,OAAO,SAAU,CAAA;AAAA;AAErB,CAAA;AACA,SAAS,gBAAgB,KAAO,EAAA;AAC9B,EAAA,IAAI,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,KAAU,QAAU,EAAA;AAC/C,IAAO,OAAA,KAAA;AAAA;AAET,EAAM,MAAA,SAAA,GAAY,MAAO,CAAA,cAAA,CAAe,KAAK,CAAA;AAC7C,EAAI,IAAA,SAAA,KAAc,QAAQ,SAAc,KAAA,MAAA,CAAO,aAAa,MAAO,CAAA,cAAA,CAAe,SAAS,CAAA,KAAM,IAAM,EAAA;AACrG,IAAO,OAAA,KAAA;AAAA;AAET,EAAI,IAAA,MAAA,CAAO,YAAY,KAAO,EAAA;AAC5B,IAAO,OAAA,KAAA;AAAA;AAET,EAAI,IAAA,MAAA,CAAO,eAAe,KAAO,EAAA;AAC/B,IAAA,OAAO,MAAO,CAAA,SAAA,CAAU,QAAS,CAAA,IAAA,CAAK,KAAK,CAAM,KAAA,iBAAA;AAAA;AAEnD,EAAO,OAAA,IAAA;AACT;AACA,SAAS,KAAM,CAAA,UAAA,EAAY,QAAUA,EAAAA,UAAAA,GAAY,KAAK,MAAQ,EAAA;AAC5D,EAAI,IAAA,CAAC,eAAgB,CAAA,QAAQ,CAAG,EAAA;AAC9B,IAAA,OAAO,KAAM,CAAA,UAAA,EAAY,EAAC,EAAGA,UAAiB,CAAA;AAAA;AAEhD,EAAA,MAAM,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,IAAI,QAAQ,CAAA;AACzC,EAAA,KAAA,MAAW,OAAO,UAAY,EAAA;AAC5B,IAAI,IAAA,GAAA,KAAQ,WAAe,IAAA,GAAA,KAAQ,aAAe,EAAA;AAChD,MAAA;AAAA;AAEF,IAAM,MAAA,KAAA,GAAQ,WAAW,GAAG,CAAA;AAC5B,IAAI,IAAA,KAAA,KAAU,IAAQ,IAAA,KAAA,KAAU,MAAQ,EAAA;AACtC,MAAA;AAAA;AAKF,IAAI,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA,IAAK,MAAM,OAAQ,CAAA,MAAA,CAAO,GAAG,CAAC,CAAG,EAAA;AACtD,MAAO,MAAA,CAAA,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,KACzC,MAAA,IAAW,gBAAgB,KAAK,CAAA,IAAK,gBAAgB,MAAO,CAAA,GAAG,CAAC,CAAG,EAAA;AACjE,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAM,CAAA,KAAA,EAAO,OAAO,GAAG,CAAA,EAAA,CAAIA,UAAY,GAAA,CAAA,EAAGA,UAAS,CAAM,CAAA,CAAA,GAAA,EAAA,IAAM,GAAI,CAAA,QAAA,EAAkB,CAAA;AAAA,KAC9F,MAAA;AACL,MAAA,MAAA,CAAO,GAAG,CAAI,GAAA,KAAA;AAAA;AAChB;AAEF,EAAO,OAAA,MAAA;AACT;AACA,SAAS,WAAW,MAAQ,EAAA;AAC1B,EAAA,OAAO,CAAI,GAAA,UAAA;AAAA;AAAA,IAEX,UAAW,CAAA,MAAA,CAAO,CAAC,CAAA,EAAGC,EAAM,KAAA,KAAA,CAAM,CAAGA,EAAAA,EAAAA,EAAG,EAAU,CAAG,EAAA,EAAE;AAAA,GAAA;AACzD;AACA,IAAM,OAAO,UAAW,EAAA;AACxB,SAAS,cAAc,GAAK,EAAA;AAC1B,EAAA,OAAO,MAAO,CAAA,SAAA,CAAU,QAAS,CAAA,IAAA,CAAK,GAAG,CAAM,KAAA,iBAAA;AACjD;AACA,SAAS,SAAS,GAAK,EAAA;AACrB,EAAI,IAAA,CAAC,aAAc,CAAA,GAAG,CAAG,EAAA;AACvB,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,IAAI,CAAC,GAAA,CAAI,OAAW,IAAA,CAAC,IAAI,IAAM,EAAA;AAC7B,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,IAAI,IAAI,KAAO,EAAA;AACb,IAAO,OAAA,KAAA;AAAA;AAET,EAAO,OAAA,IAAA;AACT;AACA,IAAI,MAAS,GAAA,KAAA;AACb,IAAM,QAAQ,EAAC;AACf,IAAM,OAAA,GAAN,MAAM,QAAQ,CAAA;AAAA,EACZ,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAA,CAAY,OAAU,GAAA,EAAI,EAAA;AACxB,IAAM,MAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,QAAA;AAC/B,IAAA,IAAA,CAAK,UAAU,IAAK,CAAA;AAAA,MAClB,GAAG,OAAA;AAAA,MACH,QAAU,EAAA;AAAA,QACR,GAAG,OAAQ,CAAA;AAAA,OACb;AAAA,MACA,KAAO,EAAA,kBAAA,CAAmB,OAAQ,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA,MAC9C,WAAW,CAAC,GAAI,OAAQ,CAAA,SAAA,IAAa,EAAG;AAAA,KACvC,EAAA;AAAA,MACD,KAAO,EAAA,QAAA;AAAA,MACP,QAAU,EAAA,GAAA;AAAA,MACV,WAAa,EAAA,CAAA;AAAA,MACb,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,IAAA;AAAA,QACN,MAAQ,EAAA,KAAA;AAAA,QACR,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AACD,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,MAAA,MAAM,QAAW,GAAA;AAAA,QACf,IAAA;AAAA,QACA,GAAG,KAAK,OAAQ,CAAA,QAAA;AAAA,QAChB,GAAG,MAAM,IAAI;AAAA,OACf;AACA,MAAA,IAAA,CAAK,IAAI,CAAA,GAAI,IAAK,CAAA,UAAA,CAAW,QAAQ,CAAA;AACrC,MAAA,IAAA,CAAK,IAAI,CAAE,CAAA,GAAA,GAAM,IAAK,CAAA,UAAA,CAAW,UAAU,IAAI,CAAA;AAAA;AAEjD,IAAI,IAAA,IAAA,CAAK,QAAQ,MAAQ,EAAA;AACvB,MAAA,IAAA,CAAK,SAAU,EAAA;AAAA;AAEjB,IAAA,IAAA,CAAK,WAAW,EAAC;AAAA;AACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,KAAK,OAAQ,CAAA,KAAA;AAAA;AACtB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,MAAM,KAAO,EAAA;AACf,IAAK,IAAA,CAAA,OAAA,CAAQ,QAAQ,kBAAmB,CAAA,KAAA,EAAO,KAAK,OAAQ,CAAA,KAAA,EAAO,IAAK,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACvF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAA,CAAO,SAAS,IAAM,EAAA;AACpB,IAAI,IAAA,CAAC,IAAK,CAAA,OAAA,CAAQ,MAAQ,EAAA;AACxB,MAAM,MAAA,IAAI,MAAM,0BAA0B,CAAA;AAAA;AAE5C,IAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,MAAO,CAAA,OAAA,EAAS,IAAI,CAAA;AAAA;AAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAS,EAAA;AACd,IAAM,MAAA,QAAA,GAAW,IAAI,QAAQ,CAAA;AAAA,MAC3B,GAAG,IAAK,CAAA,OAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,IAAI,KAAK,OAAS,EAAA;AAChB,MAAS,QAAA,CAAA,SAAA,CAAU,KAAK,OAAO,CAAA;AAAA;AAEjC,IAAO,OAAA,QAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,QAAU,EAAA;AACrB,IAAA,OAAO,KAAK,MAAO,CAAA;AAAA,MACjB,GAAG,IAAK,CAAA,OAAA;AAAA,MACR,QAAU,EAAA;AAAA,QACR,GAAG,KAAK,OAAQ,CAAA,QAAA;AAAA,QAChB,GAAG;AAAA;AACL,KACD,CAAA;AAAA;AACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,GAAK,EAAA;AACX,IAAA,OAAO,KAAK,YAAa,CAAA;AAAA,MACvB,GAAA,EAAK,IAAK,CAAA,OAAA,CAAQ,QAAS,CAAA,GAAA,GAAM,KAAK,OAAQ,CAAA,QAAA,CAAS,GAAM,GAAA,GAAA,GAAM,GAAM,GAAA;AAAA,KAC1E,CAAA;AAAA;AACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YAAY,QAAU,EAAA;AACpB,IAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,IAAA,CAAK,QAAQ,CAAA;AACpC,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eAAe,QAAU,EAAA;AACvB,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,MAAMC,EAAI,GAAA,IAAA,CAAK,OAAQ,CAAA,SAAA,CAAU,QAAQ,QAAQ,CAAA;AACjD,MAAA,IAAIA,OAAM,EAAI,EAAA;AACZ,QAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,SAAU,CAAA,MAAA,CAAOA,IAAG,CAAC,CAAA;AAAA;AAC3C,KACK,MAAA;AACL,MAAK,IAAA,CAAA,OAAA,CAAQ,SAAU,CAAA,MAAA,CAAO,CAAC,CAAA;AAAA;AAEjC,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,SAAW,EAAA;AACtB,IAAK,IAAA,CAAA,OAAA,CAAQ,YAAY,KAAM,CAAA,OAAA,CAAQ,SAAS,CAAI,GAAA,SAAA,GAAY,CAAC,SAAS,CAAA;AAC1E,IAAO,OAAA,IAAA;AAAA;AACT,EACA,OAAU,GAAA;AACR,IAAA,IAAA,CAAK,WAAY,EAAA;AACjB,IAAA,IAAA,CAAK,OAAQ,EAAA;AAAA;AACf,EACA,UAAa,GAAA;AACX,IAAA,IAAA,CAAK,cAAe,EAAA;AACpB,IAAA,IAAA,CAAK,UAAW,EAAA;AAAA;AAClB;AAAA;AAAA;AAAA,EAIA,WAAc,GAAA;AACZ,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,OAAA,CAAQ,KAAO,EAAA;AACrC,MAAA,IAAI,CAAC,OAAA,CAAQ,IAAO,GAAA,IAAI,CAAG,EAAA;AACzB,QAAA,OAAA,CAAQ,IAAO,GAAA,IAAI,CAAI,GAAA,OAAA,CAAQ,IAAI,CAAA;AAAA;AAErC,MAAA,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAK,CAAA,IAAI,CAAE,CAAA,GAAA;AAAA;AAC7B;AACF;AAAA;AAAA;AAAA,EAIA,cAAiB,GAAA;AACf,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,OAAA,CAAQ,KAAO,EAAA;AACrC,MAAI,IAAA,OAAA,CAAQ,IAAO,GAAA,IAAI,CAAG,EAAA;AACxB,QAAA,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAQ,CAAA,IAAA,GAAO,IAAI,CAAA;AACnC,QAAO,OAAA,OAAA,CAAQ,OAAO,IAAI,CAAA;AAAA;AAC5B;AACF;AACF;AAAA;AAAA;AAAA,EAIA,OAAU,GAAA;AACR,IAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,EAAQ,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,EAAQ,KAAK,CAAA;AAAA;AAC7C,EACA,WAAA,CAAY,QAAQ,IAAM,EAAA;AACxB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA;AAAA;AAEF,IAAI,IAAA,CAAC,OAAO,OAAS,EAAA;AACnB,MAAA,MAAA,CAAO,UAAU,MAAO,CAAA,KAAA;AAAA;AAE1B,IAAA,MAAA,CAAO,QAAQ,CAAQ,IAAA,KAAA;AACrB,MAAA,IAAA,CAAK,IAAI,CAAE,CAAA,GAAA,CAAI,OAAO,IAAI,CAAA,CAAE,MAAM,CAAA;AAAA,KACpC;AAAA;AACF;AAAA;AAAA;AAAA,EAIA,UAAa,GAAA;AACX,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,OAAA,CAAQ,MAAM,CAAA;AACvC,IAAK,IAAA,CAAA,cAAA,CAAe,IAAK,CAAA,OAAA,CAAQ,MAAM,CAAA;AAAA;AACzC,EACA,eAAe,MAAQ,EAAA;AACrB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA;AAAA;AAEF,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,OAAA;AACtB,MAAA,OAAO,MAAO,CAAA,OAAA;AAAA;AAChB;AACF;AAAA;AAAA;AAAA,EAIA,SAAY,GAAA;AACV,IAAS,MAAA,GAAA,IAAA;AAAA;AACX;AAAA;AAAA;AAAA,EAIA,UAAa,GAAA;AACX,IAAS,MAAA,GAAA,KAAA;AACT,IAAM,MAAA,MAAA,GAAS,KAAM,CAAA,MAAA,CAAO,CAAC,CAAA;AAC7B,IAAA,KAAA,MAAW,QAAQ,MAAQ,EAAA;AACzB,MAAK,IAAA,CAAA,CAAC,EAAE,MAAO,CAAA,IAAA,CAAK,CAAC,CAAG,EAAA,IAAA,CAAK,CAAC,CAAC,CAAA;AAAA;AACjC;AACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,MAAQ,EAAA;AAChB,IAAM,MAAA,OAAA,GAAU,MAAU,IAAA,IAAA,CAAK,OAAQ,CAAA,MAAA;AACvC,IAAA,IAAA,CAAK,OAAU,GAAA,OAAA;AACf,IAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AACjC,MAAA;AAAA;AAEF,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,OAAA,CAAQ,KAAO,EAAA;AACrC,MAAK,IAAA,CAAA,IAAI,CAAI,GAAA,OAAA,CAAQ,IAAM,EAAA,IAAA,CAAK,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAC,CAAK,IAAA,IAAA,CAAK,IAAI,CAAA;AACjE,MAAA,IAAA,CAAK,IAAI,CAAA,CAAE,GAAM,GAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAC5B;AACF,EACA,UAAA,CAAW,UAAU,KAAO,EAAA;AAC1B,IAAA,OAAO,IAAI,IAAS,KAAA;AAClB,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,KAAA,CAAM,KAAK,CAAC,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,KAAK,CAAC,CAAA;AACxC,QAAA;AAAA;AAEF,MAAA,OAAO,IAAK,CAAA,MAAA,CAAO,QAAU,EAAA,IAAA,EAAM,KAAK,CAAA;AAAA,KAC1C;AAAA;AACF,EACA,MAAA,CAAO,QAAU,EAAA,IAAA,EAAM,KAAO,EAAA;AAC5B,IAAA,IAAA,CAAK,QAAS,CAAA,KAAA,IAAS,CAAK,IAAA,IAAA,CAAK,KAAO,EAAA;AACtC,MAAO,OAAA,KAAA;AAAA;AAET,IAAA,MAAM,MAAS,GAAA;AAAA,MACb,IAAA,sBAAyB,IAAK,EAAA;AAAA,MAC9B,MAAM,EAAC;AAAA,MACP,GAAG,QAAA;AAAA,MACH,OAAO,kBAAmB,CAAA,QAAA,CAAS,KAAO,EAAA,IAAA,CAAK,QAAQ,KAAK;AAAA,KAC9D;AACA,IAAI,IAAA,CAAC,SAAS,IAAK,CAAA,MAAA,KAAW,KAAK,QAAS,CAAA,IAAA,CAAK,CAAC,CAAC,CAAG,EAAA;AACpD,MAAA,MAAA,CAAO,MAAO,CAAA,MAAA,EAAQ,IAAK,CAAA,CAAC,CAAC,CAAA;AAAA,KACxB,MAAA;AACL,MAAO,MAAA,CAAA,IAAA,GAAO,CAAC,GAAG,IAAI,CAAA;AAAA;AAExB,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAO,MAAA,CAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,CAAO,OAAO,CAAA;AAClC,MAAA,OAAO,MAAO,CAAA,OAAA;AAAA;AAEhB,IAAA,IAAI,OAAO,UAAY,EAAA;AACrB,MAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,MAAA,CAAO,UAAU,CAAG,EAAA;AACrC,QAAA,MAAA,CAAO,UAAa,GAAA,MAAA,CAAO,UAAW,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA;AAElD,MAAA,MAAA,CAAO,KAAK,IAAK,CAAA,IAAA,GAAO,OAAO,UAAW,CAAA,IAAA,CAAK,IAAI,CAAC,CAAA;AACpD,MAAA,OAAO,MAAO,CAAA,UAAA;AAAA;AAEhB,IAAO,MAAA,CAAA,IAAA,GAAO,OAAO,MAAO,CAAA,IAAA,KAAS,WAAW,MAAO,CAAA,IAAA,CAAK,aAAgB,GAAA,KAAA;AAC5E,IAAA,MAAA,CAAO,MAAM,OAAO,MAAA,CAAO,GAAQ,KAAA,QAAA,GAAW,OAAO,GAAM,GAAA,EAAA;AAC3D,IAAM,MAAA,UAAA,GAAa,CAAC,MAAA,GAAS,KAAU,KAAA;AACrC,MAAA,MAAM,YAAY,IAAK,CAAA,QAAA,CAAS,KAAS,IAAA,CAAA,IAAK,KAAK,OAAQ,CAAA,WAAA;AAC3D,MAAA,IAAI,IAAK,CAAA,QAAA,CAAS,MAAU,IAAA,QAAA,GAAW,CAAG,EAAA;AACxC,QAAA,MAAM,QAAQ,CAAC,GAAG,IAAK,CAAA,QAAA,CAAS,OAAO,IAAI,CAAA;AAC3C,QAAA,IAAI,WAAW,CAAG,EAAA;AAChB,UAAM,KAAA,CAAA,IAAA,CAAK,CAAa,UAAA,EAAA,QAAQ,CAAS,OAAA,CAAA,CAAA;AAAA;AAE3C,QAAA,IAAA,CAAK,IAAK,CAAA;AAAA,UACR,GAAG,KAAK,QAAS,CAAA,MAAA;AAAA,UACjB,IAAM,EAAA;AAAA,SACP,CAAA;AACD,QAAA,IAAA,CAAK,SAAS,KAAQ,GAAA,CAAA;AAAA;AAExB,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,IAAA,CAAK,SAAS,MAAS,GAAA,MAAA;AACvB,QAAA,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA;AAClB,KACF;AACA,IAAa,YAAA,CAAA,IAAA,CAAK,SAAS,OAAO,CAAA;AAClC,IAAA,MAAM,QAAW,GAAA,IAAA,CAAK,QAAS,CAAA,IAAA,IAAQ,OAAO,IAAO,GAAA,MAAA,CAAO,IAAK,CAAA,OAAA,EAAY,GAAA,IAAA,CAAK,QAAS,CAAA,IAAA,CAAK,SAAY,GAAA,CAAA;AAC5G,IAAK,IAAA,CAAA,QAAA,CAAS,OAAO,MAAO,CAAA,IAAA;AAC5B,IAAI,IAAA,QAAA,GAAW,IAAK,CAAA,OAAA,CAAQ,QAAU,EAAA;AACpC,MAAI,IAAA;AACF,QAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,SAAA,CAAU,CAAC,MAAA,CAAO,MAAM,MAAO,CAAA,GAAA,EAAK,MAAO,CAAA,IAAI,CAAC,CAAA;AAC3E,QAAM,MAAA,SAAA,GAAY,IAAK,CAAA,QAAA,CAAS,UAAe,KAAA,aAAA;AAC/C,QAAA,IAAA,CAAK,SAAS,UAAa,GAAA,aAAA;AAC3B,QAAA,IAAI,SAAW,EAAA;AACb,UAAA,IAAA,CAAK,QAAS,CAAA,KAAA,GAAA,CAAS,IAAK,CAAA,QAAA,CAAS,SAAS,CAAK,IAAA,CAAA;AACnD,UAAA,IAAI,IAAK,CAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAK,QAAQ,WAAa,EAAA;AAClD,YAAA,IAAA,CAAK,SAAS,OAAU,GAAA,UAAA,CAAW,UAAY,EAAA,IAAA,CAAK,QAAQ,QAAQ,CAAA;AACpE,YAAA;AAAA;AACF;AACF,OACM,CAAA,MAAA;AAAA;AAAC;AAEX,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA;AACjB,EACA,KAAK,MAAQ,EAAA;AACX,IAAW,KAAA,MAAA,QAAA,IAAY,IAAK,CAAA,OAAA,CAAQ,SAAW,EAAA;AAC7C,MAAA,QAAA,CAAS,IAAI,MAAQ,EAAA;AAAA,QACnB,SAAS,IAAK,CAAA;AAAA,OACf,CAAA;AAAA;AACH;AAEJ,CAAA;AACA,SAAS,mBAAmB,KAAO,EAAA,KAAA,GAAQ,EAAC,EAAG,eAAe,CAAG,EAAA;AAC/D,EAAA,IAAI,UAAU,MAAQ,EAAA;AACpB,IAAO,OAAA,YAAA;AAAA;AAET,EAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,IAAI,MAAM,KAAK,CAAA,IAAK,MAAM,KAAK,CAAA,CAAE,UAAU,MAAQ,EAAA;AACjD,IAAO,OAAA,KAAA,CAAM,KAAK,CAAE,CAAA,KAAA;AAAA;AAEtB,EAAO,OAAA,YAAA;AACT;AACA,OAAQ,CAAA,SAAA,CAAU,GAAM,GAAA,OAAA,CAAQ,SAAU,CAAA,WAAA;AAC1C,OAAQ,CAAA,SAAA,CAAU,MAAS,GAAA,OAAA,CAAQ,SAAU,CAAA,cAAA;AAC7C,OAAQ,CAAA,SAAA,CAAU,KAAQ,GAAA,OAAA,CAAQ,SAAU,CAAA,cAAA;AAC5C,OAAQ,CAAA,SAAA,CAAU,SAAY,GAAA,OAAA,CAAQ,SAAU,CAAA,OAAA;AAChD,OAAQ,CAAA,SAAA,CAAU,IAAO,GAAA,OAAA,CAAQ,SAAU,CAAA,SAAA;AAC3C,OAAQ,CAAA,SAAA,CAAU,KAAQ,GAAA,OAAA,CAAQ,SAAU,CAAA,SAAA;AAC5C,OAAQ,CAAA,SAAA,CAAU,MAAS,GAAA,OAAA,CAAQ,SAAU,CAAA,UAAA;AAC7C,SAAS,aAAA,CAAc,OAAU,GAAA,EAAI,EAAA;AACnC,EAAO,OAAA,IAAI,QAAQ,OAAO,CAAA;AAC5B;ACpeA,SAAS,UAAA,CAAW,OAAO,OAAS,EAAA;AAClC,EAAM,MAAA,GAAA,GAAM,OAAQ,CAAA,GAAA,EAAQ,GAAAC,QAAA;AAC5B,EAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,KAAA,CAAM,IAAI,CAAA,CAAE,OAAO,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAA,CAAE,MAAM,CAAA,CAAE,IAAI,CAAAC,EAAAA,KAAKA,EAAE,CAAA,IAAA,EAAO,CAAA,OAAA,CAAQ,SAAW,EAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,GAAK,EAAA,EAAE,CAAC,CAAA;AAC5H,EAAO,OAAA,KAAA;AACT;AACA,SAAS,WAAA,CAAY,MAAM,MAAQ,EAAA;AACjC,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,OAAA,IAAW,MAAO,CAAA,KAAA;AACvC,EAAO,OAAA,KAAA,CAAM,IAAK,CAAA,MAAA,EAAQ,IAAI,CAAA;AAChC;AACA,IAAM,OAAU,GAAA,CAAA,CAAA,KAAK,CAAI,GAAA,CAAA,CAAA,EAAI,CAAC,CAAM,CAAA,CAAA,GAAA,EAAA;AACpC,IAAM,gBAAN,MAAoB;AAAA,EAClB,WAAA,CAAY,KAAO,EAAA,OAAA,EAAS,IAAM,EAAA;AAChC,IAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAQ,IAAM,EAAA,UAAA,IAAc,KAAK,CAAC,CAAA;AACtD,IAAA,OAAO,MAAS,GAAA,UAAA,CAAW,KAAO,EAAA,OAAO,EAAE,IAAK,CAAA;AAAA,EAClD,MAAM,CAAE,CAAA,CAAA;AAAA;AACR,EACA,WAAA,CAAY,KAAK,IAAM,EAAA;AACrB,IAAA,MAAM,OAAU,GAAA,GAAA,CAAI,OAAW,IAAAC,sBAAA,CAAkB,MAAM,GAAG,CAAA;AAC1D,IAAM,MAAA,KAAA,GAAQ,IAAI,KAAQ,GAAA,IAAA,CAAK,YAAY,GAAI,CAAA,KAAA,EAAO,OAAS,EAAA,IAAI,CAAI,GAAA,EAAA;AACvE,IAAM,MAAA,KAAA,GAAQ,MAAM,UAAc,IAAA,CAAA;AAClC,IAAM,MAAA,YAAA,GAAe,QAAQ,CAAI,GAAA,CAAA,EAAG,KAAK,MAAO,CAAA,KAAK,CAAC,CAAc,SAAA,CAAA,GAAA,EAAA;AACpE,IAAA,MAAM,cAAc,GAAI,CAAA,KAAA,GAAQ,SAAS,IAAK,CAAA,WAAA,CAAY,IAAI,KAAO,EAAA;AAAA,MACnE,GAAG,IAAA;AAAA,MACH,YAAY,KAAQ,GAAA;AAAA,KACrB,CAAI,GAAA,EAAA;AACL,IAAO,OAAA,YAAA,GAAe,OAAU,GAAA,IAAA,GAAO,KAAQ,GAAA,WAAA;AAAA;AACjD,EACA,UAAA,CAAW,MAAM,IAAM,EAAA;AACrB,IAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA;AAC5B,MAAA,IAAI,GAAO,IAAA,OAAO,GAAI,CAAA,KAAA,KAAU,QAAU,EAAA;AACxC,QAAO,OAAA,IAAA,CAAK,WAAY,CAAA,GAAA,EAAK,IAAI,CAAA;AAAA;AAEnC,MAAO,OAAA,GAAA;AAAA,KACR,CAAA;AACD,IAAO,OAAAA,sBAAA,CAAkB,IAAM,EAAA,GAAG,KAAK,CAAA;AAAA;AACzC,EACA,UAAA,CAAW,MAAM,IAAM,EAAA;AACrB,IAAA,OAAO,IAAK,CAAA,IAAA,GAAO,IAAK,CAAA,kBAAA,EAAuB,GAAA,EAAA;AAAA;AACjD,EACA,cAAc,GAAK,EAAA;AACjB,IAAA,OAAO,GAAI,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA;AACrC,EACA,YAAA,CAAa,QAAQ,IAAM,EAAA;AACzB,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAO,MAAM,IAAI,CAAA;AACjD,IAAI,IAAA,MAAA,CAAO,SAAS,KAAO,EAAA;AACzB,MAAO,OAAA,IAAA,GAAO,CAAC,OAAA,CAAQ,MAAO,CAAA,GAAG,CAAG,EAAA,MAAA,CAAO,KAAS,IAAA,MAAA,CAAO,KAAO,EAAA,GAAG,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAC,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,GAAI,CAAA,CAAAD,EAAK,KAAA,KAAA,GAAQA,EAAC,CAAA,CAAE,IAAK,CAAA,IAAI,CAAI,GAAA,IAAA;AAAA;AAE7I,IAAA,OAAO,IAAK,CAAA,aAAA,CAAc,CAAC,OAAA,CAAQ,MAAO,CAAA,IAAI,CAAG,EAAA,OAAA,CAAQ,MAAO,CAAA,GAAG,CAAG,EAAA,OAAO,CAAC,CAAA;AAAA;AAChF,EACA,GAAA,CAAI,QAAQ,GAAK,EAAA;AACf,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,YAAA,CAAa,MAAQ,EAAA;AAAA,MACrC,OAAS,EAAA,GAAA,CAAI,OAAQ,CAAA,MAAA,CAAO,OAAW,IAAA,CAAA;AAAA,MACvC,GAAG,IAAI,OAAQ,CAAA;AAAA,KAChB,CAAA;AACD,IAAA,OAAO,WAAY,CAAA,IAAA,GAAO,IAAM,EAAA,MAAA,CAAO,QAAQ,CAAI,GAAA,GAAA,CAAI,OAAQ,CAAA,MAAA,IAAU,QAAQ,MAAS,GAAA,GAAA,CAAI,OAAQ,CAAA,MAAA,IAAU,QAAQ,MAAM,CAAA;AAAA;AAElI,CAAA;ACzDA,IAAM;AAAA,EACJ,MAAM,EAAC;AAAA,EACP,OAAO,EAAC;AAAA,EACR,QAAW,GAAA;AACb,CAAA,GAAI,OAAO,OAAA,KAAY,WAAc,GAAA,EAAK,GAAA,OAAA;AAC1C,IAAM,UAAa,GAAA,UAAA,IAAc,GAAO,IAAA,IAAA,CAAK,SAAS,YAAY,CAAA;AAClE,IAAM,QAAW,GAAA,aAAA,IAAiB,GAAO,IAAA,IAAA,CAAK,SAAS,SAAS,CAAA;AAChE,IAAM,YAAY,QAAa,KAAA,OAAA;AAC/B,IAAM,cAAA,GAAiB,IAAI,IAAS,KAAA,MAAA;AACpC,IAAM,oBAAA,GAAuBE,kBAAWA,cAAc,CAAA,MAAA,IAAAA,cAAA,CAAA,MAAA,CAAO,CAAC,CAAK,IAAA,GAAA,CAAI,QAAQ,CAAC,cAAA;AAChF,IAAM,OAAO,IAAQ,IAAA,GAAA,KAAQ,oBAAoB,GAAO,IAAA,WAAA,IAAe,OAAO,UAAc,IAAA,GAAA,CAAA;AAC5F,IAAM,mBAAmB,CAAC,UAAA,KAAe,YAAY,SAAa,IAAA,CAAC,kBAAkB,oBAAwB,IAAA,IAAA,CAAA;AAC7G,SAAS,YAAa,CAAA,KAAA,EAAO,MAAQ,EAAA,KAAA,EAAO,OAAS,EAAA,IAAA,GAAO,MAAO,CAAA,KAAA,CAAM,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA,GAAI,OAAS,EAAA,IAAA,GAAO,MAAO,CAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,GAAG,KAAQ,GAAA,KAAA,CAAM,MAAM,CAAC,CAAG,EAAA,IAAA,GAAO,IAAK,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AAC7L,EAAO,OAAA,IAAA,IAAQ,OAAO,CAAI,GAAA,IAAA,GAAO,aAAa,IAAM,EAAA,IAAA,EAAM,OAAO,OAAO,CAAA,CAAA;AAC1E;AACA,SAAS,UAAW,CAAA,KAAA,EAAO,MAAQ,EAAA,IAAA,EAAM,OAAO,OAAS,EAAA;AACvD,EAAO,OAAA,KAAA,GAAQ,CAAI,GAAA,IAAA,GAAO,MAAS,GAAA,KAAA,GAAQ,IAAO,GAAA,YAAA,CAAa,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA,OAAO,CAAI,GAAA,KAAA;AAClG;AACA,SAAS,WAAA,CAAY,MAAM,KAAO,EAAA,OAAA,GAAU,MAAM,EAAK,GAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACtE,EAAA,OAAO,YAAU,MAAU,IAAA,EAAE,WAAW,EAAM,IAAA,MAAA,KAAW,UAAU,UAAY,CAAA,CAAA,EAAA,GAAK,MAAQ,EAAA,OAAA,CAAQ,OAAO,EAAE,CAAA,EAAG,QAAQ,IAAM,EAAA,KAAA,EAAO,OAAO,CAAI,GAAA,EAAA;AAClJ;AACA,SAAS,IAAA,CAAK,IAAM,EAAA,KAAA,EAAO,OAAS,EAAA;AAClC,EAAA,OAAO,YAAY,CAAQ,KAAA,EAAA,IAAI,KAAK,CAAQ,KAAA,EAAA,KAAK,KAAK,OAAO,CAAA;AAC/D;AACA,IAAM,SAAY,GAAA;AAAA,EAChB,KAAA,EAAO,IAAK,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAChB,IAAM,EAAA,IAAA,CAAK,CAAG,EAAA,EAAA,EAAI,iBAAiB,CAAA;AAAA,EACnC,GAAK,EAAA,IAAA,CAAK,CAAG,EAAA,EAAA,EAAI,iBAAiB,CAAA;AAAA,EAClC,MAAA,EAAQ,IAAK,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,EAClB,SAAA,EAAW,IAAK,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,EACrB,OAAA,EAAS,IAAK,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,EACnB,MAAA,EAAQ,IAAK,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,EAClB,aAAA,EAAe,IAAK,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,EACzB,KAAA,EAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAClB,GAAA,EAAK,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAChB,KAAA,EAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAClB,MAAA,EAAQ,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACnB,IAAA,EAAM,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACjB,OAAA,EAAS,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACpB,IAAA,EAAM,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACjB,KAAA,EAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAClB,IAAA,EAAM,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACjB,OAAA,EAAS,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACpB,KAAA,EAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAClB,OAAA,EAAS,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACpB,QAAA,EAAU,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACrB,MAAA,EAAQ,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACnB,SAAA,EAAW,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACtB,MAAA,EAAQ,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACnB,OAAA,EAAS,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACpB,WAAA,EAAa,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACxB,SAAA,EAAW,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACtB,WAAA,EAAa,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACxB,YAAA,EAAc,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACzB,UAAA,EAAY,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACvB,aAAA,EAAe,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EAC1B,UAAA,EAAY,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACvB,WAAA,EAAa,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA;AAAA,EACxB,aAAA,EAAe,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC3B,WAAA,EAAa,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EACzB,aAAA,EAAe,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC3B,cAAA,EAAgB,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC5B,YAAA,EAAc,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC1B,eAAA,EAAiB,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC7B,YAAA,EAAc,IAAK,CAAA,GAAA,EAAK,EAAE,CAAA;AAAA,EAC1B,aAAA,EAAe,IAAK,CAAA,GAAA,EAAK,EAAE;AAC7B,CAAA;AACA,SAAS,YAAA,CAAa,WAAW,gBAAkB,EAAA;AACjD,EAAA,OAAO,QAAW,GAAA,SAAA,GAAY,MAAO,CAAA,WAAA,CAAY,OAAO,IAAK,CAAA,SAAS,CAAE,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA,CAAC,GAAK,EAAA,MAAM,CAAC,CAAC,CAAA;AACnG;AACA,IAAM,SAAS,YAAa,EAAA;AAC5B,SAAS,QAAA,CAAS,KAAO,EAAA,QAAA,GAAW,OAAS,EAAA;AAC3C,EAAA,OAAO,MAAO,CAAA,KAAK,CAAK,IAAA,MAAA,CAAO,QAAQ,CAAA;AACzC;AAIA,IAAM,SAAA,GAAY,CAAC,MAAO,CAAA,GAAA,CAAA,mHAAA,CAAA,EAA0H,OAAO,GAA0D,CAAA,qDAAA,CAAA,CAAA,CAAE,KAAK,GAAG,CAAA;AAC/N,SAAS,UAAU,IAAM,EAAA;AACvB,EAAA,OAAO,KAAK,OAAQ,CAAA,IAAI,OAAO,SAAW,EAAA,GAAG,GAAG,EAAE,CAAA;AACpD;AAmDA,IAAM,eAAkB,GAAA;AAAA,EACtB,KAAO,EAAA;AAAA,IACL,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,WAAa,EAAA;AAAA,IACX,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA,GACL;AAAA,EACA,OAAS,EAAA;AAAA,IACP,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,QAAA;AAAA,IACJ,CAAG,EAAA,QAAA;AAAA,IACH,CAAG,EAAA;AAAA;AAEP,CAAA;AACA,IAAM,YAAe,GAAA;AAAA,EACnB,WAAa,EAAA,OAAA;AAAA,EACb,WAAa,EAAA,SAAA;AAAA,EACb,MAAQ,EAAA,QAAA;AAAA,EACR,OAAS,EAAA,CAAA;AAAA,EACT,UAAY,EAAA,CAAA;AAAA,EACZ,SAAW,EAAA,CAAA;AAAA,EACX,YAAc,EAAA;AAChB,CAAA;AACA,SAAS,GAAI,CAAA,IAAA,EAAM,KAAQ,GAAA,EAAI,EAAA;AAC7B,EAAA,MAAM,IAAO,GAAA;AAAA,IACX,GAAG,KAAA;AAAA,IACH,KAAO,EAAA;AAAA,MACL,GAAG,YAAA;AAAA,MACH,GAAG,KAAM,CAAA;AAAA;AACX,GACF;AACA,EAAM,MAAA,SAAA,GAAY,IAAK,CAAA,KAAA,CAAM,IAAI,CAAA;AACjC,EAAA,MAAM,WAAW,EAAC;AAClB,EAAA,MAAM,MAAS,GAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,WAAW,CAAA;AAC9C,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,GAAI,OAAO,IAAK,CAAA,KAAA,CAAM,gBAAgB,QAAW,GAAA,eAAA,CAAgB,IAAK,CAAA,KAAA,CAAM,WAAW,CAAA,IAAK,eAAgB,CAAA,KAAA,GAAQ,KAAK,KAAM,CAAA;AAAA,GACjI;AACA,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,KAAA,MAAW,OAAO,WAAa,EAAA;AAC7B,MAAA,WAAA,CAAY,GAAG,CAAA,GAAI,MAAO,CAAA,WAAA,CAAY,GAAG,CAAC,CAAA;AAAA;AAC5C;AAEF,EAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,KAAA,CAAM,OAAU,GAAA,CAAA,KAAM,CAAI,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,GAAU,IAAK,CAAA,KAAA,CAAM,OAAU,GAAA,CAAA;AAC/F,EAAM,MAAA,MAAA,GAAS,UAAU,MAAS,GAAA,aAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,KAAK,GAAI,CAAA,GAAG,UAAU,GAAI,CAAA,CAAA,IAAA,KAAQ,UAAU,IAAI,CAAA,CAAE,MAAM,CAAG,EAAA,IAAA,CAAK,QAAQ,SAAU,CAAA,IAAA,CAAK,KAAK,CAAE,CAAA,MAAA,GAAS,CAAC,CAAI,GAAA,aAAA;AAC1H,EAAA,MAAM,cAAc,KAAQ,GAAA,aAAA;AAC5B,EAAM,MAAA,SAAA,GAAY,IAAK,CAAA,KAAA,CAAM,UAAa,GAAA,CAAA,GAAI,IAAI,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,UAAU,CAAI,GAAA,EAAA;AAClF,EAAI,IAAA,IAAA,CAAK,KAAM,CAAA,SAAA,GAAY,CAAG,EAAA;AAC5B,IAAA,QAAA,CAAS,KAAK,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA;AAE/C,EAAA,IAAI,KAAK,KAAO,EAAA;AACd,IAAA,MAAM,QAAQ,MAAS,GAAA,MAAA,CAAO,IAAK,CAAA,KAAK,IAAI,IAAK,CAAA,KAAA;AACjD,IAAA,MAAMC,KAAO,GAAA,WAAA,CAAY,CAAE,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAA,CAAO,KAAQ,GAAA,SAAA,CAAU,IAAK,CAAA,KAAK,CAAE,CAAA,MAAA,IAAU,CAAC,CAAC,CAAA;AACxF,IAAA,MAAMC,MAAQ,GAAA,WAAA,CAAY,CAAE,CAAA,MAAA,CAAO,QAAQ,SAAU,CAAA,IAAA,CAAK,KAAK,CAAA,CAAE,MAAS,GAAA,SAAA,CAAUD,KAAI,CAAA,CAAE,SAAS,aAAa,CAAA;AAChH,IAAA,QAAA,CAAS,IAAK,CAAA,CAAA,EAAG,SAAS,CAAA,EAAG,YAAY,EAAE,CAAA,EAAGA,KAAI,CAAA,EAAG,KAAK,CAAGC,EAAAA,MAAK,CAAG,EAAA,WAAA,CAAY,EAAE,CAAE,CAAA,CAAA;AAAA,GAChF,MAAA;AACL,IAAA,QAAA,CAAS,IAAK,CAAA,CAAA,EAAG,SAAS,CAAA,EAAG,YAAY,EAAE,CAAA,EAAG,WAAY,CAAA,CAAA,CAAE,OAAO,WAAW,CAAC,CAAG,EAAA,WAAA,CAAY,EAAE,CAAE,CAAA,CAAA;AAAA;AAEpG,EAAM,MAAA,YAAA,GAAe,KAAK,KAAM,CAAA,MAAA,KAAW,WAAW,IAAK,CAAA,KAAA,CAAA,CAAO,SAAS,SAAU,CAAA,MAAA,IAAU,CAAC,CAAI,GAAA,IAAA,CAAK,MAAM,MAAW,KAAA,KAAA,GAAQ,SAAS,SAAU,CAAA,MAAA,GAAS,aAAgB,GAAA,MAAA,GAAS,SAAU,CAAA,MAAA;AACjM,EAAA,KAAA,IAASN,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,MAAA,EAAQA,EAAK,EAAA,EAAA;AAC/B,IAAA,IAAIA,EAAI,GAAA,YAAA,IAAgBA,EAAK,IAAA,YAAA,GAAe,UAAU,MAAQ,EAAA;AAC5D,MAAA,QAAA,CAAS,IAAK,CAAA,CAAA,EAAG,SAAS,CAAA,EAAG,YAAY,CAAC,CAAA,EAAG,GAAI,CAAA,MAAA,CAAO,WAAW,CAAC,CAAG,EAAA,WAAA,CAAY,CAAC,CAAE,CAAA,CAAA;AAAA,KACjF,MAAA;AACL,MAAM,MAAA,IAAA,GAAO,SAAUA,CAAAA,EAAAA,GAAI,YAAY,CAAA;AACvC,MAAMK,MAAAA,KAAAA,GAAO,GAAI,CAAA,MAAA,CAAO,aAAa,CAAA;AACrC,MAAA,MAAMC,SAAQ,GAAI,CAAA,MAAA,CAAO,QAAQ,SAAU,CAAA,IAAI,EAAE,MAAM,CAAA;AACvD,MAAA,QAAA,CAAS,IAAK,CAAA,CAAA,EAAG,SAAS,CAAA,EAAG,YAAY,CAAC,CAAA,EAAGD,KAAI,CAAA,EAAG,IAAI,CAAGC,EAAAA,MAAK,CAAG,EAAA,WAAA,CAAY,CAAC,CAAE,CAAA,CAAA;AAAA;AACpF;AAEF,EAAA,QAAA,CAAS,IAAK,CAAA,CAAA,EAAG,SAAS,CAAA,EAAG,YAAY,EAAE,CAAA,EAAG,WAAY,CAAA,CAAA,CAAE,OAAO,WAAW,CAAC,CAAG,EAAA,WAAA,CAAY,EAAE,CAAE,CAAA,CAAA;AAClG,EAAI,IAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,CAAG,EAAA;AAC/B,IAAA,QAAA,CAAS,KAAK,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,YAAY,CAAC,CAAA;AAAA;AAElD,EAAO,OAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAC3B;AC1PA,IAAM,CAAA,mBAAW,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAA5B,IACE,CAAI,GAAA,CAAA,CAAA,KAAK,UAAW,CAAA,OAAA,EAAS,OAAO,SAAY,IAAO,UAAW,CAAA,IAAA,EAAM,IAAI,QAAS,EAAA,IAAK,UAAW,CAAA,OAAA,KAAY,IAAI,CAAI,GAAA,UAAA,CAAA;AAD3H,IAEE,CAAA,GAAI,IAAI,KAAA,CAAM,CAAG,EAAA;AAAA,EACf,GAAA,CAAI,GAAGC,EAAG,EAAA;AACR,IAAA,OAAO,CAAE,EAAA,CAAEA,EAAC,CAAA,IAAK,EAAEA,EAAC,CAAA;AAAA,GACtB;AAAA,EACA,GAAA,CAAI,GAAGA,EAAG,EAAA;AACR,IAAA,MAAM,IAAI,CAAE,EAAA;AACZ,IAAOA,OAAAA,EAAAA,IAAK,KAAKA,EAAK,IAAA,CAAA;AAAA,GACxB;AAAA,EACA,GAAA,CAAI,CAAGA,EAAAA,EAAAA,EAAG,CAAG,EAAA;AACX,IAAM,MAAA,CAAA,GAAI,EAAE,IAAI,CAAA;AAChB,IAAO,OAAA,CAAA,CAAEA,EAAC,CAAA,GAAI,CAAG,EAAA,IAAA;AAAA,GACnB;AAAA,EACA,cAAA,CAAe,GAAGA,EAAG,EAAA;AACnB,IAAI,IAAA,CAACA,IAAU,OAAA,KAAA;AACf,IAAM,MAAA,CAAA,GAAI,EAAE,IAAI,CAAA;AAChB,IAAO,OAAA,OAAO,CAAEA,CAAAA,EAAC,CAAG,EAAA,IAAA;AAAA,GACtB;AAAA,EACA,OAAU,GAAA;AACR,IAAM,MAAA,CAAA,GAAI,EAAE,IAAI,CAAA;AAChB,IAAO,OAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAExB,CAAC,CAAA;AAvBH,IAwBE,CAAA,GAAI,OAAO,OAAU,GAAA,GAAA,IAAO,QAAQ,GAAO,IAAA,OAAA,CAAQ,IAAI,QAAY,IAAA,EAAA;AAxBrE,IAyBE,IAAI,CAAC,CAAC,UAAU,CAAG,EAAA,CAAC,eAAe,YAAc,EAAA;AAAA,EAC/C,EAAI,EAAA;AACN,CAAC,GAAG,CAAC,iBAAA,EAAmB,oCAAoC,CAAG,EAAA,CAAC,gBAAgB,uCAAuC,CAAA,EAAG,CAAC,WAAa,EAAA,cAAc,GAAG,CAAC,QAAA,EAAU,gBAAgB,CAAG,EAAA,CAAC,aAAa,kBAAkB,CAAA,EAAG,CAAC,SAAA,EAAW,YAAY,CAAG,EAAA,CAAC,SAAS,oBAAoB,CAAA,EAAG,CAAC,WAAW,CAAA,EAAG,CAAC,QAAU,EAAA,UAAU,GAAG,CAAC,QAAA,EAAU,WAAW,CAAG,EAAA,CAAC,oBAAoB,UAAY,EAAA;AAAA,EACrX,EAAI,EAAA;AACN,CAAC,CAAA,EAAG,CAAC,WAAA,EAAa,qBAAqB,CAAA,EAAG,CAAC,WAAa,EAAA,aAAa,CAAG,EAAA,CAAC,OAAO,CAAA,EAAG,CAAC,OAAS,EAAA,mBAAmB,CAAG,EAAA,CAAC,OAAO,CAAA,EAAG,CAAC,gBAAgB,CAAA,EAAG,CAAC,QAAA,EAAU,WAAW,CAAA,EAAG,CAAC,QAAU,EAAA,qBAAqB,CAAG,EAAA,CAAC,MAAQ,EAAA,mBAAmB,GAAG,CAAC,SAAS,CAAG,EAAA,CAAC,QAAU,EAAA,YAAY,GAAG,CAAC,SAAA,EAAW,aAAa,CAAA,EAAG,CAAC,QAAQ,CAAG,EAAA,CAAC,SAAS,CAAA,EAAG,CAAC,SAAA,EAAW,eAAiB,EAAA;AAAA,EACpW,EAAI,EAAA;AACN,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,QAAQ,GAAG,CAAC,MAAA,EAAQ,QAAQ,CAAA,EAAG,CAAC,WAAW,CAAA,EAAG,CAAC,aAAa,CAAA,EAAG,CAAC,WAAW,CAAA,EAAG,CAAC,QAAA,EAAU,QAAQ,CAAG,EAAA,CAAC,SAAS,CAAG,EAAA,CAAC,YAAY,kBAAkB,CAAA,EAAG,CAAC,QAAQ,GAAG,CAAC,QAAA,EAAU,aAAa,CAAG,EAAA,CAAC,UAAU,QAAU,EAAA;AAAA,EACjO,EAAI,EAAA;AACN,CAAC,CAAA,EAAG,CAAC,QAAA,EAAU,YAAc,EAAA;AAAA,EAC3B,EAAI,EAAA;AACN,CAAC,GAAG,CAAC,WAAA,EAAa,oBAAoB,CAAG,EAAA,CAAC,eAAe,iBAAmB,EAAA;AAAA,EAC1E,EAAI,EAAA;AACN,CAAC,CAAA,EAAG,CAAC,aAAA,EAAe,kBAAoB,EAAA;AAAA,EACtC,EAAI,EAAA;AACN,CAAC,CAAG,EAAA,CAAC,YAAY,CAAA,EAAG,CAAC,UAAU,CAAA,EAAG,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAG,EAAA,CAAC,cAAc,mBAAqB,EAAA;AAAA,EAC5F,EAAI,EAAA;AACN,CAAC,CAAG,EAAA,CAAC,SAAW,EAAA,oBAAoB,GAAG,CAAC,SAAA,EAAW,oBAAoB,CAAA,EAAG,CAAC,aAAe,EAAA,oBAAoB,CAAG,EAAA,CAAC,wBAAwB,sBAAwB,EAAA;AAAA,EAChK,EAAI,EAAA;AACN,CAAC,CAAC,CAAA;AACJ,SAAS,CAAI,GAAA;AACX,EAAA,IAAI,UAAW,CAAA,OAAA,EAAS,GAAK,EAAA,KAAA,MAAW,KAAK,CAAG,EAAA;AAC9C,IAAA,MAAMA,EAAI,GAAA,CAAA,CAAE,CAAC,CAAA,IAAK,EAAE,CAAC,CAAA;AACrB,IAAA,IAAI,UAAW,CAAA,OAAA,EAAS,GAAIA,CAAAA,EAAC,GAAU,OAAA;AAAA,MACrC,IAAM,EAAA,CAAA,CAAE,CAAC,CAAA,CAAE,WAAY,EAAA;AAAA,MACvB,GAAG,EAAE,CAAC;AAAA,KACR;AAAA;AAEF,EAAO,OAAA,UAAA,CAAW,SAAS,GAAK,EAAA,KAAA,KAAU,cAAc,UAAW,CAAA,OAAA,EAAS,UAAU,YAAe,GAAA;AAAA,IACnG,IAAM,EAAA,YAAA;AAAA,IACN,EAAI,EAAA;AAAA,GACF,GAAA;AAAA,IACF,IAAM,EAAA,EAAA;AAAA,IACN,EAAI,EAAA;AAAA,GACN;AACF;AACA,IAAM,IAAI,CAAE,EAAA;AACZ,CAAE,CAAA,IAAA;AACF,SAAS,EAAE,CAAG,EAAA;AACZ,EAAO,OAAA,CAAA,GAAI,MAAM,OAAU,GAAA,KAAA;AAC7B;AACA,IAAM,CAAA,GAAI,UAAW,CAAA,OAAA,EAAS,QAAY,IAAA,EAAA;AAA1C,IACE,IAAI,CAAE,CAAA,CAAA,CAAE,EAAE,CAAA,IAAK,EAAE,EAAO,KAAA,KAAA;AAD1B,IAEE,CAAA,GAAI,EAAE,UAAW,CAAA,OAAA,EAAS,UAAU,UAAW,CAAA,OAAA,EAAS,OAAO,KAAK,CAAA;AAFtE,IAGE,CAAA,GAAI,CAAE,CAAA,CAAA,CAAE,KAAK,CAAA;AAHf,IAIE,CAAI,GAAA,CAAA,KAAM,MAAU,IAAA,CAAA,CAAE,EAAE,IAAI,CAAA;AAC9B,CAAA,CAAE,CAAE,CAAA,OAAO,CAAK,IAAA,CAAA,IAAK,KAAK,CAAC,CAAA;AAC3B,IAAM,CAAA,GAAI,OAAQ,CAAA,IAAA,CAAK,CAAC,CAAA;AACxB,CAAC,CAAE,CAAA,CAAA,CAAE,QAAQ,CAAA,KAAM,CAAE,CAAA,CAAA,CAAE,WAAW,CAAA,IAAA,CAAM,CAAK,IAAA,CAAA,KAAM,CAAE,CAAA,IAAA,KAAS,MAAU,IAAA,CAAA,CAAA;AACxE,IAAM,CAAA,GAAA,CAAK,WAAW,OAAS,EAAA,QAAA,EAAU,QAAQ,EAAI,EAAA,OAAA,CAAQ,IAAM,EAAA,EAAE,CAAK,IAAA,IAAA;AAC1E,MAAA,CAAO,GAAG,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAK,IAAA,IAAA;AAC5B,IAAM,CAAI,GAAA,UAAA,CAAW,OAAW,oBAAA,MAAA,CAAO,OAAO,IAAI,CAAA;AAAlD,IACE,CAAI,GAAA;AAAA,EACF,UAAU;AACZ,CAAA;AACF,IAAI,MAAM,CAAG,EAAA;AAAA,EACX,GAAA,CAAI,GAAGA,EAAG,EAAA;AACR,IAAIA,IAAAA,EAAAA,KAAM,OAAc,OAAA,CAAA;AACxB,IAAA,IAAIA,EAAK,IAAA,CAAA,EAAU,OAAA,CAAA,CAAEA,EAAC,CAAA;AACtB,IAAA,IAAIA,EAAK,IAAA,CAAA,EAAU,OAAA,CAAA,CAAEA,EAAC,CAAA;AAAA;AAE1B,CAAC,CAAA;AACD,IAAM,CAAI,GAAA,UAAA,CAAW,OAAS,EAAA,OAAA,EAAS,IAAS,KAAA,MAAA;AAAhD,IACE,CAAA,GAAI,CAAC,CAAC,UAAA,CAAW,OAAO,CAAC,CAAC,UAAW,CAAA,OAAA,EAAS,QAAU,EAAA,GAAA;AAD1D,IAEE,CAAA,GAAI,CAAC,CAAC,UAAW,CAAA,IAAA;AAFnB,IAGE,CAAA,GAAI,CAAC,CAAC,UAAW,CAAA,MAAA;AAHnB,IAIE,CAAA,GAAI,CAAC,CAAC,UAAW,CAAA,OAAA;AAJnB,IAKE,CAAA,GAAI,CAAC,CAAC,UAAW,CAAA,WAAA;AALnB,IAME,CAAA,GAAI,UAAW,CAAA,SAAA,EAAW,SAAc,KAAA,oBAAA;AAN1C,IAOE,CAAI,GAAA,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,CAAC,CAAA,EAAG,YAAY,CAAA,EAAG,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,CAAC,CAAA,EAAG,QAAQ,CAAA,EAAG,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,CAAC,CAAA,EAAG,MAAM,CAAC,CAAA;AAC7G,SAAS,CAAI,GAAA;AACX,EAAA,MAAM,IAAI,CAAE,CAAA,IAAA,CAAK,CAAAA,EAAKA,KAAAA,EAAAA,CAAE,CAAC,CAAC,CAAA;AAC1B,EAAA,IAAI,GAAU,OAAA;AAAA,IACZ,IAAA,EAAM,EAAE,CAAC;AAAA,GACX;AACF;AACA,IAAM,IAAI,CAAE,EAAA;AACZ,CAAA,EAAG,IAAQ,IAAA,EAAA;AACX,SAASC,UAAU,CAAA;AAAA,EACjB,SAAY,GAAA;AACd,CAAA,GAAI,EAAI,EAAA;AAEN,EAAA,MAAM,EAAK,GAAA,oCAAA;AACX,EAAM,MAAA,OAAA,GAAU,CAAC,CAAuH,oHAAA,EAAA,EAAE,KAAK,0DAA0D,CAAA,CAAE,KAAK,GAAG,CAAA;AACnN,EAAA,OAAO,IAAI,MAAA,CAAO,OAAS,EAAA,SAAA,GAAY,SAAY,GAAG,CAAA;AACxD;AACA,IAAM,QAAQA,UAAU,EAAA;AACxB,SAASC,WAAU,MAAQ,EAAA;AACzB,EAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAgC,6BAAA,EAAA,OAAO,MAAM,CAAI,EAAA,CAAA,CAAA;AAAA;AAMvE,EAAO,OAAA,MAAA,CAAO,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA;AACjC;AAIA,SAAS,YAAY,CAAG,EAAA;AACtB,EAAA,OAAO,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,MAAM,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,KAAM,OAAQ,CAAM,KAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAK,IAAA,GAAA,IAAQ,CAAK,IAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,CAAK,IAAA,GAAA,IAAQ,CAAK,IAAA,GAAA,IAAQ,CAAM,KAAA,GAAA,IAAQ,MAAM,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,IAAK,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,KAAM,GAAQ,IAAA,CAAA,KAAM,OAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,MAAM,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,OAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,MAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,OAAS,CAAM,KAAA,GAAA,IAAS,CAAM,KAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,MAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,KAAM,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,IAAK,GAAS,IAAA,CAAA,IAAK,OAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAK,IAAA,GAAA,IAAS,CAAM,KAAA,IAAA,IAAS,KAAK,IAAS,IAAA,CAAA,IAAK,IAAS,IAAA,CAAA,KAAM,IAAS,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,QAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,MAAM,KAAU,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAM,KAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,OAAW,IAAA,CAAA,IAAK,WAAY,CAAK,IAAA,OAAA;AACxjI;AACA,SAAS,YAAY,CAAG,EAAA;AACtB,EAAO,OAAA,CAAA,KAAM,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA;AAC3E;AACA,SAAS,OAAO,CAAG,EAAA;AACjB,EAAO,OAAA,CAAA,IAAK,QAAU,CAAK,IAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,KAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,IAAK,IAAU,IAAA,CAAA,KAAM,QAAU,CAAK,IAAA,IAAA,IAAU,CAAK,IAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,MAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,IAAU,IAAA,CAAA,KAAM,QAAU,CAAM,KAAA,IAAA,IAAU,MAAM,KAAU,IAAA,CAAA,KAAM,SAAU,CAAM,KAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,MAAM,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,KAAM,SAAU,CAAM,KAAA,KAAA,IAAU,CAAM,KAAA,KAAA,IAAU,CAAM,KAAA,KAAA,IAAU,MAAM,KAAU,IAAA,CAAA,KAAM,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,KAAK,KAAU,IAAA,CAAA,IAAK,SAAU,CAAK,IAAA,KAAA,IAAU,CAAK,IAAA,KAAA,IAAW,CAAK,IAAA,KAAA,IAAW,MAAM,KAAW,IAAA,CAAA,KAAM,KAAW,IAAA,CAAA,IAAK,KAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,KAAM,MAAW,IAAA,CAAA,KAAM,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,KAAM,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,MAAM,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,MAAM,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAM,KAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,MAAM,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,KAAM,UAAW,CAAM,KAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,CAAM,KAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,KAAM,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,KAAM,MAAW,IAAA,CAAA,KAAM,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAM,KAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,KAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,MAAW,IAAA,CAAA,IAAK,UAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA,IAAW,CAAK,IAAA,MAAA;AAC3wG;AACA,SAAS,SAAS,SAAW,EAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,CAAO,aAAc,CAAA,SAAS,CAAG,EAAA;AACpC,IAAA,MAAM,IAAI,SAAA,CAAU,CAAgC,6BAAA,EAAA,OAAO,SAAS,CAAK,GAAA,CAAA,CAAA;AAAA;AAE7E;AACA,SAAS,eAAe,SAAW,EAAA;AAAA,EACjC,eAAkB,GAAA;AACpB,CAAA,GAAI,EAAI,EAAA;AACN,EAAA,QAAA,CAAS,SAAS,CAAA;AAClB,EAAI,IAAA,WAAA,CAAY,SAAS,CAAK,IAAA,MAAA,CAAO,SAAS,CAAK,IAAA,eAAA,IAAmB,WAAY,CAAA,SAAS,CAAG,EAAA;AAC5F,IAAO,OAAA,CAAA;AAAA;AAET,EAAO,OAAA,CAAA;AACT;AACA,IAAM,aAAa,MAAM;AAEvB,EAAO,OAAA,0gZAAA;AACT,CAAA;AACA,IAAM,YAAY,UAAW,CAAA,IAAA,EAAM,YAAY,IAAI,IAAA,CAAK,WAAc,GAAA;AAAA,EACpE,OAAS,EAAA,CAAA,GAAA,KAAO,GAAI,CAAA,KAAA,CAAM,EAAE;AAC9B,CAAA;AACA,IAAM,8BAAiC,GAAA,qCAAA;AACvC,SAAS,aAAc,CAAA,MAAA,EAAQ,OAAU,GAAA,EAAI,EAAA;AAC3C,EAAA,IAAI,OAAO,MAAA,KAAW,QAAY,IAAA,MAAA,CAAO,WAAW,CAAG,EAAA;AACrD,IAAO,OAAA,CAAA;AAAA;AAET,EAAM,MAAA;AAAA,IACJ,iBAAoB,GAAA,IAAA;AAAA,IACpB,oBAAuB,GAAA;AAAA,GACrB,GAAA,OAAA;AACJ,EAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,IAAA,MAAA,GAASA,WAAU,MAAM,CAAA;AAAA;AAE3B,EAAI,IAAA,MAAA,CAAO,WAAW,CAAG,EAAA;AACvB,IAAO,OAAA,CAAA;AAAA;AAET,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAA,MAAM,qBAAwB,GAAA;AAAA,IAC5B,iBAAiB,CAAC;AAAA,GACpB;AACA,EAAW,KAAA,MAAA;AAAA,IACT,OAAS,EAAA;AAAA,GACN,IAAA,SAAA,CAAU,OAAQ,CAAA,MAAM,CAAG,EAAA;AAC9B,IAAM,MAAA,SAAA,GAAY,SAAU,CAAA,WAAA,CAAY,CAAC,CAAA;AAGzC,IAAA,IAAI,SAAa,IAAA,EAAA,IAAQ,SAAa,IAAA,GAAA,IAAQ,aAAa,GAAM,EAAA;AAC/D,MAAA;AAAA;AAIF,IAAA,IAAI,SAAa,IAAA,IAAA,IAAW,SAAa,IAAA,IAAA,IACtC,cAAc,KACf,EAAA;AACA,MAAA;AAAA;AAIF,IAAA,IAAI,aAAa,GAAU,IAAA,SAAA,IAAa,OACrC,SAAa,IAAA,IAAA,IAAW,aAAa,IACrC,IAAA,SAAA,IAAa,QAAW,SAAa,IAAA,IAAA,IACrC,aAAa,IAAW,IAAA,SAAA,IAAa,QACrC,SAAa,IAAA,KAAA,IAAW,aAAa,KACtC,EAAA;AACA,MAAA;AAAA;AAIF,IAAI,IAAA,SAAA,IAAa,KAAW,IAAA,SAAA,IAAa,KAAS,EAAA;AAChD,MAAA;AAAA;AAIF,IAAI,IAAA,SAAA,IAAa,KAAW,IAAA,SAAA,IAAa,KAAS,EAAA;AAChD,MAAA;AAAA;AAIF,IAAI,IAAA,8BAAA,CAA+B,IAAK,CAAA,SAAS,CAAG,EAAA;AAClD,MAAA;AAAA;AAIF,IAAA,IAAI,UAAW,EAAA,CAAE,IAAK,CAAA,SAAS,CAAG,EAAA;AAChC,MAAS,KAAA,IAAA,CAAA;AACT,MAAA;AAAA;AAEF,IAAS,KAAA,IAAA,cAAA,CAAe,WAAW,qBAAqB,CAAA;AAAA;AAE1D,EAAO,OAAA,KAAA;AACT;AACA,SAAS,kBAAqB,GAAA;AAC5B,EAAM,MAAA;AAAA,IACJ,GAAAC,EAAAA;AAAA,GACE,GAAAC,oBAAA;AACJ,EAAM,MAAA;AAAA,IACJ,IAAA;AAAA,IACA;AAAA,GACED,GAAAA,IAAAA;AACJ,EAAI,IAAAC,oBAAA,CAAI,aAAa,OAAS,EAAA;AAC5B,IAAA,OAAO,IAAS,KAAA,OAAA;AAAA;AAElB,EAAO,OAAA,OAAA,CAAQD,IAAI,CAAA,UAAU,CAC1B,IAAA,OAAA,CAAQA,KAAI,gBAAgB,CAAA,IAC5BA,IAAI,CAAA,UAAA,KAAe,cACnB,IAAA,YAAA,KAAiB,sBAAsB,YAAiB,KAAA,QAAA,IAAY,IAAS,KAAA,gBAAA,IAAoB,IAAS,KAAA,WAAA,IAAe,SAAS,cAAkB,IAAA,IAAA,KAAS,uBAA2BA,IAAAA,IAAAA,CAAI,iBAAsB,KAAA,oBAAA;AACvN;AACA,IAAM,cAAiB,GAAA;AAAA,EACrB,IAAM,EAAA,MAAA;AAAA,EACN,IAAM,EAAA,KAAA;AAAA,EACN,OAAS,EAAA,OAAA;AAAA,EACT,KAAO,EAAA,OAAA;AAAA,EACP,KAAO,EAAA;AACT,CAAA;AACA,IAAM,eAAkB,GAAA;AAAA,EACtB,CAAG,EAAA,KAAA;AAAA,EACH,CAAG,EAAA;AACL,CAAA;AACA,IAAM,UAAU,kBAAmB,EAAA;AACnC,IAAM,CAAI,GAAA,CAACX,EAAG,EAAA,QAAA,KAAa,UAAUA,EAAI,GAAA,QAAA;AACzC,IAAM,UAAa,GAAA;AAAA,EACjB,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,MAAM,CAAA;AAAA,EACzB,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,MAAM,CAAA;AAAA,EACzB,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC3B,IAAA,EAAM,CAAE,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC1B,IAAA,EAAM,CAAE,CAAA,QAAA,EAAU,GAAG,CAAA;AAAA,EACrB,OAAA,EAAS,CAAE,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC7B,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,GAAG,CAAA;AAAA,EACtB,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC3B,IAAA,EAAM,CAAE,CAAA,QAAA,EAAU,MAAM,CAAA;AAAA,EACxB,KAAA,EAAO,CAAE,CAAA,QAAA,EAAU,GAAG,CAAA;AAAA,EACtB,GAAK,EAAA;AACP,CAAA;AACA,SAAS,YAAY,GAAK,EAAA;AACxB,EAAM,MAAA,MAAA,GAAS,OAAO,IAAS,KAAA,QAAA;AAC/B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,CAAK,SAAW,EAAA;AAC9B,IAAO,OAAA,SAAA,CAAY,GAAG,CAAE,CAAA,MAAA;AAAA;AAE1B,EAAA,OAAO,cAAc,GAAG,CAAA;AAC1B;AACA,IAAM,aAAA,GAAN,cAA4B,aAAc,CAAA;AAAA,EACxC,WAAA,CAAY,KAAO,EAAA,OAAA,EAAS,IAAM,EAAA;AAChC,IAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAQ,IAAM,EAAA,UAAA,IAAc,KAAK,CAAC,CAAA;AACtD,IAAO,OAAA;AAAA,EACT,MAAM,CAAA,CAAA,GAAK,UAAW,CAAA,KAAA,EAAO,OAAO,CAAA,CAAE,GAAI,CAAA,CAAA,IAAA,KAAQ,IAAO,GAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,EAAS,OAAK,MAAO,CAAA,IAAA,CAAK,CAAC,CAAC,CAAE,CAAA,OAAA,CAAQ,UAAY,EAAA,CAACa,IAAG,CAAM,KAAA,CAAA,CAAA,EAAI,MAAO,CAAA,IAAA,CAAK,CAAC,CAAC,CAAG,CAAA,CAAA,CAAC,EAAE,IAAK,CAAA;AAAA,EAC/J,MAAM,CAAE,CAAA,CAAA;AAAA;AACR,EACA,UAAA,CAAW,MAAQ,EAAA,OAAA,EAAS,IAAM,EAAA;AAChC,IAAM,MAAA,SAAA,GAAY,eAAe,MAAO,CAAA,IAAI,KAAK,eAAgB,CAAA,MAAA,CAAO,KAAK,CAAK,IAAA,MAAA;AAClF,IAAA,IAAI,OAAS,EAAA;AACX,MAAO,OAAA,UAAA,CAAW,SAAS,CAAA,CAAE,MAAO,CAAA,KAAA,CAAM,CAAI,CAAA,EAAA,MAAA,CAAO,IAAK,CAAA,WAAA,EAAa,CAAA,CAAA,CAAG,CAAC,CAAA;AAAA;AAE7E,IAAA,MAAM,KAAQ,GAAA,OAAO,UAAW,CAAA,MAAA,CAAO,IAAI,CAAA,KAAM,QAAW,GAAA,UAAA,CAAW,MAAO,CAAA,IAAI,CAAI,GAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,IAAA;AAC5G,IAAA,OAAO,KAAQC,GAAAA,SAAAA,CAAS,SAAS,CAAA,CAAE,KAAK,CAAI,GAAA,EAAA;AAAA;AAC9C,EACA,YAAA,CAAa,QAAQ,IAAM,EAAA;AACzB,IAAA,MAAM,CAAC,OAAA,EAAS,GAAG,UAAU,CAAI,GAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAO,IAAM,EAAA,IAAI,CAAE,CAAA,KAAA,CAAM,IAAI,CAAA;AAC9E,IAAI,IAAA,MAAA,CAAO,SAAS,KAAO,EAAA;AACzB,MAAA,OAAO,GAAI,CAAA,eAAA,CAAgB,OAAW,IAAA,UAAA,CAAW,MAAS,GAAA,CAAA,GAAI,IAAO,GAAA,UAAA,CAAW,IAAK,CAAA,IAAI,CAAI,GAAA,EAAA,CAAG,CAAG,EAAA;AAAA,QACjG,OAAO,MAAO,CAAA,KAAA,GAAQ,eAAgB,CAAA,MAAA,CAAO,KAAK,CAAI,GAAA,MAAA;AAAA,QACtD,OAAO,MAAO,CAAA;AAAA,OACf,CAAA;AAAA;AAEH,IAAA,MAAM,IAAO,GAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAO,MAAM,IAAI,CAAA;AAC9C,IAAA,MAAM,WAAc,GAAA,IAAA,IAAQ,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA;AAC5C,IAAA,MAAM,OAAU,GAAA,MAAA,CAAO,KAAS,IAAA,MAAA,CAAO,KAAQ,GAAA,CAAA;AAC/C,IAAA,MAAM,IAAO,GAAA,IAAA,CAAK,UAAW,CAAA,MAAA,EAAQ,SAAS,IAAI,CAAA;AAClD,IAAA,MAAM,MAAM,MAAO,CAAA,GAAA,GAAM,OAAO,IAAK,CAAA,MAAA,CAAO,GAAG,CAAI,GAAA,EAAA;AACnD,IAAI,IAAA,IAAA;AACJ,IAAMR,MAAAA,KAAAA,GAAO,KAAK,aAAc,CAAA,CAAC,MAAM,eAAgB,CAAA,OAAO,CAAC,CAAC,CAAA;AAChE,IAAMC,MAAAA,MAAAA,GAAQ,IAAK,CAAA,aAAA,CAAc,IAAK,CAAA,OAAA,GAAU,CAAC,GAAA,EAAK,WAAW,CAAA,GAAI,CAAC,GAAG,CAAC,CAAA;AAC1E,IAAM,MAAA,KAAA,GAAA,CAAS,KAAK,OAAW,IAAA,CAAA,IAAK,YAAYD,KAAI,CAAA,GAAI,WAAYC,CAAAA,MAAK,CAAI,GAAA,CAAA;AAC7E,IAAO,IAAA,GAAA,KAAA,GAAQ,MAAM,IAAK,CAAA,OAAA,IAAW,MAAM,EAAKD,GAAAA,KAAAA,GAAO,IAAI,MAAO,CAAA,KAAK,IAAIC,MAASA,GAAAA,CAAAA,MAAAA,GAAQ,GAAG,MAAO,CAAA,IAAA,CAAK,IAAIA,MAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,GAAM,EAAMD,IAAAA,KAAAA;AACpI,IAAQ,IAAA,IAAA,eAAA,CAAgB,WAAW,MAAS,GAAA,CAAA,GAAI,OAAO,UAAW,CAAA,IAAA,CAAK,IAAI,CAAA,GAAI,EAAE,CAAA;AACjF,IAAI,IAAA,MAAA,CAAO,SAAS,OAAS,EAAA;AAC3B,MAAA,MAAM,IAAO,GAAA,IAAI,KAAM,CAAA,SAAA,GAAY,OAAO,OAAO,CAAA;AACjD,MAAA,IAAA,IAAQ,KAAK,WAAY,CAAA,IAAA,CAAK,KAAS,IAAA,EAAA,EAAI,KAAK,OAAO,CAAA;AAAA;AAEzD,IAAO,OAAA,OAAA,GAAU,IAAO,GAAA,IAAA,GAAO,IAAO,GAAA,IAAA;AAAA;AAE1C,CAAA;AACA,SAAS,gBAAgB,GAAK,EAAA;AAC5B,EAAO,OAAA,GAAA,CAAI,QAAQ,aAAe,EAAA,CAACO,IAAG,CAAM,KAAA,MAAA,CAAO,KAAK,CAAC,CAAC,EAAE,OAAQ,CAAA,mBAAA,EAAqB,CAACA,EAAG,EAAA,CAAA,KAAM,IAAI,MAAO,CAAA,SAAA,CAAU,CAAC,CAAC,CAAG,CAAA,CAAA,CAAA;AAC/H;AACA,SAASC,SAAAA,CAAS,QAAQ,OAAS,EAAA;AACjC,EAAO,OAAA,MAAA,CAAO,KAAK,CAAA,IAAK,MAAO,CAAA,KAAA;AACjC;AACA,SAAS,UAAA,CAAW,QAAQ,SAAW,EAAA;AACrC,EAAA,OAAO,MAAO,CAAA,CAAA,EAAA,EAAK,KAAM,CAAA,CAAC,EAAE,WAAY,EAAC,CAAG,EAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAC,CAAA,CAAE,KAAK,MAAO,CAAA,OAAA;AAC1E;AACA,SAASC,cAAAA,CAAc,OAAU,GAAA,EAAI,EAAA;AACnC,EAAA,IAAI,QAAQ,mBAAoB,EAAA;AAChC,EAAI,IAAA,OAAA,CAAQ,IAAI,aAAe,EAAA;AAC7B,IAAA,KAAA,GAAQ,MAAO,CAAA,QAAA,CAAS,OAAQ,CAAA,GAAA,CAAI,aAAa,CAAK,IAAA,KAAA;AAAA;AAExD,EAAA,MAAM,WAAW,aAAgB,CAAA;AAAA,IAC/B,KAAA;AAAA,IACA,QAAU,EAAA;AAAA,MACR;AAAA,KACF;AAAA,IACA,QAAQ,OAAQ,CAAA,MAAA;AAAA,IAChB,QAAQ,OAAQ,CAAA,MAAA;AAAA,IAChB,MAAQ,EAAA,CAAA,GAAI,IAAS,KAAA,OAAO,uBAAqB,CAAA,CAAE,IAAK,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,CAAO,GAAG,IAAI,CAAC,CAAA;AAAA,IAC9E,SAAW,EAAA,OAAA,CAAQ,SAAa,IAAA,CAAC,QAAQ,KAAS,IAAA,EAAE,CAAK,IAAA,CAAA,CAAA,GAAK,IAAI,aAAA,EAAkB,GAAA,IAAI,eAAe,CAAA;AAAA,IACvG,GAAG;AAAA,GACJ,CAAA;AACD,EAAO,OAAA,QAAA;AACT;AACA,SAAS,mBAAsB,GAAA;AAC7B,EAAA,IAAI,CAAG,EAAA;AACL,IAAA,OAAO,SAAU,CAAA,KAAA;AAAA;AAEnB,EAAA,IAAI,CAAG,EAAA;AACL,IAAA,OAAO,SAAU,CAAA,IAAA;AAAA;AAEnB,EAAA,OAAO,SAAU,CAAA,IAAA;AACnB;AACgBA,cAAc;;;ACjWvB,SAAS,UAAU,GAAK,EAAA;AAG7B,EAAA,MAAM,cAAc,GAAQ,KAAA,GAAA,CAAI,aAAiB,IAAA,GAAA,KAAQ,IAAI,WAAY,EAAA;AACzE,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAA,GAAA,GAAM,IAAI,WAAY,EAAA;AAAA;AAExB,EAAI,IAAA,GAAA,CAAI,QAAQ,GAAG,CAAA,KAAM,MAAM,GAAI,CAAA,OAAA,CAAQ,GAAG,CAAA,KAAM,EAAI,EAAA;AACtD,IAAO,OAAA,GAAA;AAAA,GACF,MAAA;AACL,IAAA,IAAI,SAAY,GAAA,EAAA;AAChB,IAAA,IAAI,YAAe,GAAA,KAAA;AACnB,IAAM,MAAA,cAAA,GAAiB,GAAI,CAAA,KAAA,CAAM,KAAK,CAAA;AACtC,IAASd,KAAAA,IAAAA,EAAAA,GAAI,cAAiB,GAAA,cAAA,CAAe,CAAC,CAAA,CAAE,SAAS,CAAGA,EAAAA,EAAAA,GAAI,GAAI,CAAA,MAAA,EAAQA,EAAK,EAAA,EAAA;AAC/E,MAAI,IAAA,GAAA,GAAM,GAAI,CAAA,MAAA,CAAOA,EAAC,CAAA;AACtB,MAAA,IAAI,YAAc,EAAA;AAChB,QAAe,YAAA,GAAA,KAAA;AACf,QAAA,GAAA,GAAM,IAAI,WAAY,EAAA;AAAA;AAExB,MAAA,IAAIA,EAAM,KAAA,CAAA,KAAM,GAAQ,KAAA,GAAA,IAAO,QAAQ,GAAM,CAAA,EAAA;AAC3C,QAAe,YAAA,GAAA,IAAA;AAAA,OACN,MAAA,IAAA,GAAA,KAAQ,GAAO,IAAA,GAAA,KAAQ,GAAK,EAAA;AACrC,QAAa,SAAA,IAAA,GAAA;AAAA;AACf;AAEF,IAAO,OAAA,SAAA;AAAA;AAEX;AACO,SAAS,UAAA,CAAW,KAAK,UAAY,EAAA;AAC1C,EAAM,MAAA,SAAA,GAAY,IAAI,WAAY,EAAA;AAClC,EAAA,UAAA,GAAa,UAAc,IAAA,GAAA;AAC3B,EAAA,IAAI,YAAe,GAAA,EAAA;AACnB,EAAA,KAAA,IAASA,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,GAAA,CAAI,QAAQA,EAAK,EAAA,EAAA;AACnC,IAAM,MAAA,QAAA,GAAW,SAAU,CAAA,MAAA,CAAOA,EAAC,CAAA;AACnC,IAAM,MAAA,SAAA,GAAY,GAAI,CAAA,MAAA,CAAOA,EAAC,CAAA;AAC9B,IAAI,IAAA,QAAA,KAAa,SAAaA,IAAAA,EAAAA,GAAI,CAAG,EAAA;AACnC,MAAA,YAAA,IAAgB,GAAG,UAAU,CAAA,EAAG,SAAU,CAAA,MAAA,CAAOA,EAAC,CAAC,CAAA,CAAA;AAAA,KAC9C,MAAA;AACL,MAAgB,YAAA,IAAA,SAAA;AAAA;AAClB;AAEF,EAAO,OAAA,YAAA;AACT;AACO,SAAS,gBAAgB,CAAG,EAAA;AACjC,EAAA,IAAI,CAAM,KAAA,IAAA,IAAQ,CAAM,KAAA,MAAA,EAAkB,OAAA,KAAA;AAE1C,EAAI,IAAA,OAAO,CAAM,KAAA,QAAA,EAAiB,OAAA,IAAA;AAElC,EAAA,IAAI,gBAAiB,CAAA,IAAA,CAAK,CAAC,CAAA,EAAU,OAAA,IAAA;AAErC,EAAA,IAAI,QAAS,CAAA,IAAA,CAAK,CAAC,CAAA,EAAU,OAAA,KAAA;AAC7B,EAAO,OAAA,2CAAA,CAA4C,KAAK,CAAC,CAAA;AAC3D;;;ACnDO,SAAS,kBAAkB,SAAW,EAAA;AAC3C,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,SAAS,CAAG,EAAA;AAC5B,IAAO,OAAA,SAAA,CAAU,IAAI,CAAK,CAAA,KAAA,OAAO,MAAM,QAAW,GAAA,CAAA,GAAI,KAAK,CAAC,CAAA;AAAA;AAE9D,EAAA,SAAA,GAAY,UAAU,IAAK,EAAA;AAC3B,EAAA,IAAIA,EAAI,GAAA,CAAA;AACR,EAAA,IAAI,KAAQ,GAAA,IAAA;AACZ,EAAA,IAAID,EAAI,GAAA,IAAA;AACR,EAAA,IAAI,OAAU,GAAA,IAAA;AACd,EAAA,MAAM,OAAO,EAAC;AACd,EAAA,KAAA,IAAS,EAAK,GAAA,CAAA,EAAG,EAAK,GAAA,SAAA,CAAU,QAAQ,EAAM,EAAA,EAAA;AAC5C,IAAQA,KAAAA,GAAAA,EAAAA;AACR,IAAAA,EAAAA,GAAI,SAAU,CAAA,MAAA,CAAO,EAAE,CAAA;AAEvB,IAAIA,IAAAA,EAAAA,KAAM,GAAO,IAAA,CAAC,OAAS,EAAA;AACzB,MAAI,IAAA,EAAE,UAAU,GAAM,CAAA,EAAA;AACpB,QAAAC,EAAAA,EAAAA;AAAA;AAEF,MAAA;AAAA;AAIF,IAAA,IAAID,OAAM,OAAS,EAAA;AACjB,MAAU,OAAA,GAAA,IAAA;AAAA,gBACAA,EAAM,KAAA,GAAA,IAAOA,EAAM,KAAA,GAAA,KAAQ,CAAC,OAAS,EAAA;AAC/C,MAAUA,OAAAA,GAAAA,EAAAA;AAAA;AAEZ,IAAA,IAAI,CAAC,IAAKC,CAAAA,EAAC,CAAG,EAAA,IAAA,CAAKA,EAAC,CAAI,GAAA,EAAA;AACxB,IAAA,IAAA,CAAKA,EAAC,CAAKD,IAAAA,EAAAA;AAAA;AAEb,EAAO,OAAA,IAAA;AACT;;;AChCO,IAAI,uBAAA;AAAA,CACV,SAAUgB,wBAAyB,EAAA;AAClC,EAAAA,wBAAAA,CAAwB,SAAS,CAAI,GAAA,SAAA;AACrC,EAAAA,wBAAAA,CAAwB,QAAQ,CAAI,GAAA,QAAA;AACpC,EAAAA,wBAAAA,CAAwB,QAAQ,CAAI,GAAA,QAAA;AACpC,EAAAA,wBAAAA,CAAwB,OAAO,CAAI,GAAA,OAAA;AACrC,CAAG,EAAA,uBAAA,KAA4B,uBAA0B,GAAA,EAAG,CAAA,CAAA;;;ACH5D,IAAIC,MAAAA;AACG,IAAM,cAAN,MAAkB;AAAA,EACvB,YAAY,MAAQ,EAAA;AAClB,IAAAA,MAAQ,GAAA,MAAA;AAAA;AACV,EACA,KAAA,CAAM,WAAW,OAAS,EAAA;AACxB,IAAM,MAAA,IAAA,GAAO,OAAO,MAAO,CAAA;AAAA,MACzB,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA,MAAA;AAAA,MACP,OAAS,EAAA,MAAA;AAAA,MACT,MAAQ,EAAA,MAAA;AAAA,MACR,aAAe,EAAA,MAAA;AAAA,MACf,aAAe,EAAA,MAAA;AAAA,MACf,MAAQ,EAAA,MAAA;AAAA,MACR,KAAO,EAAA,MAAA;AAAA,MACP,OAAS,EAAA,MAAA;AAAA,MACT,SAAW,EAAA,MAAA;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,MACN,SAAW,EAAA,MAAA;AAAA,MACX,MAAQ,EAAA,MAAA;AAAA,MACR,MAAQ,EAAA,MAAA;AAAA,MACR,EAAI,EAAA,MAAA;AAAA,MACJ,GAAK,EAAA;AAAA,OACJ,OAAO,CAAA;AAGV,IAAM,MAAA,IAAA,GAAO,kBAAkB,SAAS,CAAA;AAGxC,IAAM,MAAA,aAAA,GAAgB,OAAO,SAAc,KAAA,QAAA;AAE3C,IAAM,MAAA,OAAA,GAAU,cAAe,CAAA,MAAA,CAAO,MAAO,iBAAA,MAAA,CAAO,OAAO,IAAI,CAAA,EAAG,IAAK,CAAA,KAAK,CAAC,CAAA;AAC7E,IAAM,MAAA,aAAA,GAAgB,OAAO,MAAO,CAAA;AAAA,MAClC,kBAAoB,EAAA,IAAA;AAAA,MACpB,sBAAwB,EAAA,IAAA;AAAA,MACxB,gBAAkB,EAAA,KAAA;AAAA,MAClB,cAAgB,EAAA,IAAA;AAAA,MAChB,2BAA6B,EAAA,IAAA;AAAA,MAC7B,0BAA4B,EAAA,IAAA;AAAA,MAC5B,eAAiB,EAAA,IAAA;AAAA,MACjB,oBAAsB,EAAA,KAAA;AAAA,MACtB,oBAAsB,EAAA,KAAA;AAAA,MACtB,iBAAmB,EAAA,KAAA;AAAA,MACnB,eAAiB,EAAA,IAAA;AAAA,MACjB,0BAA4B,EAAA,IAAA;AAAA,MAC5B,YAAc,EAAA,KAAA;AAAA,MACd,qBAAuB,EAAA,KAAA;AAAA,MACvB,qBAAuB,EAAA,IAAA;AAAA,MACvB,eAAiB,EAAA,KAAA;AAAA,MACjB,cAAgB,EAAA,KAAA;AAAA,MAChB,yBAA2B,EAAA;AAAA,KAC7B,EAAG,KAAK,aAAa,CAAA;AACrB,IAAM,MAAA,QAAA,GAAW,OAAO,MAAO,iBAAA,MAAA,CAAO,OAAO,IAAI,CAAA,EAAG,KAAK,OAAO,CAAA;AAChE,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,aAAA,IAAiB,EAAC;AAC7C,IAAA,MAAM,YAAY,IAAK,CAAA,SAAA;AACvB,IAAM,MAAA,cAAA,GAAiB,cAAc,YAAY,CAAA;AACjD,IAAM,MAAA,YAAA,GAAe,iBAAiB,IAAO,GAAA,GAAA;AAC7C,IAAM,MAAA,UAAA,mBAAoB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AACrC,IAAM,MAAA,SAAA,mBAAmB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAEpC,IAAM,MAAA,EAAA,GAAK,IAAK,CAAA,EAAA,IAAMA,MAAM,CAAA,MAAA;AAC5B,IAAA,MAAM,KAAQ,GAAA;AAAA,MACZ,OAAA,kBAAgB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC3B,MAAA,kBAAe,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC1B,KAAA,kBAAc,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MACzB,OAAA,kBAAgB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC3B,OAAA,kBAAgB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC3B,MAAA,kBAAe,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC1B,SAAA,kBAAkB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC7B,OAAA,kBAAgB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC3B,KAAA,kBAAc,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MACzB,SAAA,kBAAkB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC7B,MAAM;AAAC,KACT;AACA,IAAA,MAAM,QAAW,GAAA,iCAAA;AACjB,IAAA,MAAM,iBAAiB,IAAI,MAAA,CAAO,QAAQ,aAAc,CAAA,iBAAiB,IAAI,MAAM,CAAA;AACnF,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,IAAS,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AACjE,MAAA,MAAM,GAAM,GAAA,OAAO,GAAQ,KAAA,QAAA,GAAW,IAAI,GAAM,GAAA,GAAA;AAEhD,MAAA,MAAM,aAAa,MAAO,CAAA,IAAA,CAAK,GAAG,CAAE,CAAA,GAAA,CAAI,SAAUC,IAAK,EAAA;AACrD,QAAA,MAAM,aAAgB,GAAA;AAAA,UACpB,OAAS,EAAA,OAAA;AAAA,UACT,MAAQ,EAAA,SAAA;AAAA,UACR,MAAQ,EAAA;AAAA,SACV;AACA,QAAA,OAAO,cAAcA,IAAG,CAAA;AAAA,OACzB,CAAA,CAAE,MAAO,CAAA,OAAO,EAAE,GAAI,EAAA;AAEvB,MAAA,IAAI,UAAY,EAAA;AACd,QAAM,KAAA,CAAA,UAAU,CAAE,CAAA,GAAG,CAAI,GAAA,IAAA;AAAA;AAE3B,MAAM,KAAA,CAAA,MAAA,CAAO,GAAG,CAAI,GAAA,IAAA;AACpB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,OAAA,IAAW,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AACnE,MAAM,KAAA,CAAA,KAAA,CAAM,GAAG,CAAI,GAAA,IAAA;AACnB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AAClE,MAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,IAAA;AACrB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AAClE,MAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,IAAA;AACrB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA,IAAS,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AACjE,MAAM,KAAA,CAAA,MAAA,CAAO,GAAG,CAAI,GAAA,IAAA;AACpB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAA,EAAG,CAAA,MAAA,CAAO,IAAK,CAAA,SAAA,IAAa,EAAE,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AACrE,MAAM,KAAA,CAAA,SAAA,CAAU,GAAG,CAAI,GAAA,IAAA;AACvB,MAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,KACpB,CAAA;AACD,IAAI,IAAA,OAAO,IAAK,CAAA,IAAA,KAAS,QAAU,EAAA;AACjC,MAAO,MAAA,CAAA,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAE,QAAQ,CAAC,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA;AAClD,QAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,UAAM,KAAA,CAAA,KAAA,CAAM,GAAG,CAAI,GAAA,KAAA;AACnB,UAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA;AACrB,OACD,CAAA;AAAA;AAEH,IAAI,IAAA,OAAO,IAAK,CAAA,MAAA,KAAW,QAAU,EAAA;AACnC,MAAO,MAAA,CAAA,OAAA,CAAQ,KAAK,MAAM,CAAA,CAAE,QAAQ,CAAC,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA;AACpD,QAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,UAAM,KAAA,CAAA,SAAA,CAAU,GAAG,CAAI,GAAA,KAAA;AACvB,UAAM,KAAA,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA;AACrB,OACD,CAAA;AAAA;AAEH,IAAI,IAAA,OAAO,IAAK,CAAA,MAAA,KAAW,WAAa,EAAA;AACtC,MAAI,IAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,MAAM,KAAK,OAAO,IAAA,CAAK,WAAW,QAAU,EAAA;AAEjE,QAAC,EAAA,CAAE,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAE,OAAO,OAAO,CAAA,CAAE,OAAQ,CAAA,SAAU,GAAK,EAAA;AAC5D,UAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,IAAA;AAAA,SACtB,CAAA;AAAA,OACQ,MAAA,IAAA,OAAO,IAAK,CAAA,MAAA,KAAW,QAAU,EAAA;AAC1C,QAAO,MAAA,CAAA,OAAA,CAAQ,KAAK,MAAM,CAAA,CAAE,QAAQ,CAAC,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA;AACpD,UAAA,IAAI,OAAO,KAAA,KAAU,SAAa,IAAA,OAAO,UAAU,UAAY,EAAA;AAC7D,YAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,KAAA;AAAA;AACvB,SACD,CAAA;AAAA;AACH;AAIF,IAAA,aAAA,CAAc,KAAK,GAAK,EAAA,OAAA,EAAS,IAAK,CAAA,OAAA,EAAS,MAAM,MAAM,CAAA;AAE3D,IAAA,MAAA,CAAO,IAAK,CAAA,QAAQ,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAC3C,MAAC,CAAA,KAAA,CAAM,QAAQ,GAAG,CAAA,IAAK,EAAI,EAAA,OAAA,CAAQ,SAAU,KAAO,EAAA;AAClD,QAAS,QAAA,CAAA,KAAK,CAAI,GAAA,QAAA,CAAS,GAAG,CAAA;AAAA,OAC/B,CAAA;AAAA,KACF,CAAA;AACD,IAAA,IAAI,KAAQ,GAAA,IAAA;AACZ,IAAmB,kBAAA,EAAA;AACnB,IAAA,IAAI,WAAW,EAAC;AAChB,IAAA,MAAMC,QAAO,MAAO,CAAA,MAAA,iBAAc,MAAA,CAAA,MAAA,CAAO,IAAI,CAAG,EAAA;AAAA,MAC9C,GAAG;AAAC,KACL,CAAA;AAID,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,IAASlB,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,IAAA,CAAK,QAAQA,EAAK,EAAA,EAAA;AACpC,MAAM,MAAA,GAAA,GAAM,KAAKA,EAAC,CAAA;AAClB,MAAA,MAAM,YAAe,GAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,EAAU,KAAK,CAAA;AAChD,MAAI,IAAA,MAAA;AACJ,MAAI,IAAA,GAAA;AACJ,MAAI,IAAA,OAAA;AACJ,MAAI,IAAA,CAAA;AACJ,MAAI,IAAA,IAAA;AACJ,MAAI,IAAA,KAAA;AAEJ,MAAI,IAAA,GAAA,KAAQ,QAAQ,IAAK,CAAA,IAAA,CAAK,GAAG,CAAK,IAAA,oBAAA,CAAqB,GAAG,CAAG,EAAA;AAC/D,QAAA,cAAA,CAAe,GAAG,CAAA;AAAA,OAET,MAAA,IAAA,YAAA,CAAa,KAAM,CAAA,YAAY,CAAG,EAAA;AAE3C,QAAA,cAAA,CAAe,GAAG,CAAA;AAClB,QAAA;AAAA,OAES,MAAA,IAAA,GAAA,CAAI,KAAM,CAAA,QAAQ,CAAK,IAAA,CAAC,aAAc,CAAA,qBAAqB,CAAK,IAAA,GAAA,CAAI,KAAM,CAAA,OAAO,CAAG,EAAA;AAI7F,QAAI,CAAA,GAAA,GAAA,CAAI,MAAM,wBAAwB,CAAA;AAEtC,QAAI,IAAA,CAAA,KAAM,QAAQ,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAK,IAAA,CAAA,CAAE,UAAU,CAAG,EAAA;AACnD,UAAA,IAAI,gBAAgB,CAAE,CAAA,CAAC,CAAG,EAAA,KAAA,CAAM,MAAM,CAAG,EAAA;AACvC,YAAAA,EAAAA,GAAI,SAASA,EAAG,EAAA,CAAA,CAAE,CAAC,CAAG,EAAA,IAAA,EAAM,CAAE,CAAA,CAAC,CAAC,CAAA;AAAA,WAClC,MAAA,IAAW,gBAAgB,CAAE,CAAA,CAAC,GAAG,KAAM,CAAA,KAAK,MAAM,KAAO,EAAA;AAEvD,YAAAA,EAAAA,GAAI,SAASA,EAAG,EAAA,CAAA,CAAE,CAAC,CAAG,EAAA,IAAA,EAAM,CAAE,CAAA,CAAC,CAAC,CAAA;AAAA,WAC3B,MAAA;AACL,YAAA,MAAA,CAAO,EAAE,CAAC,CAAA,EAAG,CAAE,CAAA,CAAC,GAAG,IAAI,CAAA;AAAA;AACzB;AACF,iBACS,GAAI,CAAA,KAAA,CAAM,cAAc,CAAK,IAAA,aAAA,CAAc,kBAAkB,CAAG,EAAA;AACzE,QAAI,CAAA,GAAA,GAAA,CAAI,MAAM,cAAc,CAAA;AAC5B,QAAI,IAAA,CAAA,KAAM,QAAQ,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAK,IAAA,CAAA,CAAE,UAAU,CAAG,EAAA;AACnD,UAAA,GAAA,GAAM,EAAE,CAAC,CAAA;AACT,UAAO,MAAA,CAAA,GAAA,EAAK,gBAAgB,GAAK,EAAA,KAAA,CAAM,MAAM,CAAI,GAAA,CAAC,KAAK,CAAA,GAAI,KAAK,CAAA;AAAA;AAClE,OAES,MAAA,IAAA,GAAA,CAAI,KAAM,CAAA,OAAO,CAAK,IAAA,CAAC,aAAc,CAAA,qBAAqB,CAAK,IAAA,GAAA,CAAI,KAAM,CAAA,SAAS,CAAG,EAAA;AAC9F,QAAI,CAAA,GAAA,GAAA,CAAI,MAAM,UAAU,CAAA;AACxB,QAAI,IAAA,CAAA,KAAM,QAAQ,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAK,IAAA,CAAA,CAAE,UAAU,CAAG,EAAA;AACnD,UAAA,GAAA,GAAM,EAAE,CAAC,CAAA;AACT,UAAA,IAAI,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAEtC,YAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,IAAI,CAAA;AAAA,qBAChB,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,KAAK,MAAM,KAAO,EAAA;AAGtD,YAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,IAAI,CAAA;AAAA,WACpB,MAAA;AACL,YAAO,IAAA,GAAA,IAAA,CAAKA,KAAI,CAAC,CAAA;AACjB,YAAI,IAAA,IAAA,KAAS,WAAc,CAAC,IAAA,CAAK,MAAM,IAAI,CAAA,IAAK,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,IAAM,CAAC,eAAgB,CAAA,GAAA,EAAK,MAAM,KAAK,CAAA,IAAK,CAAC,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAClJ,cAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,cAAAA,EAAAA,EAAAA;AAAA,aACS,MAAA,IAAA,gBAAA,CAAiB,IAAK,CAAA,IAAI,CAAG,EAAA;AACtC,cAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,cAAAA,EAAAA,EAAAA;AAAA,aACK,MAAA;AACL,cAAO,MAAA,CAAA,GAAA,EAAK,YAAa,CAAA,GAAG,CAAC,CAAA;AAAA;AAC/B;AACF;AACF,OAES,MAAA,IAAA,GAAA,CAAI,KAAM,CAAA,UAAU,CAAG,EAAA;AAChC,QAAI,CAAA,GAAA,GAAA,CAAI,MAAM,sBAAsB,CAAA;AACpC,QAAI,IAAA,CAAA,KAAM,QAAQ,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAK,IAAA,CAAA,CAAE,UAAU,CAAG,EAAA;AACnD,UAAA,MAAA,CAAO,CAAE,CAAA,CAAC,CAAG,EAAA,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA;AACnB,OAEF,MAAA,IAAW,IAAI,KAAM,CAAA,SAAS,KAAK,CAAC,GAAA,CAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AACvD,QAAO,IAAA,GAAA,IAAA,CAAKA,KAAI,CAAC,CAAA;AACjB,QAAI,CAAA,GAAA,GAAA,CAAI,MAAM,WAAW,CAAA;AACzB,QAAI,IAAA,CAAA,KAAM,QAAQ,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAK,IAAA,CAAA,CAAE,UAAU,CAAG,EAAA;AACnD,UAAA,GAAA,GAAM,EAAE,CAAC,CAAA;AACT,UAAA,IAAI,SAAS,MAAa,IAAA,CAAC,KAAK,KAAM,CAAA,IAAI,KAAK,CAAC,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAK,IAAA,CAAC,gBAAgB,GAAK,EAAA,KAAA,CAAM,MAAM,CAAG,EAAA;AACxH,YAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,YAAAA,EAAAA,EAAAA;AAAA,WACK,MAAA;AACL,YAAO,MAAA,CAAA,GAAA,EAAK,YAAa,CAAA,GAAG,CAAC,CAAA;AAAA;AAC/B;AACF,OACF,MAAA,IAAW,IAAI,KAAM,CAAA,SAAS,KAAK,CAAC,GAAA,CAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AACvD,QAAA,OAAA,GAAU,IAAI,KAAM,CAAA,CAAA,EAAG,EAAE,CAAA,CAAE,MAAM,EAAE,CAAA;AACnC,QAAS,MAAA,GAAA,KAAA;AACT,QAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,OAAA,CAAQ,QAAQ,CAAK,EAAA,EAAA;AACvC,UAAO,IAAA,GAAA,GAAA,CAAI,KAAM,CAAA,CAAA,GAAI,CAAC,CAAA;AACtB,UAAI,IAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,IAAK,QAAQ,CAAI,GAAA,CAAC,MAAM,GAAK,EAAA;AAC5C,YAAQ,KAAA,GAAA,GAAA,CAAI,KAAM,CAAA,CAAA,GAAI,CAAC,CAAA;AACvB,YAAA,GAAA,GAAM,QAAQ,CAAC,CAAA;AACf,YAAA,IAAI,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAEtC,cAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,MAAM,KAAK,CAAA;AAAA,uBACvB,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,KAAK,MAAM,KAAO,EAAA;AAEtD,cAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,MAAM,KAAK,CAAA;AAAA,aAC3B,MAAA;AACL,cAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA;AAEnB,YAAS,MAAA,GAAA,IAAA;AACT,YAAA;AAAA;AAEF,UAAA,IAAI,SAAS,GAAK,EAAA;AAChB,YAAO,MAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,IAAI,CAAA;AACvB,YAAA;AAAA;AAGF,UAAA,IAAI,UAAW,CAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAC,CAAK,IAAA,0BAAA,CAA2B,IAAK,CAAA,IAAI,KAAK,eAAgB,CAAA,IAAA,EAAM,KAAM,CAAA,KAAK,MAAM,KAAO,EAAA;AACxH,YAAO,MAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,IAAI,CAAA;AACvB,YAAS,MAAA,GAAA,IAAA;AACT,YAAA;AAAA;AAEF,UAAI,IAAA,OAAA,CAAQ,CAAI,GAAA,CAAC,CAAK,IAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAE,KAAM,CAAA,IAAI,CAAG,EAAA;AAChD,YAAO,MAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,IAAI,CAAA;AACvB,YAAS,MAAA,GAAA,IAAA;AACT,YAAA;AAAA,WACK,MAAA;AACL,YAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,EAAG,aAAa,OAAQ,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA;AAC7C;AAEF,QAAA,GAAA,GAAM,GAAI,CAAA,KAAA,CAAM,EAAE,CAAA,CAAE,CAAC,CAAA;AACrB,QAAI,IAAA,CAAC,MAAU,IAAA,GAAA,KAAQ,GAAK,EAAA;AAC1B,UAAA,IAAI,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAEtC,YAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,IAAI,CAAA;AAAA,qBAChB,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,KAAK,MAAM,KAAO,EAAA;AAGtD,YAAAA,EAAI,GAAA,QAAA,CAASA,EAAG,EAAA,GAAA,EAAK,IAAI,CAAA;AAAA,WACpB,MAAA;AACL,YAAO,IAAA,GAAA,IAAA,CAAKA,KAAI,CAAC,CAAA;AACjB,YAAI,IAAA,IAAA,KAAS,WAAc,CAAC,aAAA,CAAc,KAAK,IAAI,CAAA,IAAK,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,IAAM,CAAC,eAAgB,CAAA,GAAA,EAAK,MAAM,KAAK,CAAA,IAAK,CAAC,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAC1J,cAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,cAAAA,EAAAA,EAAAA;AAAA,aACS,MAAA,IAAA,gBAAA,CAAiB,IAAK,CAAA,IAAI,CAAG,EAAA;AACtC,cAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,cAAAA,EAAAA,EAAAA;AAAA,aACK,MAAA;AACL,cAAO,MAAA,CAAA,GAAA,EAAK,YAAa,CAAA,GAAG,CAAC,CAAA;AAAA;AAC/B;AACF;AACF,iBACS,GAAI,CAAA,KAAA,CAAM,UAAU,CAAA,IAAK,IAAI,KAAM,CAAA,QAAQ,CAAK,IAAA,eAAA,CAAgB,IAAI,KAAM,CAAA,CAAC,CAAG,EAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAErG,QAAM,GAAA,GAAA,GAAA,CAAI,MAAM,CAAC,CAAA;AACjB,QAAO,MAAA,CAAA,GAAA,EAAK,YAAa,CAAA,GAAG,CAAC,CAAA;AAAA,OAC/B,MAAA,IAAW,QAAQ,IAAM,EAAA;AACvB,QAAW,QAAA,GAAA,IAAA,CAAK,KAAMA,CAAAA,EAAAA,GAAI,CAAC,CAAA;AAC3B,QAAA;AAAA,OACF,MAAA,IAAW,aAAc,CAAA,oBAAoB,CAAG,EAAA;AAC9C,QAAW,QAAA,GAAA,IAAA,CAAK,MAAMA,EAAC,CAAA;AACvB,QAAA;AAAA,OACK,MAAA;AACL,QAAA,cAAA,CAAe,GAAG,CAAA;AAAA;AACpB;AAQF,IAAA,YAAA,CAAakB,OAAM,IAAI,CAAA;AACvB,IAAA,YAAA,CAAaA,OAAM,KAAK,CAAA;AACxB,IAAA,SAAA,CAAUA,KAAI,CAAA;AACd,IAAiB,gBAAA,EAAA;AACjB,IAAA,uBAAA,CAAwBA,KAAM,EAAA,KAAA,CAAM,OAAS,EAAA,QAAA,EAAU,IAAI,CAAA;AAC3D,IAAA,cAAA,CAAeA,KAAI,CAAA;AACnB,IAAA,IAAI,aAAc,CAAA,qBAAqB,CAAG,EAAA,kBAAA,CAAmBA,KAAI,CAAA;AAEjE,IAAA,MAAA,CAAO,KAAK,KAAM,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAC/C,MAAI,IAAA,CAAC,MAAOA,CAAAA,KAAAA,EAAM,GAAI,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,EAAU,MAAA,CAAA,GAAA,EAAK,CAAC,CAAA;AAAA,KACjD,CAAA;AAED,IAAA,IAAI,kBAAkB,QAAS,CAAA,MAAA,EAAQA,KAAK,CAAA,YAAY,IAAI,EAAC;AAC7D,IAAS,QAAA,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAC9B,MAAAA,KAAK,CAAA,YAAY,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,KAC5B,CAAA;AACD,IAAA,IAAI,aAAc,CAAA,sBAAsB,CAAK,IAAA,aAAA,CAAc,cAAc,CAAG,EAAA;AAC1E,MAAA,MAAA,CAAO,IAAKA,CAAAA,KAAI,CAAE,CAAA,MAAA,CAAO,CAAO,GAAA,KAAA,GAAA,KAAQ,IAAQ,IAAA,GAAA,CAAI,QAAS,CAAA,GAAG,CAAC,CAAA,CAAE,QAAQ,CAAO,GAAA,KAAA;AAChF,QAAA,OAAOA,MAAK,GAAG,CAAA;AAAA,OAChB,CAAA;AAAA;AAEH,IAAI,IAAA,aAAA,CAAc,eAAe,CAAG,EAAA;AAElC,MAAA,EAAG,CAAA,MAAA,CAAO,GAAG,MAAA,CAAO,KAAK,OAAO,CAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAE,QAAQ,CAAS,KAAA,KAAA;AACvE,QAAA,IAAI,cAAc,sBAAsB,CAAA,IAAK,KAAM,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAChE,UAAA,OAAOA,KAAK,CAAA,KAAA,CAAM,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAQ,IAAA,KAAA,SAAA,CAAU,IAAI,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA;AAErE,QAAA,OAAOA,MAAK,KAAK,CAAA;AAAA,OAClB,CAAA;AAAA;AAGH,IAAA,SAAS,eAAe,GAAK,EAAA;AAC3B,MAAM,MAAA,kBAAA,GAAqB,iBAAkB,CAAA,GAAA,EAAK,GAAG,CAAA;AACrD,MAAA,IAAI,OAAO,kBAAA,KAAuB,QAAY,IAAA,OAAO,uBAAuB,QAAU,EAAA;AACpF,QAAAA,KAAAA,CAAK,CAAE,CAAA,IAAA,CAAK,kBAAkB,CAAA;AAAA;AAChC;AAIF,IAAA,SAAS,QAASlB,CAAAA,EAAAA,EAAG,GAAKmB,EAAAA,KAAAA,EAAM,iBAAmB,EAAA;AACjD,MAAI,IAAA,EAAA;AACJ,MAAA,IAAI,KAAQ,GAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAA;AAG5C,MAAA,KAAA,GAAQ,OAAO,KAAU,KAAA,QAAA,IAAY,KAAM,CAAA,KAAK,IAAI,CAAI,GAAA,KAAA;AACxD,MAAA,IAAI,UAAU,CAAG,EAAA;AACf,QAAI,IAAA,CAAC,WAAY,CAAA,iBAAiB,CAAG,EAAA;AACnC,UAAA,KAAA,GAAQ,KAAM,CAAA,EAAA,CAAG,6BAA+B,EAAA,GAAG,CAAC,CAAA;AAAA;AAEtD,QAAO,MAAA,CAAA,GAAA,EAAK,YAAa,CAAA,GAAG,CAAC,CAAA;AAC7B,QAAOnB,OAAAA,EAAAA;AAAA;AAET,MAAA,IAAI,SAAY,GAAA,WAAA,CAAY,iBAAiB,CAAA,GAAI,CAAI,GAAA,CAAA;AACrD,MAAI,IAAA,aAAA,CAAc,oBAAoB,CAAG,EAAA;AAEvC,QAAA,IAAImB,KAAK,CAAA,MAAA,IAAUnB,EAAI,GAAA,CAAA,CAAA,GAAK,YAAY,KAAO,EAAA;AAC7C,UAAA,KAAA,GAAQ,KAAM,CAAA,EAAA,CAAG,oCAAsC,EAAA,GAAG,CAAC,CAAA;AAAA;AAE7D,QAAY,SAAA,GAAA,KAAA;AAAA,OACP,MAAA;AAGL,QAAA,KAAK,KAAKA,EAAI,GAAA,CAAA,EAAG,EAAKmB,GAAAA,KAAAA,CAAK,QAAQ,EAAM,EAAA,EAAA;AACvC,UAAA,IAAI,CAACA,KAAK,CAAA,EAAE,CAAE,CAAA,KAAA,CAAM,UAAU,CAAKA,IAAAA,KAAAA,CAAK,EAAE,CAAA,CAAE,MAAM,QAAQ,CAAA,IAAK,qBAAqBA,KAAK,CAAA,EAAE,CAAC,CAAG,EAAA,SAAA,EAAA;AAAA,eAAiB;AAAA;AAElH,QAAA,IAAI,YAAY,KAAO,EAAA,KAAA,GAAQ,MAAM,EAAG,CAAA,oCAAA,EAAsC,GAAG,CAAC,CAAA;AAAA;AAEpF,MAAA,IAAI,QAAW,GAAA,IAAA,CAAK,GAAI,CAAA,SAAA,EAAW,KAAK,CAAA;AACxC,MAAA,IAAI,CAAC,WAAA,CAAY,iBAAiB,CAAA,IAAK,WAAW,CAAG,EAAA;AACnD,QAAA,MAAA,CAAO,KAAK,iBAAiB,CAAA;AAC7B,QAAA,QAAA,EAAA;AAAA;AAEF,MAAA,KAAK,KAAKnB,EAAI,GAAA,CAAA,EAAG,KAAK,QAAWA,GAAAA,EAAAA,GAAI,GAAG,EAAM,EAAA,EAAA;AAC5C,QAAO,MAAA,CAAA,GAAA,EAAKmB,KAAK,CAAA,EAAE,CAAC,CAAA;AAAA;AAEtB,MAAA,OAAOnB,EAAI,GAAA,QAAA;AAAA;AAKb,IAAA,SAAS,QAASA,CAAAA,EAAAA,EAAG,GAAKmB,EAAAA,KAAAA,EAAM,iBAAmB,EAAA;AACjD,MAAA,IAAI,YAAY,EAAC;AACjB,MAAA,IAAI,IAAO,GAAA,iBAAA,IAAqBA,KAAKnB,CAAAA,EAAAA,GAAI,CAAC,CAAA;AAE1C,MAAA,MAAM,UAAa,GAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAA;AACnD,MAAI,IAAA,eAAA,CAAgB,KAAK,KAAM,CAAA,KAAK,KAAK,CAAC,gBAAA,CAAiB,IAAK,CAAA,IAAI,CAAG,EAAA;AACrE,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,iBACV,WAAY,CAAA,IAAI,KAAK,WAAY,CAAA,iBAAiB,KAAK,IAAK,CAAA,IAAA,CAAK,IAAI,CAAK,IAAA,CAAC,SAAS,IAAK,CAAA,IAAI,KAAK,CAAC,oBAAA,CAAqB,IAAI,CAAG,EAAA;AAGxI,QAAI,IAAA,QAAA,CAAS,GAAG,CAAA,KAAM,MAAW,EAAA;AAC/B,UAAM,MAAA,MAAA,GAAS,SAAS,GAAG,CAAA;AAC3B,UAAA,SAAA,GAAY,MAAM,OAAQ,CAAA,MAAM,CAAI,GAAA,MAAA,GAAS,CAAC,MAAM,CAAA;AAAA;AACtD,OACK,MAAA;AAEL,QAAI,IAAA,CAAC,WAAY,CAAA,iBAAiB,CAAG,EAAA;AACnC,UAAA,SAAA,CAAU,IAAK,CAAA,YAAA,CAAa,GAAK,EAAA,iBAAA,EAAmB,IAAI,CAAC,CAAA;AAAA;AAE3D,QAAA,KAAA,IAAS,KAAKA,EAAI,GAAA,CAAA,EAAG,EAAKmB,GAAAA,KAAAA,CAAK,QAAQ,EAAM,EAAA,EAAA;AAC3C,UAAA,IAAI,CAAC,aAAA,CAAc,eAAe,CAAA,IAAK,SAAU,CAAA,MAAA,GAAS,CAAK,IAAA,UAAA,IAAc,OAAO,UAAA,KAAe,QAAY,IAAA,SAAA,CAAU,UAAU,UAAY,EAAA;AAC/I,UAAA,IAAA,GAAOA,MAAK,EAAE,CAAA;AACd,UAAA,IAAI,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,IAAK,CAAC,QAAA,CAAS,IAAK,CAAA,IAAI,CAAK,IAAA,CAAC,oBAAqB,CAAA,IAAI,CAAG,EAAA;AAC5E,UAAAnB,EAAI,GAAA,EAAA;AACJ,UAAA,SAAA,CAAU,IAAK,CAAA,YAAA,CAAa,GAAK,EAAA,IAAA,EAAM,aAAa,CAAC,CAAA;AAAA;AACvD;AAKF,MAAA,IAAI,OAAO,UAAA,KAAe,QAAa,KAAA,UAAA,IAAc,SAAU,CAAA,MAAA,GAAS,UAAc,IAAA,KAAA,CAAM,UAAU,CAAA,IAAK,SAAU,CAAA,MAAA,KAAW,CAAI,CAAA,EAAA;AAClI,QAAA,KAAA,GAAQ,KAAM,CAAA,EAAA,CAAG,oCAAsC,EAAA,GAAG,CAAC,CAAA;AAAA;AAE7D,MAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AACrB,MAAOA,OAAAA,EAAAA;AAAA;AAET,IAAA,SAAS,MAAO,CAAA,GAAA,EAAK,GAAK,EAAA,iBAAA,GAAoB,aAAe,EAAA;AAC3D,MAAA,IAAI,IAAI,IAAK,CAAA,GAAG,CAAK,IAAA,aAAA,CAAc,sBAAsB,CAAG,EAAA;AAC1D,QAAA,MAAM,QAAQ,GAAI,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,GAAA,CAAI,SAAU,IAAM,EAAA;AAC/C,UAAA,OAAO,UAAU,IAAI,CAAA;AAAA,SACtB,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AACX,QAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AAAA;AAExB,MAAA,MAAM,KAAQ,GAAA,YAAA,CAAa,GAAK,EAAA,GAAA,EAAK,iBAAiB,CAAA;AACtD,MAAM,MAAA,QAAA,GAAW,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA;AAC9B,MAAOkB,MAAAA,CAAAA,KAAAA,EAAM,UAAU,KAAK,CAAA;AAE5B,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACtB,QAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAE,CAAA,OAAA,CAAQ,SAAU,CAAG,EAAA;AACtC,UAAM,MAAA,aAAA,GAAgB,CAAE,CAAA,KAAA,CAAM,GAAG,CAAA;AACjC,UAAOA,MAAAA,CAAAA,KAAAA,EAAM,eAAe,KAAK,CAAA;AAAA,SAClC,CAAA;AAAA;AAGH,MAAA,IAAI,QAAS,CAAA,MAAA,GAAS,CAAK,IAAA,aAAA,CAAc,cAAc,CAAG,EAAA;AAExD,QAAC,CAAA,KAAA,CAAM,OAAQ,CAAA,QAAA,CAAS,CAAC,CAAC,KAAK,EAAC,EAAG,OAAQ,CAAA,SAAU,CAAG,EAAA;AACtD,UAAI,IAAA,aAAA,GAAgB,CAAE,CAAA,KAAA,CAAM,GAAG,CAAA;AAE/B,UAAA,MAAME,EAAI,GAAA,EAAG,CAAA,MAAA,CAAO,QAAQ,CAAA;AAC5B,UAAAA,GAAE,KAAM,EAAA;AACR,UAAgB,aAAA,GAAA,aAAA,CAAc,OAAOA,EAAC,CAAA;AAGtC,UAAA,IAAI,CAAE,CAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAK,IAAA,EAAI,EAAA,QAAA,CAAS,aAAc,CAAA,IAAA,CAAK,GAAG,CAAC,CAAG,EAAA;AACjE,YAAOF,MAAAA,CAAAA,KAAAA,EAAM,eAAe,KAAK,CAAA;AAAA;AACnC,SACD,CAAA;AAAA;AAGH,MAAI,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,SAAS,CAAA,IAAK,CAAC,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAChF,QAAM,MAAA,IAAA,GAAO,CAAC,GAAG,CAAE,CAAA,MAAA,CAAO,MAAM,OAAQ,CAAA,GAAG,CAAK,IAAA,EAAE,CAAA;AAClD,QAAK,IAAA,CAAA,OAAA,CAAQ,SAAUD,IAAK,EAAA;AAC1B,UAAO,MAAA,CAAA,cAAA,CAAe,YAAYA,IAAK,EAAA;AAAA,YACrC,UAAY,EAAA,IAAA;AAAA,YACZ,GAAM,GAAA;AACJ,cAAO,OAAA,GAAA;AAAA,aACT;AAAA,YACA,IAAII,MAAO,EAAA;AACT,cAAA,GAAA,GAAM,OAAOA,MAAU,KAAA,QAAA,GAAWL,MAAM,CAAA,SAAA,CAAUK,MAAK,CAAIA,GAAAA,MAAAA;AAAA;AAC7D,WACD,CAAA;AAAA,SACF,CAAA;AAAA;AACH;AAEF,IAAS,SAAA,WAAA,CAAY,KAAK,KAAO,EAAA;AAC/B,MAAI,IAAA,EAAE,MAAM,OAAQ,CAAA,GAAG,KAAK,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA,CAAE,MAAS,CAAA,EAAA;AACtD,QAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAI,GAAA,CAAC,KAAK,CAAA;AAC3B,QAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA;AAAA;AAEtB,MAAI,IAAA,EAAE,MAAM,OAAQ,CAAA,KAAK,KAAK,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAS,CAAA,EAAA;AAC1D,QAAA,WAAA,CAAY,OAAO,GAAG,CAAA;AAAA;AACxB;AAEF,IAAS,SAAA,YAAA,CAAa,GAAK,EAAA,GAAA,EAAK,iBAAmB,EAAA;AAEjD,MAAA,IAAI,iBAAmB,EAAA;AACrB,QAAA,GAAA,GAAM,YAAY,GAAG,CAAA;AAAA;AAGvB,MAAI,IAAA,eAAA,CAAgB,KAAK,KAAM,CAAA,KAAK,KAAK,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAC3E,QAAA,IAAI,OAAO,GAAA,KAAQ,QAAU,EAAA,GAAA,GAAM,GAAQ,KAAA,MAAA;AAAA;AAE7C,MAAI,IAAA,KAAA,GAAQ,MAAM,OAAQ,CAAA,GAAG,IAAI,GAAI,CAAA,GAAA,CAAI,SAAU,CAAG,EAAA;AACpD,QAAO,OAAA,iBAAA,CAAkB,KAAK,CAAC,CAAA;AAAA,OAChC,CAAA,GAAI,iBAAkB,CAAA,GAAA,EAAK,GAAG,CAAA;AAE/B,MAAI,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,MAAM,CAAA,KAAM,YAAY,KAAK,CAAA,IAAK,OAAO,KAAA,KAAU,SAAY,CAAA,EAAA;AAC5F,QAAA,KAAA,GAAQ,SAAU,EAAA;AAAA;AAGpB,MAAI,IAAA,eAAA,CAAgB,KAAK,KAAM,CAAA,SAAS,KAAK,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AAC/E,QAAI,IAAA,KAAA,CAAM,QAAQ,GAAG,CAAA,UAAW,GAAI,CAAA,GAAA,CAAI,CAAAC,IAAO,KAAA;AAC7C,UAAON,OAAAA,MAAAA,CAAM,UAAUM,IAAG,CAAA;AAAA,SAC3B,CAAA;AAAA,aAAO,KAAA,GAAQN,MAAM,CAAA,SAAA,CAAU,GAAG,CAAA;AAAA;AAErC,MAAO,OAAA,KAAA;AAAA;AAET,IAAS,SAAA,iBAAA,CAAkB,KAAK,KAAO,EAAA;AACrC,MAAA,IAAI,CAAC,aAAc,CAAA,0BAA0B,CAAK,IAAA,GAAA,KAAQ,KAAY,OAAA,KAAA;AACtE,MAAA,IAAI,CAAC,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,OAAO,KAAK,CAAC,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAK,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AACvG,QAAA,MAAM,qBAAqB,eAAgB,CAAA,KAAK,CAAK,IAAA,aAAA,CAAc,eAAe,CAAK,IAAA,MAAA,CAAO,aAAc,CAAA,IAAA,CAAK,MAAM,UAAW,CAAA,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9I,QAAI,IAAA,kBAAA,IAAsB,CAAC,WAAY,CAAA,KAAK,KAAK,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,OAAO,CAAG,EAAA;AACpF,UAAA,KAAA,GAAQ,OAAO,KAAK,CAAA;AAAA;AACtB;AAEF,MAAO,OAAA,KAAA;AAAA;AAIT,IAAA,SAAS,UAAUE,KAAM,EAAA;AACvB,MAAM,MAAA,YAAA,mBAAsB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAGvC,MAAwB,uBAAA,CAAA,YAAA,EAAc,KAAM,CAAA,OAAA,EAAS,QAAQ,CAAA;AAC7D,MAAA,MAAA,CAAO,KAAK,KAAM,CAAA,OAAO,CAAE,CAAA,OAAA,CAAQ,SAAU,SAAW,EAAA;AACtD,QAAA,MAAM,UAAaA,GAAAA,KAAAA,CAAK,SAAS,CAAA,IAAK,aAAa,SAAS,CAAA;AAC5D,QAAA,IAAI,UAAY,EAAA;AACd,UAAI,IAAA;AACF,YAAA,IAAI,MAAS,GAAA,IAAA;AACb,YAAA,MAAM,qBAAqBF,MAAM,CAAA,OAAA,CAAQA,MAAM,CAAA,GAAA,IAAO,UAAU,CAAA;AAChE,YAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,OAAA,CAAQ,SAAS,CAAA;AAC7C,YAAI,IAAA,OAAO,kBAAkB,UAAY,EAAA;AACvC,cAAI,IAAA;AACF,gBAAA,MAAA,GAAS,cAAc,kBAAkB,CAAA;AAAA,uBAClC,CAAG,EAAA;AACV,gBAAS,MAAA,GAAA,CAAA;AAAA;AAEX,cAAA,IAAI,kBAAkB,KAAO,EAAA;AAC3B,gBAAQ,KAAA,GAAA,MAAA;AACR,gBAAA;AAAA;AACF,aACK,MAAA;AACL,cAASA,MAAAA,GAAAA,MAAAA,CAAM,QAAQ,kBAAkB,CAAA;AAAA;AAE3C,YAAA,eAAA,CAAgB,MAAM,CAAA;AAAA,mBACf,EAAI,EAAA;AAGX,YAAI,IAAA,EAAA,CAAG,IAAS,KAAA,kBAAA,EAA4B,KAAA,GAAA,EAAA;AAAA,iBAAYE,IAAAA,KAAAA,CAAK,SAAS,CAAG,EAAA,KAAA,GAAQ,MAAM,EAAG,CAAA,8BAAA,EAAgC,UAAU,CAAC,CAAA;AAAA;AACvI;AACF,OACD,CAAA;AAAA;AAIH,IAAS,SAAA,eAAA,CAAgB,QAAQ,IAAM,EAAA;AACrC,MAAA,MAAA,CAAO,IAAK,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AACzC,QAAM,MAAA,KAAA,GAAQ,OAAO,GAAG,CAAA;AACxB,QAAA,MAAM,OAAU,GAAA,IAAA,GAAO,IAAO,GAAA,GAAA,GAAM,GAAM,GAAA,GAAA;AAI1C,QAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,KAAA,KAAU,IAAQ,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,IAAK,aAAc,CAAA,cAAc,CAAG,EAAA;AAEzG,UAAA,eAAA,CAAgB,OAAO,OAAO,CAAA;AAAA,SACzB,MAAA;AAGL,UAAA,IAAI,CAAC,MAAA,CAAOA,KAAM,EAAA,OAAA,CAAQ,MAAM,GAAG,CAAC,CAAK,IAAA,eAAA,CAAgB,SAAS,KAAM,CAAA,MAAM,CAAK,IAAA,aAAA,CAAc,gBAAgB,CAAG,EAAA;AAClH,YAAA,MAAA,CAAO,SAAS,KAAK,CAAA;AAAA;AACvB;AACF,OACD,CAAA;AAAA;AAGH,IAAA,SAAS,gBAAmB,GAAA;AAC1B,MAAI,IAAA,OAAO,kBAAkB,WAAa,EAAA;AACxC,QAAc,aAAA,CAAA,OAAA,CAAQ,SAAU,YAAc,EAAA;AAC5C,UAAA,eAAA,CAAgB,YAAY,CAAA;AAAA,SAC7B,CAAA;AAAA;AACH;AAEF,IAAS,SAAA,YAAA,CAAaA,OAAM,UAAY,EAAA;AACtC,MAAI,IAAA,OAAO,cAAc,WAAa,EAAA;AACtC,MAAA,MAAM,MAAS,GAAA,OAAO,SAAc,KAAA,QAAA,GAAW,SAAY,GAAA,EAAA;AAC3D,MAAMR,MAAAA,IAAAA,GAAMM,OAAM,GAAI,EAAA;AACtB,MAAA,MAAA,CAAO,IAAKN,CAAAA,IAAG,CAAE,CAAA,OAAA,CAAQ,SAAU,MAAQ,EAAA;AACzC,QAAA,IAAI,WAAW,EAAM,IAAA,MAAA,CAAO,YAAY,MAAQ,EAAA,CAAC,MAAM,CAAG,EAAA;AAExD,UAAM,MAAA,IAAA,GAAO,OAAO,KAAM,CAAA,IAAI,EAAE,GAAI,CAAA,SAAU,KAAKV,EAAG,EAAA;AACpD,YAAA,IAAIA,OAAM,CAAG,EAAA;AACX,cAAM,GAAA,GAAA,GAAA,CAAI,SAAU,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA;AAEnC,YAAA,OAAO,UAAU,GAAG,CAAA;AAAA,WACrB,CAAA;AACD,UAAA,IAAA,CAAK,UAAc,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,KAAK,GAAG,CAAC,CAAK,IAAA,CAAC,UAAe,KAAA,CAAC,MAAOkB,CAAAA,KAAAA,EAAM,IAAI,CAAG,EAAA;AACvF,YAAA,MAAA,CAAO,KAAK,IAAK,CAAA,GAAG,CAAGR,EAAAA,IAAAA,CAAI,MAAM,CAAC,CAAA;AAAA;AACpC;AACF,OACD,CAAA;AAAA;AAEH,IAAA,SAAS,eAAeQ,KAAM,EAAA;AAC5B,MAAI,IAAA,MAAA;AACJ,MAAM,MAAA,OAAA,uBAAc,GAAI,EAAA;AACxB,MAAA,MAAA,CAAO,IAAKA,CAAAA,KAAI,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AACvC,QAAA,IAAI,CAAC,OAAA,CAAQ,GAAI,CAAA,GAAG,CAAG,EAAA;AAErB,UAAS,MAAA,GAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,SAAS,CAAA;AAC7C,UAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,YAAI,IAAA;AACF,cAAA,MAAM,QAAQ,iBAAkB,CAAA,GAAA,EAAK,OAAOA,KAAK,CAAA,GAAG,CAAC,CAAC,CAAA;AACtD,cAAC,EAAA,CAAE,MAAO,CAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAK,IAAA,EAAI,EAAA,GAAG,CAAE,CAAA,OAAA,CAAQ,CAAO,GAAA,KAAA;AACtD,gBAAA,OAAA,CAAQ,IAAI,GAAG,CAAA;AACf,gBAAAA,KAAAA,CAAK,GAAG,CAAI,GAAA,KAAA;AAAA,eACb,CAAA;AAAA,qBACM,GAAK,EAAA;AACZ,cAAQ,KAAA,GAAA,GAAA;AAAA;AACV;AACF;AACF,OACD,CAAA;AAAA;AAEH,IAAA,SAAS,mBAAmBA,KAAM,EAAA;AAChC,MAAM,KAAA,CAAA,IAAA,CAAK,QAAQ,CAAO,GAAA,KAAA;AAExB,QAAA,IAAI,CAAC,GAAA,CAAI,OAAQ,CAAA,GAAG,CAAG,EAAA;AACvB,QAAI,IAAA,OAAOA,MAAK,GAAG,CAAA,KAAM,aAAaA,KAAAA,CAAK,GAAG,CAAI,GAAA,MAAA;AAAA,OACnD,CAAA;AACD,MAAOA,OAAAA,KAAAA;AAAA;AAET,IAAA,SAAS,uBAAwB,CAAA,GAAA,EAAKK,QAASC,EAAAA,SAAAA,EAAU,SAAS,KAAO,EAAA;AACvE,MAAA,MAAA,CAAO,IAAKA,CAAAA,SAAQ,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAO,CAAA,GAAA,EAAK,IAAI,KAAM,CAAA,GAAG,CAAC,CAAG,EAAA;AAChC,UAAA,MAAA,CAAO,KAAK,GAAI,CAAA,KAAA,CAAM,GAAG,CAAGA,EAAAA,SAAAA,CAAS,GAAG,CAAC,CAAA;AACzC,UAAI,IAAA,MAAA,EAAkB,SAAA,CAAA,GAAG,CAAI,GAAA,IAAA;AAC7B,UAAA,CAACD,SAAQ,GAAG,CAAA,IAAK,EAAI,EAAA,OAAA,CAAQ,SAAU,CAAG,EAAA;AACxC,YAAA,IAAI,OAAO,GAAK,EAAA,CAAA,CAAE,KAAM,CAAA,GAAG,CAAC,CAAG,EAAA;AAC/B,YAAA,MAAA,CAAO,KAAK,CAAE,CAAA,KAAA,CAAM,GAAG,CAAGC,EAAAA,SAAAA,CAAS,GAAG,CAAC,CAAA;AAAA,WACxC,CAAA;AAAA;AACH,OACD,CAAA;AAAA;AAEH,IAAS,SAAA,MAAA,CAAO,KAAK,IAAM,EAAA;AACzB,MAAA,IAAIC,EAAI,GAAA,GAAA;AACR,MAAI,IAAA,CAAC,cAAc,cAAc,CAAA,SAAU,CAAC,IAAA,CAAK,IAAK,CAAA,GAAG,CAAC,CAAA;AAC1D,MAAA,IAAA,CAAK,MAAM,CAAG,EAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,SAAUR,IAAK,EAAA;AACvC,QAAAQ,EAAIA,GAAAA,EAAAA,CAAER,IAAG,CAAA,IAAK,EAAC;AAAA,OAChB,CAAA;AACD,MAAA,MAAM,GAAM,GAAA,IAAA,CAAK,IAAK,CAAA,MAAA,GAAS,CAAC,CAAA;AAChC,MAAI,IAAA,OAAOQ,EAAM,KAAA,QAAA,EAAiB,OAAA,KAAA;AAAA,kBAAkB,GAAOA,IAAAA,EAAAA;AAAA;AAE7D,IAAS,SAAA,MAAA,CAAO,GAAK,EAAA,IAAA,EAAM,KAAO,EAAA;AAChC,MAAA,IAAIA,EAAI,GAAA,GAAA;AACR,MAAI,IAAA,CAAC,cAAc,cAAc,CAAA,SAAU,CAAC,IAAA,CAAK,IAAK,CAAA,GAAG,CAAC,CAAA;AAC1D,MAAA,IAAA,CAAK,MAAM,CAAG,EAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,SAAUR,IAAK,EAAA;AAGvC,QAAAA,IAAAA,GAAM,YAAYA,IAAG,CAAA;AACrB,QAAA,IAAI,OAAOQ,EAAM,KAAA,QAAA,IAAYA,EAAER,CAAAA,IAAG,MAAM,MAAW,EAAA;AACjD,UAAAQ,EAAAA,CAAER,IAAG,CAAA,GAAI,EAAC;AAAA;AAEZ,QAAI,IAAA,OAAOQ,EAAER,CAAAA,IAAG,CAAM,KAAA,QAAA,IAAY,MAAM,OAAQQ,CAAAA,EAAAA,CAAER,IAAG,CAAC,CAAG,EAAA;AAEvD,UAAA,IAAI,KAAM,CAAA,OAAA,CAAQQ,EAAER,CAAAA,IAAG,CAAC,CAAG,EAAA;AACzB,YAAAQ,EAAER,CAAAA,IAAG,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA,WACT,MAAA;AACL,YAAAQ,EAAAA,CAAER,IAAG,CAAI,GAAA,CAACQ,GAAER,IAAG,CAAA,EAAG,EAAE,CAAA;AAAA;AAGtB,UAAAQ,EAAAA,GAAIA,GAAER,IAAG,CAAA,CAAEQ,GAAER,IAAG,CAAA,CAAE,SAAS,CAAC,CAAA;AAAA,SACvB,MAAA;AACL,UAAAQ,EAAAA,GAAIA,GAAER,IAAG,CAAA;AAAA;AACX,OACD,CAAA;AAGD,MAAA,MAAM,MAAM,WAAY,CAAA,IAAA,CAAK,IAAK,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAC7C,MAAA,MAAM,cAAc,eAAgB,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA,EAAG,MAAM,MAAM,CAAA;AAChE,MAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;AACxC,MAAI,IAAA,SAAA,GAAY,cAAc,2BAA2B,CAAA;AAEzD,MAAA,IAAI,CAAC,SAAa,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AACnD,QAAY,SAAA,GAAA,IAAA;AACZ,QAAI,IAAA,CAAC,WAAYQ,CAAAA,EAAAA,CAAE,GAAG,CAAC,KAAK,KAAM,CAAA,KAAA,CAAM,GAAG,CAAA,KAAM,CAAK,IAAA,KAAA,CAAM,QAAQA,EAAE,CAAA,GAAG,CAAC,CAAA,IAAKA,EAAE,CAAA,GAAG,EAAE,MAAW,KAAA,KAAA,CAAM,KAAM,CAAA,GAAG,CAAG,EAAA;AACjH,UAAAA,EAAAA,CAAE,GAAG,CAAI,GAAA,MAAA;AAAA;AACX;AAEF,MAAI,IAAA,KAAA,KAAU,WAAa,EAAA;AACzB,QAAAA,GAAE,GAAG,CAAA,GAAI,SAAUA,CAAAA,EAAAA,CAAE,GAAG,CAAC,CAAA;AAAA,iBAChB,KAAM,CAAA,OAAA,CAAQA,EAAE,CAAA,GAAG,CAAC,CAAG,EAAA;AAChC,QAAI,IAAA,SAAA,IAAa,eAAe,YAAc,EAAA;AAC5C,UAAAA,EAAE,CAAA,GAAG,CAAI,GAAA,aAAA,CAAc,0BAA0B,CAAA,GAAIA,EAAE,CAAA,GAAG,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA,GAAA,CAAK,MAAM,OAAQA,CAAAA,EAAAA,CAAE,GAAG,CAAA,CAAE,CAAC,CAAC,CAAIA,GAAAA,EAAAA,CAAE,GAAG,CAAI,GAAA,CAACA,EAAE,CAAA,GAAG,CAAC,CAAA,EAAG,MAAO,CAAA,CAAC,KAAK,CAAC,CAAA;AAAA,SAC3I,MAAA,IAAW,CAAC,SAAa,IAAA,OAAA,CAAQ,WAAW,CAAM,KAAA,OAAA,CAAQ,YAAY,CAAG,EAAA;AACvE,UAAAA,EAAAA,CAAE,GAAG,CAAI,GAAA,KAAA;AAAA,SACJ,MAAA;AACL,UAAAA,EAAAA,CAAE,GAAG,CAAIA,GAAAA,EAAAA,CAAE,GAAG,CAAE,CAAA,MAAA,CAAO,CAAC,KAAK,CAAC,CAAA;AAAA;AAChC,OACSA,MAAAA,IAAAA,EAAAA,CAAE,GAAG,CAAA,KAAM,UAAa,WAAa,EAAA;AAC9C,QAAAA,GAAE,GAAG,CAAA,GAAI,YAAe,GAAA,KAAA,GAAQ,CAAC,KAAK,CAAA;AAAA,iBAC7B,SAAa,IAAA,EAAEA,EAAE,CAAA,GAAG,MAAM,MAAa,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,MAAM,CAAK,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAI,CAAA,EAAA;AAC1H,QAAAA,GAAE,GAAG,CAAA,GAAI,CAACA,EAAE,CAAA,GAAG,GAAG,KAAK,CAAA;AAAA,OAClB,MAAA;AACL,QAAAA,EAAAA,CAAE,GAAG,CAAI,GAAA,KAAA;AAAA;AACX;AAGF,IAAA,SAAS,iBAAiBN,KAAM,EAAA;AAC9B,MAAAA,KAAAA,CAAK,OAAQ,CAAA,SAAU,GAAK,EAAA;AAC1B,QAAA,MAAA,CAAO,KAAK,GAAO,IAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAI5C,UAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACxB,UAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,EAAC,CAAE,OAAO,OAAQ,CAAA,GAAG,CAAK,IAAA,EAAE,CAAA;AAEjD,UAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA,MAAA,CAAO,GAAG,CAAE,CAAA,OAAA,CAAQ,SAAU,CAAG,EAAA;AAClD,YAAA,IAAI,IAAI,IAAK,CAAA,CAAC,CAAK,IAAA,aAAA,CAAc,sBAAsB,CAAG,EAAA;AACxD,cAAMpB,MAAAA,EAAAA,GAAI,UAAU,CAAC,CAAA;AACrB,cAAIA,IAAAA,EAAAA,KAAM,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA,OAAA,CAAQA,EAAC,CAAA,KAAM,EAAI,EAAA;AACrD,gBAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAE,CAAA,IAAA,CAAKA,EAAC,CAAA;AACzB,gBAAA,UAAA,CAAWA,EAAC,CAAI,GAAA,IAAA;AAAA;AAClB;AACF,WACD,CAAA;AAED,UAAM,KAAA,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA,MAAA,CAAO,GAAG,CAAE,CAAA,OAAA,CAAQ,SAAU,CAAG,EAAA;AAClD,YAAI,IAAA,CAAA,CAAE,SAAS,CAAK,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,IAAK,aAAc,CAAA,sBAAsB,CAAG,EAAA;AAC5E,cAAMA,MAAAA,EAAAA,GAAI,UAAW,CAAA,CAAA,EAAG,GAAG,CAAA;AAC3B,cAAIA,IAAAA,EAAAA,KAAM,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA,OAAA,CAAQA,EAAC,CAAA,KAAM,EAAI,EAAA;AACrD,gBAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAE,CAAA,IAAA,CAAKA,EAAC,CAAA;AACzB,gBAAA,UAAA,CAAWA,EAAC,CAAI,GAAA,IAAA;AAAA;AAClB;AACF,WACD,CAAA;AACD,UAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAE,CAAA,OAAA,CAAQ,SAAU,CAAG,EAAA;AACtC,YAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,CAAI,GAAA,CAAC,GAAG,CAAA,CAAE,MAAO,CAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAE,CAAA,MAAA,CAAO,SAAU2B,EAAG,EAAA;AACrE,cAAA,OAAO,CAAMA,KAAAA,EAAAA;AAAA,aACd,CAAC,CAAA;AAAA,WACH,CAAA;AAAA,SACF,CAAA;AAAA,OACF,CAAA;AAAA;AAEH,IAAS,SAAA,eAAA,CAAgB,KAAK,IAAM,EAAA;AAClC,MAAM,MAAA,OAAA,GAAU,EAAC,CAAE,MAAO,CAAA,KAAA,CAAM,QAAQ,GAAG,CAAA,IAAK,EAAC,EAAG,GAAG,CAAA;AACvD,MAAM,MAAA,IAAA,GAAO,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA;AAC7B,MAAM,MAAA,QAAA,GAAW,QAAQ,IAAK,CAAA,CAAAT,SAAO,IAAK,CAAA,QAAA,CAASA,IAAG,CAAC,CAAA;AACvD,MAAO,OAAA,QAAA,GAAW,IAAK,CAAA,QAAQ,CAAI,GAAA,KAAA;AAAA;AAErC,IAAA,SAAS,WAAW,GAAK,EAAA;AACvB,MAAM,MAAA,SAAA,GAAY,MAAO,CAAA,IAAA,CAAK,KAAK,CAAA;AACnC,MAAM,MAAA,OAAA,GAAU,EAAC,CAAE,MAAO,CAAA,SAAA,CAAU,IAAI,CAAK,CAAA,KAAA,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AACtD,MAAO,OAAA,OAAA,CAAQ,IAAK,CAAA,SAAU,IAAM,EAAA;AAClC,QAAO,OAAA,KAAA,CAAM,QAAQ,IAAI,CAAA,GAAI,KAAK,QAAS,CAAA,GAAG,CAAI,GAAA,IAAA,CAAK,GAAG,CAAA;AAAA,OAC3D,CAAA;AAAA;AAEH,IAAS,SAAA,gBAAA,CAAiB,QAAQ,QAAU,EAAA;AAC1C,MAAA,MAAM,OAAU,GAAA,EAAG,CAAA,MAAA,CAAO,GAAG,QAAQ,CAAA;AACrC,MAAO,OAAA,OAAA,CAAQ,IAAK,CAAA,SAAU,OAAS,EAAA;AACrC,QAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,KAAA,CAAM,OAAO,CAAA;AAC/B,QAAA,OAAO,KAAS,IAAA,UAAA,CAAW,KAAM,CAAA,CAAC,CAAC,CAAA;AAAA,OACpC,CAAA;AAAA;AAGH,IAAA,SAAS,iBAAiB,GAAK,EAAA;AAE7B,MAAI,IAAA,GAAA,CAAI,MAAM,QAAQ,CAAA,IAAK,CAAC,GAAI,CAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AAChD,QAAO,OAAA,KAAA;AAAA;AAET,MAAA,IAAI,WAAc,GAAA,IAAA;AAClB,MAAI,IAAA,IAAA;AACJ,MAAA,MAAM,UAAU,GAAI,CAAA,KAAA,CAAM,CAAC,CAAA,CAAE,MAAM,EAAE,CAAA;AACrC,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,OAAA,CAAQ,QAAQ,CAAK,EAAA,EAAA;AACvC,QAAO,IAAA,GAAA,GAAA,CAAI,KAAM,CAAA,CAAA,GAAI,CAAC,CAAA;AACtB,QAAA,IAAI,CAAC,UAAA,CAAW,OAAQ,CAAA,CAAC,CAAC,CAAG,EAAA;AAC3B,UAAc,WAAA,GAAA,KAAA;AACd,UAAA;AAAA;AAEF,QAAA,IAAI,OAAQ,CAAA,CAAA,GAAI,CAAC,CAAA,IAAK,OAAQ,CAAA,CAAA,GAAI,CAAC,CAAA,KAAM,GAAO,IAAA,IAAA,KAAS,GAAO,IAAA,UAAA,CAAW,KAAK,OAAQ,CAAA,CAAC,CAAC,CAAA,IAAK,0BAA2B,CAAA,IAAA,CAAK,IAAI,CAAA,IAAK,QAAQ,CAAI,GAAA,CAAC,CAAK,IAAA,OAAA,CAAQ,CAAI,GAAA,CAAC,CAAE,CAAA,KAAA,CAAM,IAAI,CAAG,EAAA;AACpL,UAAA;AAAA;AACF;AAEF,MAAO,OAAA,WAAA;AAAA;AAET,IAAA,SAAS,qBAAqB,GAAK,EAAA;AACjC,MAAA,OAAO,aAAc,CAAA,yBAAyB,CAAK,IAAA,eAAA,CAAgB,GAAG,CAAA;AAAA;AAExE,IAAA,SAAS,gBAAgB,GAAK,EAAA;AAC5B,MAAM,GAAA,GAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,EAAU,IAAI,CAAA;AAEhC,MAAI,IAAA,GAAA,CAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AACvB,QAAO,OAAA,KAAA;AAAA;AAGT,MAAI,IAAA,gBAAA,CAAiB,GAAG,CAAG,EAAA;AACzB,QAAO,OAAA,KAAA;AAAA;AAGT,MAAA,MAAM,cAAiB,GAAA,sBAAA;AAEvB,MAAA,MAAM,UAAa,GAAA,cAAA;AAEnB,MAAA,MAAM,kBAAqB,GAAA,eAAA;AAE3B,MAAA,MAAM,kBAAqB,GAAA,iBAAA;AAE3B,MAAA,MAAM,6BAAgC,GAAA,mBAAA;AAEtC,MAAO,OAAA,CAAC,iBAAiB,GAAK,EAAA,cAAA,EAAgB,gBAAgB,UAAY,EAAA,kBAAA,EAAoB,oBAAoB,6BAA6B,CAAA;AAAA;AAIjJ,IAAA,SAAS,aAAa,GAAK,EAAA;AACzB,MAAA,IAAI,CAAC,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAK,IAAA,CAAC,eAAgB,CAAA,GAAA,EAAK,MAAM,MAAM,CAAA,IAAK,CAAG,EAAA,GAAG,MAAM,QAAU,EAAA;AACrG,QAAA,OAAO,SAAS,GAAG,CAAA;AAAA,OACd,MAAA;AACL,QAAO,OAAA,cAAA,CAAeU,UAAU,CAAA,GAAG,CAAC,CAAA;AAAA;AACtC;AAGF,IAAA,SAAS,eAAe,IAAM,EAAA;AAC5B,MAAA,MAAM,GAAM,GAAA;AAAA,QACV,CAAC,uBAAwB,CAAA,OAAO,GAAG,IAAA;AAAA,QACnC,CAAC,uBAAwB,CAAA,MAAM,GAAG,EAAA;AAAA,QAClC,CAAC,uBAAwB,CAAA,MAAM,GAAG,MAAA;AAAA,QAClC,CAAC,uBAAA,CAAwB,KAAK,GAAG;AAAC,OACpC;AACA,MAAA,OAAO,IAAI,IAAI,CAAA;AAAA;AAGjB,IAAA,SAASA,WAAU,GAAK,EAAA;AACtB,MAAA,IAAI,OAAO,uBAAwB,CAAA,OAAA;AACnC,MAAA,IAAI,gBAAgB,GAAK,EAAA,KAAA,CAAM,OAAO,CAAA,SAAU,uBAAwB,CAAA,MAAA;AAAA,WAAA,IAAgB,gBAAgB,GAAK,EAAA,KAAA,CAAM,OAAO,CAAA,SAAU,uBAAwB,CAAA,MAAA;AAAA,WAAA,IAAgB,gBAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAA,SAAU,uBAAwB,CAAA,OAAA;AAAA,WAAA,IAAiB,gBAAgB,GAAK,EAAA,KAAA,CAAM,MAAM,CAAA,SAAU,uBAAwB,CAAA,KAAA;AAClU,MAAO,OAAA,IAAA;AAAA;AAET,IAAA,SAAS,YAAY,GAAK,EAAA;AACxB,MAAA,OAAO,GAAQ,KAAA,MAAA;AAAA;AAGjB,IAAA,SAAS,kBAAqB,GAAA;AAE5B,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,MAAM,CAAA,CAAE,KAAK,CAAO,GAAA,KAAA;AACpC,QAAA,IAAI,eAAgB,CAAA,GAAA,EAAK,KAAM,CAAA,MAAM,CAAG,EAAA;AACtC,UAAA,KAAA,GAAQ,KAAM,CAAA,EAAA,CAAG,4DAA8D,EAAA,GAAG,CAAC,CAAA;AACnF,UAAO,OAAA,IAAA;AAAA,SACE,MAAA,IAAA,eAAA,CAAgB,GAAK,EAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC5C,UAAA,KAAA,GAAQ,KAAM,CAAA,EAAA,CAAG,2DAA6D,EAAA,GAAG,CAAC,CAAA;AAClF,UAAO,OAAA,IAAA;AAAA;AAET,QAAO,OAAA,KAAA;AAAA,OACR,CAAA;AAAA;AAEH,IAAO,OAAA;AAAA,MACL,SAAS,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,MAAM,OAAO,CAAA;AAAA,MACxC,IAAM,EAAA,MAAA,CAAO,MAAO,CAAA,UAAA,EAAYT,KAAI,CAAA;AAAA,MACpC,aAAA;AAAA,MACA,SAAW,EAAA,MAAA,CAAO,MAAO,CAAA,IAAI,SAAS,CAAA;AAAA,MACtC,KAAA;AAAA,MACA,UAAY,EAAA,MAAA,CAAO,MAAO,CAAA,IAAI,UAAU;AAAA,KAC1C;AAAA;AAEJ,CAAA;AAGA,SAAS,eAAe,OAAS,EAAA;AAC/B,EAAA,MAAM,cAAc,EAAC;AACrB,EAAM,MAAA,QAAA,mBAAkB,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AACnC,EAAA,IAAI,MAAS,GAAA,IAAA;AAGb,EAAA,MAAA,CAAO,IAAK,CAAA,OAAO,CAAE,CAAA,OAAA,CAAQ,SAAU,GAAK,EAAA;AAC1C,IAAY,WAAA,CAAA,IAAA,CAAK,EAAG,CAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,GAC9C,CAAA;AAGD,EAAA,OAAO,MAAQ,EAAA;AACb,IAAS,MAAA,GAAA,KAAA;AACT,IAAA,KAAA,IAASlB,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,WAAA,CAAY,QAAQA,EAAK,EAAA,EAAA;AAC3C,MAAA,KAAA,IAAS,KAAKA,EAAI,GAAA,CAAA,EAAG,EAAK,GAAA,WAAA,CAAY,QAAQ,EAAM,EAAA,EAAA;AAClD,QAAA,MAAM,YAAY,WAAYA,CAAAA,EAAC,CAAE,CAAA,MAAA,CAAO,SAAU,CAAG,EAAA;AACnD,UAAA,OAAO,WAAY,CAAA,EAAE,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA,EAAA;AAAA,SACvC,CAAA;AACD,QAAA,IAAI,UAAU,MAAQ,EAAA;AACpB,UAAYA,WAAAA,CAAAA,EAAC,IAAI,WAAYA,CAAAA,EAAC,EAAE,MAAO,CAAA,WAAA,CAAY,EAAE,CAAC,CAAA;AACtD,UAAY,WAAA,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AACxB,UAAS,MAAA,GAAA,IAAA;AACT,UAAA;AAAA;AACF;AACF;AACF;AAIF,EAAY,WAAA,CAAA,OAAA,CAAQ,SAAU,UAAY,EAAA;AACxC,IAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,SAAU,CAAA,EAAGA,IAAG,IAAM,EAAA;AACnD,MAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAMA,KAAAA,EAAAA;AAAA,KAC5B,CAAA;AACD,IAAM,MAAA,SAAA,GAAY,WAAW,GAAI,EAAA;AACjC,IAAA,IAAI,SAAc,KAAA,MAAA,IAAa,OAAO,SAAA,KAAc,QAAU,EAAA;AAC5D,MAAA,QAAA,CAAS,SAAS,CAAI,GAAA,UAAA;AAAA;AACxB,GACD,CAAA;AACD,EAAO,OAAA,QAAA;AACT;AAIA,SAAS,UAAU,IAAM,EAAA;AACvB,EAAO,OAAA,IAAA,KAAS,MAAY,GAAA,IAAA,GAAO,CAAI,GAAA,CAAA;AACzC;AAGA,SAAS,YAAY,GAAK,EAAA;AACxB,EAAI,IAAA,GAAA,KAAQ,aAAoB,OAAA,aAAA;AAChC,EAAO,OAAA,GAAA;AACT;AACA,SAAS,YAAY,GAAK,EAAA;AACxB,EAAO,OAAA,OAAO,GAAQ,KAAA,QAAA,KAAa,GAAI,CAAA,CAAC,MAAM,GAAO,IAAA,GAAA,CAAI,CAAC,CAAA,KAAM,GAAQ,CAAA,IAAA,GAAA,CAAI,IAAI,MAAS,GAAA,CAAC,CAAM,KAAA,GAAA,CAAI,CAAC,CAAA,GAAI,GAAI,CAAA,SAAA,CAAU,CAAG,EAAA,GAAA,CAAI,MAAS,GAAA,CAAC,CAAI,GAAA,GAAA;AAC9I;ACv6BA,IAAI,EAAA;AAAJ,IAAQ,EAAA;AAAR,IAAY,EAAA;AAQZ,IAAM,cAAA,GAAiB,OAAW,IAAA,OAAA,CAAQ,GAAO,IAAA,OAAA,CAAQ,GAAI,CAAA,sBAAA,GAAyB,MAAO,CAAA,OAAA,CAAQ,GAAI,CAAA,sBAAsB,CAAI,GAAA,EAAA;AACnI,IAAM,WAAe,GAAA,CAAA,EAAA,GAAA,CAAM,EAAK,GAAA,OAAA,KAAY,QAAQ,OAAY,KAAA,MAAA,GAAS,MAAS,GAAA,OAAA,CAAQ,cAAc,IAAQ,IAAA,EAAA,KAAO,MAAS,GAAA,MAAA,GAAS,GAAG,IAAU,MAAA,IAAA,IAAQ,EAAO,KAAA,MAAA,GAAS,EAAM,GAAA,CAAA,EAAA,GAAK,OAAY,KAAA,IAAA,IAAQ,YAAY,MAAS,GAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,MAAa,QAAQ,EAAO,KAAA,MAAA,GAAS,MAAS,GAAA,EAAA,CAAG,MAAM,CAAC,CAAA;AAC3S,IAAI,WAAa,EAAA;AACf,EAAA,MAAM,QAAQ,MAAO,CAAA,WAAA,CAAY,MAAM,UAAU,CAAA,CAAE,CAAC,CAAC,CAAA;AACrD,EAAA,IAAI,QAAQ,cAAgB,EAAA;AAC1B,IAAM,MAAA,KAAA,CAAM,CAAsD,mDAAA,EAAA,cAAc,CAAoG,kGAAA,CAAA,CAAA;AAAA;AAExL;AAEA,IAAMU,IAAM,GAAA,OAAA,GAAU,OAAQ,CAAA,GAAA,GAAM,EAAC;AACtB,IAAI,WAAY,CAAA;AAAA,EAC7B,KAAK,OAAQ,CAAA,GAAA;AAAA,EACb,KAAK,MAAM;AACT,IAAOA,OAAAA,IAAAA;AAAA,GACT;AAAA,UACAkB,WAAA;AAAA,aACAC,cAAA;AAAA,EACA,OAAAC,EAAAA,YAAAA;AAAA;AAAA;AAAA,EAGA,OAAA,EAAS,CAAAC,KAAQ,KAAA;AACf,IAAI,IAAA,OAAOC,gCAAY,WAAa,EAAA;AAClC,MAAA,OAAOA,4BAAQD,KAAI,CAAA;AAAA,KACVA,MAAAA,IAAAA,KAAAA,CAAK,KAAM,CAAA,SAAS,CAAG,EAAA;AAEhC,MAAA,OAAO,IAAK,CAAA,KAAA,CAAME,eAAaF,CAAAA,KAAAA,EAAM,MAAM,CAAC,CAAA;AAAA,KACvC,MAAA;AACL,MAAA,MAAM,MAAM,8CAA8C,CAAA;AAAA;AAC5D;AAEJ,CAAC;AC3CD,IAAO,YAAQ,GAAA;AAAA,EACb,EAAI,EAAA;AAAA,IACF,YAAAE,EAAAA,eAAAA;AAAA,eACAC;AAAA,GACF;AAAA,EACA,MAAAN,EAAAA,WAAAA;AAAA,EACA,OAAAE,EAAAA,YAAAA;AAAA,EACA,QAAQ,CAAQ,IAAA,KAAA;AACd,IAAI,IAAA;AACF,MAAOK,OAAAA,WAAAA,CAAS,IAAI,CAAA,CAAE,MAAO,EAAA;AAAA,aACtB,GAAK,EAAA;AACZ,MAAO,OAAA,KAAA;AAAA;AACT;AAEJ,CAAA;;;ACjBA,IAAI,IAAA;AACJ,IAAM,OAAN,MAAW;AAAA,EACT,YAAY,IAAM,EAAA;AAEhB,IAAA,IAAA,GAAO,QAAQ,EAAC;AAChB,IAAK,IAAA,CAAA,SAAA,GAAY,KAAK,SAAa,IAAA,WAAA;AACnC,IAAA,IAAA,CAAK,cAAc,OAAO,IAAA,CAAK,WAAgB,KAAA,SAAA,GAAY,KAAK,WAAc,GAAA,IAAA;AAC9E,IAAK,IAAA,CAAA,MAAA,GAAS,KAAK,MAAU,IAAA,IAAA;AAC7B,IAAA,IAAA,CAAK,qBAAqB,OAAO,IAAA,CAAK,kBAAuB,KAAA,SAAA,GAAY,KAAK,kBAAqB,GAAA,IAAA;AAEnG,IAAK,IAAA,CAAA,KAAA,mBAAe,MAAA,CAAA,MAAA,CAAO,IAAI,CAAA;AAC/B,IAAA,IAAA,CAAK,aAAa,EAAC;AAAA;AACrB,EACA,MAAM,IAAM,EAAA;AACV,IAAA,IAAI,OAAO,SAAA,CAAU,CAAC,CAAA,KAAM,QAAU,EAAA;AACpC,MAAA,OAAO,KAAK,cAAe,CAAA,SAAA,CAAU,CAAC,CAAA,EAAG,GAAG,SAAS,CAAA;AAAA;AAEvD,IAAM,MAAA,GAAA,GAAM,KAAK,KAAM,EAAA;AACvB,IAAA,IAAI,KAAK,WAAY;AAAA,KAAC;AACtB,IAAI,IAAA,OAAO,KAAK,IAAK,CAAA,MAAA,GAAS,CAAC,CAAM,KAAA,UAAA,EAAiB,EAAA,GAAA,IAAA,CAAK,GAAI,EAAA;AAC/D,IAAA,EAAA,GAAK,MAAM,WAAY;AAAA,KAAC;AACxB,IAAA,IAAI,CAAC,IAAK,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,OAAQ,eAAgB,EAAA;AAEnD,IAAI,IAAA,CAAC,KAAK,KAAM,CAAA,IAAA,CAAK,MAAM,CAAE,CAAA,GAAG,CAAK,IAAA,IAAA,CAAK,WAAa,EAAA;AACrD,MAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAM,CAAA,CAAE,GAAG,CAAI,GAAA,GAAA;AAI/B,MAAA,IAAA,CAAK,aAAc,CAAA;AAAA,QACjB,WAAW,IAAK,CAAA,SAAA;AAAA,QAChB,QAAQ,IAAK,CAAA,MAAA;AAAA,QACb;AAAA,OACD,CAAA;AAAA,KACI,MAAA;AACL,MAAG,EAAA,EAAA;AAAA;AAEL,IAAA,OAAO,KAAK,MAAO,CAAA,KAAA,CAAM,IAAK,CAAA,MAAA,EAAQ,CAAC,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,MAAM,EAAE,GAAG,CAAA,IAAK,GAAG,CAAE,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA;AAC1F,EACA,GAAM,GAAA;AACJ,IAAA,MAAM,IAAO,GAAA,KAAA,CAAM,SAAU,CAAA,KAAA,CAAM,KAAK,SAAS,CAAA;AACjD,IAAM,MAAA,QAAA,GAAW,KAAK,KAAM,EAAA;AAC5B,IAAM,MAAA,MAAA,GAAS,KAAK,KAAM,EAAA;AAC1B,IAAM,MAAA,QAAA,GAAW,KAAK,KAAM,EAAA;AAC5B,IAAA,IAAI,KAAK,WAAY;AAAA,KAAC;AACtB,IAAI,IAAA,OAAO,KAAK,IAAK,CAAA,MAAA,GAAS,CAAC,CAAM,KAAA,UAAA,EAAiB,EAAA,GAAA,IAAA,CAAK,GAAI,EAAA;AAC/D,IAAA,IAAI,CAAC,IAAK,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,OAAQ,eAAgB,EAAA;AACnD,IAAI,IAAA,GAAA,GAAM,QAAa,KAAA,CAAA,GAAI,QAAW,GAAA,MAAA;AACtC,IAAA,IAAI,KAAK,KAAM,CAAA,IAAA,CAAK,MAAM,CAAA,CAAE,QAAQ,CAAG,EAAA;AACrC,MAAA,MAAM,QAAQ,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,MAAM,EAAE,QAAQ,CAAA;AAC9C,MAAA,GAAA,GAAM,KAAM,CAAA,QAAA,KAAa,CAAI,GAAA,KAAA,GAAQ,OAAO,CAAA;AAAA;AAG9C,IAAI,IAAA,CAAC,KAAK,KAAM,CAAA,IAAA,CAAK,MAAM,CAAE,CAAA,QAAQ,CAAK,IAAA,IAAA,CAAK,WAAa,EAAA;AAC1D,MAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAM,CAAA,CAAE,QAAQ,CAAI,GAAA;AAAA,QAClC,GAAK,EAAA,QAAA;AAAA,QACL,KAAO,EAAA;AAAA,OACT;AAIA,MAAA,IAAA,CAAK,aAAc,CAAA;AAAA,QACjB,WAAW,IAAK,CAAA,SAAA;AAAA,QAChB,QAAQ,IAAK,CAAA,MAAA;AAAA,QACb;AAAA,OACD,CAAA;AAAA,KACI,MAAA;AACL,MAAG,EAAA,EAAA;AAAA;AAIL,IAAM,MAAA,MAAA,GAAS,CAAC,GAAG,CAAA;AACnB,IAAA,IAAI,CAAC,GAAI,CAAA,OAAA,CAAQ,IAAI,CAAG,EAAA,MAAA,CAAO,KAAK,QAAQ,CAAA;AAC5C,IAAO,OAAA,IAAA,CAAK,OAAO,KAAM,CAAA,IAAA,CAAK,QAAQ,MAAO,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA;AAC3D,EACA,UAAU,MAAQ,EAAA;AAChB,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AAAA;AAChB,EACA,SAAY,GAAA;AACV,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd,EACA,aAAa,GAAK,EAAA;AAChB,IAAA,IAAI,CAAC,IAAK,CAAA,KAAA,CAAM,KAAK,MAAM,CAAA,OAAQ,eAAgB,EAAA;AACnD,IAAA,KAAA,MAAW,OAAO,GAAK,EAAA;AACrB,MAAA,IAAI,OAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,GAAA,EAAK,GAAG,CAAG,EAAA;AAClD,QAAA,IAAA,CAAK,MAAM,IAAK,CAAA,MAAM,EAAE,GAAG,CAAA,GAAI,IAAI,GAAG,CAAA;AAAA;AACxC;AACF;AACF,EACA,cAAA,CAAe,UAAU,IAAM,EAAA;AAC7B,IAAA,IAAI,GAAM,GAAA,EAAA;AACV,IAAM,KAAA,CAAA,OAAA,CAAQ,SAAU,IAAA,EAAMnC,EAAG,EAAA;AAC/B,MAAM,MAAA,GAAA,GAAM,IAAKA,CAAAA,EAAAA,GAAI,CAAC,CAAA;AACtB,MAAO,GAAA,IAAA,IAAA;AACP,MAAI,IAAA,OAAO,QAAQ,WAAa,EAAA;AAC9B,QAAO,GAAA,IAAA,IAAA;AAAA;AACT,KACD,CAAA;AACD,IAAA,OAAO,IAAK,CAAA,EAAA,CAAG,KAAM,CAAA,IAAA,EAAM,CAAC,GAAG,CAAA,CAAE,MAAO,CAAA,GAAG,KAAM,CAAA,IAAA,CAAK,IAAM,EAAA,CAAC,CAAC,CAAC,CAAA;AAAA;AACjE,EACA,cAAc,IAAM,EAAA;AAClB,IAAK,IAAA,CAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AACzB,IAAA,IAAI,IAAK,CAAA,UAAA,CAAW,MAAW,KAAA,CAAA,OAAQ,kBAAmB,EAAA;AAAA;AAC5D,EACA,kBAAqB,GAAA;AACnB,IAAA,MAAM,KAAQ,GAAA,IAAA;AACd,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,UAAA,CAAW,CAAC,CAAA;AAE9B,IAAA,MAAM,YAAY,IAAK,CAAA,SAAA;AACvB,IAAA,MAAM,SAAS,IAAK,CAAA,MAAA;AACpB,IAAA,MAAM,KAAK,IAAK,CAAA,EAAA;AAChB,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,kBAAmB,CAAA,SAAA,EAAW,MAAM,CAAA;AAC9D,IAAM,MAAA,gBAAA,GAAmB,KAAK,SAAU,CAAA,IAAA,CAAK,MAAM,MAAM,CAAA,EAAG,MAAM,CAAC,CAAA;AACnE,IAAA,IAAA,CAAK,GAAG,SAAU,CAAA,YAAA,EAAc,gBAAkB,EAAA,OAAA,EAAS,SAAU,GAAK,EAAA;AACxE,MAAA,KAAA,CAAM,WAAW,KAAM,EAAA;AACvB,MAAA,IAAI,KAAM,CAAA,UAAA,CAAW,MAAS,GAAA,CAAA,QAAS,kBAAmB,EAAA;AAC1D,MAAA,EAAA,CAAG,GAAG,CAAA;AAAA,KACP,CAAA;AAAA;AACH,EACA,eAAkB,GAAA;AAChB,IAAA,IAAI,eAAe,EAAC;AACpB,IAAA,MAAM,eAAe,IAAK,CAAA,kBAAA,CAAmB,IAAK,CAAA,SAAA,EAAW,KAAK,MAAM,CAAA;AACxE,IAAI,IAAA;AAEF,MAAI,IAAA,IAAA,CAAK,GAAG,YAAc,EAAA;AACxB,QAAA,YAAA,GAAe,KAAK,KAAM,CAAA,IAAA,CAAK,GAAG,YAAa,CAAA,YAAA,EAAc,OAAO,CAAC,CAAA;AAAA;AACvE,aACO,GAAK,EAAA;AACZ,MAAA,IAAI,eAAe,WAAa,EAAA;AAC9B,QAAA,GAAA,CAAI,UAAU,kBAAqB,GAAA,YAAA;AAAA;AAErC,MAAA,IAAI,GAAI,CAAA,IAAA,KAAS,QAAU,EAAA,YAAA,GAAe,EAAC;AAAA,WAAa,MAAA,GAAA;AAAA;AAE1D,IAAK,IAAA,CAAA,KAAA,CAAM,IAAK,CAAA,MAAM,CAAI,GAAA,YAAA;AAAA;AAC5B,EACA,kBAAA,CAAmB,WAAW,MAAQ,EAAA;AACpC,IAAA,IAAI,OAAO,IAAK,CAAA,OAAA,CAAQ,SAAW,EAAA,IAAA,EAAM,SAAS,OAAO,CAAA;AACzD,IAAI,IAAA,IAAA,CAAK,kBAAsB,IAAA,CAAC,IAAK,CAAA,eAAA,CAAgB,IAAI,CAAA,IAAK,CAAC,MAAA,CAAO,WAAY,CAAA,GAAG,CAAG,EAAA;AAEtF,MAAM,MAAA,YAAA,GAAe,IAAK,CAAA,OAAA,CAAQ,SAAW,EAAA,IAAA,EAAM,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,GAAI,OAAO,CAAA;AACjF,MAAA,IAAI,IAAK,CAAA,eAAA,CAAgB,YAAY,CAAA,EAAU,IAAA,GAAA,YAAA;AAAA;AAEjD,IAAO,OAAA,IAAA;AAAA;AACT,EACA,gBAAgB,IAAM,EAAA;AACpB,IAAO,OAAA,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA;AAE3B,CAAA;AACO,SAAS,IAAA,CAAK,MAAM,KAAO,EAAA;AAChC,EAAO,IAAA,GAAA,KAAA;AACP,EAAMoC,MAAAA,KAAAA,GAAO,IAAI,IAAA,CAAK,IAAI,CAAA;AAC1B,EAAO,OAAA;AAAA,IACL,EAAIA,EAAAA,KAAAA,CAAK,EAAG,CAAA,IAAA,CAAKA,KAAI,CAAA;AAAA,IACrB,GAAKA,EAAAA,KAAAA,CAAK,GAAI,CAAA,IAAA,CAAKA,KAAI,CAAA;AAAA,IACvB,SAAWA,EAAAA,KAAAA,CAAK,SAAU,CAAA,IAAA,CAAKA,KAAI,CAAA;AAAA,IACnC,SAAWA,EAAAA,KAAAA,CAAK,SAAU,CAAA,IAAA,CAAKA,KAAI,CAAA;AAAA,IACnC,YAAcA,EAAAA,KAAAA,CAAK,YAAa,CAAA,IAAA,CAAKA,KAAI,CAAA;AAAA,IACzC,QAAQA,KAAK,CAAA;AAAA,GACf;AACF;;;AC5JA,IAAMA,QAAO,CAAQ,IAAA,KAAA;AACnB,EAAO,OAAA,IAAA,CAAM,MAAM,YAAI,CAAA;AACzB,CAAA;AACA,IAAO,YAAQA,GAAAA,KAAAA;ACUf,IAAIC,WAAA;AACJ,IAAI;AACF,EAAAA,WAAA,GAAYC,kBAAcC,+BAAe,CAAA;AAC3C,CAAA,CAAA,OAAS,CAAG,EAAA;AACV,EAAAF,WAAA,GAAY,QAAQ,GAAI,EAAA;AAC1B;AACA,IAAM,eAAeA,WAAU,CAAA,SAAA,CAAU,GAAGA,WAAU,CAAA,WAAA,CAAY,cAAc,CAAC,CAAA;CAClE;AAAA,EAeb,YAAA,EAAc,YAAgB,IAAA,OAAA,CAAQ,GAAI,EAAA;AAAA,EAS1C,OAAS,EAAA;AAAA,IAEP,KAAK,OAAQ,CAAA,GAAA;AAAA,IAGb,MAAM,OAAQ,CAAA,IAAA;AAAA,IACd,UAAU,OAAQ,CAAA,QAAA;AAAA,IAClB,UAAA,EAAY,OAAO,OAAQ,CAAA,MAAA,CAAO,YAAY,WAAc,GAAA,OAAA,CAAQ,OAAO,OAAU,GAAA;AAAA,GACvF;AAAA,EAWA,MAAM,YAAK,CAAA;AAAA,IACT,SAAA,EAAWP,YAAQ,CAAAO,WAAA,EAAW,kBAAkB,CAAA;AAAA,IAChD,WAAa,EAAA;AAAA,GACd;AACH;;;ACrDO,IAAI,sBAAA,6BAAgDG,uBAAwB,EAAA;AACjF,EAAAA,uBAAAA,CAAuB,aAAa,CAAI,GAAA,aAAA;AACxC,EAAAA,uBAAAA,CAAuB,WAAW,CAAI,GAAA,WAAA;AACtC,EAAAA,uBAAAA,CAAuB,gBAAgB,CAAI,GAAA,gBAAA;AAC3C,EAAAA,uBAAAA,CAAuB,sBAAsB,CAAI,GAAA,sBAAA;AACjD,EAAAA,uBAAAA,CAAuB,aAAa,CAAI,GAAA,aAAA;AACxC,EAAAA,uBAAAA,CAAuB,YAAY,CAAI,GAAA,YAAA;AACvC,EAAOA,OAAAA,uBAAAA;AACT,CAAA,EAAE,EAAE,CAAA;;;ACqGG,SAAS,qBAAqBjC,EAAG,EAAA;AACtC,EAAA,OAAOA,EAAM,KAAA,MAAA,IAAaA,EAAK,IAAA,IAAA,GAAO,EAAKA,GAAAA,EAAAA,CAAE,MAAO,CAAA,CAAC,CAAE,CAAA,WAAA,EAAgBA,GAAAA,EAAAA,CAAE,MAAM,CAAC,CAAA;AAClF;AAGO,SAAS,2BAA2BA,EAAG,EAAA;AAC5C,EAAA,OAAOA,EAAM,KAAA,MAAA,IAAaA,EAAK,IAAA,IAAA,GAAO,KAAKA,EAAE,CAAA,QAAA,CAAS,GAAG,CAAA,GAAI,oBAAqBA,CAAAA,EAAC,CAAI,GAAA,oBAAA,CAAqBA,EAAC,CAAI,GAAA,GAAA;AACnH;;;ACnIA,SAAS,IAAO,GAAA;AAKhB;AACA,SAAS,aAAgB,GAAA;AACvB,EAAI,IAAA,OAAO,YAAY,WAAa,EAAA;AAClC,IAAA,2BAAW,OAAQ,EAAA;AAAA,GACd,MAAA;AACL,IAAA,OAAO,YAAa,EAAA;AAAA;AAExB;AAIA,SAAS,YAAe,GAAA;AACtB,EAAO,OAAA;AAAA,IACL,GAAK,EAAA,IAAA;AAAA,IACL,MAAQ,EAAA,IAAA;AAAA,IACR,GAAK,EAAA,IAAA;AAAA,IACL,GAAK,EAAA,IAAA;AAAA,IACL,GAAA,EAAK,SAAU,CAAG,EAAA;AAChB,MAAO,OAAA,KAAA;AAAA;AACT,GACF;AACF;AAEA,IAAI,GAAA,GAAM,OAAO,SAAU,CAAA,cAAA;AAC3B,IAAI,GAAA,GAAM,SAAU,GAAA,EAAK,IAAM,EAAA;AAC7B,EAAO,OAAA,GAAA,CAAI,IAAK,CAAA,GAAA,EAAK,IAAI,CAAA;AAC3B,CAAA;AAEA,SAAS,MAAA,CAAO,QAAQ,MAAQ,EAAA;AAC9B,EAAA,KAAA,IAAS,QAAQ,MAAQ,EAAA;AACvB,IAAI,IAAA,GAAA,CAAI,MAAQ,EAAA,IAAI,CAAG,EAAA;AACrB,MAAO,MAAA,CAAA,IAAI,CAAI,GAAA,MAAA,CAAO,IAAI,CAAA;AAAA;AAC5B;AAEF,EAAO,OAAA,MAAA;AACT;AACA,IAAI,gBAAmB,GAAA,uBAAA;AACvB,IAAI,iBAAoB,GAAA,uBAAA;AACxB,IAAI,4BAA+B,GAAA,eAAA;AACnC,IAAI,mBAAsB,GAAA,wCAAA;AAC1B,IAAI,qCAAwC,GAAA,0BAAA;AAC5C,SAAS,aAAA,CAAc,OAAS,EAAA,0CAAA,EAA4C,OAAS,EAAA;AAGnF,EAAA,IAAI,gBAAmB,GAAA,CAAA;AACvB,EAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,MAAM,mBAAmB,CAAA;AAChD,EAAA,IAAI,KAAO,EAAA;AACT,IAAmB,gBAAA,GAAA,KAAA,CAAM,CAAC,CAAE,CAAA,MAAA;AAAA;AAE9B,EAAI,IAAA,QAAA,GAAW,yBAAyB,gBAAmB,GAAA,GAAA;AAC3D,EAAA,IAAI,aAAgB,GAAA,IAAI,MAAO,CAAA,QAAA,EAAU,GAAG,CAAA;AAC5C,EAAA,IAAI,0CAA4C,EAAA;AAC9C,IAAU,OAAA,GAAA,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA;AAE3B,EAAA,IAAI,UAAU,OAAQ,CAAA,OAAA,EACpB,qBAAqB,OAAQ,CAAA,kBAAA,EAC7B,sBAAsB,OAAQ,CAAA,mBAAA;AAChC,EAAI,IAAA,iBAAA,GAAoB,OAAO,OAAY,KAAA,QAAA;AAC3C,EAAA,IAAIL,KAAI,OAAQ,CAAA,MAAA;AAChB,EAAA,IAAI,gBAAmB,GAAA,OAAA,CAAQ,GAAI,CAAA,SAAU,GAAGF,EAAG,EAAA;AAEjD,IAAI,CAAA,GAAA,CAAA,CAAE,OAAQ,CAAA,aAAA,EAAe,IAAI,CAAA;AAEjC,IAAIA,IAAAA,EAAAA,KAAM,KAAK,kBAAoB,EAAA;AACjC,MAAI,CAAA,GAAA,CAAA,CAAE,OAAQ,CAAA,gBAAA,EAAkB,EAAE,CAAA;AAAA;AAGpC,IAAIA,IAAAA,EAAAA,KAAME,EAAI,GAAA,CAAA,IAAK,mBAAqB,EAAA;AACtC,MAAI,CAAA,GAAA,CAAA,CAAE,OAAQ,CAAA,iBAAA,EAAmB,EAAE,CAAA;AAAA;AAGrC,IAAA,IAAI,iBAAmB,EAAA;AACrB,MAAA,CAAA,GAAI,CAAE,CAAA,OAAA,CAAQ,aAAe,EAAA,SAAUU,EAAG,EAAA;AACxC,QAAO,OAAA,OAAA;AAAA,OACR,CAAA;AAAA;AAEH,IAAO,OAAA,CAAA;AAAA,GACR,CAAA;AACD,EAAO,OAAA,gBAAA;AACT;AACA,SAAS,sBAAA,CAAuB,SAAS,MAAQ,EAAA;AAC/C,EAAA,IAAI,GAAM,GAAA,EAAA;AACV,EAAA,KAAA,IAASZ,KAAI,CAAGE,EAAAA,EAAAA,GAAI,QAAQ,MAAQF,EAAAA,EAAAA,GAAIE,IAAGF,EAAK,EAAA,EAAA;AAC9C,IAAA,GAAA,IAAO,QAAQA,EAAC,CAAA;AAChB,IAAIA,IAAAA,EAAAA,GAAIE,KAAI,CAAG,EAAA;AACb,MAAA,GAAA,IAAO,OAAOF,EAAC,CAAA;AAAA;AACjB;AAEF,EAAO,OAAA,GAAA;AACT;AACA,SAAS,uBAAuB,CAAG,EAAA;AACjC,EAAA,OAAO,IAAI,CAAG,EAAA,KAAK,CAAK,IAAA,GAAA,CAAI,GAAG,QAAQ,CAAA;AACzC;AAOA,SAAS,eAAe,OAAS,EAAA;AAE/B,EAAA,IAAI,uBAAuB,aAAc,EAAA;AAKzC,EAAA,IAAI,kCAAkC,aAAc,EAAA;AACpD,EAAA,SAAS,QAAQ,gBAAkB,EAAA;AACjC,IAAA,IAAI,SAAS,EAAC;AACd,IAAA,KAAA,IAAS,EAAK,GAAA,CAAA,EAAG,EAAK,GAAA,SAAA,CAAU,QAAQ,EAAM,EAAA,EAAA;AAC5C,MAAA,MAAA,CAAO,EAAK,GAAA,CAAC,CAAI,GAAA,SAAA,CAAU,EAAE,CAAA;AAAA;AAG/B,IAAI,IAAA,sBAAA,CAAuB,gBAAgB,CAAG,EAAA;AAC5C,MAAA,IAAI,OAAU,GAAA,gBAAA;AAEd,MAAA,IAAI,8CAA8C,MAAO,CAAA,CAAC,MAAM,OAAW,IAAA,MAAA,CAAO,CAAC,CAAM,KAAA,cAAA,KAAmB,sCAAsC,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,IAAK,6BAA6B,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA;AAElN,MAAI,IAAA,KAAA,GAAQ,6CAA6C,+BAAkC,GAAA,oBAAA;AAC3F,MAAI,IAAA,aAAA,GAAgB,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA;AACrC,MAAA,IAAI,CAAC,aAAe,EAAA;AAClB,QAAgB,aAAA,GAAA,aAAA,CAAc,OAAS,EAAA,0CAAA,EAA4C,OAAO,CAAA;AAC1F,QAAM,KAAA,CAAA,GAAA,CAAI,SAAS,aAAa,CAAA;AAAA;AAGlC,MAAI,IAAA,MAAA,CAAO,WAAW,CAAG,EAAA;AACvB,QAAA,OAAO,cAAc,CAAC,CAAA;AAAA;AAGxB,MAAI,IAAA,QAAA,GAAW,uBAAuB,aAAe,EAAA,0CAAA,GAA6C,OAAO,KAAM,CAAA,CAAC,IAAI,MAAM,CAAA;AAC1H,MAAO,OAAA,QAAA;AAAA,KACF,MAAA;AAEL,MAAO,OAAA,cAAA,CAAe,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,OAAO,CAAG,EAAA,gBAAA,IAAoB,EAAE,CAAC,CAAA;AAAA;AAC3E;AAEF,EAAI,IAAA,WAAA,GAAc,OAAO,OAAS,EAAA;AAAA,IAChC,MAAA,EAAQ,SAAU,GAAK,EAAA;AACrB,MAAA,OAAO,cAAc,CAAC,GAAG,GAAG,KAAO,EAAA,OAAO,EAAE,CAAC,CAAA;AAAA;AAC/C,GACD,CAAA;AACD,EAAO,OAAA,WAAA;AACT;AACA,IAAI,iBAAiB,cAAe,CAAA;AAAA,EAClC,kBAAoB,EAAA,IAAA;AAAA,EACpB,mBAAqB,EAAA;AACvB,CAAC,CAAA;AAMD,IAAI,OAAO,WAAW,WAAa,EAAA;AAGjC,EAAI,IAAA;AACF,IAAA,MAAA,CAAO,OAAU,GAAA,cAAA;AACjB,IAAO,MAAA,CAAA,cAAA,CAAe,gBAAgB,YAAc,EAAA;AAAA,MAClD,KAAO,EAAA;AAAA,KACR,CAAA;AACD,IAAA,cAAA,CAAe,OAAU,GAAA,cAAA;AACzB,IAAA,cAAA,CAAe,OAAU,GAAA,cAAA;AAAA,WAClB,CAAG,EAAA;AAAA;AACd;;;ACpKA,IAAI,cAAA,GAAiB,OAAO,SAAU,CAAA,QAAA;AACtC,IAAI,OAAU,GAAA,KAAA,CAAM,OAAW,IAAA,SAAS,gBAAgB,MAAQ,EAAA;AAC9D,EAAO,OAAA,cAAA,CAAe,IAAK,CAAA,MAAM,CAAM,KAAA,gBAAA;AACzC,CAAA;AACA,SAASyC,YAAW,MAAQ,EAAA;AAC1B,EAAA,OAAO,OAAO,MAAW,KAAA,UAAA;AAC3B;AAMA,SAAS,QAAQ,GAAK,EAAA;AACpB,EAAA,OAAO,OAAQ,CAAA,GAAG,CAAI,GAAA,OAAA,GAAU,OAAO,GAAA;AACzC;AACA,SAAS,aAAa,MAAQ,EAAA;AAC5B,EAAO,OAAA,MAAA,CAAO,OAAQ,CAAA,6BAAA,EAA+B,MAAM,CAAA;AAC7D;AAMA,SAAS,WAAA,CAAY,KAAK,QAAU,EAAA;AAClC,EAAA,OAAO,GAAO,IAAA,IAAA,IAAQ,OAAO,GAAA,KAAQ,YAAY,QAAY,IAAA,GAAA;AAC/D;AAMA,SAAS,uBAAA,CAAwB,WAAW,QAAU,EAAA;AACpD,EAAO,OAAA,SAAA,IAAa,QAAQ,OAAO,SAAA,KAAc,YAAY,SAAU,CAAA,cAAA,IAAkB,SAAU,CAAA,cAAA,CAAe,QAAQ,CAAA;AAC5H;AAIA,IAAI,UAAA,GAAa,OAAO,SAAU,CAAA,IAAA;AAClC,SAAS,UAAA,CAAW,IAAI,MAAQ,EAAA;AAC9B,EAAO,OAAA,UAAA,CAAW,IAAK,CAAA,EAAA,EAAI,MAAM,CAAA;AACnC;AACA,IAAI,UAAa,GAAA,IAAA;AACjB,SAAS,aAAa,MAAQ,EAAA;AAC5B,EAAO,OAAA,CAAC,UAAW,CAAA,UAAA,EAAY,MAAM,CAAA;AACvC;AACA,IAAI,SAAY,GAAA;AAAA,EACd,GAAK,EAAA,OAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA,EACL,GAAK,EAAA,QAAA;AAAA,EACL,GAAK,EAAA,OAAA;AAAA,EACL,GAAK,EAAA,QAAA;AAAA,EACL,GAAK,EAAA,QAAA;AAAA,EACL,GAAK,EAAA;AACP,CAAA;AACA,SAAS,WAAW,MAAQ,EAAA;AAC1B,EAAA,OAAO,OAAO,MAAM,CAAA,CAAE,QAAQ,cAAgB,EAAA,SAAS,cAAclC,EAAG,EAAA;AACtE,IAAA,OAAO,UAAUA,EAAC,CAAA;AAAA,GACnB,CAAA;AACH;AACA,IAAI,OAAU,GAAA,KAAA;AACd,IAAI,OAAU,GAAA,KAAA;AACd,IAAI,QAAW,GAAA,MAAA;AACf,IAAI,OAAU,GAAA,OAAA;AACd,IAAI,KAAQ,GAAA,oBAAA;AA4BZ,SAAS,aAAA,CAAc,UAAU,IAAM,EAAA;AACrC,EAAI,IAAA,CAAC,QAAU,EAAA,OAAO,EAAC;AACvB,EAAA,IAAI,eAAkB,GAAA,KAAA;AACtB,EAAA,IAAI,WAAW,EAAC;AAChB,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,IAAI,MAAS,GAAA,KAAA;AACb,EAAA,IAAI,QAAW,GAAA,KAAA;AACf,EAAA,IAAI,WAAc,GAAA,EAAA;AAClB,EAAA,IAAI,QAAW,GAAA,CAAA;AAIf,EAAA,SAAS,UAAa,GAAA;AACpB,IAAI,IAAA,MAAA,IAAU,CAAC,QAAU,EAAA;AACvB,MAAA,OAAO,OAAO,MAAQ,EAAA,OAAO,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,KAC3C,MAAA;AACL,MAAA,MAAA,GAAS,EAAC;AAAA;AAEZ,IAAS,MAAA,GAAA,KAAA;AACT,IAAW,QAAA,GAAA,KAAA;AAAA;AAEb,EAAA,IAAI,cAAc,YAAc,EAAA,cAAA;AAChC,EAAA,SAAS,YAAY,aAAe,EAAA;AAClC,IAAA,IAAI,OAAO,aAAkB,KAAA,QAAA,kBAA0B,aAAc,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AACrF,IAAI,IAAA,CAAC,OAAQ,CAAA,aAAa,CAAK,IAAA,aAAA,CAAc,MAAW,KAAA,CAAA,EAAS,MAAA,IAAI,KAAM,CAAA,gBAAA,GAAmB,aAAa,CAAA;AAC3G,IAAA,YAAA,GAAe,IAAI,MAAO,CAAA,YAAA,CAAa,cAAc,CAAC,CAAC,IAAI,MAAM,CAAA;AACjE,IAAA,YAAA,GAAe,IAAI,MAAO,CAAA,MAAA,GAAS,aAAa,aAAc,CAAA,CAAC,CAAC,CAAC,CAAA;AACjE,IAAiB,cAAA,GAAA,IAAI,OAAO,MAAS,GAAA,YAAA,CAAa,MAAM,aAAc,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA;AAE3E,EAAY,WAAA,CAAA,IAAA,IAAQ,SAAS,IAAI,CAAA;AACjC,EAAI,IAAA,OAAA,GAAU,IAAI,OAAA,CAAQ,QAAQ,CAAA;AAClC,EAAA,IAAI,KAAO,EAAA,IAAA,EAAM,KAAO,EAAA,GAAA,EAAK,KAAO,EAAA,WAAA;AACpC,EAAO,OAAA,CAAC,OAAQ,CAAA,GAAA,EAAO,EAAA;AACrB,IAAA,KAAA,GAAQ,OAAQ,CAAA,GAAA;AAGhB,IAAQ,KAAA,GAAA,OAAA,CAAQ,UAAU,YAAY,CAAA;AACtC,IAAA,IAAI,KAAO,EAAA;AACT,MAASP,KAAAA,IAAAA,EAAAA,GAAI,GAAG,WAAc,GAAA,KAAA,CAAM,QAAQA,EAAI,GAAA,WAAA,EAAa,EAAEA,EAAG,EAAA;AAChE,QAAM,GAAA,GAAA,KAAA,CAAM,OAAOA,EAAC,CAAA;AACpB,QAAI,IAAA,YAAA,CAAa,GAAG,CAAG,EAAA;AACrB,UAAO,MAAA,CAAA,IAAA,CAAK,OAAO,MAAM,CAAA;AACzB,UAAe,WAAA,IAAA,GAAA;AAAA,SACV,MAAA;AACL,UAAW,QAAA,GAAA,IAAA;AACX,UAAkB,eAAA,GAAA,IAAA;AAClB,UAAe,WAAA,IAAA,GAAA;AAAA;AAEjB,QAAA,MAAA,CAAO,KAAK,CAAC,MAAA,EAAQ,KAAK,KAAO,EAAA,KAAA,GAAQ,CAAC,CAAC,CAAA;AAC3C,QAAS,KAAA,IAAA,CAAA;AAGT,QAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,UAAW,UAAA,EAAA;AACX,UAAc,WAAA,GAAA,EAAA;AACd,UAAW,QAAA,GAAA,CAAA;AACX,UAAkB,eAAA,GAAA,KAAA;AAAA;AACpB;AACF;AAIF,IAAA,IAAI,CAAC,OAAA,CAAQ,IAAK,CAAA,YAAY,CAAG,EAAA;AACjC,IAAS,MAAA,GAAA,IAAA;AAGT,IAAO,IAAA,GAAA,OAAA,CAAQ,IAAK,CAAA,KAAK,CAAK,IAAA,MAAA;AAC9B,IAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AAGpB,IAAA,IAAI,SAAS,GAAK,EAAA;AAChB,MAAQ,KAAA,GAAA,OAAA,CAAQ,UAAU,QAAQ,CAAA;AAClC,MAAA,OAAA,CAAQ,KAAK,QAAQ,CAAA;AACrB,MAAA,OAAA,CAAQ,UAAU,YAAY,CAAA;AAAA,KAChC,MAAA,IAAW,SAAS,GAAK,EAAA;AACvB,MAAQ,KAAA,GAAA,OAAA,CAAQ,UAAU,cAAc,CAAA;AACxC,MAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AACpB,MAAA,OAAA,CAAQ,UAAU,YAAY,CAAA;AAC9B,MAAO,IAAA,GAAA,GAAA;AAAA,KACF,MAAA;AACL,MAAQ,KAAA,GAAA,OAAA,CAAQ,UAAU,YAAY,CAAA;AAAA;AAIxC,IAAI,IAAA,CAAC,OAAQ,CAAA,IAAA,CAAK,YAAY,CAAA,QAAS,IAAI,KAAA,CAAM,kBAAqB,GAAA,OAAA,CAAQ,GAAG,CAAA;AACjF,IAAA,IAAI,QAAQ,GAAK,EAAA;AACf,MAAQ,KAAA,GAAA,CAAC,MAAM,KAAO,EAAA,KAAA,EAAO,QAAQ,GAAK,EAAA,WAAA,EAAa,UAAU,eAAe,CAAA;AAAA,KAC3E,MAAA;AACL,MAAA,KAAA,GAAQ,CAAC,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,QAAQ,GAAG,CAAA;AAAA;AAE1C,IAAA,QAAA,EAAA;AACA,IAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AACjB,IAAI,IAAA,IAAA,KAAS,GAAO,IAAA,IAAA,KAAS,GAAK,EAAA;AAChC,MAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AAAA,KACrB,MAAA,IAAW,SAAS,GAAK,EAAA;AAEvB,MAAA,WAAA,GAAc,SAAS,GAAI,EAAA;AAC3B,MAAI,IAAA,CAAC,aAAmB,MAAA,IAAI,MAAM,oBAAuB,GAAA,KAAA,GAAQ,UAAU,KAAK,CAAA;AAChF,MAAA,IAAI,WAAY,CAAA,CAAC,CAAM,KAAA,KAAA,EAAa,MAAA,IAAI,KAAM,CAAA,oBAAA,GAAuB,WAAY,CAAA,CAAC,CAAI,GAAA,OAAA,GAAU,KAAK,CAAA;AAAA,eAC5F,IAAS,KAAA,MAAA,IAAU,IAAS,KAAA,GAAA,IAAO,SAAS,GAAK,EAAA;AAC1D,MAAW,QAAA,GAAA,IAAA;AAAA,KACb,MAAA,IAAW,SAAS,GAAK,EAAA;AAEvB,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA;AACnB;AAEF,EAAW,UAAA,EAAA;AAGX,EAAA,WAAA,GAAc,SAAS,GAAI,EAAA;AAC3B,EAAI,IAAA,WAAA,EAAmB,MAAA,IAAI,KAAM,CAAA,oBAAA,GAAuB,YAAY,CAAC,CAAA,GAAI,OAAU,GAAA,OAAA,CAAQ,GAAG,CAAA;AAC9F,EAAO,OAAA,UAAA,CAAW,YAAa,CAAA,MAAM,CAAC,CAAA;AACxC;AAMA,SAAS,aAAa,MAAQ,EAAA;AAC5B,EAAA,IAAI,iBAAiB,EAAC;AACtB,EAAA,IAAI,KAAO,EAAA,SAAA;AACX,EAASA,KAAAA,IAAAA,EAAAA,GAAI,GAAG,SAAY,GAAA,MAAA,CAAO,QAAQA,EAAI,GAAA,SAAA,EAAW,EAAEA,EAAG,EAAA;AAC7D,IAAA,KAAA,GAAQ,OAAOA,EAAC,CAAA;AAChB,IAAA,IAAI,KAAO,EAAA;AACT,MAAI,IAAA,KAAA,CAAM,CAAC,CAAM,KAAA,MAAA,IAAU,aAAa,SAAU,CAAA,CAAC,MAAM,MAAQ,EAAA;AAC/D,QAAU,SAAA,CAAA,CAAC,CAAK,IAAA,KAAA,CAAM,CAAC,CAAA;AACvB,QAAU,SAAA,CAAA,CAAC,CAAI,GAAA,KAAA,CAAM,CAAC,CAAA;AAAA,OACjB,MAAA;AACL,QAAA,cAAA,CAAe,KAAK,KAAK,CAAA;AACzB,QAAY,SAAA,GAAA,KAAA;AAAA;AACd;AACF;AAEF,EAAO,OAAA,cAAA;AACT;AAQA,SAAS,WAAW,MAAQ,EAAA;AAC1B,EAAA,IAAI,eAAe,EAAC;AACpB,EAAA,IAAI,SAAY,GAAA,YAAA;AAChB,EAAA,IAAI,WAAW,EAAC;AAChB,EAAA,IAAI,KAAO,EAAA,OAAA;AACX,EAASA,KAAAA,IAAAA,EAAAA,GAAI,GAAG,SAAY,GAAA,MAAA,CAAO,QAAQA,EAAI,GAAA,SAAA,EAAW,EAAEA,EAAG,EAAA;AAC7D,IAAA,KAAA,GAAQ,OAAOA,EAAC,CAAA;AAChB,IAAQ,QAAA,KAAA,CAAM,CAAC,CAAG;AAAA,MAChB,KAAK,GAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAA,SAAA,CAAU,KAAK,KAAK,CAAA;AACpB,QAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AACnB,QAAY,SAAA,GAAA,KAAA,CAAM,CAAC,CAAA,GAAI,EAAC;AACxB,QAAA;AAAA,MACF,KAAK,GAAA;AACH,QAAA,OAAA,GAAU,SAAS,GAAI,EAAA;AACvB,QAAQ,OAAA,CAAA,CAAC,CAAI,GAAA,KAAA,CAAM,CAAC,CAAA;AACpB,QAAY,SAAA,GAAA,QAAA,CAAS,SAAS,CAAI,GAAA,QAAA,CAAS,SAAS,MAAS,GAAA,CAAC,CAAE,CAAA,CAAC,CAAI,GAAA,YAAA;AACrE,QAAA;AAAA,MACF;AACE,QAAA,SAAA,CAAU,KAAK,KAAK,CAAA;AAAA;AACxB;AAEF,EAAO,OAAA,YAAA;AACT;AAMA,SAAS,QAAQ,MAAQ,EAAA;AACvB,EAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AACd,EAAA,IAAA,CAAK,IAAO,GAAA,MAAA;AACZ,EAAA,IAAA,CAAK,GAAM,GAAA,CAAA;AACb;AAKA,OAAQ,CAAA,SAAA,CAAU,GAAM,GAAA,SAAS,GAAM,GAAA;AACrC,EAAA,OAAO,KAAK,IAAS,KAAA,EAAA;AACvB,CAAA;AAMA,OAAA,CAAQ,SAAU,CAAA,IAAA,GAAO,SAAS,IAAA,CAAK,EAAI,EAAA;AACzC,EAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,IAAK,CAAA,KAAA,CAAM,EAAE,CAAA;AAC9B,EAAA,IAAI,CAAC,KAAA,IAAS,KAAM,CAAA,KAAA,KAAU,GAAU,OAAA,EAAA;AACxC,EAAI,IAAA,MAAA,GAAS,MAAM,CAAC,CAAA;AACpB,EAAA,IAAA,CAAK,IAAO,GAAA,IAAA,CAAK,IAAK,CAAA,SAAA,CAAU,OAAO,MAAM,CAAA;AAC7C,EAAA,IAAA,CAAK,OAAO,MAAO,CAAA,MAAA;AACnB,EAAO,OAAA,MAAA;AACT,CAAA;AAMA,OAAA,CAAQ,SAAU,CAAA,SAAA,GAAY,SAAS,SAAA,CAAU,EAAI,EAAA;AACnD,EAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,IAAK,CAAA,MAAA,CAAO,EAAE,CAC7B,EAAA,KAAA;AACF,EAAA,QAAQ,KAAO;AAAA,IACb,KAAK,EAAA;AACH,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA;AACb,MAAA,IAAA,CAAK,IAAO,GAAA,EAAA;AACZ,MAAA;AAAA,IACF,KAAK,CAAA;AACH,MAAQ,KAAA,GAAA,EAAA;AACR,MAAA;AAAA,IACF;AACE,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA,CAAK,SAAU,CAAA,CAAA,EAAG,KAAK,CAAA;AACpC,MAAA,IAAA,CAAK,IAAO,GAAA,IAAA,CAAK,IAAK,CAAA,SAAA,CAAU,KAAK,CAAA;AAAA;AAEzC,EAAA,IAAA,CAAK,OAAO,KAAM,CAAA,MAAA;AAClB,EAAO,OAAA,KAAA;AACT,CAAA;AAMA,SAAS,OAAA,CAAQ,MAAM,aAAe,EAAA;AACpC,EAAA,IAAA,CAAK,IAAO,GAAA,IAAA;AACZ,EAAA,IAAA,CAAK,KAAQ,GAAA;AAAA,IACX,KAAK,IAAK,CAAA;AAAA,GACZ;AACA,EAAA,IAAA,CAAK,MAAS,GAAA,aAAA;AAChB;AAMA,OAAA,CAAQ,SAAU,CAAA,IAAA,GAAO,SAAS,IAAA,CAAK,IAAM,EAAA;AAC3C,EAAO,OAAA,IAAI,OAAQ,CAAA,IAAA,EAAM,IAAI,CAAA;AAC/B,CAAA;AAMA,OAAA,CAAQ,SAAU,CAAA,MAAA,GAAS,SAAS,MAAA,CAAO,IAAM,EAAA;AAC/C,EAAA,IAAI,QAAQ,IAAK,CAAA,KAAA;AACjB,EAAI,IAAA,KAAA;AACJ,EAAI,IAAA,KAAA,CAAM,cAAe,CAAA,IAAI,CAAG,EAAA;AAC9B,IAAA,KAAA,GAAQ,MAAM,IAAI,CAAA;AAAA,GACb,MAAA;AACL,IAAA,IAAI,OAAU,GAAA,IAAA,EACZ,iBACA,EAAA,KAAA,EACA,OACA,SAAY,GAAA,KAAA;AACd,IAAA,OAAO,OAAS,EAAA;AACd,MAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,CAAG,EAAA;AACzB,QAAA,iBAAA,GAAoB,OAAQ,CAAA,IAAA;AAC5B,QAAQ,KAAA,GAAA,IAAA,CAAK,MAAM,GAAG,CAAA;AACtB,QAAQ,KAAA,GAAA,CAAA;AAmBR,QAAA,OAAO,iBAAqB,IAAA,IAAA,IAAQ,KAAQ,GAAA,KAAA,CAAM,MAAQ,EAAA;AACxD,UAAA,IAAI,KAAU,KAAA,KAAA,CAAM,MAAS,GAAA,CAAA,cAAe,WAAY,CAAA,iBAAA,EAAmB,KAAM,CAAA,KAAK,CAAC,CAAK,IAAA,uBAAA,CAAwB,iBAAmB,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACnJ,UAAoB,iBAAA,GAAA,iBAAA,CAAkB,KAAM,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AACtD,OACK,MAAA;AACL,QAAoB,iBAAA,GAAA,OAAA,CAAQ,KAAK,IAAI,CAAA;AAqBrC,QAAY,SAAA,GAAA,WAAA,CAAY,OAAQ,CAAA,IAAA,EAAM,IAAI,CAAA;AAAA;AAE5C,MAAA,IAAI,SAAW,EAAA;AACb,QAAQ,KAAA,GAAA,iBAAA;AACR,QAAA;AAAA;AAEF,MAAA,OAAA,GAAU,OAAQ,CAAA,MAAA;AAAA;AAEpB,IAAA,KAAA,CAAM,IAAI,CAAI,GAAA,KAAA;AAAA;AAEhB,EAAA,IAAIyC,YAAW,KAAK,CAAA,UAAW,KAAM,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA;AACnD,EAAO,OAAA,KAAA;AACT,CAAA;AAOA,SAAS,MAAS,GAAA;AAChB,EAAA,IAAA,CAAK,aAAgB,GAAA;AAAA,IACnB,QAAQ,EAAC;AAAA,IACT,GAAK,EAAA,SAAS,GAAI,CAAA,GAAA,EAAK,KAAO,EAAA;AAC5B,MAAK,IAAA,CAAA,MAAA,CAAO,GAAG,CAAI,GAAA,KAAA;AAAA,KACrB;AAAA,IACA,GAAA,EAAK,SAAS,GAAA,CAAI,GAAK,EAAA;AACrB,MAAO,OAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAAA,KACxB;AAAA,IACA,KAAA,EAAO,SAAS,KAAQ,GAAA;AACtB,MAAA,IAAA,CAAK,SAAS,EAAC;AAAA;AACjB,GACF;AACF;AAKA,MAAO,CAAA,SAAA,CAAU,UAAa,GAAA,SAAS,UAAa,GAAA;AAClD,EAAI,IAAA,OAAO,IAAK,CAAA,aAAA,KAAkB,WAAa,EAAA;AAC7C,IAAA,IAAA,CAAK,cAAc,KAAM,EAAA;AAAA;AAE7B,CAAA;AAOA,MAAA,CAAO,SAAU,CAAA,KAAA,GAAQ,SAAS,KAAA,CAAM,UAAU,IAAM,EAAA;AACtD,EAAA,IAAI,QAAQ,IAAK,CAAA,aAAA;AACjB,EAAA,IAAI,WAAW,QAAW,GAAA,GAAA,GAAA,CAAO,QAAQ,QAAS,CAAA,IAAA,EAAM,KAAK,GAAG,CAAA;AAChE,EAAI,IAAA,cAAA,GAAiB,OAAO,KAAU,KAAA,WAAA;AACtC,EAAA,IAAI,MAAS,GAAA,cAAA,GAAiB,KAAM,CAAA,GAAA,CAAI,QAAQ,CAAI,GAAA,MAAA;AACpD,EAAA,IAAI,UAAU,MAAW,EAAA;AACvB,IAAS,MAAA,GAAA,aAAA,CAAc,UAAU,IAAI,CAAA;AACrC,IAAkB,cAAA,IAAA,KAAA,CAAM,GAAI,CAAA,QAAA,EAAU,MAAM,CAAA;AAAA;AAE9C,EAAO,OAAA,MAAA;AACT,CAAA;AAyBA,MAAA,CAAO,UAAU,MAAS,GAAA,SAAS,OAAO,QAAU,EAAA,IAAA,EAAM,UAAU,MAAQ,EAAA;AAC1E,EAAI,IAAA,IAAA,GAAO,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA;AACpC,EAAA,IAAI,MAAS,GAAA,IAAA,CAAK,KAAM,CAAA,QAAA,EAAU,IAAI,CAAA;AACtC,EAAA,IAAI,UAAU,IAAgB,YAAA,OAAA,GAAU,OAAO,IAAI,OAAA,CAAQ,MAAM,MAAS,CAAA;AAC1E,EAAA,OAAO,KAAK,YAAa,CAAA,MAAA,EAAQ,OAAS,EAAA,QAAA,EAAU,UAAU,MAAM,CAAA;AACtE,CAAA;AAWA,MAAO,CAAA,SAAA,CAAU,eAAe,SAAS,YAAA,CAAa,QAAQ,OAAS,EAAA,QAAA,EAAU,kBAAkB,MAAQ,EAAA;AACzG,EAAA,IAAI,MAAS,GAAA,EAAA;AACb,EAAA,IAAI,OAAO,MAAQ,EAAA,KAAA;AACnB,EAASzC,KAAAA,IAAAA,EAAAA,GAAI,GAAG,SAAY,GAAA,MAAA,CAAO,QAAQA,EAAI,GAAA,SAAA,EAAW,EAAEA,EAAG,EAAA;AAC7D,IAAQ,KAAA,GAAA,MAAA;AACR,IAAA,KAAA,GAAQ,OAAOA,EAAC,CAAA;AAChB,IAAA,MAAA,GAAS,MAAM,CAAC,CAAA;AAChB,IAAI,IAAA,MAAA,KAAW,KAAa,KAAA,GAAA,IAAA,CAAK,cAAc,KAAO,EAAA,OAAA,EAAS,QAAU,EAAA,gBAAA,EAAkB,MAAM,CAAA;AAAA,SAAW,IAAA,MAAA,KAAW,KAAa,KAAA,GAAA,IAAA,CAAK,eAAe,KAAO,EAAA,OAAA,EAAS,QAAU,EAAA,gBAAA,EAAkB,MAAM,CAAA;AAAA,SAAW,IAAA,MAAA,KAAW,KAAa,KAAA,GAAA,IAAA,CAAK,cAAc,KAAO,EAAA,OAAA,EAAS,UAAU,MAAM,CAAA;AAAA,SAAA,IAAW,WAAW,GAAK,EAAA,KAAA,GAAQ,IAAK,CAAA,cAAA,CAAe,OAAO,OAAO,CAAA;AAAA,SAAA,IAAW,WAAW,MAAQ,EAAA,KAAA,GAAQ,KAAK,YAAa,CAAA,KAAA,EAAO,SAAS,MAAM,CAAA;AAAA,SAAA,IAAW,MAAW,KAAA,MAAA,EAAgB,KAAA,GAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AAC5e,IAAI,IAAA,KAAA,KAAU,QAAqB,MAAA,IAAA,KAAA;AAAA;AAErC,EAAO,OAAA,MAAA;AACT,CAAA;AACA,MAAO,CAAA,SAAA,CAAU,gBAAgB,SAAS,aAAA,CAAc,OAAO,OAAS,EAAA,QAAA,EAAU,kBAAkB,MAAQ,EAAA;AAC1G,EAAA,IAAI,IAAO,GAAA,IAAA;AACX,EAAA,IAAI,MAAS,GAAA,EAAA;AACb,EAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,MAAO,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA;AAInC,EAAA,SAAS,UAAU,QAAU,EAAA;AAC3B,IAAA,OAAO,IAAK,CAAA,MAAA,CAAO,QAAU,EAAA,OAAA,EAAS,UAAU,MAAM,CAAA;AAAA;AAExD,EAAA,IAAI,CAAC,KAAO,EAAA;AACZ,EAAI,IAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AAClB,IAAS,KAAA,IAAA,CAAA,GAAI,GAAG,WAAc,GAAA,KAAA,CAAM,QAAQ,CAAI,GAAA,WAAA,EAAa,EAAE,CAAG,EAAA;AAChE,MAAA,MAAA,IAAU,IAAK,CAAA,YAAA,CAAa,KAAM,CAAA,CAAC,CAAG,EAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,CAAC,CAAC,CAAG,EAAA,QAAA,EAAU,kBAAkB,MAAM,CAAA;AAAA;AAClG,GACF,MAAA,IAAW,OAAO,KAAU,KAAA,QAAA,IAAY,OAAO,KAAU,KAAA,QAAA,IAAY,OAAO,KAAA,KAAU,QAAU,EAAA;AAC9F,IAAU,MAAA,IAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,CAAC,CAAA,EAAG,OAAQ,CAAA,IAAA,CAAK,KAAK,CAAA,EAAG,QAAU,EAAA,gBAAA,EAAkB,MAAM,CAAA;AAAA,GAC/F,MAAA,IAAWyC,WAAW,CAAA,KAAK,CAAG,EAAA;AAC5B,IAAA,IAAI,OAAO,gBAAqB,KAAA,QAAA,EAAgB,MAAA,IAAI,MAAM,gEAAgE,CAAA;AAG1H,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,IAAA,EAAM,gBAAiB,CAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAG,EAAA,KAAA,CAAM,CAAC,CAAC,GAAG,SAAS,CAAA;AACtF,IAAI,IAAA,KAAA,IAAS,MAAgB,MAAA,IAAA,KAAA;AAAA,GACxB,MAAA;AACL,IAAU,MAAA,IAAA,IAAA,CAAK,aAAa,KAAM,CAAA,CAAC,GAAG,OAAS,EAAA,QAAA,EAAU,kBAAkB,MAAM,CAAA;AAAA;AAEnF,EAAO,OAAA,MAAA;AACT,CAAA;AACA,MAAO,CAAA,SAAA,CAAU,iBAAiB,SAAS,cAAA,CAAe,OAAO,OAAS,EAAA,QAAA,EAAU,kBAAkB,MAAQ,EAAA;AAC5G,EAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,MAAO,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA;AAInC,EAAA,IAAI,CAAC,KAAS,IAAA,OAAA,CAAQ,KAAK,CAAA,IAAK,MAAM,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA,CAAK,aAAa,KAAM,CAAA,CAAC,GAAG,OAAS,EAAA,QAAA,EAAU,kBAAkB,MAAM,CAAA;AACpI,CAAA;AACA,MAAA,CAAO,UAAU,aAAgB,GAAA,SAAS,aAAc,CAAA,OAAA,EAAS,aAAa,eAAiB,EAAA;AAC7F,EAAA,IAAI,mBAAsB,GAAA,WAAA,CAAY,OAAQ,CAAA,SAAA,EAAW,EAAE,CAAA;AAC3D,EAAI,IAAA,WAAA,GAAc,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAA;AACpC,EAAA,KAAA,IAASzC,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,WAAA,CAAY,QAAQA,EAAK,EAAA,EAAA;AAC3C,IAAA,IAAI,YAAYA,EAAC,CAAA,CAAE,WAAWA,EAAI,GAAA,CAAA,IAAK,CAAC,eAAkB,CAAA,EAAA;AACxD,MAAA,WAAA,CAAYA,EAAC,CAAA,GAAI,mBAAsB,GAAA,WAAA,CAAYA,EAAC,CAAA;AAAA;AACtD;AAEF,EAAO,OAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AAC9B,CAAA;AACA,MAAA,CAAO,UAAU,aAAgB,GAAA,SAAS,cAAc,KAAO,EAAA,OAAA,EAAS,UAAU,MAAQ,EAAA;AACxF,EAAA,IAAI,CAAC,QAAU,EAAA;AACf,EAAI,IAAA,IAAA,GAAO,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA;AACpC,EAAA,IAAI,KAAQyC,GAAAA,WAAAA,CAAW,QAAQ,CAAA,GAAI,QAAS,CAAA,KAAA,CAAM,CAAC,CAAC,CAAI,GAAA,QAAA,CAAS,KAAM,CAAA,CAAC,CAAC,CAAA;AACzE,EAAA,IAAI,SAAS,IAAM,EAAA;AACjB,IAAI,IAAA,eAAA,GAAkB,MAAM,CAAC,CAAA;AAC7B,IAAI,IAAA,QAAA,GAAW,MAAM,CAAC,CAAA;AACtB,IAAI,IAAA,WAAA,GAAc,MAAM,CAAC,CAAA;AACzB,IAAA,IAAI,aAAgB,GAAA,KAAA;AACpB,IAAI,IAAA,QAAA,IAAY,KAAK,WAAa,EAAA;AAChC,MAAA,aAAA,GAAgB,IAAK,CAAA,aAAA,CAAc,KAAO,EAAA,WAAA,EAAa,eAAe,CAAA;AAAA;AAExE,IAAA,IAAI,MAAS,GAAA,IAAA,CAAK,KAAM,CAAA,aAAA,EAAe,IAAI,CAAA;AAC3C,IAAA,OAAO,KAAK,YAAa,CAAA,MAAA,EAAQ,OAAS,EAAA,QAAA,EAAU,eAAe,MAAM,CAAA;AAAA;AAE7E,CAAA;AACA,MAAA,CAAO,SAAU,CAAA,cAAA,GAAiB,SAAS,cAAA,CAAe,OAAO,OAAS,EAAA;AACxE,EAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,MAAO,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA;AACnC,EAAI,IAAA,KAAA,IAAS,MAAa,OAAA,KAAA;AAC5B,CAAA;AACA,MAAA,CAAO,UAAU,YAAe,GAAA,SAAS,YAAa,CAAA,KAAA,EAAO,SAAS,MAAQ,EAAA;AAC5E,EAAA,IAAI,MAAS,GAAA,IAAA,CAAK,eAAgB,CAAA,MAAM,KAAK,QAAS,CAAA,MAAA;AACtD,EAAA,IAAI,KAAQ,GAAA,OAAA,CAAQ,MAAO,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA;AACnC,EAAA,IAAI,KAAS,IAAA,IAAA,EAAa,OAAA,OAAO,KAAU,KAAA,QAAA,IAAY,MAAW,KAAA,QAAA,CAAS,MAAS,GAAA,MAAA,CAAO,KAAK,CAAA,GAAI,OAAO,KAAK,CAAA;AAClH,CAAA;AACA,MAAA,CAAO,SAAU,CAAA,QAAA,GAAW,SAAS,QAAA,CAAS,KAAO,EAAA;AACnD,EAAA,OAAO,MAAM,CAAC,CAAA;AAChB,CAAA;AACA,MAAA,CAAO,SAAU,CAAA,aAAA,GAAgB,SAAS,aAAA,CAAc,MAAQ,EAAA;AAC9D,EAAI,IAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnB,IAAO,OAAA,MAAA;AAAA,GACE,MAAA,IAAA,MAAA,IAAU,OAAO,MAAA,KAAW,QAAU,EAAA;AAC/C,IAAA,OAAO,MAAO,CAAA,IAAA;AAAA,GACT,MAAA;AACL,IAAO,OAAA,MAAA;AAAA;AAEX,CAAA;AACA,MAAA,CAAO,SAAU,CAAA,eAAA,GAAkB,SAAS,eAAA,CAAgB,MAAQ,EAAA;AAClE,EAAA,IAAI,UAAU,OAAO,MAAA,KAAW,YAAY,CAAC,OAAA,CAAQ,MAAM,CAAG,EAAA;AAC5D,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA,GACT,MAAA;AACL,IAAO,OAAA,MAAA;AAAA;AAEX,CAAA;AACA,IAAI,QAAW,GAAA;AAAA,EAGb,IAAA,EAAM,CAAC,IAAA,EAAM,IAAI,CAAA;AAAA,EACjB,UAAY,EAAA,MAAA;AAAA,EACZ,MAAQ,EAAA,MAAA;AAAA,EACR,KAAO,EAAA,MAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AAAA,EACR,OAAS,EAAA,MAAA;AAAA,EACT,OAAS,EAAA,MAAA;AAAA,EACT,MAAQ,EAAA,MAeV,CAAA;AAGA,IAAI,aAAA,GAAgB,IAAI,MAAO,EAAA;AAK/B,QAAS,CAAA,UAAA,GAAa,SAASC,WAAa,GAAA;AAC1C,EAAA,OAAO,cAAc,UAAW,EAAA;AAClC,CAAA;AAOA,QAAA,CAAS,KAAQ,GAAA,SAASC,MAAM,CAAA,QAAA,EAAU,IAAM,EAAA;AAC9C,EAAO,OAAA,aAAA,CAAc,KAAM,CAAA,QAAA,EAAU,IAAI,CAAA;AAC3C,CAAA;AAMA,QAAA,CAAS,SAAS,SAASC,OAAAA,CAAO,QAAU,EAAA,IAAA,EAAM,UAAU,MAAQ,EAAA;AAClE,EAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAChC,IAAA,MAAM,IAAI,SAAU,CAAA,uDAAA,GAA+D,OAAQ,CAAA,QAAQ,IAAI,iFAAsF,CAAA;AAAA;AAE/L,EAAA,OAAO,aAAc,CAAA,MAAA,CAAO,QAAU,EAAA,IAAA,EAAM,UAAU,MAAM,CAAA;AAC9D,CAAA;AAIA,QAAA,CAAS,MAAS,GAAA,UAAA;AAGlB,QAAA,CAAS,OAAU,GAAA,OAAA;AACnB,QAAA,CAAS,OAAU,GAAA,OAAA;AACnB,QAAA,CAAS,MAAS,GAAA,MAAA;;;AC3nBX,IAAI,aAAA;;;ACdJ,SAAS,qBAAqB,CAAG,EAAA;AACtC,EAAI,IAAA,CAAA,CAAE,MAAW,KAAA,sBAAA,CAAuB,UAAY,EAAA;AAClD,IAAA,aAAA,CAAc,CAAE,CAAA,MAAM,CAAE,CAAA,CAAA,CAAE,OAAO,CAAI,GAAA,CAAA;AACrC,IAAA;AAAA;AAGF,EAAA,IAAI,cAAc,sBAAuB,CAAA,UAAU,EAAE,CAAE,CAAA,OAAO,MAAM,MAAW,EAAA;AAC7E,IAAA,aAAA,CAAc,uBAAuB,UAAU,CAAA,CAAE,CAAE,CAAA,OAAO,IAAI,EAAC;AAAA;AAEjE,EAAA,aAAA,CAAc,uBAAuB,UAAU,CAAA,CAAE,EAAE,OAAO,CAAA,CAAE,KAAK,CAAC,CAAA;AACpE;;;ACNO,SAAS,mBAAmB,SAAW,EAAA;AAC5C,EAAA,MAAM,UAAa,GAAA,MAAA,CAAO,OAAQ,CAAA,SAAA,CAAU,UAAc,IAAA,EAAE,CAAA,CAAE,GAAI,CAAA,CAAC,CAAC,OAAA,EAAS,IAAI,CAAO,MAAA;AAAA,IACtF,OAAA;AAAA,IACA,WAAA,EAAa,qBAAqB,OAAO,CAAA;AAAA,IACzC,MAAM,IAAK,CAAA;AAAA,GACX,CAAA,CAAA;AACF,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,SAAS,SAAU,CAAA,OAAA;AAAA,IACnB,UAAA;AAAA,IACA,QAAQ,sBAAuB,CAAA,WAAA;AAAA;AAAA,IAE/B,WAAa,EAAA,SAAA,CAAU,WAAe,IAAA,oBAAA,CAAqB,UAAU,OAAO,CAAA;AAAA,IAC5E,iBAAA,EAAmB,0BAA2B,CAAA,SAAA,CAAU,OAAO,CAAA;AAAA,IAC/D,yBAAA,EAA2B,UAAW,CAAA,CAAC,CAAG,EAAA,OAAA;AAAA,IAC1C,oBAAA,EAAsB,UAAW,CAAA,CAAC,CAAG,EAAA;AAAA,GACvC;AACA,EAAA,oBAAA,CAAqB,WAAW,CAAA;AAChC,EAAO,OAAA,WAAA;AACT","file":"index.cjs","sourcesContent":["const LogLevels = {\n silent: Number.NEGATIVE_INFINITY,\n fatal: 0,\n error: 0,\n warn: 1,\n log: 2,\n info: 3,\n success: 3,\n fail: 3,\n ready: 3,\n start: 3,\n box: 3,\n debug: 4,\n trace: 5,\n verbose: Number.POSITIVE_INFINITY\n};\nconst LogTypes = {\n // Silent\n silent: {\n level: -1\n },\n // Level 0\n fatal: {\n level: LogLevels.fatal\n },\n error: {\n level: LogLevels.error\n },\n // Level 1\n warn: {\n level: LogLevels.warn\n },\n // Level 2\n log: {\n level: LogLevels.log\n },\n // Level 3\n info: {\n level: LogLevels.info\n },\n success: {\n level: LogLevels.success\n },\n fail: {\n level: LogLevels.fail\n },\n ready: {\n level: LogLevels.info\n },\n start: {\n level: LogLevels.info\n },\n box: {\n level: LogLevels.info\n },\n // Level 4\n debug: {\n level: LogLevels.debug\n },\n // Level 5\n trace: {\n level: LogLevels.trace\n },\n // Verbose\n verbose: {\n level: LogLevels.verbose\n }\n};\nfunction isPlainObject$1(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {\n return false;\n }\n if (Symbol.iterator in value) {\n return false;\n }\n if (Symbol.toStringTag in value) {\n return Object.prototype.toString.call(value) === \"[object Module]\";\n }\n return true;\n}\nfunction _defu(baseObject, defaults, namespace = \".\", merger) {\n if (!isPlainObject$1(defaults)) {\n return _defu(baseObject, {}, namespace, merger);\n }\n const object = Object.assign({}, defaults);\n for (const key in baseObject) {\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = baseObject[key];\n if (value === null || value === void 0) {\n continue;\n }\n if (merger && merger(object, key, value, namespace)) {\n continue;\n }\n if (Array.isArray(value) && Array.isArray(object[key])) {\n object[key] = [...value, ...object[key]];\n } else if (isPlainObject$1(value) && isPlainObject$1(object[key])) {\n object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : \"\") + key.toString(), merger);\n } else {\n object[key] = value;\n }\n }\n return object;\n}\nfunction createDefu(merger) {\n return (...arguments_) =>\n // eslint-disable-next-line unicorn/no-array-reduce\n arguments_.reduce((p, c) => _defu(p, c, \"\", merger), {});\n}\nconst defu = createDefu();\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n}\nfunction isLogObj(arg) {\n if (!isPlainObject(arg)) {\n return false;\n }\n if (!arg.message && !arg.args) {\n return false;\n }\n if (arg.stack) {\n return false;\n }\n return true;\n}\nlet paused = false;\nconst queue = [];\nclass Consola {\n options;\n _lastLog;\n _mockFn;\n /**\n * Creates an instance of Consola with specified options or defaults.\n *\n * @param {Partial<ConsolaOptions>} [options={}] - Configuration options for the Consola instance.\n */\n constructor(options = {}) {\n const types = options.types || LogTypes;\n this.options = defu({\n ...options,\n defaults: {\n ...options.defaults\n },\n level: _normalizeLogLevel(options.level, types),\n reporters: [...(options.reporters || [])]\n }, {\n types: LogTypes,\n throttle: 1e3,\n throttleMin: 5,\n formatOptions: {\n date: true,\n colors: false,\n compact: true\n }\n });\n for (const type in types) {\n const defaults = {\n type,\n ...this.options.defaults,\n ...types[type]\n };\n this[type] = this._wrapLogFn(defaults);\n this[type].raw = this._wrapLogFn(defaults, true);\n }\n if (this.options.mockFn) {\n this.mockTypes();\n }\n this._lastLog = {};\n }\n /**\n * Gets the current log level of the Consola instance.\n *\n * @returns {number} The current log level.\n */\n get level() {\n return this.options.level;\n }\n /**\n * Sets the minimum log level that will be output by the instance.\n *\n * @param {number} level - The new log level to set.\n */\n set level(level) {\n this.options.level = _normalizeLogLevel(level, this.options.types, this.options.level);\n }\n /**\n * Displays a prompt to the user and returns the response.\n * Throw an error if `prompt` is not supported by the current configuration.\n *\n * @template T\n * @param {string} message - The message to display in the prompt.\n * @param {T} [opts] - Optional options for the prompt. See {@link PromptOptions}.\n * @returns {promise<T>} A promise that infer with the prompt options. See {@link PromptOptions}.\n */\n prompt(message, opts) {\n if (!this.options.prompt) {\n throw new Error(\"prompt is not supported!\");\n }\n return this.options.prompt(message, opts);\n }\n /**\n * Creates a new instance of Consola, inheriting options from the current instance, with possible overrides.\n *\n * @param {Partial<ConsolaOptions>} options - Optional overrides for the new instance. See {@link ConsolaOptions}.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n create(options) {\n const instance = new Consola({\n ...this.options,\n ...options\n });\n if (this._mockFn) {\n instance.mockTypes(this._mockFn);\n }\n return instance;\n }\n /**\n * Creates a new Consola instance with the specified default log object properties.\n *\n * @param {InputLogObject} defaults - Default properties to include in any log from the new instance. See {@link InputLogObject}.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n withDefaults(defaults) {\n return this.create({\n ...this.options,\n defaults: {\n ...this.options.defaults,\n ...defaults\n }\n });\n }\n /**\n * Creates a new Consola instance with a specified tag, which will be included in every log.\n *\n * @param {string} tag - The tag to include in each log of the new instance.\n * @returns {ConsolaInstance} A new Consola instance. See {@link ConsolaInstance}.\n */\n withTag(tag) {\n return this.withDefaults({\n tag: this.options.defaults.tag ? this.options.defaults.tag + \":\" + tag : tag\n });\n }\n /**\n * Adds a custom reporter to the Consola instance.\n * Reporters will be called for each log message, depending on their implementation and log level.\n *\n * @param {ConsolaReporter} reporter - The reporter to add. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n addReporter(reporter) {\n this.options.reporters.push(reporter);\n return this;\n }\n /**\n * Removes a custom reporter from the Consola instance.\n * If no reporter is specified, all reporters will be removed.\n *\n * @param {ConsolaReporter} reporter - The reporter to remove. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n removeReporter(reporter) {\n if (reporter) {\n const i = this.options.reporters.indexOf(reporter);\n if (i !== -1) {\n return this.options.reporters.splice(i, 1);\n }\n } else {\n this.options.reporters.splice(0);\n }\n return this;\n }\n /**\n * Replaces all reporters of the Consola instance with the specified array of reporters.\n *\n * @param {ConsolaReporter[]} reporters - The new reporters to set. See {@link ConsolaReporter}.\n * @returns {Consola} The current Consola instance.\n */\n setReporters(reporters) {\n this.options.reporters = Array.isArray(reporters) ? reporters : [reporters];\n return this;\n }\n wrapAll() {\n this.wrapConsole();\n this.wrapStd();\n }\n restoreAll() {\n this.restoreConsole();\n this.restoreStd();\n }\n /**\n * Overrides console methods with Consola logging methods for consistent logging.\n */\n wrapConsole() {\n for (const type in this.options.types) {\n if (!console[\"__\" + type]) {\n console[\"__\" + type] = console[type];\n }\n console[type] = this[type].raw;\n }\n }\n /**\n * Restores the original console methods, removing Consola overrides.\n */\n restoreConsole() {\n for (const type in this.options.types) {\n if (console[\"__\" + type]) {\n console[type] = console[\"__\" + type];\n delete console[\"__\" + type];\n }\n }\n }\n /**\n * Overrides standard output and error streams to redirect them through Consola.\n */\n wrapStd() {\n this._wrapStream(this.options.stdout, \"log\");\n this._wrapStream(this.options.stderr, \"log\");\n }\n _wrapStream(stream, type) {\n if (!stream) {\n return;\n }\n if (!stream.__write) {\n stream.__write = stream.write;\n }\n stream.write = data => {\n this[type].raw(String(data).trim());\n };\n }\n /**\n * Restores the original standard output and error streams, removing the Consola redirection.\n */\n restoreStd() {\n this._restoreStream(this.options.stdout);\n this._restoreStream(this.options.stderr);\n }\n _restoreStream(stream) {\n if (!stream) {\n return;\n }\n if (stream.__write) {\n stream.write = stream.__write;\n delete stream.__write;\n }\n }\n /**\n * Pauses logging, queues incoming logs until resumed.\n */\n pauseLogs() {\n paused = true;\n }\n /**\n * Resumes logging, processing any queued logs.\n */\n resumeLogs() {\n paused = false;\n const _queue = queue.splice(0);\n for (const item of _queue) {\n item[0]._logFn(item[1], item[2]);\n }\n }\n /**\n * Replaces logging methods with mocks if a mock function is provided.\n *\n * @param {ConsolaOptions[\"mockFn\"]} mockFn - The function to use for mocking logging methods. See {@link ConsolaOptions[\"mockFn\"]}.\n */\n mockTypes(mockFn) {\n const _mockFn = mockFn || this.options.mockFn;\n this._mockFn = _mockFn;\n if (typeof _mockFn !== \"function\") {\n return;\n }\n for (const type in this.options.types) {\n this[type] = _mockFn(type, this.options.types[type]) || this[type];\n this[type].raw = this[type];\n }\n }\n _wrapLogFn(defaults, isRaw) {\n return (...args) => {\n if (paused) {\n queue.push([this, defaults, args, isRaw]);\n return;\n }\n return this._logFn(defaults, args, isRaw);\n };\n }\n _logFn(defaults, args, isRaw) {\n if ((defaults.level || 0) > this.level) {\n return false;\n }\n const logObj = {\n date: /* @__PURE__ */new Date(),\n args: [],\n ...defaults,\n level: _normalizeLogLevel(defaults.level, this.options.types)\n };\n if (!isRaw && args.length === 1 && isLogObj(args[0])) {\n Object.assign(logObj, args[0]);\n } else {\n logObj.args = [...args];\n }\n if (logObj.message) {\n logObj.args.unshift(logObj.message);\n delete logObj.message;\n }\n if (logObj.additional) {\n if (!Array.isArray(logObj.additional)) {\n logObj.additional = logObj.additional.split(\"\\n\");\n }\n logObj.args.push(\"\\n\" + logObj.additional.join(\"\\n\"));\n delete logObj.additional;\n }\n logObj.type = typeof logObj.type === \"string\" ? logObj.type.toLowerCase() : \"log\";\n logObj.tag = typeof logObj.tag === \"string\" ? logObj.tag : \"\";\n const resolveLog = (newLog = false) => {\n const repeated = (this._lastLog.count || 0) - this.options.throttleMin;\n if (this._lastLog.object && repeated > 0) {\n const args2 = [...this._lastLog.object.args];\n if (repeated > 1) {\n args2.push(`(repeated ${repeated} times)`);\n }\n this._log({\n ...this._lastLog.object,\n args: args2\n });\n this._lastLog.count = 1;\n }\n if (newLog) {\n this._lastLog.object = logObj;\n this._log(logObj);\n }\n };\n clearTimeout(this._lastLog.timeout);\n const diffTime = this._lastLog.time && logObj.date ? logObj.date.getTime() - this._lastLog.time.getTime() : 0;\n this._lastLog.time = logObj.date;\n if (diffTime < this.options.throttle) {\n try {\n const serializedLog = JSON.stringify([logObj.type, logObj.tag, logObj.args]);\n const isSameLog = this._lastLog.serialized === serializedLog;\n this._lastLog.serialized = serializedLog;\n if (isSameLog) {\n this._lastLog.count = (this._lastLog.count || 0) + 1;\n if (this._lastLog.count > this.options.throttleMin) {\n this._lastLog.timeout = setTimeout(resolveLog, this.options.throttle);\n return;\n }\n }\n } catch {}\n }\n resolveLog(true);\n }\n _log(logObj) {\n for (const reporter of this.options.reporters) {\n reporter.log(logObj, {\n options: this.options\n });\n }\n }\n}\nfunction _normalizeLogLevel(input, types = {}, defaultLevel = 3) {\n if (input === void 0) {\n return defaultLevel;\n }\n if (typeof input === \"number\") {\n return input;\n }\n if (types[input] && types[input].level !== void 0) {\n return types[input].level;\n }\n return defaultLevel;\n}\nConsola.prototype.add = Consola.prototype.addReporter;\nConsola.prototype.remove = Consola.prototype.removeReporter;\nConsola.prototype.clear = Consola.prototype.removeReporter;\nConsola.prototype.withScope = Consola.prototype.withTag;\nConsola.prototype.mock = Consola.prototype.mockTypes;\nConsola.prototype.pause = Consola.prototype.pauseLogs;\nConsola.prototype.resume = Consola.prototype.resumeLogs;\nfunction createConsola(options = {}) {\n return new Consola(options);\n}\nexport { Consola, LogLevels, LogTypes, createConsola };","import { formatWithOptions } from 'node:util';\nimport { sep } from 'node:path';\nfunction parseStack(stack, message) {\n const cwd = process.cwd() + sep;\n const lines = stack.split(\"\\n\").splice(message.split(\"\\n\").length).map(l => l.trim().replace(\"file://\", \"\").replace(cwd, \"\"));\n return lines;\n}\nfunction writeStream(data, stream) {\n const write = stream.__write || stream.write;\n return write.call(stream, data);\n}\nconst bracket = x => x ? `[${x}]` : \"\";\nclass BasicReporter {\n formatStack(stack, message, opts) {\n const indent = \" \".repeat((opts?.errorLevel || 0) + 1);\n return indent + parseStack(stack, message).join(`\n${indent}`);\n }\n formatError(err, opts) {\n const message = err.message ?? formatWithOptions(opts, err);\n const stack = err.stack ? this.formatStack(err.stack, message, opts) : \"\";\n const level = opts?.errorLevel || 0;\n const causedPrefix = level > 0 ? `${\" \".repeat(level)}[cause]: ` : \"\";\n const causedError = err.cause ? \"\\n\\n\" + this.formatError(err.cause, {\n ...opts,\n errorLevel: level + 1\n }) : \"\";\n return causedPrefix + message + \"\\n\" + stack + causedError;\n }\n formatArgs(args, opts) {\n const _args = args.map(arg => {\n if (arg && typeof arg.stack === \"string\") {\n return this.formatError(arg, opts);\n }\n return arg;\n });\n return formatWithOptions(opts, ..._args);\n }\n formatDate(date, opts) {\n return opts.date ? date.toLocaleTimeString() : \"\";\n }\n filterAndJoin(arr) {\n return arr.filter(Boolean).join(\" \");\n }\n formatLogObj(logObj, opts) {\n const message = this.formatArgs(logObj.args, opts);\n if (logObj.type === \"box\") {\n return \"\\n\" + [bracket(logObj.tag), logObj.title && logObj.title, ...message.split(\"\\n\")].filter(Boolean).map(l => \" > \" + l).join(\"\\n\") + \"\\n\";\n }\n return this.filterAndJoin([bracket(logObj.type), bracket(logObj.tag), message]);\n }\n log(logObj, ctx) {\n const line = this.formatLogObj(logObj, {\n columns: ctx.options.stdout.columns || 0,\n ...ctx.options.formatOptions\n });\n return writeStream(line + \"\\n\", logObj.level < 2 ? ctx.options.stderr || process.stderr : ctx.options.stdout || process.stdout);\n }\n}\nexport { BasicReporter as B, parseStack as p };","import * as tty from 'node:tty';\nconst {\n env = {},\n argv = [],\n platform = \"\"\n} = typeof process === \"undefined\" ? {} : process;\nconst isDisabled = \"NO_COLOR\" in env || argv.includes(\"--no-color\");\nconst isForced = \"FORCE_COLOR\" in env || argv.includes(\"--color\");\nconst isWindows = platform === \"win32\";\nconst isDumbTerminal = env.TERM === \"dumb\";\nconst isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;\nconst isCI = \"CI\" in env && (\"GITHUB_ACTIONS\" in env || \"GITLAB_CI\" in env || \"CIRCLECI\" in env);\nconst isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);\nfunction replaceClose(index, string, close, replace, head = string.slice(0, Math.max(0, index)) + replace, tail = string.slice(Math.max(0, index + close.length)), next = tail.indexOf(close)) {\n return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));\n}\nfunction clearBleed(index, string, open, close, replace) {\n return index < 0 ? open + string + close : open + replaceClose(index, string, close, replace) + close;\n}\nfunction filterEmpty(open, close, replace = open, at = open.length + 1) {\n return string => string || !(string === \"\" || string === void 0) ? clearBleed((\"\" + string).indexOf(close, at), string, open, close, replace) : \"\";\n}\nfunction init(open, close, replace) {\n return filterEmpty(`\\x1B[${open}m`, `\\x1B[${close}m`, replace);\n}\nconst colorDefs = {\n reset: init(0, 0),\n bold: init(1, 22, \"\\x1B[22m\\x1B[1m\"),\n dim: init(2, 22, \"\\x1B[22m\\x1B[2m\"),\n italic: init(3, 23),\n underline: init(4, 24),\n inverse: init(7, 27),\n hidden: init(8, 28),\n strikethrough: init(9, 29),\n black: init(30, 39),\n red: init(31, 39),\n green: init(32, 39),\n yellow: init(33, 39),\n blue: init(34, 39),\n magenta: init(35, 39),\n cyan: init(36, 39),\n white: init(37, 39),\n gray: init(90, 39),\n bgBlack: init(40, 49),\n bgRed: init(41, 49),\n bgGreen: init(42, 49),\n bgYellow: init(43, 49),\n bgBlue: init(44, 49),\n bgMagenta: init(45, 49),\n bgCyan: init(46, 49),\n bgWhite: init(47, 49),\n blackBright: init(90, 39),\n redBright: init(91, 39),\n greenBright: init(92, 39),\n yellowBright: init(93, 39),\n blueBright: init(94, 39),\n magentaBright: init(95, 39),\n cyanBright: init(96, 39),\n whiteBright: init(97, 39),\n bgBlackBright: init(100, 49),\n bgRedBright: init(101, 49),\n bgGreenBright: init(102, 49),\n bgYellowBright: init(103, 49),\n bgBlueBright: init(104, 49),\n bgMagentaBright: init(105, 49),\n bgCyanBright: init(106, 49),\n bgWhiteBright: init(107, 49)\n};\nfunction createColors(useColor = isColorSupported) {\n return useColor ? colorDefs : Object.fromEntries(Object.keys(colorDefs).map(key => [key, String]));\n}\nconst colors = createColors();\nfunction getColor(color, fallback = \"reset\") {\n return colors[color] || colors[fallback];\n}\nfunction colorize(color, text) {\n return getColor(color)(text);\n}\nconst ansiRegex = [String.raw`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)`, String.raw`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(\"|\");\nfunction stripAnsi(text) {\n return text.replace(new RegExp(ansiRegex, \"g\"), \"\");\n}\nfunction centerAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n const freeLeft = Math.floor(free / 2);\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < freeLeft || i >= freeLeft + str.length ? space : str[i - freeLeft];\n }\n return _str;\n}\nfunction rightAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < free ? space : str[i - free];\n }\n return _str;\n}\nfunction leftAlign(str, len, space = \" \") {\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < str.length ? str[i] : space;\n }\n return _str;\n}\nfunction align(alignment, str, len, space = \" \") {\n switch (alignment) {\n case \"left\":\n {\n return leftAlign(str, len, space);\n }\n case \"right\":\n {\n return rightAlign(str, len, space);\n }\n case \"center\":\n {\n return centerAlign(str, len, space);\n }\n default:\n {\n return str;\n }\n }\n}\nconst boxStylePresets = {\n solid: {\n tl: \"\\u250C\",\n tr: \"\\u2510\",\n bl: \"\\u2514\",\n br: \"\\u2518\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n },\n double: {\n tl: \"\\u2554\",\n tr: \"\\u2557\",\n bl: \"\\u255A\",\n br: \"\\u255D\",\n h: \"\\u2550\",\n v: \"\\u2551\"\n },\n doubleSingle: {\n tl: \"\\u2553\",\n tr: \"\\u2556\",\n bl: \"\\u2559\",\n br: \"\\u255C\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n doubleSingleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n singleThick: {\n tl: \"\\u250F\",\n tr: \"\\u2513\",\n bl: \"\\u2517\",\n br: \"\\u251B\",\n h: \"\\u2501\",\n v: \"\\u2503\"\n },\n singleDouble: {\n tl: \"\\u2552\",\n tr: \"\\u2555\",\n bl: \"\\u2558\",\n br: \"\\u255B\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n singleDoubleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n rounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n }\n};\nconst defaultStyle = {\n borderColor: \"white\",\n borderStyle: \"rounded\",\n valign: \"center\",\n padding: 2,\n marginLeft: 1,\n marginTop: 1,\n marginBottom: 1\n};\nfunction box(text, _opts = {}) {\n const opts = {\n ..._opts,\n style: {\n ...defaultStyle,\n ..._opts.style\n }\n };\n const textLines = text.split(\"\\n\");\n const boxLines = [];\n const _color = getColor(opts.style.borderColor);\n const borderStyle = {\n ...(typeof opts.style.borderStyle === \"string\" ? boxStylePresets[opts.style.borderStyle] || boxStylePresets.solid : opts.style.borderStyle)\n };\n if (_color) {\n for (const key in borderStyle) {\n borderStyle[key] = _color(borderStyle[key]);\n }\n }\n const paddingOffset = opts.style.padding % 2 === 0 ? opts.style.padding : opts.style.padding + 1;\n const height = textLines.length + paddingOffset;\n const width = Math.max(...textLines.map(line => stripAnsi(line).length), opts.title ? stripAnsi(opts.title).length : 0) + paddingOffset;\n const widthOffset = width + paddingOffset;\n const leftSpace = opts.style.marginLeft > 0 ? \" \".repeat(opts.style.marginLeft) : \"\";\n if (opts.style.marginTop > 0) {\n boxLines.push(\"\".repeat(opts.style.marginTop));\n }\n if (opts.title) {\n const title = _color ? _color(opts.title) : opts.title;\n const left = borderStyle.h.repeat(Math.floor((width - stripAnsi(opts.title).length) / 2));\n const right = borderStyle.h.repeat(width - stripAnsi(opts.title).length - stripAnsi(left).length + paddingOffset);\n boxLines.push(`${leftSpace}${borderStyle.tl}${left}${title}${right}${borderStyle.tr}`);\n } else {\n boxLines.push(`${leftSpace}${borderStyle.tl}${borderStyle.h.repeat(widthOffset)}${borderStyle.tr}`);\n }\n const valignOffset = opts.style.valign === \"center\" ? Math.floor((height - textLines.length) / 2) : opts.style.valign === \"top\" ? height - textLines.length - paddingOffset : height - textLines.length;\n for (let i = 0; i < height; i++) {\n if (i < valignOffset || i >= valignOffset + textLines.length) {\n boxLines.push(`${leftSpace}${borderStyle.v}${\" \".repeat(widthOffset)}${borderStyle.v}`);\n } else {\n const line = textLines[i - valignOffset];\n const left = \" \".repeat(paddingOffset);\n const right = \" \".repeat(width - stripAnsi(line).length);\n boxLines.push(`${leftSpace}${borderStyle.v}${left}${line}${right}${borderStyle.v}`);\n }\n }\n boxLines.push(`${leftSpace}${borderStyle.bl}${borderStyle.h.repeat(widthOffset)}${borderStyle.br}`);\n if (opts.style.marginBottom > 0) {\n boxLines.push(\"\".repeat(opts.style.marginBottom));\n }\n return boxLines.join(\"\\n\");\n}\nexport { centerAlign as a, align as b, colorize as c, box as d, colors as e, getColor as g, leftAlign as l, rightAlign as r, stripAnsi as s };","import { createConsola as createConsola$1, LogLevels } from './core.mjs';\nexport { Consola, LogTypes } from './core.mjs';\nimport { B as BasicReporter, p as parseStack } from './shared/consola.DRwqZj3T.mjs';\nimport g$1 from 'node:process';\nimport { e as colors, d as box, s as stripAnsi$1 } from './shared/consola.DXBYu-KD.mjs';\nimport 'node:util';\nimport 'node:path';\nimport 'node:tty';\nconst r = Object.create(null),\n i = e => globalThis.process?.env || import.meta.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (e ? r : globalThis),\n o = new Proxy(r, {\n get(e, s) {\n return i()[s] ?? r[s];\n },\n has(e, s) {\n const E = i();\n return s in E || s in r;\n },\n set(e, s, E) {\n const B = i(true);\n return B[s] = E, true;\n },\n deleteProperty(e, s) {\n if (!s) return false;\n const E = i(true);\n return delete E[s], true;\n },\n ownKeys() {\n const e = i(true);\n return Object.keys(e);\n }\n }),\n t = typeof process < \"u\" && process.env && process.env.NODE_ENV || \"\",\n f = [[\"APPVEYOR\"], [\"AWS_AMPLIFY\", \"AWS_APP_ID\", {\n ci: true\n }], [\"AZURE_PIPELINES\", \"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\"], [\"AZURE_STATIC\", \"INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN\"], [\"APPCIRCLE\", \"AC_APPCIRCLE\"], [\"BAMBOO\", \"bamboo_planKey\"], [\"BITBUCKET\", \"BITBUCKET_COMMIT\"], [\"BITRISE\", \"BITRISE_IO\"], [\"BUDDY\", \"BUDDY_WORKSPACE_ID\"], [\"BUILDKITE\"], [\"CIRCLE\", \"CIRCLECI\"], [\"CIRRUS\", \"CIRRUS_CI\"], [\"CLOUDFLARE_PAGES\", \"CF_PAGES\", {\n ci: true\n }], [\"CODEBUILD\", \"CODEBUILD_BUILD_ARN\"], [\"CODEFRESH\", \"CF_BUILD_ID\"], [\"DRONE\"], [\"DRONE\", \"DRONE_BUILD_EVENT\"], [\"DSARI\"], [\"GITHUB_ACTIONS\"], [\"GITLAB\", \"GITLAB_CI\"], [\"GITLAB\", \"CI_MERGE_REQUEST_ID\"], [\"GOCD\", \"GO_PIPELINE_LABEL\"], [\"LAYERCI\"], [\"HUDSON\", \"HUDSON_URL\"], [\"JENKINS\", \"JENKINS_URL\"], [\"MAGNUM\"], [\"NETLIFY\"], [\"NETLIFY\", \"NETLIFY_LOCAL\", {\n ci: false\n }], [\"NEVERCODE\"], [\"RENDER\"], [\"SAIL\", \"SAILCI\"], [\"SEMAPHORE\"], [\"SCREWDRIVER\"], [\"SHIPPABLE\"], [\"SOLANO\", \"TDDIUM\"], [\"STRIDER\"], [\"TEAMCITY\", \"TEAMCITY_VERSION\"], [\"TRAVIS\"], [\"VERCEL\", \"NOW_BUILDER\"], [\"VERCEL\", \"VERCEL\", {\n ci: false\n }], [\"VERCEL\", \"VERCEL_ENV\", {\n ci: false\n }], [\"APPCENTER\", \"APPCENTER_BUILD_ID\"], [\"CODESANDBOX\", \"CODESANDBOX_SSE\", {\n ci: false\n }], [\"CODESANDBOX\", \"CODESANDBOX_HOST\", {\n ci: false\n }], [\"STACKBLITZ\"], [\"STORMKIT\"], [\"CLEAVR\"], [\"ZEABUR\"], [\"CODESPHERE\", \"CODESPHERE_APP_ID\", {\n ci: true\n }], [\"RAILWAY\", \"RAILWAY_PROJECT_ID\"], [\"RAILWAY\", \"RAILWAY_SERVICE_ID\"], [\"DENO-DEPLOY\", \"DENO_DEPLOYMENT_ID\"], [\"FIREBASE_APP_HOSTING\", \"FIREBASE_APP_HOSTING\", {\n ci: true\n }]];\nfunction b() {\n if (globalThis.process?.env) for (const e of f) {\n const s = e[1] || e[0];\n if (globalThis.process?.env[s]) return {\n name: e[0].toLowerCase(),\n ...e[2]\n };\n }\n return globalThis.process?.env?.SHELL === \"/bin/jsh\" && globalThis.process?.versions?.webcontainer ? {\n name: \"stackblitz\",\n ci: false\n } : {\n name: \"\",\n ci: false\n };\n}\nconst l = b();\nl.name;\nfunction n(e) {\n return e ? e !== \"false\" : false;\n}\nconst I = globalThis.process?.platform || \"\",\n T = n(o.CI) || l.ci !== false,\n a = n(globalThis.process?.stdout && globalThis.process?.stdout.isTTY),\n g = n(o.DEBUG),\n R = t === \"test\" || n(o.TEST);\nn(o.MINIMAL) || T || R || !a;\nconst A = /^win/i.test(I);\n!n(o.NO_COLOR) && (n(o.FORCE_COLOR) || (a || A) && o.TERM !== \"dumb\" || T);\nconst C = (globalThis.process?.versions?.node || \"\").replace(/^v/, \"\") || null;\nNumber(C?.split(\".\")[0]) || null;\nconst y = globalThis.process || Object.create(null),\n _ = {\n versions: {}\n };\nnew Proxy(y, {\n get(e, s) {\n if (s === \"env\") return o;\n if (s in e) return e[s];\n if (s in _) return _[s];\n }\n});\nconst c = globalThis.process?.release?.name === \"node\",\n O = !!globalThis.Bun || !!globalThis.process?.versions?.bun,\n D = !!globalThis.Deno,\n L = !!globalThis.fastly,\n S = !!globalThis.Netlify,\n u = !!globalThis.EdgeRuntime,\n N = globalThis.navigator?.userAgent === \"Cloudflare-Workers\",\n F = [[S, \"netlify\"], [u, \"edge-light\"], [N, \"workerd\"], [L, \"fastly\"], [D, \"deno\"], [O, \"bun\"], [c, \"node\"]];\nfunction G() {\n const e = F.find(s => s[0]);\n if (e) return {\n name: e[1]\n };\n}\nconst P = G();\nP?.name || \"\";\nfunction ansiRegex({\n onlyFirst = false\n} = {}) {\n // Valid string terminator sequences are BEL, ESC\\, and 0x9c\n const ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n const pattern = [`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`, '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))'].join('|');\n return new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\nconst regex = ansiRegex();\nfunction stripAnsi(string) {\n if (typeof string !== 'string') {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n\n // Even though the regex is global, we don't need to reset the `.lastIndex`\n // because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n // and doing it manually has a performance penalty.\n return string.replace(regex, '');\n}\n\n// Generated code.\n\nfunction isAmbiguous(x) {\n return x === 0xA1 || x === 0xA4 || x === 0xA7 || x === 0xA8 || x === 0xAA || x === 0xAD || x === 0xAE || x >= 0xB0 && x <= 0xB4 || x >= 0xB6 && x <= 0xBA || x >= 0xBC && x <= 0xBF || x === 0xC6 || x === 0xD0 || x === 0xD7 || x === 0xD8 || x >= 0xDE && x <= 0xE1 || x === 0xE6 || x >= 0xE8 && x <= 0xEA || x === 0xEC || x === 0xED || x === 0xF0 || x === 0xF2 || x === 0xF3 || x >= 0xF7 && x <= 0xFA || x === 0xFC || x === 0xFE || x === 0x101 || x === 0x111 || x === 0x113 || x === 0x11B || x === 0x126 || x === 0x127 || x === 0x12B || x >= 0x131 && x <= 0x133 || x === 0x138 || x >= 0x13F && x <= 0x142 || x === 0x144 || x >= 0x148 && x <= 0x14B || x === 0x14D || x === 0x152 || x === 0x153 || x === 0x166 || x === 0x167 || x === 0x16B || x === 0x1CE || x === 0x1D0 || x === 0x1D2 || x === 0x1D4 || x === 0x1D6 || x === 0x1D8 || x === 0x1DA || x === 0x1DC || x === 0x251 || x === 0x261 || x === 0x2C4 || x === 0x2C7 || x >= 0x2C9 && x <= 0x2CB || x === 0x2CD || x === 0x2D0 || x >= 0x2D8 && x <= 0x2DB || x === 0x2DD || x === 0x2DF || x >= 0x300 && x <= 0x36F || x >= 0x391 && x <= 0x3A1 || x >= 0x3A3 && x <= 0x3A9 || x >= 0x3B1 && x <= 0x3C1 || x >= 0x3C3 && x <= 0x3C9 || x === 0x401 || x >= 0x410 && x <= 0x44F || x === 0x451 || x === 0x2010 || x >= 0x2013 && x <= 0x2016 || x === 0x2018 || x === 0x2019 || x === 0x201C || x === 0x201D || x >= 0x2020 && x <= 0x2022 || x >= 0x2024 && x <= 0x2027 || x === 0x2030 || x === 0x2032 || x === 0x2033 || x === 0x2035 || x === 0x203B || x === 0x203E || x === 0x2074 || x === 0x207F || x >= 0x2081 && x <= 0x2084 || x === 0x20AC || x === 0x2103 || x === 0x2105 || x === 0x2109 || x === 0x2113 || x === 0x2116 || x === 0x2121 || x === 0x2122 || x === 0x2126 || x === 0x212B || x === 0x2153 || x === 0x2154 || x >= 0x215B && x <= 0x215E || x >= 0x2160 && x <= 0x216B || x >= 0x2170 && x <= 0x2179 || x === 0x2189 || x >= 0x2190 && x <= 0x2199 || x === 0x21B8 || x === 0x21B9 || x === 0x21D2 || x === 0x21D4 || x === 0x21E7 || x === 0x2200 || x === 0x2202 || x === 0x2203 || x === 0x2207 || x === 0x2208 || x === 0x220B || x === 0x220F || x === 0x2211 || x === 0x2215 || x === 0x221A || x >= 0x221D && x <= 0x2220 || x === 0x2223 || x === 0x2225 || x >= 0x2227 && x <= 0x222C || x === 0x222E || x >= 0x2234 && x <= 0x2237 || x === 0x223C || x === 0x223D || x === 0x2248 || x === 0x224C || x === 0x2252 || x === 0x2260 || x === 0x2261 || x >= 0x2264 && x <= 0x2267 || x === 0x226A || x === 0x226B || x === 0x226E || x === 0x226F || x === 0x2282 || x === 0x2283 || x === 0x2286 || x === 0x2287 || x === 0x2295 || x === 0x2299 || x === 0x22A5 || x === 0x22BF || x === 0x2312 || x >= 0x2460 && x <= 0x24E9 || x >= 0x24EB && x <= 0x254B || x >= 0x2550 && x <= 0x2573 || x >= 0x2580 && x <= 0x258F || x >= 0x2592 && x <= 0x2595 || x === 0x25A0 || x === 0x25A1 || x >= 0x25A3 && x <= 0x25A9 || x === 0x25B2 || x === 0x25B3 || x === 0x25B6 || x === 0x25B7 || x === 0x25BC || x === 0x25BD || x === 0x25C0 || x === 0x25C1 || x >= 0x25C6 && x <= 0x25C8 || x === 0x25CB || x >= 0x25CE && x <= 0x25D1 || x >= 0x25E2 && x <= 0x25E5 || x === 0x25EF || x === 0x2605 || x === 0x2606 || x === 0x2609 || x === 0x260E || x === 0x260F || x === 0x261C || x === 0x261E || x === 0x2640 || x === 0x2642 || x === 0x2660 || x === 0x2661 || x >= 0x2663 && x <= 0x2665 || x >= 0x2667 && x <= 0x266A || x === 0x266C || x === 0x266D || x === 0x266F || x === 0x269E || x === 0x269F || x === 0x26BF || x >= 0x26C6 && x <= 0x26CD || x >= 0x26CF && x <= 0x26D3 || x >= 0x26D5 && x <= 0x26E1 || x === 0x26E3 || x === 0x26E8 || x === 0x26E9 || x >= 0x26EB && x <= 0x26F1 || x === 0x26F4 || x >= 0x26F6 && x <= 0x26F9 || x === 0x26FB || x === 0x26FC || x === 0x26FE || x === 0x26FF || x === 0x273D || x >= 0x2776 && x <= 0x277F || x >= 0x2B56 && x <= 0x2B59 || x >= 0x3248 && x <= 0x324F || x >= 0xE000 && x <= 0xF8FF || x >= 0xFE00 && x <= 0xFE0F || x === 0xFFFD || x >= 0x1F100 && x <= 0x1F10A || x >= 0x1F110 && x <= 0x1F12D || x >= 0x1F130 && x <= 0x1F169 || x >= 0x1F170 && x <= 0x1F18D || x === 0x1F18F || x === 0x1F190 || x >= 0x1F19B && x <= 0x1F1AC || x >= 0xE0100 && x <= 0xE01EF || x >= 0xF0000 && x <= 0xFFFFD || x >= 0x100000 && x <= 0x10FFFD;\n}\nfunction isFullWidth(x) {\n return x === 0x3000 || x >= 0xFF01 && x <= 0xFF60 || x >= 0xFFE0 && x <= 0xFFE6;\n}\nfunction isWide(x) {\n return x >= 0x1100 && x <= 0x115F || x === 0x231A || x === 0x231B || x === 0x2329 || x === 0x232A || x >= 0x23E9 && x <= 0x23EC || x === 0x23F0 || x === 0x23F3 || x === 0x25FD || x === 0x25FE || x === 0x2614 || x === 0x2615 || x >= 0x2630 && x <= 0x2637 || x >= 0x2648 && x <= 0x2653 || x === 0x267F || x >= 0x268A && x <= 0x268F || x === 0x2693 || x === 0x26A1 || x === 0x26AA || x === 0x26AB || x === 0x26BD || x === 0x26BE || x === 0x26C4 || x === 0x26C5 || x === 0x26CE || x === 0x26D4 || x === 0x26EA || x === 0x26F2 || x === 0x26F3 || x === 0x26F5 || x === 0x26FA || x === 0x26FD || x === 0x2705 || x === 0x270A || x === 0x270B || x === 0x2728 || x === 0x274C || x === 0x274E || x >= 0x2753 && x <= 0x2755 || x === 0x2757 || x >= 0x2795 && x <= 0x2797 || x === 0x27B0 || x === 0x27BF || x === 0x2B1B || x === 0x2B1C || x === 0x2B50 || x === 0x2B55 || x >= 0x2E80 && x <= 0x2E99 || x >= 0x2E9B && x <= 0x2EF3 || x >= 0x2F00 && x <= 0x2FD5 || x >= 0x2FF0 && x <= 0x2FFF || x >= 0x3001 && x <= 0x303E || x >= 0x3041 && x <= 0x3096 || x >= 0x3099 && x <= 0x30FF || x >= 0x3105 && x <= 0x312F || x >= 0x3131 && x <= 0x318E || x >= 0x3190 && x <= 0x31E5 || x >= 0x31EF && x <= 0x321E || x >= 0x3220 && x <= 0x3247 || x >= 0x3250 && x <= 0xA48C || x >= 0xA490 && x <= 0xA4C6 || x >= 0xA960 && x <= 0xA97C || x >= 0xAC00 && x <= 0xD7A3 || x >= 0xF900 && x <= 0xFAFF || x >= 0xFE10 && x <= 0xFE19 || x >= 0xFE30 && x <= 0xFE52 || x >= 0xFE54 && x <= 0xFE66 || x >= 0xFE68 && x <= 0xFE6B || x >= 0x16FE0 && x <= 0x16FE4 || x === 0x16FF0 || x === 0x16FF1 || x >= 0x17000 && x <= 0x187F7 || x >= 0x18800 && x <= 0x18CD5 || x >= 0x18CFF && x <= 0x18D08 || x >= 0x1AFF0 && x <= 0x1AFF3 || x >= 0x1AFF5 && x <= 0x1AFFB || x === 0x1AFFD || x === 0x1AFFE || x >= 0x1B000 && x <= 0x1B122 || x === 0x1B132 || x >= 0x1B150 && x <= 0x1B152 || x === 0x1B155 || x >= 0x1B164 && x <= 0x1B167 || x >= 0x1B170 && x <= 0x1B2FB || x >= 0x1D300 && x <= 0x1D356 || x >= 0x1D360 && x <= 0x1D376 || x === 0x1F004 || x === 0x1F0CF || x === 0x1F18E || x >= 0x1F191 && x <= 0x1F19A || x >= 0x1F200 && x <= 0x1F202 || x >= 0x1F210 && x <= 0x1F23B || x >= 0x1F240 && x <= 0x1F248 || x === 0x1F250 || x === 0x1F251 || x >= 0x1F260 && x <= 0x1F265 || x >= 0x1F300 && x <= 0x1F320 || x >= 0x1F32D && x <= 0x1F335 || x >= 0x1F337 && x <= 0x1F37C || x >= 0x1F37E && x <= 0x1F393 || x >= 0x1F3A0 && x <= 0x1F3CA || x >= 0x1F3CF && x <= 0x1F3D3 || x >= 0x1F3E0 && x <= 0x1F3F0 || x === 0x1F3F4 || x >= 0x1F3F8 && x <= 0x1F43E || x === 0x1F440 || x >= 0x1F442 && x <= 0x1F4FC || x >= 0x1F4FF && x <= 0x1F53D || x >= 0x1F54B && x <= 0x1F54E || x >= 0x1F550 && x <= 0x1F567 || x === 0x1F57A || x === 0x1F595 || x === 0x1F596 || x === 0x1F5A4 || x >= 0x1F5FB && x <= 0x1F64F || x >= 0x1F680 && x <= 0x1F6C5 || x === 0x1F6CC || x >= 0x1F6D0 && x <= 0x1F6D2 || x >= 0x1F6D5 && x <= 0x1F6D7 || x >= 0x1F6DC && x <= 0x1F6DF || x === 0x1F6EB || x === 0x1F6EC || x >= 0x1F6F4 && x <= 0x1F6FC || x >= 0x1F7E0 && x <= 0x1F7EB || x === 0x1F7F0 || x >= 0x1F90C && x <= 0x1F93A || x >= 0x1F93C && x <= 0x1F945 || x >= 0x1F947 && x <= 0x1F9FF || x >= 0x1FA70 && x <= 0x1FA7C || x >= 0x1FA80 && x <= 0x1FA89 || x >= 0x1FA8F && x <= 0x1FAC6 || x >= 0x1FACE && x <= 0x1FADC || x >= 0x1FADF && x <= 0x1FAE9 || x >= 0x1FAF0 && x <= 0x1FAF8 || x >= 0x20000 && x <= 0x2FFFD || x >= 0x30000 && x <= 0x3FFFD;\n}\nfunction validate(codePoint) {\n if (!Number.isSafeInteger(codePoint)) {\n throw new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n }\n}\nfunction eastAsianWidth(codePoint, {\n ambiguousAsWide = false\n} = {}) {\n validate(codePoint);\n if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {\n return 2;\n }\n return 1;\n}\nconst emojiRegex = () => {\n // https://mths.be/emoji\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\nconst segmenter = globalThis.Intl?.Segmenter ? new Intl.Segmenter() : {\n segment: str => str.split('')\n};\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\nfunction stringWidth$1(string, options = {}) {\n if (typeof string !== 'string' || string.length === 0) {\n return 0;\n }\n const {\n ambiguousIsNarrow = true,\n countAnsiEscapeCodes = false\n } = options;\n if (!countAnsiEscapeCodes) {\n string = stripAnsi(string);\n }\n if (string.length === 0) {\n return 0;\n }\n let width = 0;\n const eastAsianWidthOptions = {\n ambiguousAsWide: !ambiguousIsNarrow\n };\n for (const {\n segment: character\n } of segmenter.segment(string)) {\n const codePoint = character.codePointAt(0);\n\n // Ignore control characters\n if (codePoint <= 0x1F || codePoint >= 0x7F && codePoint <= 0x9F) {\n continue;\n }\n\n // Ignore zero-width characters\n if (codePoint >= 0x20_0B && codePoint <= 0x20_0F // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n || codePoint === 0xFE_FF // Zero-width no-break space\n ) {\n continue;\n }\n\n // Ignore combining characters\n if (codePoint >= 0x3_00 && codePoint <= 0x3_6F // Combining diacritical marks\n || codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF // Combining diacritical marks extended\n || codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF // Combining diacritical marks supplement\n || codePoint >= 0x20_D0 && codePoint <= 0x20_FF // Combining diacritical marks for symbols\n || codePoint >= 0xFE_20 && codePoint <= 0xFE_2F // Combining half marks\n ) {\n continue;\n }\n\n // Ignore surrogate pairs\n if (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n continue;\n }\n\n // Ignore variation selectors\n if (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n continue;\n }\n\n // This covers some of the above cases, but we still keep them for performance reasons.\n if (defaultIgnorableCodePointRegex.test(character)) {\n continue;\n }\n\n // TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n if (emojiRegex().test(character)) {\n width += 2;\n continue;\n }\n width += eastAsianWidth(codePoint, eastAsianWidthOptions);\n }\n return width;\n}\nfunction isUnicodeSupported() {\n const {\n env\n } = g$1;\n const {\n TERM,\n TERM_PROGRAM\n } = env;\n if (g$1.platform !== 'win32') {\n return TERM !== 'linux'; // Linux console (kernel)\n }\n return Boolean(env.WT_SESSION) // Windows Terminal\n || Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n || env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n || TERM_PROGRAM === 'Terminus-Sublime' || TERM_PROGRAM === 'vscode' || TERM === 'xterm-256color' || TERM === 'alacritty' || TERM === 'rxvt-unicode' || TERM === 'rxvt-unicode-256color' || env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\nconst TYPE_COLOR_MAP = {\n info: \"cyan\",\n fail: \"red\",\n success: \"green\",\n ready: \"green\",\n start: \"magenta\"\n};\nconst LEVEL_COLOR_MAP = {\n 0: \"red\",\n 1: \"yellow\"\n};\nconst unicode = isUnicodeSupported();\nconst s = (c, fallback) => unicode ? c : fallback;\nconst TYPE_ICONS = {\n error: s(\"\\u2716\", \"\\xD7\"),\n fatal: s(\"\\u2716\", \"\\xD7\"),\n ready: s(\"\\u2714\", \"\\u221A\"),\n warn: s(\"\\u26A0\", \"\\u203C\"),\n info: s(\"\\u2139\", \"i\"),\n success: s(\"\\u2714\", \"\\u221A\"),\n debug: s(\"\\u2699\", \"D\"),\n trace: s(\"\\u2192\", \"\\u2192\"),\n fail: s(\"\\u2716\", \"\\xD7\"),\n start: s(\"\\u25D0\", \"o\"),\n log: \"\"\n};\nfunction stringWidth(str) {\n const hasICU = typeof Intl === \"object\";\n if (!hasICU || !Intl.Segmenter) {\n return stripAnsi$1(str).length;\n }\n return stringWidth$1(str);\n}\nclass FancyReporter extends BasicReporter {\n formatStack(stack, message, opts) {\n const indent = \" \".repeat((opts?.errorLevel || 0) + 1);\n return `\n${indent}` + parseStack(stack, message).map(line => \" \" + line.replace(/^at +/, m => colors.gray(m)).replace(/\\((.+)\\)/, (_, m) => `(${colors.cyan(m)})`)).join(`\n${indent}`);\n }\n formatType(logObj, isBadge, opts) {\n const typeColor = TYPE_COLOR_MAP[logObj.type] || LEVEL_COLOR_MAP[logObj.level] || \"gray\";\n if (isBadge) {\n return getBgColor(typeColor)(colors.black(` ${logObj.type.toUpperCase()} `));\n }\n const _type = typeof TYPE_ICONS[logObj.type] === \"string\" ? TYPE_ICONS[logObj.type] : logObj.icon || logObj.type;\n return _type ? getColor(typeColor)(_type) : \"\";\n }\n formatLogObj(logObj, opts) {\n const [message, ...additional] = this.formatArgs(logObj.args, opts).split(\"\\n\");\n if (logObj.type === \"box\") {\n return box(characterFormat(message + (additional.length > 0 ? \"\\n\" + additional.join(\"\\n\") : \"\")), {\n title: logObj.title ? characterFormat(logObj.title) : void 0,\n style: logObj.style\n });\n }\n const date = this.formatDate(logObj.date, opts);\n const coloredDate = date && colors.gray(date);\n const isBadge = logObj.badge ?? logObj.level < 2;\n const type = this.formatType(logObj, isBadge, opts);\n const tag = logObj.tag ? colors.gray(logObj.tag) : \"\";\n let line;\n const left = this.filterAndJoin([type, characterFormat(message)]);\n const right = this.filterAndJoin(opts.columns ? [tag, coloredDate] : [tag]);\n const space = (opts.columns || 0) - stringWidth(left) - stringWidth(right) - 2;\n line = space > 0 && (opts.columns || 0) >= 80 ? left + \" \".repeat(space) + right : (right ? `${colors.gray(`[${right}]`)} ` : \"\") + left;\n line += characterFormat(additional.length > 0 ? \"\\n\" + additional.join(\"\\n\") : \"\");\n if (logObj.type === \"trace\") {\n const _err = new Error(\"Trace: \" + logObj.message);\n line += this.formatStack(_err.stack || \"\", _err.message);\n }\n return isBadge ? \"\\n\" + line + \"\\n\" : line;\n }\n}\nfunction characterFormat(str) {\n return str.replace(/`([^`]+)`/gm, (_, m) => colors.cyan(m)).replace(/\\s+_([^_]+)_\\s+/gm, (_, m) => ` ${colors.underline(m)} `);\n}\nfunction getColor(color = \"white\") {\n return colors[color] || colors.white;\n}\nfunction getBgColor(color = \"bgWhite\") {\n return colors[`bg${color[0].toUpperCase()}${color.slice(1)}`] || colors.bgWhite;\n}\nfunction createConsola(options = {}) {\n let level = _getDefaultLogLevel();\n if (process.env.CONSOLA_LEVEL) {\n level = Number.parseInt(process.env.CONSOLA_LEVEL) ?? level;\n }\n const consola2 = createConsola$1({\n level,\n defaults: {\n level\n },\n stdout: process.stdout,\n stderr: process.stderr,\n prompt: (...args) => import('./chunks/prompt.mjs').then(m => m.prompt(...args)),\n reporters: options.reporters || [options.fancy ?? !(T || R) ? new FancyReporter() : new BasicReporter()],\n ...options\n });\n return consola2;\n}\nfunction _getDefaultLogLevel() {\n if (g) {\n return LogLevels.debug;\n }\n if (R) {\n return LogLevels.warn;\n }\n return LogLevels.info;\n}\nconst consola = createConsola();\nexport { LogLevels, consola, createConsola, consola as default };","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n } else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n } else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n } else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined) return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number') return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x)) return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x)) return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n } else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i]) args[i] = '';\n args[i] += c;\n }\n return args;\n}","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n } else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), {\n _: []\n });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n } else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n } else if (arg.match(/^--.+=/) || !configuration['short-option-groups'] && arg.match(/^-.+=/)) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n } else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n } else {\n setArg(m[1], m[2], true);\n }\n }\n } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n } else if (arg.match(/^--.+/) || !configuration['short-option-groups'] && arg.match(/^-[^-]+/)) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n } else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n } else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) || next.match(negative)) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n } else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n } else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n } else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n } else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n } else {\n setArg(key, defaultValue(key));\n }\n }\n } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n } else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n } else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) && checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n } else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n } else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n } else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) || next.match(negative)) && !checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n } else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n } else {\n setArg(key, defaultValue(key));\n }\n }\n }\n } else if (arg.match(/^-[0-9]$/) && arg.match(negative) && checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n } else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n } else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n } else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key']) setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.'))) setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n } else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) available++;else break;\n }\n if (available < toEat) error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < consumed + i + 1; ii++) {\n setArg(key, args[ii]);\n }\n return i + consumed;\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !/^(true|false)$/.test(next)) {\n argsToSet.push(true);\n } else if (isUndefined(next) || isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n } else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if (!configuration['greedy-arrays'] && argsToSet.length > 0 || nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount) break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && (nargsCount && argsToSet.length < nargsCount || isNaN(nargsCount) && argsToSet.length === 0)) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string') val = val === 'true';\n }\n let value = Array.isArray(val) ? val.map(function (v) {\n return maybeCoerceNumber(key, v);\n }) : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val)) value = val.map(val => {\n return mixin.normalize(val);\n });else value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_') return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && Number.isSafeInteger(Math.floor(parseFloat(`${value}`)));\n if (shouldCoerceNumber || !isUndefined(value) && checkAllAliases(key, flags.numbers)) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n } catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n } else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n } catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied') error = ex;else if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n } else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays']) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined') return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if ((configOnly && flags.configs[keys.join('.')] || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) {\n // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n [].concat(flags.aliases[key] || [], key).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n } catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach(key => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.')) return;\n if (typeof argv[key] === 'undefined') argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog) defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.'))) return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation']) keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = o[key] || {};\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object') return false;else return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation']) keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n } else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n } else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if (!isUndefined(o[key]) && flags.nargs[key] === 1 || Array.isArray(o[key]) && o[key].length === flags.nargs[key]) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n } else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n } else {\n o[key] = o[key].concat([value]);\n }\n } else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.counts) || checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n } else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key]) return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if (letters[j + 1] && letters[j + 1] === '=' || next === '-' || /[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) || letters[j + 1] && letters[j + 1].match(/\\W/)) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) && !checkAllAliases(key, flags.counts) && `${key}` in defaults) {\n return defaults[key];\n } else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings)) type = DefaultValuesForTypeKey.STRING;else if (checkAllAliases(key, flags.numbers)) type = DefaultValuesForTypeKey.NUMBER;else if (checkAllAliases(key, flags.bools)) type = DefaultValuesForTypeKey.BOOLEAN;else if (checkAllAliases(key, flags.arrays)) type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n } else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__') return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return typeof val === 'string' && (val[0] === \"'\" || val[0] === '\"') && val[val.length - 1] === val[0] ? val.substring(1, val.length - 1) : val;\n}","/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: path => {\n if (typeof require !== 'undefined') {\n return require(path);\n } else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n } else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: file => {\n try {\n return statSync(file).isFile();\n } catch (err) {\n return false;\n }\n }\n};","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () {}; // start with noop.\n if (typeof args[args.length - 1] === 'function') cb = args.pop();\n cb = cb || function () {}; // noop.\n if (!this.cache[this.locale]) this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n } else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () {}; // start with noop.\n if (typeof args[args.length - 1] === 'function') cb = args.pop();\n if (!this.cache[this.locale]) this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n } else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d')) values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale]) this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1) this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0) _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n } catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT') localeLookup = {};else throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile)) file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}","import shim from './build/lib/platform-shims/node.js';\nimport { y18n as _y18n } from './build/lib/index.js';\nconst y18n = opts => {\n return _y18n(opts, shim);\n};\nexport default y18n;","'use strict';\n\nimport { notStrictEqual, strictEqual } from 'assert';\nimport cliui from 'cliui';\nimport escalade from 'escalade/sync';\nimport { inspect } from 'util';\nimport { readFileSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser';\nimport { basename, dirname, extname, relative, resolve } from 'path';\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js';\nimport { YError } from '../../build/lib/yerror.js';\nimport y18n from 'y18n';\nconst REQUIRE_ERROR = 'require is not supported by ESM';\nconst REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM';\nlet __dirname;\ntry {\n __dirname = fileURLToPath(import.meta.url);\n} catch (e) {\n __dirname = process.cwd();\n}\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: key => {\n return process.env[key];\n },\n inspect,\n getCallerFile: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR);\n },\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: process.exit,\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n require: () => {\n throw new YError(REQUIRE_ERROR);\n },\n requireDirectory: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR);\n },\n stringWidth: str => {\n return [...str].length;\n },\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n};","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport let OntologyEntityTypeEnum = /*#__PURE__*/function (OntologyEntityTypeEnum) {\n OntologyEntityTypeEnum[\"OBJECT_TYPE\"] = \"OBJECT_TYPE\";\n OntologyEntityTypeEnum[\"LINK_TYPE\"] = \"LINK_TYPE\";\n OntologyEntityTypeEnum[\"INTERFACE_TYPE\"] = \"INTERFACE_TYPE\";\n OntologyEntityTypeEnum[\"SHARED_PROPERTY_TYPE\"] = \"SHARED_PROPERTY_TYPE\";\n OntologyEntityTypeEnum[\"ACTION_TYPE\"] = \"ACTION_TYPE\";\n OntologyEntityTypeEnum[\"VALUE_TYPE\"] = \"VALUE_TYPE\";\n return OntologyEntityTypeEnum;\n}({});","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { getObject } from \"../conversion/toMarketplace/convertLink.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { addNamespaceIfNone, importedTypes, namespace, ontologyDefinition, updateOntology, withoutNamespace } from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport { getInterfacePropertyTypeType, isInterfaceSharedPropertyType } from \"./interface/InterfacePropertyType.js\";\nimport { isExotic } from \"./properties/PropertyTypeType.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\nconst API_NAME_PATTERN = /^([a-zA-Z][a-zA-Z0-9\\\\-]*)$/;\nexport function defineObject(objectDef) {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties ? Object.keys(objectDef.properties) : [];\n if (ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName] !== undefined) {\n throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);\n }\n !API_NAME_PATTERN.test(objectDef.apiName) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Invalid API name ${objectDef.apiName}. API names must match the regex ${API_NAME_PATTERN}.`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n !propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n !propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n !!objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n const retentionPeriods = (objectDef.datasources ?? []).filter(ds => ds.type === \"stream\").map(ds => ds.retentionPeriod);\n retentionPeriods.forEach(retentionPeriod => {\n !(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n });\n const baseDatasources = (objectDef.datasources ?? []).filter(ds => [\"dataset\", \"stream\", \"restrictedView\"].includes(ds.type));\n !(baseDatasources.length <= 1) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object ${objectDef.apiName} has more than one base datasource (got: [${baseDatasources.map(ds => ds.type).join(\", \")}])`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n const derivedDatasources = (objectDef.datasources ?? []).filter(ds => ds.type === \"derived\");\n if (derivedDatasources.length > 0) {\n derivedDatasources.forEach(ds => validateDerivedDatasource(objectDef, ds));\n }\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties = [];\n Object.entries(objectDef.properties ?? {}).forEach(([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n });\n !(activeProperties.length === 0) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${activeProperties.join(\", \")}`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (objectDef.status && typeof objectDef.status === \"object\" && objectDef.status.type === \"deprecated\") {\n const deadline = objectDef.status.deadline;\n !(deadline !== undefined && ISO_8601_DATETIME.test(deadline)) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n }\n !!isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n !!isExotic(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getFlattenedInterfaceProperties(interfaceImpl.implements);\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => allInterfaceProperties[addNamespaceIfNone(interfaceProperty)] === undefined && allInterfaceProperties[withoutNamespace(interfaceProperty)] === undefined).map(interfaceProp => ({\n type: \"invalid\",\n reason: `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`\n }));\n const interfaceToObjectProperties = Object.fromEntries(interfaceImpl.propertyMapping.map(mapping => [mapping.interfaceProperty, mapping.mapsTo]));\n const validateProperty = interfaceProp => {\n const apiName = isInterfaceSharedPropertyType(interfaceProp[1]) ? interfaceProp[1].sharedPropertyType.apiName : interfaceProp[0];\n if (apiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1], apiName, interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface spt ${apiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const validations = Object.entries(getFlattenedInterfaceProperties(interfaceImpl.implements)).map(validateProperty);\n const allFailedValidations = validations.concat(nonExistentInterfaceProperties).filter(val => val.type === \"invalid\");\n !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\")) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n });\n const flattenedProperties = Object.entries(objectDef.properties ?? {}).map(([apiName, property]) => convertUserObjectPropertyType(apiName, property));\n const finalObject = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\nfunction formatValidationErrors(error) {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(type, apiName, mappedObjectProp, object) {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason: `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`\n };\n }\n const propertyType = getInterfacePropertyTypeType(type);\n if (JSON.stringify(propertyType) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason: `Object property type does not match the interface property it is mapped to. Interface Property: ${apiName}, objectProperty: ${mappedObjectProp}`\n };\n }\n return {\n type: \"valid\"\n };\n}\nexport function uppercaseFirstLetter(s) {\n return s === undefined || s == null ? \"\" : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(s) {\n return s === undefined || s == null ? \"\" : s.endsWith(\"s\") ? uppercaseFirstLetter(s) : uppercaseFirstLetter(s) + \"s\";\n}\nfunction convertUserObjectPropertyType(apiName, property) {\n // fill in missing fields to be used by actions\n property.displayName = property.displayName ?? uppercaseFirstLetter(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? uppercaseFirstLetter(apiName),\n type: property.type\n };\n}\nfunction validateDerivedDatasource(objectDef, datasource) {\n // there should be at least one link\n !(datasource.linkDefinition.length > 0) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Derived datasource for object '${objectDef.apiName}' must have at least one link.`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n\n // all of the links references should exist\n datasource.linkDefinition.forEach(link => {\n const linkApiName = link.linkType.apiName;\n !(ontologyDefinition[OntologyEntityTypeEnum.LINK_TYPE][linkApiName] !== undefined || importedTypes[OntologyEntityTypeEnum.LINK_TYPE][linkApiName] !== undefined) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link type '${linkApiName}' used in derived datasource for object '${objectDef.apiName}' is not defined.`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n });\n\n // all of the properties references on the source object should exist\n Object.keys(datasource.propertyMapping).forEach(prop => {\n !(objectDef.properties?.[prop] !== undefined) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${prop}' used in derived datasource for object '${objectDef.apiName}' is not defined.`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n });\n const isLinkedProperties = typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n if (isLinkedProperties) {\n validateLinkedProperties(datasource, objectDef);\n } else {\n validateAggregations(datasource, objectDef);\n }\n}\n\n/**\n * Gets properties for validation, handling self-referential links where\n * the target object is the same as the object being defined (not yet in registry).\n */\nfunction getPropertiesForValidation(linkObject, objectDef) {\n const targetApiName = typeof linkObject === \"string\" ? linkObject : linkObject.apiName;\n const selfApiName = namespace + objectDef.apiName;\n\n // Self-referential: use objectDef directly (not yet in registry)\n if (targetApiName === selfApiName) {\n return {\n apiName: selfApiName,\n hasProperty: propName => objectDef.properties?.[propName] !== undefined\n };\n }\n\n // Non-self-referential: look up from registry\n const {\n apiName,\n object\n } = getObject(linkObject);\n return {\n apiName,\n hasProperty: propName => object.properties?.find(p => p.apiName === propName) !== undefined\n };\n}\nfunction validateLinkedProperties(datasource, objectDef) {\n const foreignProperties = Object.values(datasource.propertyMapping);\n // the foreign property must exist in the final object in the link chain\n const targetObject = datasource.linkDefinition.at(-1).linkType.toMany.object;\n const {\n apiName,\n hasProperty\n } = getPropertiesForValidation(targetObject, objectDef);\n foreignProperties.forEach(prop => {\n !hasProperty(prop) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${prop}' on object '${apiName}' is not defined`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n });\n}\nfunction validateAggregations(datasource, objectDef) {\n const props = datasource.propertyMapping;\n Object.entries(props).forEach(([propName, agg]) => {\n // TODO(dpaquin): check that the property type matches the foreign property type,\n // for collectList/collectSet and maybe min/max too?\n const property = objectDef.properties[propName];\n switch (agg.type) {\n case \"collectList\":\n case \"collectSet\":\n // property's type is collectible\n !isCollectible(property) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${propName}' on object '${objectDef.apiName}' is not collectible`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n // limit <= 100\n !(agg.limit <= 100) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `[Error] Limit for collection '${propName}' on object '${objectDef.apiName}' is greater than 100`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n break;\n case \"avg\":\n case \"sum\":\n // property's type is numeric\n !isNumeric(property.type) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${propName}' on object '${objectDef.apiName}' is not numeric`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n break;\n case \"min\":\n case \"max\":\n case \"approximateCardinality\":\n case \"exactCardinality\":\n // property's type is primitive\n !isPrimitive(property.type) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${propName}' on object '${objectDef.apiName}' is not primitive`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n break;\n default:\n break;\n }\n\n // if a foreign property is referenced, it must exist in the final object\n if (agg.type !== \"count\") {\n const foreignProperty = agg.property;\n const targetObject = datasource.linkDefinition.at(-1).linkType.toMany.object;\n const {\n apiName,\n hasProperty\n } = getPropertiesForValidation(targetObject, objectDef);\n !hasProperty(foreignProperty) ? process.env.NODE_ENV !== \"production\" ? !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property '${foreignProperty}' on object '${apiName}' is not defined`) : invariant(false) : void 0 : !false ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0 : void 0;\n }\n });\n}\nfunction isCollectible(property) {\n if (!(property.array ?? false)) {\n return false;\n }\n const typeType = typeof property.type === \"string\" ? property.type : property.type.type;\n return [\"boolean\", \"byte\", \"date\", \"double\", \"float\", \"geohash\", \"geoshape\", \"integer\", \"long\", \"mediareference\", \"short\", \"string\", \"struct\", \"timestamp\"].includes(typeType);\n}\nfunction isNumeric(type) {\n const typeType = typeof type === \"string\" ? type : type.type;\n return [\"byte\", \"double\", \"float\", \"integer\", \"long\", \"short\"].includes(typeType);\n}\nfunction isPrimitive(type) {\n const typeType = typeof type === \"string\" ? type : type.type;\n return [\"boolean\", \"byte\", \"date\", \"double\", \"float\", \"integer\", \"long\", \"short\", \"string\", \"timestamp\"].includes(typeType);\n}","// In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either.\nfunction noop() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n}\nfunction createWeakMap() {\n if (typeof WeakMap !== \"undefined\") {\n return new WeakMap();\n } else {\n return fakeSetOrMap();\n }\n}\n/**\n * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything.\n */\nfunction fakeSetOrMap() {\n return {\n add: noop,\n delete: noop,\n get: noop,\n set: noop,\n has: function (k) {\n return false;\n }\n };\n}\n// Safe hasOwnProperty\nvar hop = Object.prototype.hasOwnProperty;\nvar has = function (obj, prop) {\n return hop.call(obj, prop);\n};\n// Copy all own enumerable properties from source to target\nfunction extend(target, source) {\n for (var prop in source) {\n if (has(source, prop)) {\n target[prop] = source[prop];\n }\n }\n return target;\n}\nvar reLeadingNewline = /^[ \\t]*(?:\\r\\n|\\r|\\n)/;\nvar reTrailingNewline = /(?:\\r\\n|\\r|\\n)[ \\t]*$/;\nvar reStartsWithNewlineOrIsEmpty = /^(?:[\\r\\n]|$)/;\nvar reDetectIndentation = /(?:\\r\\n|\\r|\\n)([ \\t]*)(?:[^ \\t\\r\\n]|$)/;\nvar reOnlyWhitespaceWithAtLeastOneNewline = /^[ \\t]*[\\r\\n][ \\t\\r\\n]*$/;\nfunction _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) {\n // If first interpolated value is a reference to outdent,\n // determine indentation level from the indentation of the interpolated value.\n var indentationLevel = 0;\n var match = strings[0].match(reDetectIndentation);\n if (match) {\n indentationLevel = match[1].length;\n }\n var reSource = \"(\\\\r\\\\n|\\\\r|\\\\n).{0,\" + indentationLevel + \"}\";\n var reMatchIndent = new RegExp(reSource, \"g\");\n if (firstInterpolatedValueSetsIndentationLevel) {\n strings = strings.slice(1);\n }\n var newline = options.newline,\n trimLeadingNewline = options.trimLeadingNewline,\n trimTrailingNewline = options.trimTrailingNewline;\n var normalizeNewlines = typeof newline === \"string\";\n var l = strings.length;\n var outdentedStrings = strings.map(function (v, i) {\n // Remove leading indentation from all lines\n v = v.replace(reMatchIndent, \"$1\");\n // Trim a leading newline from the first string\n if (i === 0 && trimLeadingNewline) {\n v = v.replace(reLeadingNewline, \"\");\n }\n // Trim a trailing newline from the last string\n if (i === l - 1 && trimTrailingNewline) {\n v = v.replace(reTrailingNewline, \"\");\n }\n // Normalize newlines\n if (normalizeNewlines) {\n v = v.replace(/\\r\\n|\\n|\\r/g, function (_) {\n return newline;\n });\n }\n return v;\n });\n return outdentedStrings;\n}\nfunction concatStringsAndValues(strings, values) {\n var ret = \"\";\n for (var i = 0, l = strings.length; i < l; i++) {\n ret += strings[i];\n if (i < l - 1) {\n ret += values[i];\n }\n }\n return ret;\n}\nfunction isTemplateStringsArray(v) {\n return has(v, \"raw\") && has(v, \"length\");\n}\n/**\n * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to\n * makeInstance\n * @param options\n * @return {outdent}\n */\nfunction createInstance(options) {\n /** Cache of pre-processed template literal arrays */\n var arrayAutoIndentCache = createWeakMap();\n /**\n * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent,\n * before interpolated values are injected.\n */\n var arrayFirstInterpSetsIndentCache = createWeakMap();\n function outdent(stringsOrOptions) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* tslint:enable:no-shadowed-variable */\n if (isTemplateStringsArray(stringsOrOptions)) {\n var strings = stringsOrOptions;\n // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace?\n var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]);\n // Perform outdentation\n var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache;\n var renderedArray = cache.get(strings);\n if (!renderedArray) {\n renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);\n cache.set(strings, renderedArray);\n }\n /** If no interpolated values, skip concatenation step */\n if (values.length === 0) {\n return renderedArray[0];\n }\n /** Concatenate string literals with interpolated values */\n var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);\n return rendered;\n } else {\n // Create and return a new instance of outdent with the given options\n return createInstance(extend(extend({}, options), stringsOrOptions || {}));\n }\n }\n var fullOutdent = extend(outdent, {\n string: function (str) {\n return _outdentArray([str], false, options)[0];\n }\n });\n return fullOutdent;\n}\nvar defaultOutdent = createInstance({\n trimLeadingNewline: true,\n trimTrailingNewline: true\n});\n// Named exports. Simple and preferred.\n// import outdent from 'outdent';\nexport default defaultOutdent;\n// import {outdent} from 'outdent';\nexport { defaultOutdent as outdent };\nif (typeof module !== \"undefined\") {\n // In webpack harmony-modules environments, module.exports is read-only,\n // so we fail gracefully.\n try {\n module.exports = defaultOutdent;\n Object.defineProperty(defaultOutdent, \"__esModule\", {\n value: true\n });\n defaultOutdent.default = defaultOutdent;\n defaultOutdent.outdent = defaultOutdent;\n } catch (e) {}\n}","/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\nvar objectToString = Object.prototype.toString;\nvar isArray = Array.isArray || function isArrayPolyfill(object) {\n return objectToString.call(object) === '[object Array]';\n};\nfunction isFunction(object) {\n return typeof object === 'function';\n}\n\n/**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\nfunction typeStr(obj) {\n return isArray(obj) ? 'array' : typeof obj;\n}\nfunction escapeRegExp(string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\nfunction hasProperty(obj, propName) {\n return obj != null && typeof obj === 'object' && propName in obj;\n}\n\n/**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\nfunction primitiveHasOwnProperty(primitive, propName) {\n return primitive != null && typeof primitive !== 'object' && primitive.hasOwnProperty && primitive.hasOwnProperty(propName);\n}\n\n// Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n// See https://github.com/janl/mustache.js/issues/189\nvar regExpTest = RegExp.prototype.test;\nfunction testRegExp(re, string) {\n return regExpTest.call(re, string);\n}\nvar nonSpaceRe = /\\S/;\nfunction isWhitespace(string) {\n return !testRegExp(nonSpaceRe, string);\n}\nvar entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;',\n '`': '&#x60;',\n '=': '&#x3D;'\n};\nfunction escapeHtml(string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap(s) {\n return entityMap[s];\n });\n}\nvar whiteRe = /\\s*/;\nvar spaceRe = /\\s+/;\nvar equalsRe = /\\s*=/;\nvar curlyRe = /\\s*\\}/;\nvar tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n/**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\nfunction parseTemplate(template, tags) {\n if (!template) return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace() {\n if (hasTag && !nonSpace) {\n while (spaces.length) delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n hasTag = false;\n nonSpace = false;\n }\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags(tagsToCompile) {\n if (typeof tagsToCompile === 'string') tagsToCompile = tagsToCompile.split(spaceRe, 2);\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2) throw new Error('Invalid tags: ' + tagsToCompile);\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n compileTags(tags || mustache.tags);\n var scanner = new Scanner(template);\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n tokens.push(['text', chr, start, start + 1]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe)) break;\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe)) throw new Error('Unclosed tag at ' + scanner.pos);\n if (type == '>') {\n token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace];\n } else {\n token = [type, value, start, scanner.pos];\n }\n tagIndex++;\n tokens.push(token);\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n if (!openSection) throw new Error('Unopened section \"' + value + '\" at ' + start);\n if (openSection[1] !== value) throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n if (openSection) throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n return nestTokens(squashTokens(tokens));\n}\n\n/**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\nfunction squashTokens(tokens) {\n var squashedTokens = [];\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n return squashedTokens;\n}\n\n/**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\nfunction nestTokens(tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n return nestedTokens;\n}\n\n/**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\nfunction Scanner(string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n}\n\n/**\n * Returns `true` if the tail is empty (end of string).\n */\nScanner.prototype.eos = function eos() {\n return this.tail === '';\n};\n\n/**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\nScanner.prototype.scan = function scan(re) {\n var match = this.tail.match(re);\n if (!match || match.index !== 0) return '';\n var string = match[0];\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n return string;\n};\n\n/**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\nScanner.prototype.scanUntil = function scanUntil(re) {\n var index = this.tail.search(re),\n match;\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n this.pos += match.length;\n return match;\n};\n\n/**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\nfunction Context(view, parentContext) {\n this.view = view;\n this.cache = {\n '.': this.view\n };\n this.parent = parentContext;\n}\n\n/**\n * Creates a new context using the given view with this context\n * as the parent.\n */\nContext.prototype.push = function push(view) {\n return new Context(view, this);\n};\n\n/**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\nContext.prototype.lookup = function lookup(name) {\n var cache = this.cache;\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this,\n intermediateValue,\n names,\n index,\n lookupHit = false;\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1) lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]);\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n context = context.parent;\n }\n cache[name] = value;\n }\n if (isFunction(value)) value = value.call(this.view);\n return value;\n};\n\n/**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\nfunction Writer() {\n this.templateCache = {\n _cache: {},\n set: function set(key, value) {\n this._cache[key] = value;\n },\n get: function get(key) {\n return this._cache[key];\n },\n clear: function clear() {\n this._cache = {};\n }\n };\n}\n\n/**\n * Clears all cached templates in this writer.\n */\nWriter.prototype.clearCache = function clearCache() {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n};\n\n/**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\nWriter.prototype.parse = function parse(template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n};\n\n/**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\nWriter.prototype.render = function render(template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = view instanceof Context ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n};\n\n/**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\nWriter.prototype.renderTokens = function renderTokens(tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);else if (symbol === '>') value = this.renderPartial(token, context, partials, config);else if (symbol === '&') value = this.unescapedValue(token, context);else if (symbol === 'name') value = this.escapedValue(token, context, config);else if (symbol === 'text') value = this.rawValue(token);\n if (value !== undefined) buffer += value;\n }\n return buffer;\n};\nWriter.prototype.renderSection = function renderSection(token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender(template) {\n return self.render(template, context, partials, config);\n }\n if (!value) return;\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string') throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n if (value != null) buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n};\nWriter.prototype.renderInverted = function renderInverted(token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || isArray(value) && value.length === 0) return this.renderTokens(token[4], context, partials, originalTemplate, config);\n};\nWriter.prototype.indentPartial = function indentPartial(partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n};\nWriter.prototype.renderPartial = function renderPartial(token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n};\nWriter.prototype.unescapedValue = function unescapedValue(token, context) {\n var value = context.lookup(token[1]);\n if (value != null) return value;\n};\nWriter.prototype.escapedValue = function escapedValue(token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null) return typeof value === 'number' && escape === mustache.escape ? String(value) : escape(value);\n};\nWriter.prototype.rawValue = function rawValue(token) {\n return token[1];\n};\nWriter.prototype.getConfigTags = function getConfigTags(config) {\n if (isArray(config)) {\n return config;\n } else if (config && typeof config === 'object') {\n return config.tags;\n } else {\n return undefined;\n }\n};\nWriter.prototype.getConfigEscape = function getConfigEscape(config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n } else {\n return undefined;\n }\n};\nvar mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: ['{{', '}}'],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache(cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache() {\n return defaultWriter.templateCache;\n }\n};\n\n// All high-level mustache.* functions use this writer.\nvar defaultWriter = new Writer();\n\n/**\n * Clears all cached templates in the default writer.\n */\nmustache.clearCache = function clearCache() {\n return defaultWriter.clearCache();\n};\n\n/**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\nmustache.parse = function parse(template, tags) {\n return defaultWriter.parse(template, tags);\n};\n\n/**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\nmustache.render = function render(template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' + 'but \"' + typeStr(template) + '\" was given as the first ' + 'argument for mustache#render(template, view, partials)');\n }\n return defaultWriter.render(template, view, partials, config);\n};\n\n// Export the escaping function so that the user may override it.\n// See https://github.com/janl/mustache.js/issues/244\nmustache.escape = escapeHtml;\n\n// Export these mainly for testing, but also for advanced usage.\nmustache.Scanner = Scanner;\nmustache.Context = Context;\nmustache.Writer = Writer;\nexport default mustache;","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport { createCodeSnippets } from \"./code-snippets/createCodeSnippets.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes;\n\n// namespace -> version\n/** @internal */\nexport let dependencies;\n\n/** @internal */\nexport let namespace;\nexport function updateOntology(entity) {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] === undefined) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName].push(entity);\n}\nexport async function defineOntology(ns, body, outputDir, dependencyFile, codeSnippetFiles, snippetPackageName, snippetFileOutputDir, randomnessKey) {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {}\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {}\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n if (codeSnippetFiles) {\n createCodeSnippets(ontologyDefinition, snippetPackageName, snippetFileOutputDir);\n }\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\nexport function writeStaticObjects(outputDir) {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\"\n };\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, {\n recursive: true\n });\n }\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, {\n recursive: true,\n force: true\n });\n }\n fs.mkdirSync(currentTypeDirPath, {\n recursive: true\n });\n });\n const topLevelExportStatements = [];\n Object.entries(ontologyDefinition).forEach(([ontologyTypeEnumKey, entities]) => {\n const typeDirName = typeDirs[ontologyTypeEnumKey];\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames = [];\n Object.entries(entities).forEach(([apiName, entity]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName)) + (ontologyTypeEnumKey === OntologyEntityTypeEnum.VALUE_TYPE ? \"ValueType\" : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(/(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g, (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`);\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\n/** @type {import('@osdk/maker').${entityTypeName}} */\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${ontologyTypeEnumKey === \"VALUE_TYPE\" ? entityJSON.slice(1, -2) : entityJSON} as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, {\n flag: \"w\"\n });\n entityModuleNames.push(entityFileNameBase);\n });\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(`export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`);\n }\n });\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString() + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, {\n flag: \"w\"\n });\n }\n}\nexport function buildDatasource(apiName, definition, classificationMarkingGroupName, mandatoryMarkingGroupName) {\n const needsSecurity = classificationMarkingGroupName !== undefined || mandatoryMarkingGroupName !== undefined;\n const securityConfig = needsSecurity ? {\n classificationConstraint: classificationMarkingGroupName ? {\n markingGroupName: classificationMarkingGroupName\n } : undefined,\n markingConstraint: mandatoryMarkingGroupName ? {\n markingGroupName: mandatoryMarkingGroupName\n } : undefined\n } : undefined;\n return {\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false,\n ...(securityConfig !== undefined && {\n dataSecurity: securityConfig\n })\n };\n}\nexport function cleanAndValidateLinkTypeId(apiName) {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\").toLowerCase();\n if (!/^([a-z][a-z0-9\\-]*)$/.test(linkTypeId)) {\n throw new Error(`LinkType id '${linkTypeId}' must be lower case with dashes.`);\n }\n return linkTypeId;\n}\nexport function dumpOntologyFullMetadata() {\n return convertOntologyDefinition(ontologyDefinition);\n}\nexport function dumpValueTypeWireType() {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\nexport function convertObjectStatus(status) {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {}\n };\n }\n if (status === \"example\") {\n return {\n type: \"example\",\n example: {}\n };\n }\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n }\n return status;\n}\nexport function convertAction(action) {\n const actionValidation = convertActionValidation(action);\n const actionParameters = convertActionParameters(action);\n const actionSections = convertActionSections(action);\n const parameterOrdering = action.parameterOrdering ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules\n },\n validation: actionValidation\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n successMessage: action.submissionMetadata?.successMessage ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage\n }] : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata && {\n submitButtonDisplayMetadata: action.submissionMetadata.submitButtonDisplayMetadata\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration && {\n undoButtonConfiguration: action.submissionMetadata.undoButtonConfiguration\n })\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status,\n entities: action.entities\n }\n }\n };\n}\nexport function extractAllowedValues(allowedValues) {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed ?? false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maxLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\" ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name\n }\n } : {\n type: \"parameterId\",\n parameterId: group.parameter\n }\n }\n };\n })\n }\n }\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {}\n }\n };\n default:\n const k = allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\nexport function renderHintFromBaseType(parameter, validation) {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n if (validation?.allowedValues?.type === \"user\" || validation?.allowedValues?.type === \"multipassGroup\") {\n return {\n type: \"userDropdown\",\n userDropdown: {}\n };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"dropdown\",\n dropdown: {}\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\nexport function extractNamespace(apiName) {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\nexport function withoutNamespace(apiName) {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\nfunction camel(str) {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => c ? c.toUpperCase() : \"\");\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type) {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\"\n }[type];\n}\nfunction writeDependencyFile(dependencyFile) {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\nfunction dependencyInjectionString() {\n const namespaceNoDot = namespace.endsWith(\".\") ? namespace.slice(0, -1) : namespace;\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\nexport function addNamespaceIfNone(apiName) {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { importedTypes } from \"./defineOntology.js\";\nexport function importOntologyEntity(e) {\n if (e.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n importedTypes[e.__type][e.apiName] = e;\n return;\n }\n // value types are a special case\n if (importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] === undefined) {\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] = [];\n }\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName].push(e);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertToDisplayName, convertToPluralDisplayName, importOntologyEntity, OntologyEntityTypeEnum } from \"@osdk/maker\";\n/*\n * Takes in the minimal object definition to create an input shape.\n * First converts it to fake block data to call importOntologyEntity,\n * then converts it to an OntologyIrImportedObjectType that is safe to use elsewhere.\n */\nexport function defineImportObject(objectDef) {\n const properties = Object.entries(objectDef.properties ?? {}).map(([apiName, type]) => ({\n apiName: apiName,\n displayName: convertToDisplayName(apiName),\n type: type.type\n }));\n const finalObject = {\n apiName: objectDef.apiName,\n properties: properties,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n // the rest don't matter for now\n displayName: objectDef.displayName ?? convertToDisplayName(objectDef.apiName),\n pluralDisplayName: convertToPluralDisplayName(objectDef.apiName),\n primaryKeyPropertyApiName: properties[0]?.apiName,\n titlePropertyApiName: properties[0]?.apiName\n };\n importOntologyEntity(finalObject);\n return finalObject;\n}"]}
1
+ {"version":3,"sources":["../../src/conversion/toMarketplace/convertActionParameters.ts","../../src/conversion/toMarketplace/convertActionSections.ts","../../src/conversion/toMarketplace/convertConditionDefinition.ts","../../src/conversion/toMarketplace/convertActionParameterConditionalOverride.ts","../../src/conversion/toMarketplace/convertActionVisibility.ts","../../src/conversion/toMarketplace/convertSectionConditionalOverride.ts","../../src/conversion/toMarketplace/convertActionValidation.ts","../../src/conversion/toMarketplace/convertDatasourceDefinition.ts","../../src/conversion/toMarketplace/convertNullabilityToDataConstraint.ts","../../src/conversion/toMarketplace/convertValueType.ts","../../src/conversion/toMarketplace/convertDataConstraintToDataConstraints.ts","../../src/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.ts","../../src/conversion/toMarketplace/convertValueTypeDataConstraints.ts","../../src/conversion/toConjure/distributeTypeHelper.ts","../../src/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.ts","../../src/conversion/toMarketplace/convertObjectPropertyType.ts","../../src/conversion/toMarketplace/convertObject.ts","../../src/conversion/toMarketplace/getFormContentOrdering.ts","../../src/conversion/toMarketplace/convertActionHelpers.ts","../../src/conversion/toMarketplace/convertSpt.ts","../../src/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.ts","../../src/conversion/toMarketplace/convertInterfacePropertyType.ts","../../src/conversion/toMarketplace/convertInterface.ts","../../src/conversion/toMarketplace/convertCardinality.ts","../../src/conversion/toMarketplace/convertLink.ts","../../src/conversion/toMarketplace/typeVisitors.ts","../../src/conversion/toMarketplace/shapeExtractors/LinkTypeShapeExtractor.ts","../../src/conversion/toMarketplace/shapeExtractors/ObjectTypeShapeExtractor.ts","../../src/conversion/toMarketplace/shapeExtractors/IrShapeExtractor.ts","../../src/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.ts","../../src/conversion/toMarketplace/convertValueTypesToIr.ts","../../src/conversion/toMarketplace/convertOntologyToValueTypeIr.ts","../../src/conversion/toMarketplace/convertOntologyDefinition.ts","../../src/api/defineOntologyV2.ts","../../src/cli/main.ts","../../src/api/importObjectType.ts"],"names":["uppercaseFirstLetter","invariant","ReadableIdGenerator","getNamespace","shouldNotHaveRenderHints","hasRenderHints","getPropertyTypeName","shouldBeIndexedForSearch","defaultTypeClasses","convertObjectStatus","isExotic","cleanAndValidateLinkTypeId","getOntologyDefinition","isInterfaceSharedPropertyType","OntologyEntityTypeEnum","shape","createLocalizedAbout","getImportedTypes","initializeOntologyState","OntologyRidGeneratorImpl","consola","yargs","hideBin","path","fs","jiti","createJiti","convertToDisplayName","convertToPluralDisplayName","importOntologyEntity"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function convertActionParameters(action, ridGenerator) {\n return Object.fromEntries((action.parameters ?? []).map(parameter => {\n let convertedType;\n if (typeof parameter.type === \"string\") {\n // Simple string types like \"string\", \"integer\", etc.\n convertedType = {\n type: parameter.type,\n [parameter.type]: {}\n };\n } else {\n // Complex types that need ObjectTypeId conversion\n switch (parameter.type.type) {\n case \"objectReference\":\n convertedType = {\n type: \"objectReference\",\n objectReference: {\n ...parameter.type.objectReference,\n objectTypeId: ridGenerator.generateObjectTypeId(parameter.type.objectReference.objectTypeId)\n }\n };\n break;\n case \"objectReferenceList\":\n convertedType = {\n type: \"objectReferenceList\",\n objectReferenceList: {\n ...parameter.type.objectReferenceList,\n objectTypeId: ridGenerator.generateObjectTypeId(parameter.type.objectReferenceList.objectTypeId)\n }\n };\n break;\n case \"interfaceReference\":\n convertedType = {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: ridGenerator.generateRidForInterface(parameter.type.interfaceReference.interfaceTypeRid)\n }\n };\n break;\n case \"interfaceReferenceList\":\n convertedType = {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: ridGenerator.generateRidForInterface(parameter.type.interfaceReferenceList.interfaceTypeRid)\n }\n };\n default:\n // Pass through other types unchanged\n convertedType = parameter.type;\n }\n }\n return [parameter.id, {\n id: parameter.id,\n rid: ridGenerator.generateRidForParameter(action.apiName, parameter.id),\n type: convertedType,\n displayMetadata: {\n displayName: parameter.displayName,\n description: parameter.description ?? \"\",\n typeClasses: [],\n structFields: {},\n structFieldsV2: []\n }\n }];\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { uppercaseFirstLetter } from \"@osdk/maker\";\nexport function convertActionSections(action, ridGenerator) {\n return Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [sectionId, {\n id: sectionId,\n // TODO: Generate proper RID for section\n rid: ridGenerator.generateSectionRid(sectionId),\n content: section.parameters.map(p => ({\n type: \"parameterId\",\n parameterId: p\n })),\n displayMetadata: {\n collapsedByDefault: section.collapsedByDefault ?? false,\n columnCount: section.columnCount ?? 1,\n description: section.description ?? \"\",\n displayName: section.displayName ?? uppercaseFirstLetter(sectionId),\n showTitleBar: section.showTitleBar ?? true,\n ...(section.style && {\n style: section.style === \"box\" ? {\n type: \"box\",\n box: {}\n } : {\n type: \"minimal\",\n minimal: {}\n }\n })\n }\n }]));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nexport function convertConditionDefinition(condition, actionParameters) {\n switch (condition.type) {\n case \"and\":\n if (\"conditions\" in condition) {\n return {\n type: \"and\",\n and: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c, actionParameters))\n }\n };\n } else {\n return condition;\n }\n case \"or\":\n if (\"conditions\" in condition) {\n return {\n type: \"or\",\n or: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c, actionParameters))\n }\n };\n } else {\n return condition;\n }\n case \"group\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {}\n },\n propertyValue: {\n type: \"groupIds\",\n groupIds: {}\n }\n }\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [condition.name]\n }\n }\n }\n }\n };\n case \"parameter\":\n !actionParameters?.some(param => param.id === condition.parameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action parameter condition references unknown parameter ${condition.parameterId}`) : invariant(false) : void 0;\n return {\n type: \"comparison\",\n comparison: {\n operator: \"EQUALS\",\n left: {\n type: \"parameterId\",\n parameterId: condition.parameterId\n },\n right: condition.matches\n }\n };\n default:\n return condition;\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { extractAllowedValues } from \"./convertActionHelpers.js\";\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\nexport function convertActionParameterConditionalOverride(override, validation, ridGenerator, actionParameters) {\n let parameterBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required ? {\n type: \"notRequired\",\n notRequired: {}\n } : {\n type: \"required\",\n required: {}\n }\n }\n };\n break;\n case \"visibility\":\n let overrideType = override.then ?? (validation.defaultVisibility === \"editable\" ? \"hidden\" : \"editable\");\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: overrideType === \"editable\" ? {\n type: \"editable\",\n editable: {}\n } : overrideType === \"hidden\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"disabled\",\n disabled: {}\n }\n }\n };\n break;\n case \"disabled\":\n overrideType = override.then ?? (validation.defaultVisibility === \"editable\" ? \"disabled\" : \"editable\");\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: overrideType === \"editable\" ? {\n type: \"editable\",\n editable: {}\n } : overrideType === \"hidden\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"disabled\",\n disabled: {}\n }\n }\n };\n break;\n case \"defaultValue\":\n parameterBlockOverride = {\n type: \"prefill\",\n prefill: {\n prefill: override.defaultValue\n }\n };\n break;\n case \"constraint\":\n parameterBlockOverride = {\n type: \"allowedValues\",\n allowedValues: {\n allowedValues: extractAllowedValues(override.constraint, ridGenerator)\n }\n };\n break;\n default:\n throw new Error(`Unknown parameter override type`);\n }\n return {\n condition: convertConditionDefinition(override.condition, actionParameters),\n parameterBlockOverrides: [parameterBlockOverride]\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function convertActionVisibility(visibility) {\n switch (visibility) {\n case \"editable\":\n return {\n type: \"editable\",\n editable: {}\n };\n case \"disabled\":\n return {\n type: \"disabled\",\n disabled: {}\n };\n case \"hidden\":\n return {\n type: \"hidden\",\n hidden: {}\n };\n default:\n return {\n type: \"editable\",\n editable: {}\n };\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\nexport function convertSectionConditionalOverride(override, defaultVisibility, actionParameters) {\n return {\n condition: convertConditionDefinition(override.condition, actionParameters),\n sectionBlockOverrides: [{\n type: \"visibility\",\n visibility: {\n visibility: defaultVisibility === \"visible\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"visible\",\n visible: {}\n }\n }\n }]\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReadableIdGenerator } from \"../../util/generateRid.js\";\nimport { extractAllowedValues, renderHintFromBaseType } from \"./convertActionHelpers.js\";\nimport { convertActionParameterConditionalOverride } from \"./convertActionParameterConditionalOverride.js\";\nimport { convertActionVisibility } from \"./convertActionVisibility.js\";\nimport { convertSectionConditionalOverride } from \"./convertSectionConditionalOverride.js\";\n\n// Helper function to recursively scan conditions and register groups\nfunction registerGroupsFromCondition(condition, ridGenerator) {\n if (!condition) return;\n switch (condition.type) {\n case \"group\":\n // Original format (parameter/section conditional overrides)\n if (condition.name) {\n ridGenerator.getGroupIds().put(ReadableIdGenerator.getForGroup(condition.name), condition.name);\n }\n break;\n case \"comparison\":\n // Converted format (action-level validations)\n // Check if this is a group comparison by looking at the left side\n if (condition.comparison?.left?.type === \"userProperty\" && condition.comparison?.left?.userProperty?.propertyValue?.type === \"groupIds\") {\n // Extract group names from the right side\n const strings = condition.comparison?.right?.staticValue?.stringList?.strings;\n if (Array.isArray(strings)) {\n strings.forEach(groupName => {\n ridGenerator.getGroupIds().put(ReadableIdGenerator.getForGroup(groupName), groupName);\n });\n }\n }\n break;\n case \"and\":\n case \"or\":\n // Recursively process nested conditions\n if (condition.conditions) {\n condition.conditions.forEach(c => registerGroupsFromCondition(c, ridGenerator));\n }\n // Handle converted and/or format\n if (condition.and?.conditions) {\n condition.and.conditions.forEach(c => registerGroupsFromCondition(c, ridGenerator));\n }\n if (condition.or?.conditions) {\n condition.or.conditions.forEach(c => registerGroupsFromCondition(c, ridGenerator));\n }\n break;\n\n // Other condition types don't have groups\n }\n}\nexport function convertActionValidation(action, ridGenerator) {\n const validationRules = action.validation ?? [{\n condition: {\n type: \"true\",\n true: {}\n },\n displayMetadata: {\n failureMessage: \"\",\n typeClasses: []\n }\n }];\n const ruleRids = validationRules.map((_, idx) => ridGenerator.generateValidationRuleRid(action.apiName, idx));\n\n // Register groups from action-level validation conditions\n validationRules.forEach(rule => {\n registerGroupsFromCondition(rule.condition, ridGenerator);\n });\n\n // Register groups from parameter conditional overrides\n (action.parameters ?? []).forEach(p => {\n p.validation.conditionalOverrides?.forEach(override => {\n registerGroupsFromCondition(override.condition, ridGenerator);\n });\n });\n\n // Register groups from section conditional overrides\n Object.values(action.sections ?? {}).forEach(section => {\n section.conditionalOverrides?.forEach(override => {\n registerGroupsFromCondition(override.condition, ridGenerator);\n });\n });\n return {\n actionTypeLevelValidation: {\n // TODO: Add proper ordering of validation rule RIDs\n ordering: ruleRids,\n rules: Object.fromEntries(validationRules.map((rule, idx) => [ruleRids[idx], rule]))\n },\n parameterValidations: Object.fromEntries((action.parameters ?? []).map(p => {\n return [p.id, {\n defaultValidation: {\n display: {\n renderHint: p.renderHint ?? renderHintFromBaseType(p, p.validation),\n visibility: convertActionVisibility(p.validation.defaultVisibility),\n ...(p.defaultValue && {\n prefill: p.defaultValue\n })\n },\n validation: {\n allowedValues: extractAllowedValues(p.validation.allowedValues, ridGenerator),\n required: convertParameterRequirementConstraint(p.validation.required)\n }\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(override => convertActionParameterConditionalOverride(override, p.validation, ridGenerator, action.parameters)) ?? [],\n structFieldValidations: {}\n }];\n })),\n sectionValidations: {\n ...Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [section.id, {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\" ? {\n visibility: {\n type: \"hidden\",\n hidden: {}\n }\n } : {\n visibility: {\n type: \"visible\",\n visible: {}\n }\n },\n conditionalOverrides: section.conditionalOverrides?.map(override => convertSectionConditionalOverride(override, section.defaultVisibility ?? \"visible\", action.parameters)) ?? []\n }]))\n }\n };\n}\nfunction convertParameterRequirementConstraint(required) {\n if (typeof required === \"boolean\") {\n return required ? {\n type: \"required\",\n required: {}\n } : {\n type: \"notRequired\",\n notRequired: {}\n };\n }\n const {\n min,\n max\n } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: {\n minLength: min,\n maxLength: max\n }\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { ReadableIdGenerator } from \"../../util/generateRid.js\";\nexport function convertDatasourceDefinition(objectType, properties, ridGenerator) {\n const baseDatasource = objectType.datasources?.find(ds => [\"dataset\", \"stream\", \"restrictedView\"].includes(ds.type));\n\n // Helper to get column names from properties\n const getColumnNames = props => {\n return new Set(props.map(p => p.apiName));\n };\n switch (baseDatasource?.type) {\n case \"stream\":\n const window = baseDatasource.retentionPeriod ? convertToJavaDurationFormat(baseDatasource.retentionPeriod) : undefined;\n const retentionPolicy = window ? {\n type: \"time\",\n time: {\n window\n }\n } : {\n type: \"none\",\n none: {}\n };\n\n // Use generateStreamLocator instead of generateRid\n const streamLocator = ridGenerator.generateStreamLocator(objectType.apiName, getColumnNames(properties));\n const propertyMapping = Object.fromEntries(properties.map(prop => [ridGenerator.generatePropertyRid(prop.apiName, objectType.apiName), prop.apiName]));\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: {\n branchId: streamLocator.branchId,\n streamLocatorRid: streamLocator.streamLocatorRid\n },\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined\n }\n };\n case \"restrictedView\":\n // Use generateRestrictedViewLocator instead of generateRid\n const restrictedViewLocator = ridGenerator.generateRestrictedViewLocator(objectType.apiName, getColumnNames(properties));\n return {\n type: \"restrictedViewV2\",\n restrictedViewV2: {\n restrictedViewRid: restrictedViewLocator.rid,\n propertyMapping: buildPropertyMapping(properties, objectType.apiName, ridGenerator)\n }\n };\n case \"derived\":\n // Use generateLocator for dataset datasources\n const derivedDatasetLocator = ridGenerator.generateLocator(objectType.apiName, getColumnNames(properties));\n return {\n type: \"datasetV2\",\n datasetV2: {\n branchId: derivedDatasetLocator.branchId,\n datasetRid: derivedDatasetLocator.rid,\n propertyMapping: buildPropertyMapping(properties, objectType.apiName, ridGenerator)\n }\n };\n case \"dataset\":\n default:\n // Use generateLocator for dataset datasources\n const datasetLocator = ridGenerator.generateLocator(objectType.apiName, getColumnNames(properties));\n if (objectType.properties?.some(prop => typeof prop.type === \"object\" && prop.type.type === \"marking\") || baseDatasource?.objectSecurityPolicy || baseDatasource?.propertySecurityGroups) {\n return {\n type: \"datasetV3\",\n datasetV3: {\n datasetRid: datasetLocator.rid,\n propertyMapping: buildPropertyMapping(properties, objectType.apiName, ridGenerator),\n branchId: datasetLocator.branchId,\n propertySecurityGroups: convertPropertySecurityGroups(baseDatasource, properties, objectType.primaryKeyPropertyApiName, objectType.apiName, ridGenerator)\n }\n };\n }\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: datasetLocator.rid,\n branchId: datasetLocator.branchId,\n propertyMapping: buildPropertyMapping(properties, objectType.apiName, ridGenerator)\n }\n };\n }\n}\nfunction convertPropertySecurityGroups(ds, properties, primaryKeyPropertyApiName, objectTypeApiName, ridGenerator) {\n if (!ds || !(\"objectSecurityPolicy\" in ds) && !(\"propertySecurityGroups\" in ds)) {\n // Default security group - use property RIDs\n const propertyRids = properties.map(prop => ridGenerator.generatePropertyRid(prop.apiName, objectTypeApiName));\n return {\n groups: [{\n properties: propertyRids,\n rid: ridGenerator.generateRid(\"defaultObjectSecurityPolicy\"),\n security: {\n type: \"granular\",\n granular: {\n viewPolicy: {\n granularPolicyCondition: {\n type: \"and\",\n and: {\n conditions: []\n }\n },\n additionalMandatory: {\n markings: [],\n assumedMarkings: []\n }\n }\n }\n },\n type: {\n type: \"primaryKey\",\n primaryKey: {}\n }\n }]\n };\n }\n const validPropertyNames = new Set(properties.map(prop => prop.apiName));\n const usedPropertyApiNames = new Set();\n\n // Collect and register group IDs (matching Java's collectSecurityGroupIds)\n const collectGroupIds = granularPolicy => {\n if (!granularPolicy) return;\n const collectFromCondition = condition => {\n switch (condition.type) {\n case \"group\":\n // Register group ID with the ridGenerator\n const groupId = condition.name;\n ridGenerator.getGroupIds().put(ReadableIdGenerator.getForGroup(groupId), groupId);\n break;\n case \"and\":\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(collectFromCondition);\n }\n break;\n }\n };\n collectFromCondition(granularPolicy);\n };\n\n // Collect group IDs from object security policy\n if (ds.objectSecurityPolicy?.granularPolicy) {\n collectGroupIds(ds.objectSecurityPolicy.granularPolicy);\n }\n\n // Validate and collect property security groups\n ds.propertySecurityGroups?.forEach(psg => {\n // Collect group IDs from property security groups\n if (psg.granularPolicy) {\n collectGroupIds(psg.granularPolicy);\n }\n psg.properties.forEach(propertyName => {\n !validPropertyNames.has(propertyName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property \"${propertyName}\" in property security group ${psg.name} does not exist in the properties list`) : invariant(false) : void 0;\n !!usedPropertyApiNames.has(propertyName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property \"${propertyName}\" is used in multiple property security groups`) : invariant(false) : void 0;\n !(propertyName !== primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property \"${propertyName}\" in property security group ${psg.name} cannot be the primary key`) : invariant(false) : void 0;\n usedPropertyApiNames.add(propertyName);\n });\n });\n\n // Build property RID mapping\n const propertyApiNameToRid = new Map();\n properties.forEach(prop => {\n propertyApiNameToRid.set(prop.apiName, ridGenerator.generatePropertyRid(prop.apiName, objectTypeApiName));\n });\n const objectSecurityPolicyGroup = {\n rid: ridGenerator.generatePropertySecurityGroupRid(ds.objectSecurityPolicy?.name || \"defaultObjectSecurityPolicy\"),\n security: {\n type: \"granular\",\n granular: convertGranularPolicy(ds.objectSecurityPolicy?.granularPolicy, ds.objectSecurityPolicy?.appliedMarkings, ds.objectSecurityPolicy?.assumedMarkings, ridGenerator, objectTypeApiName)\n },\n type: {\n type: \"primaryKey\",\n primaryKey: {}\n },\n properties: properties.filter(prop => !usedPropertyApiNames.has(prop.apiName)).map(prop => propertyApiNameToRid.get(prop.apiName))\n };\n return {\n groups: [...(ds.propertySecurityGroups?.map(psg => ({\n rid: ridGenerator.generatePropertySecurityGroupRid(psg.name),\n security: {\n type: \"granular\",\n granular: convertGranularPolicy(psg.granularPolicy, psg.appliedMarkings, psg.assumedMarkings, ridGenerator, objectTypeApiName)\n },\n type: {\n type: \"property\",\n property: {\n name: psg.name\n }\n },\n properties: psg.properties.map(apiName => propertyApiNameToRid.get(apiName))\n })) ?? []), objectSecurityPolicyGroup]\n };\n}\nfunction convertGranularPolicy(granularPolicy, appliedMarkings, assumedMarkings, ridGenerator, objectTypeApiName) {\n return {\n viewPolicy: {\n granularPolicyCondition: granularPolicy ? convertSecurityCondition(granularPolicy, ridGenerator, objectTypeApiName) : {\n type: \"and\",\n and: {\n conditions: []\n }\n },\n additionalMandatory: {\n markings: Object.keys(appliedMarkings ?? {}),\n assumedMarkings: Object.keys(assumedMarkings ?? {})\n }\n }\n };\n}\nfunction convertSecurityCondition(condition, ridGenerator, objectTypeApiName) {\n switch (condition.type) {\n case \"and\":\n if (\"conditions\" in condition) {\n return {\n type: \"and\",\n and: {\n conditions: condition.conditions.map(c => convertSecurityCondition(c, ridGenerator, objectTypeApiName))\n }\n };\n } else {\n return condition;\n }\n case \"or\":\n if (\"conditions\" in condition) {\n return {\n type: \"or\",\n or: {\n conditions: condition.conditions.map(c => convertSecurityCondition(c, ridGenerator, objectTypeApiName))\n }\n };\n } else {\n return condition;\n }\n case \"markingProperty\":\n return {\n type: \"markings\",\n markings: {\n property: ridGenerator && objectTypeApiName ? ridGenerator.generatePropertyRid(condition.property, objectTypeApiName) : condition.property\n }\n };\n case \"groupProperty\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n type: \"groupIds\",\n groupIds: {}\n }\n },\n right: {\n type: \"property\",\n property: ridGenerator && objectTypeApiName ? ridGenerator.generatePropertyRid(condition.property, objectTypeApiName) : condition.property\n }\n }\n };\n case \"group\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n type: \"groupIds\",\n groupIds: {}\n }\n },\n right: {\n type: \"constant\",\n constant: {\n type: \"strings\",\n strings: [condition.name]\n }\n }\n }\n };\n default:\n return condition;\n }\n}\n\n/**\n * Converts ISO 8601 duration to Java Duration format (hours/minutes/seconds only).\n * Java's Duration class doesn't support days/weeks/months/years natively,\n * so P90D becomes PT2160H, P1W becomes PT168H, etc.\n */\nfunction convertToJavaDurationFormat(iso8601) {\n const match = iso8601.match(/^P(?:(\\d+)W)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?)?$/);\n if (!match) return iso8601;\n const weeks = parseInt(match[1] || \"0\", 10);\n const days = parseInt(match[2] || \"0\", 10);\n const hours = parseInt(match[3] || \"0\", 10);\n const minutes = parseInt(match[4] || \"0\", 10);\n const seconds = parseInt(match[5] || \"0\", 10);\n const totalHours = (weeks * 7 + days) * 24 + hours;\n const parts = [];\n if (totalHours > 0) parts.push(`${totalHours}H`);\n if (minutes > 0) parts.push(`${minutes}M`);\n if (seconds > 0) parts.push(`${seconds}S`);\n return parts.length > 0 ? `PT${parts.join(\"\")}` : \"PT0S\";\n}\nfunction buildPropertyMapping(properties, objectTypeApiName, ridGenerator) {\n // TODO: Convert property mappings to use RIDs as keys\n return Object.fromEntries(properties.map(prop => {\n const propertyRid = ridGenerator.generatePropertyRid(prop.apiName, objectTypeApiName);\n // editOnly\n if (prop.editOnly) {\n return [propertyRid, {\n type: \"editOnly\",\n editOnly: {}\n }];\n }\n // structs\n if (typeof prop.type === \"object\" && prop.type?.type === \"struct\") {\n const structMapping = {\n type: \"struct\",\n struct: {\n column: prop.apiName,\n mapping: Object.fromEntries(Object.keys(prop.type.structDefinition).map(fieldName => [fieldName, {\n apiName: fieldName,\n mappings: {}\n }]))\n }\n };\n return [propertyRid, structMapping];\n }\n // default: column mapping\n return [propertyRid, {\n type: \"column\",\n column: prop.apiName\n }];\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nexport function convertNullabilityToDataConstraint(prop) {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noNulls: true\n }\n };\n }\n !prop.nullability?.noNulls ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Marking property type has noNulls set to false, marking properties must not be nullable\") : invariant(false) : void 0;\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function convertValueType(valueType, ridGenerator) {\n return ridGenerator.generateRidForValueType(valueType.apiName, valueType.version);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { dataConstraintToPropertyTypeDataConstraint } from \"./dataConstraintToPropertyTypeDataConstraint.js\";\nexport function convertDataConstraintToDataConstraints(dc) {\n return {\n propertyTypeConstraints: [{\n constraints: dataConstraintToPropertyTypeDataConstraint(dc)\n // known limitation: structs don't carry field-level data constraint failure messages\n }]\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertDataConstraintToDataConstraints } from \"./convertDataConstraintToDataConstraints.js\";\nexport function dataConstraintToPropertyTypeDataConstraint(dc) {\n switch (dc.type) {\n case \"array\":\n return {\n ...dc\n };\n case \"boolean\":\n return {\n ...dc\n };\n case \"binary\":\n throw new Error(\"Binary type constraints are not supported\");\n case \"date\":\n return {\n ...dc\n };\n case \"decimal\":\n return {\n ...dc\n };\n case \"double\":\n return {\n ...dc\n };\n case \"float\":\n return {\n ...dc\n };\n case \"integer\":\n return {\n ...dc\n };\n case \"long\":\n return {\n ...dc\n };\n case \"map\":\n throw new Error(\"Map type constraints are not supported\");\n case \"nullable\":\n throw new Error(\"Nullable constraints are not supported\");\n case \"short\":\n return {\n ...dc\n };\n case \"string\":\n return {\n ...dc\n };\n case \"struct\":\n return {\n type: \"struct\",\n struct: {\n elementConstraints: Object.fromEntries(Object.entries(dc.struct.elementConstraints).map(([field, constraint]) => [field, convertDataConstraintToDataConstraints(constraint)]))\n }\n };\n case \"structV2\":\n throw new Error(\"StructV2 constraints are not supported\");\n case \"timestamp\":\n return {\n ...dc\n };\n default:\n throw new Error(`Unknown DataConstraint type: ${dc.type}`);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { dataConstraintToPropertyTypeDataConstraint } from \"./dataConstraintToPropertyTypeDataConstraint.js\";\nexport function convertValueTypeDataConstraints(dataConstraints) {\n if (dataConstraints.length === 0) {\n return undefined;\n }\n const propertyTypeConstraints = dataConstraints.map(constraint => ({\n constraints: dataConstraintToPropertyTypeDataConstraint(constraint.constraint.constraint),\n failureMessage: constraint.constraint.failureMessage\n }));\n return {\n propertyTypeConstraints\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function distributeTypeHelper(type) {\n return {\n type,\n [type]: {}\n }; // any cast to match conditional return type\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { distributeTypeHelper } from \"../toConjure/distributeTypeHelper.js\";\nexport function propertyTypeTypeToOntologyIrType(type, ridGenerator, propertyApiName, includeMainValue) {\n switch (true) {\n case typeof type === \"object\" && type.type === \"marking\":\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && type.type === \"struct\":\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n structFieldRid: propertyApiName ? ridGenerator.generateStructFieldRid(propertyApiName, key) : ridGenerator.generateRid(`structfield.${key}`),\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: propertyTypeTypeToOntologyIrType(fieldTypeDefinition, ridGenerator, propertyApiName)\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n structFieldRid: propertyApiName ? ridGenerator.generateStructFieldRid(propertyApiName, key) : ridGenerator.generateRid(`structfield.${key}`),\n apiName: key,\n fieldType: propertyTypeTypeToOntologyIrType(fieldTypeDefinition.fieldType, ridGenerator, propertyApiName),\n displayMetadata: fieldTypeDefinition.displayMetadata ?? {\n displayName: key,\n description: undefined\n },\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? []\n };\n } else {\n field = {\n structFieldRid: propertyApiName ? ridGenerator.generateStructFieldRid(propertyApiName, key) : ridGenerator.generateRid(`structfield.${key}`),\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: propertyTypeTypeToOntologyIrType(fieldTypeDefinition, ridGenerator, propertyApiName)\n };\n }\n }\n structFields.push(field);\n }\n\n // Build mainValue from the first struct field (matches Java behavior)\n // Only SPTs get mainValue populated; object property structs have mainValue: null\n const mainValue = includeMainValue ? structFields[0] ? {\n type: structFields[0].fieldType,\n fields: [structFields[0].structFieldRid]\n } : undefined : undefined;\n return {\n type: \"struct\",\n struct: {\n structFields,\n mainValue\n }\n };\n case typeof type === \"object\" && type.type === \"string\":\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: type.enableAsciiFolding,\n isLongText: type.isLongText ?? false,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard ?? false,\n supportsExactMatching: type.supportsExactMatching ?? true,\n supportsFullTextRegex: type.supportsFullTextRegex\n }\n };\n case typeof type === \"object\" && type.type === \"decimal\":\n return {\n \"type\": \"decimal\",\n \"decimal\": {\n precision: type.precision,\n scale: type.scale\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n case type === \"attachment\":\n return {\n type: \"attachment\",\n attachment: {}\n };\n default:\n // use helper function to distribute `type` properly\n if (typeof type === \"object\") {\n throw new Error(`Unhandled exotic type: ${JSON.stringify(type)}`);\n }\n return distributeTypeHelper(type);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertObjectStatus, defaultTypeClasses, getNamespace, getPropertyTypeName, hasRenderHints, shouldBeIndexedForSearch, shouldNotHaveRenderHints } from \"@osdk/maker\";\nimport invariant from \"tiny-invariant\";\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { convertValueType } from \"./convertValueType.js\";\nimport { convertValueTypeDataConstraints } from \"./convertValueTypeDataConstraints.js\";\nimport { propertyTypeTypeToOntologyIrType } from \"./propertyTypeTypeToOntologyIrType.js\";\nexport function convertObjectPropertyType(property, objectTypeApiName, ridGenerator) {\n const apiName = getNamespace() + property.apiName;\n !(!shouldNotHaveRenderHints(property.type) || !hasRenderHints(property.typeClasses)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property type ${apiName} of type '${getPropertyTypeName(property.type)}' should not have render hints`) : invariant(false) : void 0;\n // TODO: Generate proper RID and ID based on object type and property API name\n const propertyRid = ridGenerator.generatePropertyRid(property.apiName, objectTypeApiName);\n const output = {\n apiName: property.apiName,\n id: property.apiName,\n // TODO: Should this be different from apiName?\n rid: propertyRid,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\"\n },\n indexedForSearch: property.indexedForSearch ?? shouldBeIndexedForSearch(property.type),\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: property.array ? {\n type: \"array\",\n array: {\n subtype: propertyTypeTypeToOntologyIrType(property.type, ridGenerator, property.apiName),\n reducers: []\n }\n } : propertyTypeTypeToOntologyIrType(property.type, ridGenerator, property.apiName),\n typeClasses: property.typeClasses ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType ? convertValueTypeDataConstraints(property.valueType.constraints) : convertNullabilityToDataConstraint(property),\n // TODO: Convert sharedPropertyTypeRid from API name to RID\n sharedPropertyTypeRid: property.sharedPropertyType ? ridGenerator.generateSptRid(property.sharedPropertyType.apiName) : undefined,\n valueType: property.valueType ? convertValueType(property.valueType, ridGenerator) : undefined\n };\n return output;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { cleanAndValidateLinkTypeId, convertObjectStatus, isExotic } from \"@osdk/maker\";\nimport { buildDatasource } from \"./convertActionHelpers.js\";\nimport { convertDatasourceDefinition } from \"./convertDatasourceDefinition.js\";\nimport { convertObjectPropertyType } from \"./convertObjectPropertyType.js\";\nexport function convertObject(objectType, ridGenerator) {\n const {\n derivedDatasources,\n derivedPropertyNames\n } = extractDerivedDatasources(objectType, ridGenerator);\n const propertyDatasources = (objectType.properties ?? []).filter(prop => !derivedPropertyNames.includes(prop.apiName)).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName, ridGenerator));\n const classificationGroupMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"CBAC\");\n const mandatoryMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"MANDATORY\");\n const classificationInputGroup = classificationGroupMarkingNames.length > 0 ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0 ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, (objectType.properties ?? []).filter(prop => !derivedPropertyNames.includes(prop.apiName)), ridGenerator), ridGenerator, classificationInputGroup, mandatoryInputGroup);\n const implementations = objectType.implementsInterfaces ?? [];\n const objectTypeRid = ridGenerator.generateRidForObjectType(objectType.apiName);\n\n // Convert propertyTypes to use RIDs as keys\n const propertyTypesWithRids = Object.fromEntries(objectType.properties?.map(val => {\n const convertedProp = convertObjectPropertyType(val, objectType.apiName, ridGenerator);\n return [convertedProp.rid, convertedProp];\n }) ?? []);\n const titlePropertyRid = ridGenerator.generatePropertyRid(objectType.titlePropertyApiName, objectType.apiName);\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? {\n locator: \"cube\",\n color: \"#2D72D2\"\n }\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\"\n },\n primaryKeys: [ridGenerator.generatePropertyRid(objectType.primaryKeyPropertyApiName, objectType.apiName)],\n propertyTypes: propertyTypesWithRids,\n titlePropertyTypeRid: titlePropertyRid,\n apiName: objectType.apiName,\n rid: objectTypeRid,\n id: ridGenerator.generateObjectTypeId(objectType.apiName),\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces: implementations.map(impl => ridGenerator.generateRidForInterface(impl.implements.apiName)),\n implementsInterfaces2: implementations.map(impl => {\n const allParents = flattenInterface(impl.implements, new Set());\n return {\n interfaceTypeRid: ridGenerator.generateRidForInterface(impl.implements.apiName),\n interfaceTypeApiName: impl.implements.apiName,\n links: {},\n linksV2: {},\n propertiesV2: Object.fromEntries(impl.propertyMapping.map(mappings => {\n // TODO(): This probably won't work for importing\n const sourceInterface = allParents.find((interfaceType, _index) => {\n return interfaceType.propertiesV3[mappings.interfaceProperty] !== undefined;\n });\n return [ridGenerator.generateInterfacePropertyTypeRid(mappings.interfaceProperty, sourceInterface.apiName), {\n type: \"propertyTypeRid\",\n propertyTypeRid: ridGenerator.generatePropertyRid(mappings.mapsTo, objectType.apiName)\n }];\n })),\n properties: {}\n };\n }),\n allImplementsInterfaces: {},\n traits: {\n workflowObjectTypeTraits: {}\n },\n typeGroups: []\n },\n datasources: [...propertyDatasources, ...derivedDatasources, objectDatasource],\n entityMetadata: buildEntityMetadata(objectType),\n propertySecurityGroupPackagingVersion: {\n type: \"v2\",\n v2: {}\n },\n schemaMigrations: undefined,\n writebackDatasets: []\n };\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nexport function extractMarkingGroups(properties, markingType) {\n return properties.map(prop => {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\" && prop.type.markingType === markingType) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n }).filter(val => val !== undefined);\n}\nexport function extractPropertyDatasource(property, objectTypeApiName, ridGenerator) {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type) {\n case \"geotimeSeries\":\n const geotimeDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: ridGenerator.generateRidForGeotimeSeriesIntegration(identifier),\n properties: [ridGenerator.generatePropertyRid(property.apiName, objectTypeApiName)]\n }\n };\n return [buildDatasource(property.apiName, geotimeDefinition, ridGenerator)];\n case \"mediaReference\":\n const mediaSetDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: ridGenerator.generateMediaSetViewLocator(identifier),\n properties: [ridGenerator.generatePropertyRid(property.apiName, objectTypeApiName)],\n uploadProperties: []\n }\n };\n return [buildDatasource(property.apiName, mediaSetDefinition, ridGenerator)];\n default:\n return [];\n }\n}\nfunction extractDerivedDatasources(objectType, ridGenerator) {\n const inputDerivedDatasources = (objectType.datasources ?? []).filter(ds => ds.type === \"derived\");\n const derivedDatasources = inputDerivedDatasources.map((ds, i) => buildDerivedDatasource(ds, i, objectType.apiName, ridGenerator));\n const derivedPropertyNames = inputDerivedDatasources.flatMap(ds => Object.keys(ds.propertyMapping));\n return {\n derivedDatasources,\n derivedPropertyNames\n };\n}\nfunction buildDerivedDatasource(datasource, index, objectTypeApiName, ridGenerator) {\n // TODO: Convert linkType from API name to RID\n const linkDefinition = {\n type: \"multiHopLink\",\n multiHopLink: {\n steps: datasource.linkDefinition.map(step => ({\n type: \"searchAround\",\n searchAround: {\n linkTypeIdentifier: {\n type: \"linkType\",\n linkType: ridGenerator.generateRidForLinkType(cleanAndValidateLinkTypeId(step.linkType.apiName))\n },\n linkTypeSide: step.side ?? \"SOURCE\"\n }\n }))\n }\n };\n const isLinkedProperties = typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n const derivedDefinition = isLinkedProperties ? {\n type: \"linkedProperties\",\n linkedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(Object.entries(datasource.propertyMapping).map(([sourceProp, targetProp]) => [ridGenerator.generatePropertyRid(sourceProp, objectTypeApiName), {\n type: \"propertyType\",\n propertyType: ridGenerator.generatePropertyRid(targetProp, objectTypeApiName)\n }]))\n }\n } : {\n type: \"aggregatedProperties\",\n aggregatedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(Object.entries(datasource.propertyMapping).map(([sourceProp, agg]) => [ridGenerator.generatePropertyRid(sourceProp, objectTypeApiName), buildAggregation(agg, ridGenerator)]))\n }\n };\n const fullDefinition = {\n type: \"derived\",\n derived: {\n definition: derivedDefinition\n }\n };\n return buildDatasource(objectTypeApiName + \".derived.\" + index.toString(), fullDefinition, ridGenerator);\n}\nfunction buildAggregation(agg, ridGenerator) {\n const type = agg.type;\n const limit = \"limit\" in agg ? agg.limit : undefined;\n const foreignProperty = \"property\" in agg ? agg.property : undefined;\n const innerDef = {};\n // TODO: Convert property references in aggregations to RIDs\n if (type !== \"count\") {\n if ([\"collectList\", \"collectSet\"].includes(type)) {\n innerDef[\"linkedProperty\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty ? ridGenerator.generateRid(`property.unknown.${foreignProperty}`) : undefined\n };\n innerDef[\"limit\"] = limit;\n } else {\n innerDef[\"property\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty ? ridGenerator.generateRid(`property.unknown.${foreignProperty}`) : undefined\n };\n }\n }\n return {\n type,\n [type]: innerDef\n };\n}\n\n/**\n * Build entity metadata with fields that match Java's output.\n * Some fields (highbury, editsResolutionStrategies, propertySecurityGroupPackagingVersion)\n * aren't in the TS type definitions yet but are required by the Java converter output.\n */\nfunction buildEntityMetadata(objectType) {\n const metadata = {\n arePatchesEnabled: objectType.editsEnabled ?? false,\n aliases: objectType.aliases ?? [],\n diffEdits: false,\n entityConfig: {\n objectDbTypeConfigs: {\n highbury: {\n objectDbConfigs: {\n \"ri.highbury.main.cluster.1\": {\n configValue: \"{}\"\n }\n }\n }\n }\n },\n editsResolutionStrategies: {\n strategies: {}\n },\n targetStorageBackend: {\n type: \"objectStorageV2\",\n objectStorageV2: {}\n }\n };\n return metadata;\n}\nexport function flattenInterface(interfaceType, seen) {\n if (seen.has(interfaceType.apiName)) {\n return [];\n }\n seen.add(interfaceType.apiName);\n if (interfaceType.extendsInterfaces.length === 0) {\n return [interfaceType];\n }\n const parents = interfaceType.extendsInterfaces.flatMap(parent => flattenInterface(parent, seen));\n return [interfaceType, ...parents];\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function getFormContentOrdering(action, parameterOrdering) {\n if (!action.sections) return [];\n const parametersToSection = Object.fromEntries(Object.entries(action.sections).flatMap(([sectionId, section]) => section.parameters.map(param => [param, sectionId])));\n const seenIds = new Set();\n const formContentOrdering = [];\n parameterOrdering.forEach(param => {\n if (param in parametersToSection && !seenIds.has(parametersToSection[param])) {\n formContentOrdering.push({\n type: \"sectionId\",\n sectionId: parametersToSection[param]\n });\n seenIds.add(parametersToSection[param]);\n } else if (!(param in parametersToSection)) {\n formContentOrdering.push({\n type: \"parameterId\",\n parameterId: param\n });\n seenIds.add(param);\n }\n });\n return formContentOrdering;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getOntologyDefinition } from \"@osdk/maker\";\nimport { ReadableIdGenerator } from \"../../util/generateRid.js\";\nimport { convertActionParameters } from \"./convertActionParameters.js\";\nimport { convertActionSections } from \"./convertActionSections.js\";\nimport { convertActionValidation } from \"./convertActionValidation.js\";\nimport { flattenInterface } from \"./convertObject.js\";\nimport { getFormContentOrdering } from \"./getFormContentOrdering.js\";\nexport function buildDatasource(apiName, definition, ridGenerator, classificationMarkingGroupName, mandatoryMarkingGroupName) {\n const needsSecurity = classificationMarkingGroupName !== undefined || mandatoryMarkingGroupName !== undefined;\n const securityConfig = needsSecurity ? {\n classificationConstraint: classificationMarkingGroupName ? {\n markings: [classificationMarkingGroupName]\n } : undefined,\n markingConstraint: mandatoryMarkingGroupName ? {\n markingIds: [mandatoryMarkingGroupName]\n } : undefined\n } : undefined;\n return {\n rid: ridGenerator.generateDatasourceRid(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false,\n ...(securityConfig !== undefined && {\n dataSecurity: securityConfig\n })\n };\n}\nexport function convertAction(action, ridGenerator) {\n const actionValidation = convertActionValidation(action, ridGenerator);\n const actionParameters = convertActionParameters(action, ridGenerator);\n const actionSections = convertActionSections(action, ridGenerator);\n const parameterOrdering = action.parameterOrdering ?? (action.parameters ?? []).map(p => p.id);\n\n // Build parameterIds mapping: UUID (BlockInternalId) -> ParameterId (API name)\n const parameterIds = {};\n (action.parameters ?? []).forEach(p => {\n const readableId = ReadableIdGenerator.getForParameter(action.apiName, p.id);\n const uuid = ridGenerator.toBlockInternalId(readableId);\n parameterIds[uuid] = p.id;\n });\n const ontologyDefinition = getOntologyDefinition();\n\n // Helper function to convert interface property values from API names to RIDs\n const convertInterfacePropertyValuesToRids = (interfacePropertyValues, allParentInterfaces) => {\n const result = {};\n for (const [apiName, value] of Object.entries(interfacePropertyValues)) {\n const parentInterface = allParentInterfaces.find(maybeSourceParent => maybeSourceParent.propertiesV3[apiName] !== undefined);\n const rid = ridGenerator.generateInterfacePropertyTypeRid(apiName, parentInterface.apiName);\n result[rid] = value;\n }\n return result;\n };\n\n // Helper function to convert shared property values from API names to RIDs\n const convertSharedPropertyValuesToRids = sharedPropertyValues => {\n const result = {};\n for (const [apiName, value] of Object.entries(sharedPropertyValues)) {\n const rid = ridGenerator.generateSptRid(apiName);\n result[rid] = value;\n }\n return result;\n };\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n // Convert logic rules with proper RID mappings\n rules: action.rules.map(rule => {\n if (rule.type === \"addInterfaceRule\") {\n const interfaceAndParents = flattenInterface(ontologyDefinition.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName], new Set());\n return {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceTypeRid: ridGenerator.generateRidForInterface(rule.addInterfaceRule.interfaceApiName),\n objectType: rule.addInterfaceRule.objectTypeParameter,\n interfacePropertyValues: convertInterfacePropertyValuesToRids(rule.addInterfaceRule.interfacePropertyValues, interfaceAndParents),\n sharedPropertyValues: convertSharedPropertyValuesToRids(rule.addInterfaceRule.sharedPropertyValues),\n structFieldValues: {},\n logicRuleRid: rule.addInterfaceRule.logicRuleRid\n }\n };\n } else if (rule.type === \"modifyInterfaceRule\") {\n const interfaceAndParents = flattenInterface(ontologyDefinition.INTERFACE_TYPE[rule.modifyInterfaceRule.interfaceApiName], new Set());\n return {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModify: rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n interfacePropertyValues: convertInterfacePropertyValuesToRids(rule.modifyInterfaceRule.interfacePropertyValues, interfaceAndParents),\n sharedPropertyValues: convertSharedPropertyValuesToRids(rule.modifyInterfaceRule.sharedPropertyValues),\n structFieldValues: {}\n }\n };\n } else if (rule.type === \"addObjectRule\") {\n return {\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: ridGenerator.generateObjectTypeId(rule.addObjectRule.objectTypeId),\n propertyValues: rule.addObjectRule.propertyValues,\n structFieldValues: rule.addObjectRule.structFieldValues,\n logicRuleRid: rule.addObjectRule.logicRuleRid\n }\n };\n }\n // Pass through other rule types unchanged\n return rule;\n })\n },\n validation: actionValidation,\n notifications: []\n },\n metadata: buildActionMetadata(action, ridGenerator, parameterOrdering, actionParameters, actionSections)\n },\n parameterIds\n };\n}\n\n/**\n * Build action type metadata with all fields that Java produces.\n * Uses an intermediate variable to allow extra fields beyond the TS type definition\n * (notificationSettings, applyingMessage) without casting to any.\n */\nfunction buildActionMetadata(action, ridGenerator, parameterOrdering, actionParameters, actionSections) {\n const displayMetadata = {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n applyingMessage: [],\n successMessage: action.submissionMetadata?.successMessage ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage\n }] : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata && {\n submitButtonDisplayMetadata: action.submissionMetadata.submitButtonDisplayMetadata\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration && {\n undoButtonConfiguration: action.submissionMetadata.undoButtonConfiguration\n })\n };\n const metadata = {\n rid: ridGenerator.generateRidForActionType(action.apiName),\n version: \"\",\n apiName: action.apiName,\n notificationSettings: {\n renderingSettings: {\n type: \"anyNotificationRenderingCanFail\",\n anyNotificationRenderingCanFail: {}\n },\n redactionOverride: null\n },\n displayMetadata,\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status,\n entities: action.entities ? {\n affectedInterfaceTypes: action.entities.affectedInterfaceTypes.map(apiName => ridGenerator.generateRidForInterface(apiName)),\n affectedLinkTypes: action.entities.affectedLinkTypes,\n affectedObjectTypes: action.entities.affectedObjectTypes.map(apiName => ridGenerator.generateObjectTypeId(apiName)),\n typeGroups: action.entities.typeGroups\n } : {\n affectedInterfaceTypes: [],\n affectedLinkTypes: [],\n affectedObjectTypes: [],\n typeGroups: []\n }\n };\n return metadata;\n}\n\n// Helper function to convert allowed value option values with ObjectTypeId conversion\nfunction convertAllowedValueOptionValue(value, ridGenerator) {\n if (value?.type === \"objectType\") {\n return {\n type: \"objectType\",\n objectType: {\n objectTypeId: ridGenerator.generateObjectTypeId(value.objectType.objectTypeId)\n }\n };\n }\n // Pass through other value types unchanged (staticValue, parameterValue, etc.)\n return value;\n}\nexport function extractAllowedValues(allowedValues, ridGenerator) {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf.map(option => ({\n ...option,\n value: convertAllowedValueOptionValue(option.value, ridGenerator)\n })),\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed ?? false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maxLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n // Register static group IDs with ridGenerator\n if (group.type === \"static\") {\n ridGenerator.getGroupIds().put(ReadableIdGenerator.getForGroup(group.name), group.name);\n }\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\" ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name\n }\n } : {\n type: \"parameterId\",\n parameterId: group.parameter\n }\n }\n };\n })\n }\n }\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {}\n }\n };\n default:\n const k = allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n }\n}\nexport function renderHintFromBaseType(parameter, validation) {\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n if (validation?.allowedValues?.type === \"user\" || validation?.allowedValues?.type === \"multipassGroup\") {\n return {\n type: \"userDropdown\",\n userDropdown: {}\n };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"dropdown\",\n dropdown: {}\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { propertyTypeTypeToOntologyIrType } from \"./propertyTypeTypeToOntologyIrType.js\";\nexport function convertSpt({\n type,\n array,\n description,\n apiName,\n displayName,\n visibility,\n gothamMapping,\n typeClasses,\n aliases,\n valueType,\n nullability,\n baseFormatter\n}, ridGenerator) {\n const dataConstraint = convertNullabilityToDataConstraint({\n type,\n nullability\n });\n return {\n apiName,\n // TODO: Generate proper RID based on apiName\n rid: ridGenerator.generateSptRid(apiName),\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: visibility ?? \"NORMAL\",\n description\n },\n type: array ? {\n type: \"array\",\n array: {\n subtype: propertyTypeTypeToOntologyIrType(type, ridGenerator, apiName, true),\n reducers: [{\n direction: \"DESCENDING_NULLS_LAST\",\n field: null\n }]\n }\n } : propertyTypeTypeToOntologyIrType(type, ridGenerator, apiName, true),\n aliases: aliases ?? [],\n baseFormatter,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n typeClasses: typeClasses ?? [],\n valueType: valueType === undefined ? undefined : ridGenerator.generateRidForValueType(valueType.apiName, valueType.version)\n };\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { distributeTypeHelper } from \"../toConjure/distributeTypeHelper.js\";\nexport function propertyTypeTypeToOntologyIrInterfaceType(type, propertyApiName, ridGenerator) {\n switch (true) {\n case typeof type === \"object\" && type.type === \"marking\":\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && type.type === \"struct\":\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n structFieldRid: ridGenerator.generateStructFieldRid(propertyApiName, key),\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: propertyTypeTypeToOntologyIrInterfaceType(fieldTypeDefinition, propertyApiName, ridGenerator),\n requireImplementation: true\n };\n } else {\n // If it is a full form type definition then process it as such\n if (typeof fieldTypeDefinition === \"object\" && \"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n structFieldRid: ridGenerator.generateStructFieldRid(propertyApiName, key),\n fieldType: propertyTypeTypeToOntologyIrInterfaceType(fieldTypeDefinition.fieldType, propertyApiName, ridGenerator),\n displayMetadata: fieldTypeDefinition.displayMetadata ?? {\n displayName: key,\n description: undefined\n },\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? [],\n requireImplementation: fieldTypeDefinition.requireImplementation ?? true\n };\n } else {\n field = {\n apiName: key,\n structFieldRid: ridGenerator.generateStructFieldRid(propertyApiName, key),\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: propertyTypeTypeToOntologyIrInterfaceType(fieldTypeDefinition, propertyApiName, ridGenerator),\n requireImplementation: true\n };\n }\n }\n structFields.push(field);\n }\n return {\n type: \"struct\",\n struct: {\n structFields\n }\n };\n case typeof type === \"object\" && type.type === \"string\":\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: type.enableAsciiFolding,\n isLongText: type.isLongText ?? false,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard ?? false,\n supportsExactMatching: type.supportsExactMatching ?? true,\n supportsFullTextRegex: type.supportsFullTextRegex\n }\n };\n case typeof type === \"object\" && type.type === \"decimal\":\n return {\n \"type\": \"decimal\",\n \"decimal\": {\n precision: type.precision,\n scale: type.scale\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n if (typeof type === \"object\") {\n throw new Error(`Unhandled exotic type: ${JSON.stringify(type)}`);\n }\n return distributeTypeHelper(type);\n }\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isInterfaceSharedPropertyType } from \"@osdk/maker\";\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { convertSpt } from \"./convertSpt.js\";\nimport { propertyTypeTypeToOntologyIrInterfaceType } from \"./propertyTypeTypeToOntologyIrInterfaceType.js\";\nexport function convertInterfaceProperty(prop, apiName, interfaceApiName, ridGenerator) {\n if (isInterfaceSharedPropertyType(prop)) {\n return [prop.sharedPropertyType.apiName, {\n type: \"sharedPropertyBasedPropertyType\",\n sharedPropertyBasedPropertyType: {\n requireImplementation: prop.required,\n sharedPropertyType: convertSpt(prop.sharedPropertyType, ridGenerator)\n }\n }];\n } else {\n return [ridGenerator.generateInterfacePropertyTypeRid(apiName, interfaceApiName), {\n type: \"interfaceDefinedPropertyType\",\n interfaceDefinedPropertyType: {\n apiName: apiName,\n displayMetadata: {\n displayName: prop.displayName ?? apiName,\n visibility: prop.visibility ?? \"NORMAL\",\n description: prop.description\n },\n type: prop.array ? {\n type: \"array\",\n array: {\n subtype: propertyTypeTypeToOntologyIrInterfaceType(prop.type, apiName, ridGenerator)\n }\n } : propertyTypeTypeToOntologyIrInterfaceType(prop.type, apiName, ridGenerator),\n constraints: {\n primaryKeyConstraint: prop.primaryKeyConstraint ?? \"NO_RESTRICTION\",\n requireImplementation: prop.required ?? true,\n indexedForSearch: true,\n typeClasses: prop.typeClasses ?? [],\n dataConstraints: convertNullabilityToDataConstraint({\n type: prop.type,\n nullability: prop.nullability\n }),\n valueType: prop.valueType ? ridGenerator.generateRidForValueType(prop.valueType.apiName, prop.valueType.version) : undefined\n },\n rid: ridGenerator.generateInterfacePropertyTypeRid(apiName, interfaceApiName)\n }\n }];\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertInterfaceProperty } from \"./convertInterfacePropertyType.js\";\nimport { convertSpt } from \"./convertSpt.js\";\nexport function convertInterface(interfaceType, ridGenerator) {\n const {\n __type,\n status,\n ...other\n } = interfaceType;\n // Normalize deprecated deadline format to match Java (strip .000 milliseconds)\n const normalizedStatus = status?.type === \"deprecated\" ? {\n ...status,\n deprecated: {\n ...status.deprecated,\n deadline: status.deprecated.deadline?.replace(/\\.000Z$/, \"Z\")\n }\n } : status;\n return {\n ...other,\n status: normalizedStatus,\n // TODO: Generate proper RID based on apiName\n rid: ridGenerator.generateRidForInterface(interfaceType.apiName),\n propertiesV2: Object.fromEntries(Object.values(interfaceType.propertiesV2).map(spt => {\n const convertedSpt = convertSpt(spt.sharedPropertyType, ridGenerator);\n return [convertedSpt.rid, {\n required: spt.required,\n sharedPropertyType: convertedSpt\n }];\n })),\n displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description,\n icon: interfaceType.displayMetadata.icon ?? {\n type: \"blueprint\",\n blueprint: {\n color: \"#4C90F0\",\n locator: \"layout-hierarchy\"\n }\n }\n },\n // TODO: Convert extendsInterfaces from API names to RIDs\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => ridGenerator.generateRidForInterface(i.apiName)),\n // TODO: Convert links to add RIDs\n links: interfaceType.links.map(link => ({\n ...link,\n linkedEntityTypeId: link.linkedEntityTypeId.type === \"interfaceType\" ? {\n type: \"interfaceType\",\n interfaceType: ridGenerator.generateRidForInterface(link.linkedEntityTypeId.interfaceType)\n } : {\n type: \"objectType\",\n objectType: ridGenerator.generateObjectTypeId(link.linkedEntityTypeId.objectType)\n },\n rid: ridGenerator.generateRidForInterfaceLinkType(link.metadata.apiName, interfaceType.apiName)\n })),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n propertiesV3: Object.fromEntries(Object.entries(interfaceType.propertiesV3).map(([apiName, prop]) => convertInterfaceProperty(prop, apiName, interfaceType.apiName, ridGenerator)))\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function convertCardinality(cardinality) {\n if (cardinality === \"OneToMany\" || cardinality === undefined) {\n return \"ONE_TO_MANY\";\n }\n return \"ONE_TO_ONE\";\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { cleanAndValidateLinkTypeId, getOntologyDefinition, OntologyEntityTypeEnum } from \"@osdk/maker\";\nimport invariant from \"tiny-invariant\";\nimport { convertCardinality } from \"./convertCardinality.js\";\nexport function convertLink(linkType, ridGenerator) {\n validateLink(linkType);\n let definition;\n let datasource = undefined;\n if (\"one\" in linkType) {\n const {\n apiName: oneObjectApiName,\n object: oneObject\n } = getObject(linkType.one.object);\n const {\n apiName: toManyObjectApiName,\n object: toManyObject\n } = getObject(linkType.toMany.object);\n const oneObjectRid = ridGenerator.generateRidForObjectType(oneObjectApiName);\n const toManyObjectRid = ridGenerator.generateRidForObjectType(toManyObjectApiName);\n const onePkRid = ridGenerator.generatePropertyRid(oneObject.primaryKeyPropertyApiName, oneObjectApiName);\n const manyFkRid = ridGenerator.generatePropertyRid(linkType.manyForeignKeyProperty, toManyObjectApiName);\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: toManyObjectRid,\n objectTypeRidOneSide: oneObjectRid,\n oneToManyLinkMetadata: linkType.one.metadata,\n // TODO: Convert property mappings to use RIDs as keys and values\n oneSidePrimaryKeyToManySidePropertyMapping: {\n [onePkRid]: manyFkRid\n }\n }\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n const {\n apiName: manyObjectApiName,\n object: manyObject\n } = getObject(linkType.many.object);\n const {\n apiName: toManyObjectApiName,\n object: toManyObject\n } = getObject(linkType.toMany.object);\n const {\n apiName: intermediaryObjectApiName\n } = getObject(linkType.intermediaryObjectType);\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: ridGenerator.generateRidForObjectType(manyObjectApiName),\n objectTypeRidB: ridGenerator.generateRidForObjectType(toManyObjectApiName),\n intermediaryObjectTypeRid: ridGenerator.generateRidForObjectType(intermediaryObjectApiName),\n aToIntermediaryLinkTypeRid: ridGenerator.generateRidForLinkType(cleanAndValidateLinkTypeId(linkType.many.linkToIntermediary.apiName)),\n intermediaryToBLinkTypeRid: ridGenerator.generateRidForLinkType(cleanAndValidateLinkTypeId(linkType.toMany.linkToIntermediary.apiName))\n }\n };\n } else {\n const {\n apiName: manyObjectApiName,\n object: manyObject\n } = getObject(linkType.many.object);\n const {\n apiName: toManyObjectApiName,\n object: toManyObject\n } = getObject(linkType.toMany.object);\n const manyObjectRidA = ridGenerator.generateRidForObjectType(manyObjectApiName);\n const manyObjectRidB = ridGenerator.generateRidForObjectType(toManyObjectApiName);\n const manyPkRidA = ridGenerator.generatePropertyRid(manyObject.primaryKeyPropertyApiName, manyObjectApiName);\n const manyPkRidB = ridGenerator.generatePropertyRid(toManyObject.primaryKeyPropertyApiName, toManyObjectApiName);\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectRidA,\n objectTypeRidB: manyObjectRidB,\n peeringMetadata: undefined,\n // TODO: Convert property mappings to use RIDs as keys and values\n objectTypeAPrimaryKeyPropertyMapping: {\n [manyPkRidA]: manyPkRidA\n },\n objectTypeBPrimaryKeyPropertyMapping: {\n [manyPkRidB]: manyPkRidB\n }\n }\n };\n datasource = {\n rid: ridGenerator.generateRid(`datasource.link.${linkType.apiName}`),\n datasource: {\n type: \"dataset\",\n dataset: {\n // TODO: Add proper branchId from link configuration\n branchId: \"main\",\n datasetRid: ridGenerator.generateRid(`link.dataset.${linkType.apiName}`),\n writebackDatasetRid: undefined,\n // TODO: Convert property mappings to use property RIDs as keys\n objectTypeAPrimaryKeyMapping: {\n [manyPkRidA]: manyObject.primaryKeyPropertyApiName\n },\n objectTypeBPrimaryKeyMapping: {\n [manyPkRidB]: toManyObject.primaryKeyPropertyApiName\n }\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: linkType.redacted\n };\n }\n const linkTypeId = cleanAndValidateLinkTypeId(linkType.apiName);\n return {\n linkType: {\n definition: definition,\n rid: ridGenerator.generateRidForLinkType(linkTypeId),\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: convertLinkStatus(linkType.status, ridGenerator),\n redacted: linkType.redacted ?? false\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n entityConfig: {\n objectDbTypeConfigs: {\n highbury: {\n objectDbConfigs: {\n \"ri.highbury.main.cluster.1\": {\n configValue: \"{}\"\n }\n }\n }\n }\n },\n targetStorageBackend: {\n type: \"objectStorageV2\",\n objectStorageV2: {}\n }\n }\n };\n}\nfunction validateLink(linkDefinition) {\n if (\"one\" in linkDefinition) {\n const {\n apiName: oneObjectApiName,\n object: oneObject\n } = getObject(linkDefinition.one.object);\n const {\n apiName: toManyObjectApiName,\n object: toManyObject\n } = getObject(linkDefinition.toMany.object);\n const foreignKey = toManyObject.properties?.find(p => p.apiName === linkDefinition.manyForeignKeyProperty);\n !(foreignKey !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${toManyObjectApiName}`) : invariant(false) : void 0;\n !/([a-z][a-z0-9\\\\-]*)/.test(linkDefinition.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;\n const typesMatch = foreignKey.type === oneObject.properties?.find(p => p.apiName === oneObject.primaryKeyPropertyApiName)?.type;\n !typesMatch ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n const {\n apiName: intermediaryObjectTypeApiName,\n object: intermediaryObjectType\n } = getObject(linkDefinition.intermediaryObjectType);\n const {\n apiName: manyObjectApiName,\n object: manyObject\n } = getObject(linkDefinition.many.object);\n const {\n apiName: toManyObjectApiName,\n object: toManyObject\n } = getObject(linkDefinition.toMany.object);\n const {\n apiName: manyIntermediaryOneObjectApiName,\n object: manyIntermediaryOneObject\n } = getObject(linkDefinition.many.linkToIntermediary.one.object);\n const {\n apiName: manyIntermediaryToManyObjectApiName,\n object: manyIntermediaryToManyObject\n } = getObject(linkDefinition.many.linkToIntermediary.toMany.object);\n !(\"one\" in linkDefinition.many.linkToIntermediary && manyIntermediaryOneObjectApiName === manyObject.apiName && manyIntermediaryToManyObjectApiName === intermediaryObjectTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectA ${manyObjectApiName}`) : invariant(false) : void 0;\n const {\n apiName: toManyIntermediaryOneObjectApiName,\n object: toManyIntermediaryOneObject\n } = getObject(linkDefinition.toMany.linkToIntermediary.one.object);\n const {\n apiName: toManyIntermediaryToManyObjectApiName,\n object: toManyIntermediaryToManyObject\n } = getObject(linkDefinition.toMany.linkToIntermediary.toMany.object);\n !(\"one\" in linkDefinition.toMany.linkToIntermediary && toManyIntermediaryOneObjectApiName === toManyObjectApiName && toManyIntermediaryToManyObjectApiName === intermediaryObjectTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectB ${toManyObjectApiName}`) : invariant(false) : void 0;\n }\n}\nexport function getObject(object) {\n const objectApiName = typeof object === \"string\" ? object : object.apiName;\n const fullObject = getOntologyDefinition()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];\n !(fullObject !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object ${objectApiName} is not defined`) : invariant(false) : void 0;\n return {\n apiName: objectApiName,\n object: fullObject\n };\n}\nexport function convertLinkStatus(status, ridGenerator) {\n if (typeof status === \"object\" && \"type\" in status && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: status.replacedBy ? ridGenerator.generateRidForLinkType(cleanAndValidateLinkTypeId(status.replacedBy)) : undefined\n }\n };\n }\n switch (status) {\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {}\n };\n case \"example\":\n return {\n type: \"example\",\n example: {}\n };\n case \"active\":\n default:\n return {\n type: \"active\",\n active: {}\n };\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst VOID = {};\nconst DEFAULT_DECIMAL_PRECISION = 38;\nconst DEFAULT_DECIMAL_SCALE = 0;\n\n/**\n * Convert Type to ObjectPropertyType for marketplace shapes\n * TypeScript port of TypeToMarketplaceShapeObjectPropertyTypeVisitor\n */\nexport function typeToMarketplaceObjectPropertyType(type) {\n switch (type.type) {\n case \"array\":\n const arraySubtype = typeToMarketplaceObjectPropertyType(type.array.subtype);\n if (arraySubtype.type === \"array\") {\n throw new Error(\"Nested array property types are not supported in marketplace\");\n }\n if (arraySubtype.type !== \"primitive\") {\n throw new Error(\"Array subtype must be primitive\");\n }\n return {\n type: \"array\",\n array: {\n elementType: arraySubtype.primitive\n }\n };\n case \"boolean\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"booleanType\",\n booleanType: VOID\n }\n };\n case \"byte\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"byteType\",\n byteType: VOID\n }\n };\n case \"date\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"dateType\",\n dateType: VOID\n }\n };\n case \"decimal\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"decimalType\",\n decimalType: VOID\n }\n };\n case \"double\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"doubleType\",\n doubleType: VOID\n }\n };\n case \"float\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"floatType\",\n floatType: VOID\n }\n };\n case \"geohash\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"geohashType\",\n geohashType: VOID\n }\n };\n case \"geoshape\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"geoshapeType\",\n geoshapeType: VOID\n }\n };\n case \"integer\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"integerType\",\n integerType: VOID\n }\n };\n case \"long\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"longType\",\n longType: VOID\n }\n };\n case \"short\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"shortType\",\n shortType: VOID\n }\n };\n case \"string\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"stringType\",\n stringType: VOID\n }\n };\n case \"experimentalTimeDependentV1\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"timeDependentType\",\n timeDependentType: VOID\n }\n };\n case \"timestamp\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"timestampType\",\n timestampType: VOID\n }\n };\n case \"attachment\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"attachmentType\",\n attachmentType: VOID\n }\n };\n case \"marking\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"markingType\",\n markingType: VOID\n }\n };\n case \"cipherText\":\n {\n const plainTextType = typeToMarketplaceObjectPropertyType(type.cipherText.plainTextType);\n if (plainTextType.type === \"array\") {\n throw new Error(\"Nested array property types are not supported in marketplace\");\n }\n if (plainTextType.type !== \"primitive\") {\n throw new Error(\"CipherText plaintext type must be primitive\");\n }\n return {\n type: \"primitive\",\n primitive: {\n type: \"cipherTextType\",\n cipherTextType: {\n plainTextType: plainTextType.primitive\n }\n }\n };\n }\n case \"mediaReference\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"mediaReferenceType\",\n mediaReferenceType: VOID\n }\n };\n case \"vector\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"vectorType\",\n vectorType: {\n dimension: type.vector.dimension,\n supportsSearchWith: type.vector.supportsSearchWith?.map(fn => {\n switch (fn) {\n case \"COSINE_SIMILARITY\":\n return \"COSINE_SIMILARITY\";\n case \"DOT_PRODUCT\":\n return \"DOT_PRODUCT\";\n case \"EUCLIDEAN_DISTANCE\":\n return \"EUCLIDEAN_DISTANCE\";\n default:\n throw new Error(`Unknown vector similarity function: ${fn}`);\n }\n }) ?? []\n }\n }\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"geotimeSeriesReferenceType\",\n geotimeSeriesReferenceType: VOID\n }\n };\n case \"struct\":\n {\n const structFieldTypes = type.struct.structFields.map(field => typeToMarketplaceObjectPropertyType(field.fieldType));\n return {\n type: \"primitive\",\n primitive: {\n type: \"structType\",\n structType: {\n structFieldTypes\n }\n }\n };\n }\n default:\n throw new Error(`Unknown property type: ${type.type}`);\n }\n}\n\n/**\n * Convert Type to ConcreteDataType for datasource columns\n * TypeScript port of TypeToConcreteDataTypeVisitor\n */\nexport function typeToConcreteDataType(type) {\n switch (type.type) {\n case \"array\":\n {\n const elementType = typeToConcreteDataType(type.array.subtype);\n return {\n type: \"array\",\n array: {\n elementType\n }\n };\n }\n case \"boolean\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"boolean\",\n boolean: VOID\n }\n };\n case \"byte\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"byte\",\n byte: VOID\n }\n };\n case \"date\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"date\",\n date: VOID\n }\n };\n case \"decimal\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"decimal\",\n decimal: {\n precision: type.decimal.precision ?? DEFAULT_DECIMAL_PRECISION,\n scale: type.decimal.scale ?? DEFAULT_DECIMAL_SCALE\n }\n }\n };\n case \"double\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"double\",\n double: VOID\n }\n };\n case \"float\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"float\",\n float: VOID\n }\n };\n case \"geohash\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"geoshape\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"integer\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"integer\",\n integer: VOID\n }\n };\n case \"long\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"long\",\n long: VOID\n }\n };\n case \"short\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"short\",\n short: VOID\n }\n };\n case \"string\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"experimentalTimeDependentV1\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"timestamp\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"timestamp\",\n timestamp: VOID\n }\n };\n case \"attachment\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"marking\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"cipherText\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"mediaReference\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"vector\":\n {\n const floatType = {\n type: \"primitive\",\n primitive: {\n type: \"float\",\n float: VOID\n }\n };\n return {\n type: \"array\",\n array: {\n elementType: floatType\n }\n };\n }\n case \"geotimeSeriesReference\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"struct\":\n {\n const fields = type.struct.structFields.map(field => ({\n name: field.apiName,\n type: typeToConcreteDataType(field.fieldType)\n }));\n return {\n type: \"struct\",\n struct: {\n fields\n }\n };\n }\n default:\n throw new Error(`Unknown property type: ${type.type}`);\n }\n}\n\n/**\n * Convert Type to BaseType for value type input shapes\n * TypeScript port of TypeToMarketplaceShapeBaseTypeVisitor\n */\nexport function typeToMarketplaceBaseType(type) {\n switch (type.type) {\n case \"array\":\n {\n const itemBaseType = typeToMarketplaceBaseType(type.array.subtype);\n if (itemBaseType.type === \"array\") {\n throw new Error(\"Nested array property types are not supported in marketplace\");\n }\n if (itemBaseType.type === \"structV2\") {\n throw new Error(\"Invalid base type: array of struct\");\n }\n if (itemBaseType.type !== \"primitive\") {\n throw new Error(\"Array item must be primitive base type\");\n }\n return {\n type: \"array\",\n array: {\n elementType: itemBaseType.primitive\n }\n };\n }\n case \"boolean\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"boolean\",\n boolean: VOID\n }\n };\n case \"byte\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"byte\",\n byte: VOID\n }\n };\n case \"date\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"date\",\n date: VOID\n }\n };\n case \"decimal\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"decimal\",\n decimal: VOID\n }\n };\n case \"double\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"double\",\n double: VOID\n }\n };\n case \"float\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"float\",\n float: VOID\n }\n };\n case \"geohash\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"geoshape\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"integer\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"integer\",\n integer: VOID\n }\n };\n case \"long\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"long\",\n long: VOID\n }\n };\n case \"short\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"short\",\n short: VOID\n }\n };\n case \"string\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"experimentalTimeDependentV1\":\n throw new Error(\"Unsupported type: timeDependent\");\n case \"timestamp\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"timestamp\",\n timestamp: VOID\n }\n };\n case \"attachment\":\n throw new Error(\"Unsupported type: attachment\");\n case \"marking\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"cipherText\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"string\",\n string: VOID\n }\n };\n case \"mediaReference\":\n throw new Error(\"Unsupported type: mediaReference\");\n case \"vector\":\n throw new Error(\"Unsupported type: vector\");\n case \"geotimeSeriesReference\":\n throw new Error(\"Unsupported type: geotimeSeriesReference\");\n case \"struct\":\n return {\n type: \"primitive\",\n primitive: {\n type: \"struct\",\n struct: VOID\n }\n };\n default:\n throw new Error(`Unknown property type: ${type.type}`);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Helper to create LocalizedTitleAndDescription with empty localizations\n */\nfunction createLocalizedAbout(fallbackTitle, fallbackDescription = \"\") {\n return {\n fallbackTitle,\n fallbackDescription,\n localizedTitle: {},\n localizedDescription: {}\n };\n}\n\n/**\n * TypeScript port of Java's LinkTypeShapeExtractor class\n */\nexport class LinkTypeShapeExtractor {\n /**\n * Extract shapes from a LinkType\n */\n extract(linkReadableId, link, ridGenerator) {\n const editsEnabled = link.entityMetadata?.arePatchesEnabled ?? false;\n const definition = link.linkType.definition;\n switch (definition.type) {\n case \"intermediary\":\n return this.extractIntermediary(linkReadableId, definition.intermediary, ridGenerator);\n case \"manyToMany\":\n return this.extractManyToMany(linkReadableId, definition.manyToMany, ridGenerator, link.datasources, editsEnabled);\n case \"oneToMany\":\n return this.extractOneToMany(linkReadableId, definition.oneToMany, ridGenerator);\n default:\n throw new Error(`Unknown link definition type: ${definition.type}`);\n }\n }\n\n /**\n * Extract one-to-many link shape\n */\n extractOneToMany(linkReadableId, linkDefinition, ridGenerator) {\n const outputShape = {\n about: createLocalizedAbout(linkDefinition.oneToManyLinkMetadata.displayMetadata.displayName),\n objectTypeShapeIdOneSide: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidOneSide),\n objectTypeShapeIdManySide: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidManySide),\n manyToOneLinkMetadata: createLocalizedAbout(linkDefinition.manyToOneLinkMetadata.displayMetadata.displayName),\n oneToManyLinkMetadata: createLocalizedAbout(linkDefinition.oneToManyLinkMetadata.displayMetadata.displayName),\n cardinalityHint: linkDefinition.cardinalityHint === \"ONE_TO_ONE\" ? \"ONE_TO_ONE\" : \"ONE_TO_MANY\"\n };\n return {\n inputShapes: new Map(),\n outputShapes: new Map([[linkReadableId, {\n type: \"linkType\",\n linkType: {\n type: \"oneToMany\",\n oneToMany: outputShape\n }\n }]]),\n inputShapeMetadata: new Map()\n };\n }\n\n /**\n * Extract many-to-many link shape\n */\n extractManyToMany(linkReadableId, linkDefinition, ridGenerator, dataSources, editsEnabled) {\n const linkTypeName = linkDefinition.objectTypeAToBLinkMetadata.displayMetadata.displayName;\n const outputShape = {\n about: createLocalizedAbout(linkTypeName),\n objectTypeAToBLinkMetadata: createLocalizedAbout(linkDefinition.objectTypeAToBLinkMetadata.displayMetadata.displayName),\n objectTypeBToALinkMetadata: createLocalizedAbout(linkDefinition.objectTypeBToALinkMetadata.displayMetadata.displayName),\n objectTypeShapeIdA: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidA),\n objectTypeShapeIdB: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidB),\n editsSupport: editsEnabled ? \"EDITS_ENABLED\" : \"EDITS_DISABLED\",\n objectsBackendVersion: \"V2\"\n };\n const datasetShapes = new Map();\n for (const datasource of dataSources) {\n const datasourceDefinition = datasource.datasource;\n let datasourceLocator;\n let columns;\n let datasourceType;\n if (datasourceDefinition.type === \"dataset\") {\n datasourceLocator = {\n type: \"dataset\",\n dataset: {\n rid: datasourceDefinition.dataset.datasetRid,\n branch: datasourceDefinition.dataset.branchId\n }\n };\n columns = new Set([...Object.values(datasourceDefinition.dataset.objectTypeAPrimaryKeyMapping).map(String), ...Object.values(datasourceDefinition.dataset.objectTypeBPrimaryKeyMapping).map(String)]);\n datasourceType = \"DATASET\";\n } else if (datasourceDefinition.type === \"stream\") {\n datasourceLocator = {\n type: \"stream\",\n stream: {\n rid: datasourceDefinition.stream.streamLocator.streamLocatorRid,\n branch: datasourceDefinition.stream.streamLocator.branchId\n }\n };\n columns = new Set([...Object.values(datasourceDefinition.stream.objectTypeAPrimaryKeyMapping).map(String), ...Object.values(datasourceDefinition.stream.objectTypeBPrimaryKeyMapping).map(String)]);\n datasourceType = \"STREAM\";\n } else {\n continue;\n }\n\n // Find datasource readable ID\n let datasourceReadableId;\n for (const [id, loc] of ridGenerator.getDatasourceLocators().entries()) {\n if (this.datasourceLocatorsMatch(loc, datasourceLocator)) {\n datasourceReadableId = id;\n break;\n }\n }\n if (!datasourceReadableId) continue;\n\n // Create column shapes\n const columnShapes = this.getColumnInputShapesForManyToManyDatasets(ridGenerator, columns, datasourceLocator, datasourceReadableId);\n for (const [id, shape] of columnShapes.entries()) {\n datasetShapes.set(id, shape);\n }\n\n // Create datasource shape\n const datasourceShape = this.getInputShapeForManyToManyDatasource(ridGenerator, linkTypeName, columns, datasourceLocator, datasourceType);\n datasetShapes.set(datasourceReadableId, datasourceShape);\n }\n return {\n inputShapes: datasetShapes,\n outputShapes: new Map([[linkReadableId, {\n type: \"linkType\",\n linkType: {\n type: \"manyToMany\",\n manyToMany: outputShape\n }\n }]]),\n inputShapeMetadata: new Map()\n };\n }\n\n /**\n * Extract intermediary link shape\n */\n extractIntermediary(linkReadableId, linkDefinition, ridGenerator) {\n const outputShape = {\n about: createLocalizedAbout(linkDefinition.objectTypeAToBLinkMetadata.displayMetadata.displayName),\n objectTypeAToBLinkMetadata: createLocalizedAbout(linkDefinition.objectTypeAToBLinkMetadata.displayMetadata.displayName),\n objectTypeBToALinkMetadata: createLocalizedAbout(linkDefinition.objectTypeBToALinkMetadata.displayMetadata.displayName),\n objectTypeAShapeId: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidA),\n objectTypeBShapeId: this.getObjectTypeShapeId(ridGenerator, linkDefinition.objectTypeRidB),\n intermediaryObjectTypeShapeId: this.getObjectTypeShapeId(ridGenerator, linkDefinition.intermediaryObjectTypeRid),\n aToIntermediaryLinkTypeShapeId: this.getLinkTypeShapeId(ridGenerator, linkDefinition.aToIntermediaryLinkTypeRid),\n intermediaryToBLinkTypeShapeId: this.getLinkTypeShapeId(ridGenerator, linkDefinition.intermediaryToBLinkTypeRid)\n };\n return {\n inputShapes: new Map(),\n outputShapes: new Map([[linkReadableId, {\n type: \"linkType\",\n linkType: {\n type: \"intermediary\",\n intermediary: outputShape\n }\n }]]),\n inputShapeMetadata: new Map()\n };\n }\n\n /**\n * Get object type shape ID reference\n */\n getObjectTypeShapeId(ridGenerator, objectTypeRid) {\n const readableId = ridGenerator.getObjectTypeRids().inverse().get(objectTypeRid);\n if (!readableId) {\n throw new Error(`Object type RID not found: ${objectTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n }\n\n /**\n * Get link type shape ID reference\n */\n getLinkTypeShapeId(ridGenerator, linkTypeRid) {\n const readableId = ridGenerator.getLinkTypeRids().inverse().get(linkTypeRid);\n if (!readableId) {\n throw new Error(`Object type RID not found: ${linkTypeRid}`);\n }\n return ridGenerator.toBlockInternalId(readableId);\n }\n\n /**\n * Get input shape for many-to-many datasource\n */\n getInputShapeForManyToManyDatasource(ridGenerator, linkTypeName, columns, datasourceLocator, datasourceType) {\n const columnReferences = [];\n for (const column of columns) {\n for (const [id, shape] of ridGenerator.getColumnShapes().entries()) {\n if (this.datasourceLocatorsMatch(shape.datasource, datasourceLocator) && shape.name === column) {\n columnReferences.push(id);\n break;\n }\n }\n }\n const shape = {\n about: createLocalizedAbout(linkTypeName),\n schema: columnReferences,\n supportedTypes: [datasourceType]\n };\n return {\n type: \"tabularDatasource\",\n tabularDatasource: shape\n };\n }\n\n /**\n * Get column input shapes for many-to-many datasets\n */\n getColumnInputShapesForManyToManyDatasets(ridGenerator, columns, datasourceLocator, datasourceReadableId) {\n const columnShapes = new Map();\n for (const column of columns) {\n for (const [id, shape] of ridGenerator.getColumnShapes().entries()) {\n if (this.datasourceLocatorsMatch(shape.datasource, datasourceLocator) && shape.name === column) {\n const columnShape = {\n about: createLocalizedAbout(column),\n type: {\n type: \"generic\",\n generic: {\n type: \"any\",\n any: {}\n }\n },\n datasource: datasourceReadableId,\n typeclasses: []\n };\n columnShapes.set(id, {\n type: \"datasourceColumn\",\n datasourceColumn: columnShape\n });\n break;\n }\n }\n }\n return columnShapes;\n }\n\n /**\n * Helper to compare datasource locators\n */\n datasourceLocatorsMatch(a, b) {\n if (a.type !== b.type) return false;\n if (a.type === \"dataset\" && b.type === \"dataset\") {\n return a.dataset.rid === b.dataset.rid && a.dataset.branch === b.dataset.branch;\n }\n if (a.type === \"stream\" && b.type === \"stream\") {\n return a.stream.rid === b.stream.rid && a.stream.branch === b.stream.branch;\n }\n if (a.type === \"restrictedView\" && b.type === \"restrictedView\") {\n return a.restrictedView.rid === b.restrictedView.rid;\n }\n return false;\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { typeToConcreteDataType, typeToMarketplaceBaseType, typeToMarketplaceObjectPropertyType } from \"../typeVisitors.js\";\n\n/**\n * Helper to create LocalizedTitleAndDescription with empty localizations\n */\nfunction createLocalizedAbout(fallbackTitle, fallbackDescription) {\n return {\n fallbackTitle,\n fallbackDescription,\n localizedTitle: {},\n localizedDescription: {}\n };\n}\n\n/**\n * TypeScript port of Java's ObjectTypeShapeExtractor class\n */\nexport class ObjectTypeShapeExtractor {\n constructor(randomnessKey) {\n this.randomnessKey = randomnessKey;\n }\n\n /**\n * Extract shapes from an ObjectType\n */\n extract(objectReadableId, objectType, ridGenerator) {\n // BiMap inverse() returns BiMap<V,K> so we convert to Map<K,V>\n const propertyReadableIdsByRid = ridGenerator.getPropertyTypeRids().inverse();\n const readableIdsForSptRid = ridGenerator.getSharedPropertyTypeRids().inverse();\n\n // Build property output shapes\n const propertyOutputShapeMap = new Map();\n for (const [propertyRid, propertyType] of Object.entries(objectType.objectType.propertyTypes)) {\n const readableId = propertyReadableIdsByRid.get(propertyRid);\n if (readableId) {\n propertyOutputShapeMap.set(readableId, this.getShapeForProperty(objectReadableId, propertyType, readableIdsForSptRid.asMap(), ridGenerator));\n }\n }\n const datasourcesByReadableId = ridGenerator.getDatasourceLocators().asMap();\n const filesDatasourcesByReadableId = ridGenerator.getFilesDatasourceLocators();\n const geotimeSeriesIntegrationRidByReadableId = new Map(Array.from(ridGenerator.getGeotimeSeriesIntegrationRids().entries()));\n const timeSeriesSyncRidByReadableId = ridGenerator.getTimeSeriesSyncs();\n const propertyTypes = new Map();\n for (const [rid, propertyType] of Object.entries(objectType.objectType.propertyTypes)) {\n propertyTypes.set(rid, propertyType.type);\n }\n const columnShapes = ridGenerator.getColumnShapes().asMap();\n\n // Build object type output shape\n const objectTypeOutputShape = {\n about: createLocalizedAbout(objectType.objectType.displayMetadata.displayName, objectType.objectType.displayMetadata.description ?? \"\"),\n editsSupport: objectType.entityMetadata?.arePatchesEnabled ? \"EDITS_ENABLED\" : \"EDITS_DISABLED\",\n objectsBackendVersion: \"V2\",\n propertyTypes: Array.from(propertyOutputShapeMap.keys()).map(val => ridGenerator.toBlockInternalId(val))\n };\n const blockShapes = {\n inputShapes: new Map(),\n outputShapes: new Map(),\n inputShapeMetadata: new Map()\n };\n\n // Add property output shapes\n for (const [readableId, propertyShape] of Array.from(propertyOutputShapeMap.entries())) {\n blockShapes.outputShapes.set(readableId, {\n type: \"property\",\n property: propertyShape\n });\n }\n\n // Add object type output shape\n blockShapes.outputShapes.set(objectReadableId, {\n type: \"objectType\",\n objectType: objectTypeOutputShape\n });\n\n // Extract shapes from datasources\n for (const ds of objectType.datasources) {\n const dsShapes = this.getShapesFromDatasource(ds, datasourcesByReadableId, filesDatasourcesByReadableId, geotimeSeriesIntegrationRidByReadableId, propertyTypes, propertyReadableIdsByRid.asMap(), propertyOutputShapeMap, timeSeriesSyncRidByReadableId, columnShapes, ridGenerator);\n for (const [id, shape] of Array.from(dsShapes.entries())) {\n blockShapes.inputShapes.set(id, shape);\n }\n }\n\n // Extract value type input shapes if present\n for (const propertyType of Object.values(objectType.objectType.propertyTypes)) {\n this.extractValueTypeInputShapeIfPresent(propertyType.valueType, propertyType.displayMetadata.displayName, propertyType.type, blockShapes, ridGenerator);\n }\n return blockShapes;\n }\n getShapeForProperty(objectBlockShapeId, propertyType, readableIdsForSptRid, ridGenerator) {\n const shape = {\n about: createLocalizedAbout(propertyType.displayMetadata.displayName, propertyType.displayMetadata.description ?? \"\"),\n type: this.convertPropertyTypeToMarketplaceType(propertyType.type),\n objectType: ridGenerator.toBlockInternalId(objectBlockShapeId)\n };\n if (propertyType.sharedPropertyTypeRid) {\n const sptReadableId = readableIdsForSptRid.get(propertyType.sharedPropertyTypeRid);\n if (sptReadableId) {\n shape.sharedPropertyType = ridGenerator.toBlockInternalId(sptReadableId);\n }\n }\n return shape;\n }\n getShapesFromDatasource(datasource, datasourcesByReadableId, filesDatasourcesByReadableId, geotimeSeriesIntegrationRidByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, timeSeriesSyncRidByReadableId, columnReadableIds, ridGenerator) {\n const dsDefinition = datasource.datasource;\n switch (dsDefinition.type) {\n case \"dataset\":\n return new Map();\n // Not implemented in original\n case \"datasetV2\":\n return this.getShapesFromDataset(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.datasetV2.datasetRid, dsDefinition.datasetV2.branchId, dsDefinition.datasetV2.propertyMapping, ridGenerator);\n case \"datasetV3\":\n return this.getShapesFromDataset(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.datasetV3.datasetRid, dsDefinition.datasetV3.branchId, dsDefinition.datasetV3.propertyMapping, ridGenerator);\n case \"derived\":\n return new Map();\n // Empty per original\n case \"direct\":\n return new Map();\n case \"editsOnly\":\n return new Map();\n case \"geotimeSeries\":\n return this.getShapesFromGeotimeSeriesIntegration(geotimeSeriesIntegrationRidByReadableId, dsDefinition.geotimeSeries.geotimeSeriesIntegrationRid);\n case \"media\":\n return new Map();\n case \"mediaSetView\":\n return this.getShapesFromMediaSetView(filesDatasourcesByReadableId, dsDefinition.mediaSetView.mediaSetViewLocator);\n case \"restrictedStream\":\n return new Map();\n case \"restrictedView\":\n return new Map();\n case \"restrictedViewV2\":\n return this.getShapesFromRestrictedView(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.restrictedViewV2.restrictedViewRid, dsDefinition.restrictedViewV2.propertyMapping, ridGenerator);\n case \"stream\":\n return this.getShapesFromStream(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.stream.streamLocator.streamLocatorRid, dsDefinition.stream.streamLocator.branchId, dsDefinition.stream.propertyMapping, ridGenerator);\n case \"streamV2\":\n return this.getShapesFromStream(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.streamV2.streamLocator.streamLocatorRid, dsDefinition.streamV2.streamLocator.branchId, dsDefinition.streamV2.propertyMapping, ridGenerator);\n case \"streamV3\":\n const mapping = new Map();\n for (const [rid, info] of Object.entries(dsDefinition.streamV3.propertyMapping)) {\n mapping.set(rid, this.getColumnNameFromPropertyTypeMappingInfo(info));\n }\n return this.getShapesFromStream(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, dsDefinition.streamV3.streamLocator.streamLocatorRid, dsDefinition.streamV3.streamLocator.branchId, mapping, ridGenerator);\n case \"table\":\n return new Map();\n case \"timeSeries\":\n return this.getShapesFromTimeSeriesSync(timeSeriesSyncRidByReadableId, propertyTypes, dsDefinition.timeSeries.properties, dsDefinition.timeSeries.timeSeriesSyncRid);\n default:\n return new Map();\n }\n }\n getShapesFromGeotimeSeriesIntegration(geotimeSeriesIntegrationRidByReadableId, geotimeSeriesIntegrationRid) {\n let readableId;\n for (const [id, rid] of geotimeSeriesIntegrationRidByReadableId.entries()) {\n if (rid === geotimeSeriesIntegrationRid) {\n readableId = id;\n break;\n }\n }\n if (!readableId) return new Map();\n const shape = {\n about: createLocalizedAbout(readableId, \"\")\n };\n return new Map([[readableId, {\n type: \"geotimeSeriesIntegration\",\n geotimeSeriesIntegration: shape\n }]]);\n }\n getShapesFromMediaSetView(filesDatasourcesByReadableId, mediaSetViewLocator // MediaSetViewLocator from OMS types\n ) {\n // Find the matching files datasource by comparing mediaSetRid\n let readableId;\n for (const [id, locator] of filesDatasourcesByReadableId.entries()) {\n if (locator.type === \"mediaSet\" && locator.mediaSet.rid === mediaSetViewLocator.mediaSetRid) {\n readableId = id;\n break;\n }\n }\n if (!readableId) return new Map();\n const shape = {\n about: createLocalizedAbout(readableId, \"\"),\n supportedTypes: [{\n type: \"mediaSet\",\n mediaSet: {\n pathPolicy: {\n type: \"any\",\n any: {}\n },\n mediaSchema: {\n type: \"any\",\n any: {}\n }\n }\n }]\n };\n return new Map([[readableId, {\n type: \"filesDatasource\",\n filesDatasource: shape\n }]]);\n }\n getShapesFromTimeSeriesSync(timeSeriesSyncRidByReadableId, propertyTypes, propertyTypeRids, timeSeriesSyncRid) {\n const readableId = timeSeriesSyncRidByReadableId.inverse().get(timeSeriesSyncRid);\n if (!readableId) return new Map();\n const timeSeriesSyncTypes = new Set(propertyTypeRids.map(rid => {\n const type = propertyTypes.get(rid);\n return type ? this.getTimeSeriesSyncType(type) : undefined;\n }).filter(t => t !== undefined));\n if (timeSeriesSyncTypes.size !== 1) {\n throw new Error(\"Invalid time series types\");\n }\n const syncType = Array.from(timeSeriesSyncTypes)[0];\n const shape = {\n about: createLocalizedAbout(readableId, \"\"),\n type: syncType\n };\n return new Map([[readableId, {\n type: \"timeSeriesSync\",\n timeSeriesSync: shape\n }]]);\n }\n getShapesFromStream(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, streamLocatorRid, branchId, propertyMapping, ridGenerator) {\n const streamLocator = {\n type: \"stream\",\n stream: {\n rid: streamLocatorRid,\n branch: branchId\n }\n };\n let datasourceReadableId;\n for (const [id, loc] of datasourcesByReadableId.entries()) {\n if (loc.type === \"stream\" && loc.stream.rid === streamLocator.stream.rid) {\n datasourceReadableId = id;\n break;\n }\n }\n if (!datasourceReadableId) return new Map();\n const propertyMappingMap = propertyMapping instanceof Map ? propertyMapping : new Map(Object.entries(propertyMapping));\n const columnShapes = this.getColumnShapes(streamLocator, columnReadableIds, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, datasourceReadableId, propertyMappingMap, ridGenerator, val => typeof val === \"string\" ? val : val);\n const datasourceInputShape = {\n about: createLocalizedAbout(datasourceReadableId, \"\"),\n supportedTypes: [\"STREAM\"],\n schema: Array.from(columnShapes.keys()).map(id => ridGenerator.toBlockInternalId(id))\n };\n const result = new Map([[datasourceReadableId, {\n type: \"tabularDatasource\",\n tabularDatasource: datasourceInputShape\n }]]);\n for (const [id, colShape] of columnShapes.entries()) {\n result.set(id, {\n type: \"datasourceColumn\",\n datasourceColumn: colShape\n });\n }\n return result;\n }\n getShapesFromDataset(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, datasetRid, branchId, propertyMapping, ridGenerator) {\n const datasourceLocator = {\n type: \"dataset\",\n dataset: {\n rid: datasetRid,\n branch: branchId\n }\n };\n let datasourceReadableId;\n for (const [id, loc] of datasourcesByReadableId.entries()) {\n if (loc.type === \"dataset\" && loc.dataset.rid === datasourceLocator.dataset.rid) {\n datasourceReadableId = id;\n break;\n }\n }\n if (!datasourceReadableId) return new Map();\n const propertyMappingMap = new Map(Object.entries(propertyMapping));\n const columnShapes = this.getColumnShapes(datasourceLocator, columnReadableIds, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, datasourceReadableId, propertyMappingMap, ridGenerator, val => {\n if (val.type === \"column\") return val.column;\n if (val.type === \"struct\") return val.struct.column;\n throw new Error(\"Error extracting column shapes\");\n });\n const datasourceInputShape = {\n about: createLocalizedAbout(datasourceReadableId, \"\"),\n supportedTypes: [\"DATASET\", \"RESTRICTED_VIEW\"],\n schema: Array.from(columnShapes.keys()).map(id => ridGenerator.toBlockInternalId(id))\n };\n const result = new Map([[datasourceReadableId, {\n type: \"tabularDatasource\",\n tabularDatasource: datasourceInputShape\n }]]);\n for (const [id, colShape] of Array.from(columnShapes.entries())) {\n result.set(id, {\n type: \"datasourceColumn\",\n datasourceColumn: colShape\n });\n }\n return result;\n }\n getShapesFromRestrictedView(datasourcesByReadableId, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, columnReadableIds, restrictedViewRid, propertyMapping, ridGenerator) {\n const datasourceLocator = {\n type: \"restrictedView\",\n restrictedView: {\n rid: restrictedViewRid\n }\n };\n let datasourceReadableId;\n for (const [id, loc] of datasourcesByReadableId.entries()) {\n if (loc.type === \"restrictedView\" && loc.restrictedView.rid === datasourceLocator.restrictedView.rid) {\n datasourceReadableId = id;\n break;\n }\n }\n if (!datasourceReadableId) return new Map();\n const propertyMappingMap = new Map(Object.entries(propertyMapping));\n const columnShapes = this.getColumnShapes(datasourceLocator, columnReadableIds, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, datasourceReadableId, propertyMappingMap, ridGenerator, val => {\n if (val.type === \"column\") return val.column;\n if (val.type === \"struct\") return val.struct.column;\n throw new Error(\"Error extracting column shapes\");\n });\n const datasourceInputShape = {\n about: createLocalizedAbout(datasourceReadableId, \"\"),\n supportedTypes: [\"RESTRICTED_VIEW\"],\n schema: Array.from(columnShapes.keys()).map(id => ridGenerator.toBlockInternalId(id))\n };\n const result = new Map([[datasourceReadableId, {\n type: \"tabularDatasource\",\n tabularDatasource: datasourceInputShape\n }]]);\n for (const [id, colShape] of Array.from(columnShapes.entries())) {\n result.set(id, {\n type: \"datasourceColumn\",\n datasourceColumn: colShape\n });\n }\n return result;\n }\n getColumnShapes(datasourceLocator, columnReadableIds, propertyTypes, propertyReadableIdsByRid, propertyOutputShapeMap, datasourceReadableId, columns, ridGenerator, columnNameGetter) {\n const result = new Map();\n for (const [propertyTypeRid, value] of Array.from(columns.entries())) {\n const propertyReadableId = propertyReadableIdsByRid.get(propertyTypeRid);\n if (!propertyReadableId) continue;\n const propertyOutputShape = propertyOutputShapeMap.get(propertyReadableId);\n if (!propertyOutputShape) continue;\n const resolvedShape = {\n datasource: datasourceLocator,\n name: columnNameGetter(value)\n };\n let columnReadableId;\n for (const [id, shape] of columnReadableIds.entries()) {\n if (shape.name === resolvedShape.name && this.datasourceLocatorsMatch(shape.datasource, resolvedShape.datasource)) {\n columnReadableId = id;\n break;\n }\n }\n if (!columnReadableId) continue;\n const propertyType = propertyTypes.get(propertyTypeRid);\n if (!propertyType) continue;\n const columnShape = {\n about: createLocalizedAbout(propertyOutputShape.about.fallbackTitle, \"\"),\n type: {\n type: \"concrete\",\n concrete: this.typeToConcreteDataType(propertyType)\n },\n datasource: ridGenerator.toBlockInternalId(datasourceReadableId),\n typeclasses: []\n };\n result.set(columnReadableId, columnShape);\n }\n return result;\n }\n getColumnNameFromPropertyTypeMappingInfo(info) {\n if (info.type === \"column\") return info.column;\n if (info.type === \"struct\") return info.struct.column;\n throw new Error(\"Edits not supported yet\");\n }\n extractValueTypeInputShapeIfPresent(valueTypeReference, displayName, type, blockShapes, ridGenerator) {\n if (!valueTypeReference) return;\n const valueTypeInput = {\n type: \"valueType\",\n valueType: {\n about: createLocalizedAbout(`Value Type Input for ${displayName}`, \"\"),\n baseType: typeToMarketplaceBaseType(type)\n }\n };\n const mappingEntry = ridGenerator.valueTypeMappingForReference(valueTypeReference);\n blockShapes.inputShapes.set(mappingEntry.input, valueTypeInput);\n }\n getTimeSeriesSyncType(type) {\n if (type.type !== \"experimentalTimeDependentV1\") return undefined;\n const metadata = type.experimentalTimeDependentV1.seriesValueMetadata;\n const isNumeric = metadata.type === \"numeric\";\n return isNumeric ? \"NUMERIC\" : \"CATEGORICAL\";\n }\n convertPropertyTypeToMarketplaceType(type) {\n return typeToMarketplaceObjectPropertyType(type);\n }\n typeToConcreteDataType(type) {\n return typeToConcreteDataType(type);\n }\n datasourceLocatorsMatch(a, b) {\n if (a.type !== b.type) return false;\n switch (a.type) {\n case \"dataset\":\n return b.type === \"dataset\" && a.dataset.rid === b.dataset.rid && a.dataset.branch === b.dataset.branch;\n case \"stream\":\n return b.type === \"stream\" && a.stream.rid === b.stream.rid && a.stream.branch === b.stream.branch;\n case \"restrictedView\":\n return b.type === \"restrictedView\" && a.restrictedView.rid === b.restrictedView.rid;\n default:\n return false;\n }\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReadableIdGenerator } from \"../../../util/generateRid.js\";\nimport { typeToMarketplaceBaseType, typeToMarketplaceObjectPropertyType } from \"../typeVisitors.js\";\nimport { LinkTypeShapeExtractor } from \"./LinkTypeShapeExtractor.js\";\nimport { ObjectTypeShapeExtractor } from \"./ObjectTypeShapeExtractor.js\";\nexport const MIGRATION_SHAPE_READABLE_ID = \"migration-input\";\n\n/**\n * Helper to create LocalizedTitleAndDescription with empty localizations\n */\nfunction createLocalizedAbout(fallbackTitle, fallbackDescription) {\n return {\n fallbackTitle,\n fallbackDescription,\n localizedTitle: {},\n localizedDescription: {}\n };\n}\n\n/**\n * Main entry point for extracting all shapes from an ontology\n */\nexport async function getShapes(ontologyBlockDataV2, ridGenerator, randomnessKey) {\n const allBlockShapes = {\n inputShapes: new Map(),\n outputShapes: new Map(),\n inputShapeMetadata: new Map()\n };\n const outputSharedPropertyTypeRids = new Set(Object.keys(ontologyBlockDataV2.sharedPropertyTypes));\n\n // Interfaces\n for (const [_rid, interfaceType] of Object.entries(ontologyBlockDataV2.interfaceTypes)) {\n extractInterfaceType(allBlockShapes.outputShapes, allBlockShapes.inputShapes, ontologyBlockDataV2.knownIdentifiers, outputSharedPropertyTypeRids, interfaceType.interfaceType, ridGenerator);\n }\n // Shared Property Types\n for (const [_rid, sharedPropertyTypeBlock] of Object.entries(ontologyBlockDataV2.sharedPropertyTypes)) {\n extractSharedPropertyType(allBlockShapes, sharedPropertyTypeBlock.sharedPropertyType, ridGenerator);\n }\n\n // Objects\n const objectReadableIds = ridGenerator.getObjectTypeRids().inverse();\n for (const [rid, objectType] of Object.entries(ontologyBlockDataV2.objectTypes)) {\n const readableId = objectReadableIds.get(rid);\n if (readableId) {\n const objectExtractor = new ObjectTypeShapeExtractor(randomnessKey);\n const objectShapes = objectExtractor.extract(readableId, objectType, ridGenerator);\n consumeBlockShapes(allBlockShapes, objectShapes);\n }\n }\n\n // Marking shapes\n const markingShapes = getMarkingShapes(ontologyBlockDataV2, ridGenerator);\n consumeBlockShapes(allBlockShapes, markingShapes);\n\n // Links\n const linkReadableIds = ridGenerator.getLinkTypeRids().inverse();\n for (const [rid, linkType] of Object.entries(ontologyBlockDataV2.linkTypes)) {\n const readableId = linkReadableIds.get(rid);\n if (readableId) {\n const linkExtractor = new LinkTypeShapeExtractor();\n const linkShapes = linkExtractor.extract(readableId, linkType, ridGenerator);\n consumeBlockShapes(allBlockShapes, linkShapes);\n }\n }\n\n // Actions\n const {\n ActionTypeShapeExtractor\n } = await import(\"./ActionTypeShapeExtractor.js\");\n for (const [_rid, actionType] of Object.entries(ontologyBlockDataV2.actionTypes || {})) {\n const actionExtractor = new ActionTypeShapeExtractor();\n const actionShapes = actionExtractor.extract(actionType, ridGenerator, ontologyBlockDataV2.knownIdentifiers);\n consumeBlockShapes(allBlockShapes, actionShapes);\n }\n\n // Multipass groups\n for (const [readableId, groupId] of ridGenerator.getGroupIds().entries()) {\n const groupShapes = extractMultipassGroup(groupId, readableId);\n consumeBlockShapes(allBlockShapes, groupShapes);\n }\n\n // Migration shape\n const migrationShapes = getMigrationShape();\n consumeBlockShapes(allBlockShapes, migrationShapes);\n return allBlockShapes;\n}\n\n/**\n * Extract interface type shapes\n */\nfunction extractInterfaceType(outputShapeMap, inputShapeMap, knownMarketplaceIdentifiers, outputSharedPropertyTypeRids, interfaceType, ridGenerator) {\n const interfaceReadableId = getReadableIdForInterface(interfaceType.apiName);\n // Build propertiesV2 from propertiesV3 entries\n const propertiesV2 = [];\n for (const [propertyRid, _property] of Object.entries(interfaceType.propertiesV3 ?? {})) {\n const readableId = ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid);\n if (readableId) {\n propertiesV2.push(ridGenerator.toBlockInternalId(readableId));\n }\n }\n\n // Build interface type output shape\n const interfaceTypeOutputShape = {\n about: createLocalizedAbout(interfaceType.displayMetadata.displayName, interfaceType.displayMetadata.description ?? \"\"),\n properties: (interfaceType.properties ?? []).map(spt => {\n const sptId = knownMarketplaceIdentifiers.sharedPropertyTypes?.[spt.rid];\n return sptId ?? spt.rid;\n }),\n propertiesV2,\n links: (interfaceType.links ?? []).map(ilt => {\n const iltId = knownMarketplaceIdentifiers.interfaceLinkTypes?.[ilt.rid];\n return iltId ?? ilt.rid;\n }),\n extendsInterfaces: (interfaceType.extendsInterfaces ?? []).map(it => {\n const itId = knownMarketplaceIdentifiers.interfaceTypes?.[it];\n return itId ?? it;\n })\n };\n\n // Add shared property type input shapes for properties not in output\n for (const [propertyRid, property] of Object.entries(interfaceType.propertiesV3) ?? []) {\n if (property.type === \"sharedPropertyBasedPropertyType\" && !outputSharedPropertyTypeRids.has(property.sharedPropertyBasedPropertyType.sharedPropertyType.rid)) {\n const spt = property.sharedPropertyBasedPropertyType.sharedPropertyType;\n const sptReadableId = getReadableIdForSpt(spt.apiName);\n const sharedPropInputShape = {\n about: getTitleAndDescriptionForSharedPropertyType(spt),\n type: {\n type: \"objectPropertyType\",\n objectPropertyType: typeToMarketplaceObjectPropertyType(spt.type)\n }\n };\n inputShapeMap.set(sptReadableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: sharedPropInputShape\n });\n } else if (property.type === \"interfaceDefinedPropertyType\") {\n outputShapeMap.set(ridGenerator.getInterfacePropertyTypeRids().inverse().get(propertyRid), {\n type: \"interfacePropertyType\",\n interfacePropertyType: {\n type: typeToMarketplaceObjectPropertyType(property.interfaceDefinedPropertyType.type),\n about: {\n fallbackTitle: property.interfaceDefinedPropertyType.displayMetadata.displayName,\n fallbackDescription: property.interfaceDefinedPropertyType.displayMetadata.description ?? \"\",\n localizedDescription: {},\n localizedTitle: {}\n },\n interfaceType: ridGenerator.toBlockInternalId(interfaceReadableId),\n requireImplementation: property.interfaceDefinedPropertyType.constraints.requireImplementation\n }\n });\n }\n }\n\n // Add interface link type output shapes\n for (const interfaceLinkType of interfaceType.links ?? []) {\n const outputShape = getInterfaceLinkTypeOutputShape(knownMarketplaceIdentifiers, interfaceType, interfaceLinkType, ridGenerator);\n outputShapeMap.set(outputShape.id, outputShape.outputShape);\n }\n\n // Add interface type output shape\n outputShapeMap.set(interfaceReadableId, {\n type: \"interfaceType\",\n interfaceType: interfaceTypeOutputShape\n });\n}\n\n/**\n * Get interface link type output shape\n */\nfunction getInterfaceLinkTypeOutputShape(knownMarketplaceIdentifiers, interfaceType, interfaceLinkType, ridGenerator) {\n // Build linked entity type reference\n const interfaceRidOrUndefined = interfaceLinkType.linkedEntityTypeId.type === \"interfaceType\" ? interfaceLinkType.linkedEntityTypeId.interfaceType : undefined;\n if (!interfaceRidOrUndefined) {\n throw new Error(\"Object link references not implemented\");\n }\n const linkedEntityTypeRef = ridGenerator.toBlockInternalId(ridGenerator.getInterfaceRids().inverse().get(interfaceRidOrUndefined));\n\n // Map cardinality\n const cardinality = interfaceLinkType.cardinality === \"SINGLE\" ? \"SINGLE\" : \"MANY\";\n const shape = {\n about: createLocalizedAbout(interfaceLinkType.metadata.displayName, interfaceLinkType.metadata.description),\n interfaceType: knownMarketplaceIdentifiers.interfaceTypes?.[interfaceType.rid] ?? interfaceType.rid,\n linkedEntityType: {\n type: \"interfaceType\",\n interfaceType: linkedEntityTypeRef\n },\n cardinality,\n required: interfaceLinkType.required\n };\n const readableId = getReadableIdForInterfaceLink(interfaceType.apiName, interfaceLinkType.metadata.apiName);\n return {\n id: readableId,\n outputShape: {\n type: \"interfaceLinkType\",\n interfaceLinkType: shape\n }\n };\n}\n\n/**\n * Extract shared property type shapes\n */\nfunction extractSharedPropertyType(blockShapes, sharedPropertyType, ridGenerator) {\n const readableId = getReadableIdForSpt(sharedPropertyType.apiName);\n const propertyType = typeToMarketplaceObjectPropertyType(sharedPropertyType.type);\n const outputShape = {\n about: getTitleAndDescriptionForSharedPropertyType(sharedPropertyType),\n type: propertyType\n };\n blockShapes.outputShapes.set(readableId, {\n type: \"sharedPropertyType\",\n sharedPropertyType: outputShape\n });\n extractValueTypeInputShapeIfPresent(sharedPropertyType.valueType ?? undefined, sharedPropertyType.displayMetadata.displayName, sharedPropertyType.type, blockShapes, ridGenerator);\n}\n\n/**\n * Extract value type input shape if present\n */\nexport function extractValueTypeInputShapeIfPresent(maybeValueTypeReference, displayName, type, blockShapes, ridGenerator) {\n if (!maybeValueTypeReference) return;\n const valueTypeInput = {\n type: \"valueType\",\n valueType: {\n about: createLocalizedAbout(`Value Type Input for ${displayName}`, \"\"),\n baseType: typeToMarketplaceBaseType(type)\n }\n };\n const mappingEntry = ridGenerator.valueTypeMappingForReference(maybeValueTypeReference);\n blockShapes.inputShapes.set(mappingEntry.input, valueTypeInput);\n}\n\n/**\n * Get title and description for shared property type\n */\nfunction getTitleAndDescriptionForSharedPropertyType(sharedPropertyType) {\n return createLocalizedAbout(sharedPropertyType.displayMetadata.displayName, sharedPropertyType.displayMetadata.description ?? \"Shared Property Type\");\n}\n\n/**\n * Extract multipass group shape\n */\nfunction extractMultipassGroup(groupId, readableId) {\n const multipassGroup = {\n about: createLocalizedAbout(`Group ${groupId}`, \"\")\n };\n return {\n inputShapes: new Map([[readableId, {\n type: \"multipassGroup\",\n multipassGroup\n }]]),\n outputShapes: new Map(),\n inputShapeMetadata: new Map()\n };\n}\n\n/**\n * Get migration shape\n */\nfunction getMigrationShape() {\n const migrationShape = {\n about: createLocalizedAbout(\"Allow Ontology schema migrations\", \"Required user acknowledgement for any breaking schema change that requires an Ontology schema migration.\")\n };\n return {\n inputShapes: new Map([[MIGRATION_SHAPE_READABLE_ID, {\n type: \"allowOntologySchemaMigrations\",\n allowOntologySchemaMigrations: migrationShape\n }]]),\n outputShapes: new Map(),\n inputShapeMetadata: new Map([[MIGRATION_SHAPE_READABLE_ID, {\n isOptional: true,\n isAccessedInReconcile: false\n }]])\n };\n}\nconst MAX_CLASS_DESC = \"The maximum classification for data under mandatory control property types and/or the max classification\" + \" allowed on an action type classification parameter.\";\n\n/**\n * Get properties for a datasource definition (keys of propertyMapping).\n */\nfunction getPropertiesForDatasource(datasourceDef) {\n const dsType = datasourceDef.type;\n let propertyMapping;\n switch (dsType) {\n case \"dataset\":\n propertyMapping = datasourceDef.dataset?.propertyMapping;\n break;\n case \"datasetV2\":\n propertyMapping = datasourceDef.datasetV2?.propertyMapping;\n break;\n case \"datasetV3\":\n propertyMapping = datasourceDef.datasetV3?.propertyMapping;\n break;\n case \"restrictedView\":\n propertyMapping = datasourceDef.restrictedView?.propertyMapping;\n break;\n case \"restrictedViewV2\":\n propertyMapping = datasourceDef.restrictedViewV2?.propertyMapping;\n break;\n case \"stream\":\n propertyMapping = datasourceDef.stream?.propertyMapping;\n break;\n case \"streamV2\":\n propertyMapping = datasourceDef.streamV2?.propertyMapping;\n break;\n case \"streamV3\":\n propertyMapping = datasourceDef.streamV3?.propertyMapping;\n break;\n default:\n return new Set();\n }\n return new Set(propertyMapping ? Object.keys(propertyMapping) : []);\n}\n\n/**\n * Extract marking shapes from the ontology block data.\n * Port of Java's MarkingShapeExtractor.getMarkingShapes().\n */\nfunction getMarkingShapes(ontologyBlockDataV2, ridGenerator) {\n // Collect CBAC and mandatory marking constraints across all object types\n const cbacMarkingsAndAffectedProps = new Map();\n const mandatoryMarkingsAndAffectedProps = new Map();\n // CBAC markings from additionalMandatory.markings in property security groups\n const additionalCbacMarkingsAndAffectedProps = new Map();\n for (const objectType of Object.values(ontologyBlockDataV2.objectTypes)) {\n const objectApiName = objectType.objectType.apiName ?? \"\";\n\n // Identify CBAC and mandatory marking properties by PropertyTypeRid\n const cbacReadableIdsByRid = new Map();\n const mandatoryReadableIdsByRid = new Map();\n for (const [propertyRid, propertyType] of Object.entries(objectType.objectType.propertyTypes)) {\n if (propertyType.type.type === \"marking\") {\n const markingData = propertyType.type.marking;\n const markingType = markingData?.markingType;\n const propertyApiName = propertyType.apiName ?? propertyType.displayMetadata?.displayName;\n if (propertyApiName) {\n const readableId = ReadableIdGenerator.getForObjectProperty(objectApiName, propertyApiName);\n if (markingType === \"CBAC\") {\n cbacReadableIdsByRid.set(propertyRid, readableId);\n } else if (markingType === \"MANDATORY\") {\n mandatoryReadableIdsByRid.set(propertyRid, readableId);\n }\n }\n }\n }\n\n // For each datasource, extract marking constraints\n for (const ds of objectType.datasources) {\n const propertiesForDs = getPropertiesForDatasource(ds.datasource);\n\n // Find CBAC and mandatory props affected by this datasource\n const cbacPropsAffected = new Set();\n for (const rid of cbacReadableIdsByRid.keys()) {\n if (propertiesForDs.has(rid)) {\n cbacPropsAffected.add(rid);\n }\n }\n const mandatoryPropsAffected = new Set();\n for (const rid of mandatoryReadableIdsByRid.keys()) {\n if (propertiesForDs.has(rid)) {\n mandatoryPropsAffected.add(rid);\n }\n }\n if (cbacPropsAffected.size === 0 && mandatoryPropsAffected.size === 0) {\n continue;\n }\n const dataSecurity = ds.dataSecurity;\n if (!dataSecurity) continue;\n if (cbacPropsAffected.size > 0 && dataSecurity.classificationConstraint) {\n const markings = dataSecurity.classificationConstraint.markings ?? [];\n const markingId = markings[0];\n if (markingId) {\n const existing = cbacMarkingsAndAffectedProps.get(markingId) ?? new Set();\n for (const rid of cbacPropsAffected) {\n const readableId = cbacReadableIdsByRid.get(rid);\n if (readableId) existing.add(readableId);\n }\n cbacMarkingsAndAffectedProps.set(markingId, existing);\n }\n }\n if (mandatoryPropsAffected.size > 0 && dataSecurity.markingConstraint) {\n const markingIds = dataSecurity.markingConstraint.markingIds ?? [];\n const markingId = markingIds[0];\n if (markingId) {\n const existing = mandatoryMarkingsAndAffectedProps.get(markingId) ?? new Set();\n for (const rid of mandatoryPropsAffected) {\n const readableId = mandatoryReadableIdsByRid.get(rid);\n if (readableId) existing.add(readableId);\n }\n mandatoryMarkingsAndAffectedProps.set(markingId, existing);\n }\n }\n\n // Extract CBAC markings from additionalMandatory.markings in property security groups\n const dsDef = ds.datasource;\n const innerDef = dsDef[dsDef.type];\n const groups = innerDef?.propertySecurityGroups?.groups ?? [];\n for (const group of groups) {\n const additionalMarkings = group.security?.granular?.viewPolicy?.additionalMandatory?.markings ?? [];\n if (additionalMarkings.length === 0) continue;\n const groupPropertyRids = group.properties ?? [];\n for (const markingId of additionalMarkings) {\n const existing = additionalCbacMarkingsAndAffectedProps.get(markingId) ?? new Set();\n for (const propRid of groupPropertyRids) {\n // Look up the property apiName from the object type's propertyTypes\n const propType = objectType.objectType.propertyTypes[propRid];\n if (propType) {\n const propApiName = propType.apiName ?? propType.displayMetadata?.displayName;\n if (propApiName) {\n existing.add(ReadableIdGenerator.getForObjectProperty(objectApiName, propApiName));\n }\n }\n }\n additionalCbacMarkingsAndAffectedProps.set(markingId, existing);\n }\n }\n }\n }\n\n // Build marking shapes\n const inputShapes = new Map();\n for (const [markingId, props] of cbacMarkingsAndAffectedProps) {\n const readableId = ReadableIdGenerator.getForMarking(markingId, \"CBAC\");\n const shape = {\n about: createLocalizedAbout(`Max Classification ${markingId}`, MAX_CLASS_DESC),\n operation: \"USE\",\n affectedShapes: Array.from(props).map(p => ridGenerator.toBlockInternalId(p)),\n supportedMarkingsType: \"CBAC\",\n stableId: markingId\n };\n inputShapes.set(readableId, {\n type: \"markings\",\n markings: shape\n });\n }\n for (const [markingId, props] of additionalCbacMarkingsAndAffectedProps) {\n const readableId = ReadableIdGenerator.getForMarking(markingId, \"CBAC\");\n const shape = {\n about: createLocalizedAbout(`Marking ${markingId}`, \"Marking\"),\n operation: \"USE\",\n affectedShapes: Array.from(props).map(p => ridGenerator.toBlockInternalId(p)),\n supportedMarkingsType: \"CBAC\",\n stableId: markingId\n };\n inputShapes.set(readableId, {\n type: \"markings\",\n markings: shape\n });\n }\n for (const [markingId, props] of mandatoryMarkingsAndAffectedProps) {\n const readableId = ReadableIdGenerator.getForMarking(markingId, \"MANDATORY\");\n const shape = {\n about: createLocalizedAbout(`Max Marking ${markingId}`, \"Max Marking\"),\n operation: \"USE\",\n affectedShapes: Array.from(props).map(p => ridGenerator.toBlockInternalId(p)),\n supportedMarkingsType: \"MANDATORY\",\n stableId: markingId\n };\n inputShapes.set(readableId, {\n type: \"markings\",\n markings: shape\n });\n }\n return {\n inputShapes,\n outputShapes: new Map(),\n inputShapeMetadata: new Map()\n };\n}\n\n/**\n * Consume (merge) block shapes into the target\n */\nfunction consumeBlockShapes(target, source) {\n for (const [key, value] of source.inputShapes.entries()) {\n target.inputShapes.set(key, value);\n }\n for (const [key, value] of source.outputShapes.entries()) {\n target.outputShapes.set(key, value);\n }\n for (const [key, value] of source.inputShapeMetadata.entries()) {\n target.inputShapeMetadata.set(key, value);\n }\n}\n\n// Placeholder functions for readable ID generation\n// These should match the Java ReadableIdGenerator patterns\n\nfunction getReadableIdForSpt(apiName) {\n return ReadableIdGenerator.getForSpt(apiName);\n}\nfunction getReadableIdForInterface(apiName) {\n return ReadableIdGenerator.getForInterface(apiName);\n}\nfunction getReadableIdForInterfaceLink(interfaceApiName, linkApiName) {\n return ReadableIdGenerator.getForInterfaceLinkType(interfaceApiName, linkApiName);\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { cleanAndValidateLinkTypeId, OntologyEntityTypeEnum } from \"@osdk/maker\";\nimport { ReadableIdGenerator } from \"../../util/generateRid.js\";\nimport { convertAction } from \"./convertActionHelpers.js\";\nimport { convertInterface } from \"./convertInterface.js\";\nimport { convertLink } from \"./convertLink.js\";\nimport { convertObject } from \"./convertObject.js\";\nimport { convertSpt } from \"./convertSpt.js\";\nimport { MIGRATION_SHAPE_READABLE_ID } from \"./shapeExtractors/IrShapeExtractor.js\";\nexport function convertOntologyDefinitionToWireBlockData(ontology, ridGenerator) {\n // Convert all entity types first to populate ridGenerator's BiMaps\n const objectTypes = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map(([apiName, objectType]) => {\n return [ridGenerator.generateRidForObjectType(apiName), convertObject(objectType, ridGenerator)];\n }));\n const sharedPropertyTypes = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]).map(([apiName, spt]) => [ridGenerator.generateSptRid(apiName), {\n sharedPropertyType: convertSpt(spt, ridGenerator)\n }]));\n const interfaceTypes = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.INTERFACE_TYPE]).map(([apiName, interfaceType]) => {\n return [ridGenerator.generateRidForInterface(apiName), {\n interfaceType: convertInterface(interfaceType, ridGenerator)\n }];\n }));\n const linkTypes = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map(([id, link]) => {\n return [ridGenerator.generateRidForLinkType(cleanAndValidateLinkTypeId(id)), convertLink(link, ridGenerator)];\n }));\n const actionTypes = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map(([apiName, action]) => {\n return [ridGenerator.generateRidForActionType(apiName), convertAction(action, ridGenerator)];\n }));\n\n // Build knownIdentifiers from ridGenerator's BiMaps\n const knownIdentifiers = buildKnownIdentifiers(ontology, ridGenerator);\n return {\n objectTypes,\n sharedPropertyTypes,\n interfaceTypes,\n linkTypes,\n actionTypes,\n // TODO: Add proper blockOutputCompassLocations mapping\n blockOutputCompassLocations: {},\n knownIdentifiers,\n ruleSets: {},\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).filter(([apiName, action]) => action.validation).map(([apiName, action]) => {\n return [ridGenerator.generateRidForActionType(apiName), {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null\n }\n }];\n })),\n linkTypes: {},\n objectTypes: {}\n }\n };\n}\nfunction buildKnownIdentifiers(ontology, ridGenerator) {\n // Interface types: InterfaceTypeRid -> BlockInternalId\n const interfaceMappings = Object.fromEntries(Array.from(ridGenerator.getInterfaceRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Shared property types: SharedPropertyTypeRid -> BlockInternalId\n const sharedPropertyMappings = Object.fromEntries(Array.from(ridGenerator.getSharedPropertyTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Interface link types: InterfaceLinkTypeRid -> BlockInternalId\n const interfaceLinkMappings = Object.fromEntries(Array.from(ridGenerator.getInterfaceLinkTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Datasources: BlockInternalId -> DatasourceLocator\n const backingDatasourceMappings = Object.fromEntries(Array.from(ridGenerator.getDatasourceLocators().entries()).map(([readableId, locator]) => [ridGenerator.toBlockInternalId(readableId), locator]));\n\n // Files datasources: BlockInternalId -> FilesDatasourceLocator\n const filesDatasourceMappings = Object.fromEntries(Array.from(ridGenerator.getFilesDatasourceLocators().entries()).map(([readableId, locator]) => [ridGenerator.toBlockInternalId(readableId), locator]));\n\n // Object type RIDs: ObjectTypeRid -> BlockInternalId\n const objectTypeRids = Object.fromEntries(Array.from(ridGenerator.getObjectTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Object type IDs: ObjectTypeId -> BlockInternalId\n const objectTypeIds = Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map(([objectTypeApiName, objectType]) => [ridGenerator.getObjectTypeIds().get(ReadableIdGenerator.getForObjectType(objectTypeApiName)), ridGenerator.toBlockInternalId(ReadableIdGenerator.getForObjectType(objectTypeApiName))]));\n\n // Property type IDs: ObjectTypeId -> (PropertyTypeId -> BlockInternalId)\n const propertyTypeIds = {};\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).forEach(([objectTypeApiName, objectType]) => {\n const propMap = {};\n (objectType.properties ?? []).forEach(property => {\n propMap[property.apiName] = ridGenerator.toBlockInternalId(ReadableIdGenerator.getForObjectProperty(objectTypeApiName, property.apiName));\n });\n const objTypeId = ridGenerator.getObjectTypeIds().get(ReadableIdGenerator.getForObjectType(objectTypeApiName));\n propertyTypeIds[objTypeId] = propMap;\n });\n\n // Property type RIDs: PropertyTypeRid -> BlockInternalId\n const propertyRids = Object.fromEntries(Array.from(ridGenerator.getPropertyTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Datasource columns: BlockInternalId -> ResolvedDatasourceColumnShape\n const datasourceColumns = Object.fromEntries(Array.from(ridGenerator.getColumnShapes().entries()).map(([readableId, shape]) => [ridGenerator.toBlockInternalId(readableId), shape]));\n\n // Time series syncs: TimeSeriesSyncRid -> BlockInternalId\n const timeSeriesSyncs = Object.fromEntries(Array.from(ridGenerator.getTimeSeriesSyncs().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Geotime series syncs: GeotimeSeriesIntegrationRid -> BlockInternalId\n const geotimeSeriesSyncs = Object.fromEntries(Array.from(ridGenerator.getGeotimeSeriesIntegrationRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Link type IDs: LinkTypeId -> BlockInternalId\n const linkTypeIds = Object.fromEntries(Object.keys(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map((linkTypeId, link) => [cleanAndValidateLinkTypeId(linkTypeId), ridGenerator.toBlockInternalId(ReadableIdGenerator.getForLinkType(cleanAndValidateLinkTypeId(linkTypeId)))]));\n\n // Link type RIDs: LinkTypeRid -> BlockInternalId\n const linkTypeRids = Object.fromEntries(Array.from(ridGenerator.getLinkTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Action types: ActionTypeRid -> BlockInternalId\n const actionTypeMappings = Object.fromEntries(Array.from(ridGenerator.getActionTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Action parameters: ParameterRid -> BlockInternalId\n const actionParameterMappings = {};\n ridGenerator.getParameterRidAndIds().forEach((biMap, _actionApiName) => {\n Array.from(biMap.entries()).forEach(([readableId, ridAndId]) => {\n actionParameterMappings[ridAndId.rid] = ridGenerator.toBlockInternalId(readableId);\n });\n });\n\n // Action parameter IDs: ActionTypeRid -> (ParameterId -> BlockInternalId)\n const actionParameterIdMappings = {};\n Array.from(ridGenerator.getActionTypeRids().inverse().entries()).forEach(([actionTypeRid, actionReadableId]) => {\n // Extract action type API name from readable ID\n const actionTypeApiName = actionReadableId.replace(/^action-type-/, \"\");\n const paramBiMap = ridGenerator.getParameterRidAndIds().get(actionTypeApiName);\n if (paramBiMap) {\n const paramMap = {};\n Array.from(paramBiMap.entries()).forEach(([paramReadableId, ridAndId]) => {\n paramMap[ridAndId.id] = ridGenerator.toBlockInternalId(paramReadableId);\n });\n actionParameterIdMappings[actionTypeRid] = paramMap;\n }\n });\n\n // Group IDs: GroupId -> BlockInternalId\n const groupMappings = Object.fromEntries(Array.from(ridGenerator.getGroupIds().inverse().entries()).map(([groupId, readableId]) => [groupId, ridGenerator.toBlockInternalId(readableId)]));\n\n // Interface property types: InterfacePropertyTypeRid -> BlockInternalId\n const interfacePropertyMappings = Object.fromEntries(Array.from(ridGenerator.getInterfacePropertyTypeRids().inverse().entries()).map(([rid, readableId]) => [rid, ridGenerator.toBlockInternalId(readableId)]));\n\n // Value types: ValueTypeRid -> (ValueTypeVersionId -> BlockInternalId)\n const valueTypeMappings = {};\n ridGenerator.getConsumedValueTypeReferences().asMap().forEach((valueTypeRef, readableId) => {\n if (!valueTypeMappings[valueTypeRef.rid]) {\n valueTypeMappings[valueTypeRef.rid] = {};\n }\n valueTypeMappings[valueTypeRef.rid][valueTypeRef.versionId] = ridGenerator.toBlockInternalId(readableId);\n });\n\n // Build markings mapping: BlockInternalId -> [markingId]\n // Collect marking shapes from object type marking properties and additionalMandatoryMarkings\n const markingEntries = [];\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).forEach(([objectTypeApiName, objectType]) => {\n // Marking properties\n (objectType.properties ?? []).forEach(prop => {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\" && prop.type.markingInputGroupName) {\n markingEntries.push({\n markingId: prop.type.markingInputGroupName,\n markingType: prop.type.markingType\n });\n }\n });\n // additionalMandatoryMarkings from property security groups\n (objectType.datasources ?? []).forEach(ds => {\n if (\"propertySecurityGroups\" in ds && ds.propertySecurityGroups) {\n ds.propertySecurityGroups.forEach(psg => {\n if (psg.appliedMarkings) {\n Object.entries(psg.appliedMarkings).forEach(([markingId, markingType]) => {\n markingEntries.push({\n markingId,\n markingType: markingType\n });\n });\n }\n });\n }\n });\n });\n\n // Deduplicate and build mapping\n const markingsMappings = {};\n const seenMarkings = new Set();\n markingEntries.forEach(({\n markingId,\n markingType\n }) => {\n const key = `${markingId}-${markingType}`;\n if (seenMarkings.has(key)) return;\n seenMarkings.add(key);\n const readableId = ReadableIdGenerator.getForMarking(markingId, markingType);\n const blockInternalId = ridGenerator.toBlockInternalId(readableId);\n markingsMappings[blockInternalId] = [markingId];\n });\n return {\n actionParameterIds: actionParameterIdMappings,\n actionParameters: actionParameterMappings,\n actionTypes: actionTypeMappings,\n datasourceColumns: datasourceColumns,\n datasources: backingDatasourceMappings,\n filesDatasources: filesDatasourceMappings,\n functions: {},\n geotimeSeriesSyncs: geotimeSeriesSyncs,\n groupIds: groupMappings,\n interfaceLinkTypes: interfaceLinkMappings,\n interfacePropertyTypes: interfacePropertyMappings,\n interfaceTypes: interfaceMappings,\n linkTypeIds: linkTypeIds,\n linkTypes: linkTypeRids,\n markings: markingsMappings,\n objectTypeIds: objectTypeIds,\n objectTypes: objectTypeRids,\n propertyTypeIds: propertyTypeIds,\n propertyTypes: propertyRids,\n sharedPropertyTypes: sharedPropertyMappings,\n shapeIdForOntologyAllowSchemaMigrations: ridGenerator.toBlockInternalId(MIGRATION_SHAPE_READABLE_ID),\n shapeIdForInstallPrefix: null,\n timeSeriesSyncs: timeSeriesSyncs,\n valueTypes: valueTypeMappings,\n webhooks: {},\n workshopModules: {}\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function convertValueTypesToIr(valueTypes) {\n return Object.values(valueTypes).map(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n packageNamespace: definitions[0].packageNamespace,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status\n },\n // TODO(dpaquin): instead of deduping here, we should refactor the value type types from arrays to maps\n versions: Array.from(new Map(definitions.map(definition => [definition.version, definition])).values()).map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues\n }))\n }));\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OntologyEntityTypeEnum } from \"@osdk/maker\";\nimport { convertValueTypesToIr } from \"./convertValueTypesToIr.js\";\nexport function convertOntologyToValueTypeIr(ontology) {\n return {\n valueTypes: convertValueTypesToIr(ontology[OntologyEntityTypeEnum.VALUE_TYPE])\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getImportedTypes } from \"@osdk/maker\";\nimport { convertOntologyDefinitionToWireBlockData } from \"./convertOntologyDefinitionToWireBlockData.js\";\nimport { convertOntologyToValueTypeIr } from \"./convertOntologyToValueTypeIr.js\";\nexport function convertOntologyDefinition(ontology, ridGenerator, randomnessKey) {\n return {\n ontology: convertOntologyDefinitionToWireBlockData(ontology, ridGenerator),\n importedOntology: convertOntologyDefinitionToWireBlockData(getImportedTypes(), ridGenerator),\n valueTypes: convertOntologyToValueTypeIr(ontology),\n importedValueTypes: convertOntologyToValueTypeIr(getImportedTypes()),\n randomnessKey\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getOntologyDefinition, initializeOntologyState } from \"@osdk/maker\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { getShapes } from \"../conversion/toMarketplace/shapeExtractors/IrShapeExtractor.js\";\nimport { OntologyRidGeneratorImpl } from \"../util/generateRid.js\";\nexport async function defineOntologyV2(ns, body, randomnessKey) {\n initializeOntologyState(ns);\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n const ridGenerator = new OntologyRidGeneratorImpl();\n const ontDef = convertOntologyDefinition(getOntologyDefinition(), ridGenerator, randomnessKey);\n const shapes = await getShapes(ontDef.ontology, ridGenerator, randomnessKey);\n return [ontDef, shapes];\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\nimport { createJiti } from \"jiti\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntologyV2 } from \"../api/defineOntologyV2.js\";\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nconst uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\nexport default async function main(args = process.argv) {\n consola.log(\"Generating BlockGeneratorResult for ontology...\");\n const commandLineOpts = await yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve\n },\n output: {\n alias: \"o\",\n describe: \"Output file for BlockGeneratorResult JSON\",\n type: \"string\",\n default: \"build/block_generator_result.json\",\n coerce: path.resolve\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\"\n },\n buildDir: {\n alias: \"b\",\n describe: \"Directory for build files\",\n type: \"string\",\n default: \"build/\",\n coerce: path.resolve\n },\n randomnessKey: {\n describe: \"Value used to assure uniqueness of entities\",\n type: \"string\",\n coerce: path.resolve\n }\n }).parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = commandLineOpts.apiNamespace.slice(-1) !== \".\" ? commandLineOpts.apiNamespace + \".\" : commandLineOpts.apiNamespace;\n !(apiNamespace.length < 1024) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is too long.\") : invariant(false) : void 0;\n !apiNamespaceRegex.test(apiNamespace) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\") : invariant(false) : void 0;\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n if (commandLineOpts.randomnessKey !== undefined) {\n !uuidRegex.test(commandLineOpts.randomnessKey) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee\") : invariant(false) : void 0;\n }\n const [ontologyBlockDataV2, shapes] = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.randomnessKey);\n\n // Create temp directory for block data\n const blockDataDir = path.join(commandLineOpts.buildDir, \"temp_block_data\");\n if (!fs.existsSync(blockDataDir)) {\n await fs.promises.mkdir(blockDataDir, {\n recursive: true\n });\n }\n\n // Write ontology.json to the block data directory\n const ontologyJsonPath = path.join(blockDataDir, \"ontology.json\");\n const ontologyJson = JSON.stringify(ontologyBlockDataV2.ontology, null, 2);\n await fs.promises.writeFile(ontologyJsonPath, ontologyJson);\n consola.info(`Wrote ontology.json to ${ontologyJsonPath}`);\n\n // Create BlockGeneratorResult\n const blockGeneratorResult = {\n block_identifier: \"ontology\",\n block_data_directory: blockDataDir,\n oci_block_data_metadata: undefined,\n maven_block_data_metadata: undefined,\n inputs: Object.fromEntries(shapes.inputShapes),\n outputs: Object.fromEntries(shapes.outputShapes),\n input_mapping_entries: [],\n external_recommendations: [],\n add_on_override: undefined,\n input_shape_metadata: Object.fromEntries(shapes.inputShapeMetadata),\n block_type: \"ONTOLOGY\"\n };\n\n // Write BlockGeneratorResult to output file\n const blockGeneratorResultJson = JSON.stringify(blockGeneratorResult, null, 2);\n await fs.promises.writeFile(commandLineOpts.output, blockGeneratorResultJson);\n consola.success(`BlockGeneratorResult written to ${commandLineOpts.output}`);\n consola.info(`Block data directory: ${blockDataDir}`);\n}\nasync function loadOntology(input, apiNamespace, randomnessKey) {\n const ontologyIr = await defineOntologyV2(apiNamespace, async () => {\n const jiti = createJiti(import.meta.filename, {\n moduleCache: true,\n debug: false,\n importMeta: import.meta\n });\n const module = await jiti.import(input);\n }, randomnessKey);\n return ontologyIr;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertToDisplayName, convertToPluralDisplayName, importOntologyEntity, OntologyEntityTypeEnum } from \"@osdk/maker\";\n/*\n * Takes in the minimal object definition to create an input shape.\n * First converts it to fake block data to call importOntologyEntity,\n * then converts it to an OntologyIrImportedObjectType that is safe to use elsewhere.\n */\nexport function defineImportObject(objectDef) {\n const properties = Object.entries(objectDef.properties ?? {}).map(([apiName, type]) => ({\n apiName: apiName,\n displayName: convertToDisplayName(apiName),\n type: type.type\n }));\n const finalObject = {\n apiName: objectDef.apiName,\n properties: properties,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n // the rest don't matter for now\n displayName: objectDef.displayName ?? convertToDisplayName(objectDef.apiName),\n pluralDisplayName: convertToPluralDisplayName(objectDef.apiName),\n primaryKeyPropertyApiName: properties[0]?.apiName,\n titlePropertyApiName: properties[0]?.apiName\n };\n importOntologyEntity(finalObject);\n return finalObject;\n}"]}