@taqueria/protocol 0.56.15 → 0.57.8

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 (568) hide show
  1. package/Alias.d.js +455 -0
  2. package/Alias.d.js.map +1 -0
  3. package/Alias.js +53 -53
  4. package/Alias.js.map +1 -1
  5. package/Base.d.js +27 -0
  6. package/Base.d.js.map +1 -0
  7. package/Base.d.ts +6 -6
  8. package/Base.d.ts.map +1 -1
  9. package/Base.js.map +1 -1
  10. package/Command.d.js +455 -0
  11. package/Command.d.js.map +1 -0
  12. package/Command.js +53 -53
  13. package/Command.js.map +1 -1
  14. package/Config.d.js +455 -0
  15. package/Config.d.js.map +1 -0
  16. package/Config.d.ts +0 -1
  17. package/Config.js +53 -53
  18. package/Config.js.map +1 -1
  19. package/ConfigArtifactsDir.d.js +19 -0
  20. package/ConfigArtifactsDir.d.js.map +1 -0
  21. package/ConfigArtifactsDir.js.map +1 -1
  22. package/ConfigContractsDir.d.js +455 -0
  23. package/ConfigContractsDir.d.js.map +1 -0
  24. package/ConfigContractsDir.js +53 -53
  25. package/ConfigContractsDir.js.map +1 -1
  26. package/ConfigEnvironmentFileV2.d.js +455 -0
  27. package/ConfigEnvironmentFileV2.d.js.map +1 -0
  28. package/ConfigEnvironmentFileV2.d.ts +0 -1
  29. package/ConfigEnvironmentFileV2.js +53 -53
  30. package/ConfigEnvironmentFileV2.js.map +1 -1
  31. package/ConfigFileV2.d.js +455 -0
  32. package/ConfigFileV2.d.js.map +1 -0
  33. package/ConfigFileV2.d.ts +0 -1
  34. package/ConfigFileV2.js +53 -53
  35. package/ConfigFileV2.js.map +1 -1
  36. package/Contract.d.js +455 -0
  37. package/Contract.d.js.map +1 -0
  38. package/Contract.js +53 -53
  39. package/Contract.js.map +1 -1
  40. package/Crypto.d.js +19 -0
  41. package/Crypto.d.js.map +1 -0
  42. package/EconomicalProtocolHash.d.js +455 -0
  43. package/EconomicalProtocolHash.d.js.map +1 -0
  44. package/EconomicalProtocolHash.js +53 -53
  45. package/EconomicalProtocolHash.js.map +1 -1
  46. package/Environment.d.js +455 -0
  47. package/Environment.d.js.map +1 -0
  48. package/Environment.d.ts +0 -1
  49. package/Environment.js +53 -53
  50. package/Environment.js.map +1 -1
  51. package/EphemeralState.d.js +19 -0
  52. package/EphemeralState.d.js.map +1 -0
  53. package/EphemeralState.d.ts +1602 -646
  54. package/EphemeralState.d.ts.map +1 -1
  55. package/EphemeralState.js +3251 -108
  56. package/EphemeralState.js.map +1 -1
  57. package/Faucet.d.js +455 -0
  58. package/Faucet.d.js.map +1 -0
  59. package/Faucet.js +53 -53
  60. package/Faucet.js.map +1 -1
  61. package/HumanReadableIdentifier.d.js +455 -0
  62. package/HumanReadableIdentifier.d.js.map +1 -0
  63. package/HumanReadableIdentifier.js +53 -53
  64. package/HumanReadableIdentifier.js.map +1 -1
  65. package/InstalledPlugin.d.js +455 -0
  66. package/InstalledPlugin.d.js.map +1 -0
  67. package/InstalledPlugin.js +53 -53
  68. package/InstalledPlugin.js.map +1 -1
  69. package/LoadedConfig.d.js +455 -0
  70. package/LoadedConfig.d.js.map +1 -0
  71. package/LoadedConfig.js +53 -53
  72. package/LoadedConfig.js.map +1 -1
  73. package/MetadataConfig.d.js +455 -0
  74. package/MetadataConfig.d.js.map +1 -0
  75. package/MetadataConfig.js +53 -53
  76. package/MetadataConfig.js.map +1 -1
  77. package/NetworkAccountConfig.d.js +455 -0
  78. package/NetworkAccountConfig.d.js.map +1 -0
  79. package/NetworkAccountConfig.js +53 -53
  80. package/NetworkAccountConfig.js.map +1 -1
  81. package/NetworkConfig.d.js +455 -0
  82. package/NetworkConfig.d.js.map +1 -0
  83. package/NetworkConfig.js +53 -53
  84. package/NetworkConfig.js.map +1 -1
  85. package/NonEmptyString.d.js +455 -0
  86. package/NonEmptyString.d.js.map +1 -0
  87. package/NonEmptyString.js +53 -53
  88. package/NonEmptyString.js.map +1 -1
  89. package/Operation.d.js +455 -0
  90. package/Operation.d.js.map +1 -0
  91. package/Operation.js +53 -53
  92. package/Operation.js.map +1 -1
  93. package/Option.d.js +455 -0
  94. package/Option.d.js.map +1 -0
  95. package/Option.js +53 -53
  96. package/Option.js.map +1 -1
  97. package/ParsedOperation.d.js +455 -0
  98. package/ParsedOperation.d.js.map +1 -0
  99. package/ParsedOperation.js +53 -53
  100. package/ParsedOperation.js.map +1 -1
  101. package/ParsedPluginInfo.d.js +19 -0
  102. package/ParsedPluginInfo.d.js.map +1 -0
  103. package/ParsedPluginInfo.d.ts +5477 -717
  104. package/ParsedPluginInfo.d.ts.map +1 -1
  105. package/ParsedPluginInfo.js +53 -53
  106. package/ParsedPluginInfo.js.map +1 -1
  107. package/ParsedTemplate.d.js +455 -0
  108. package/ParsedTemplate.d.js.map +1 -0
  109. package/ParsedTemplate.js +53 -53
  110. package/ParsedTemplate.js.map +1 -1
  111. package/PersistentState.d.js +19 -0
  112. package/PersistentState.d.js.map +1 -0
  113. package/PersistentState.d.ts +47 -332
  114. package/PersistentState.d.ts.map +1 -1
  115. package/PersistentState.js +53 -53
  116. package/PersistentState.js.map +1 -1
  117. package/PluginActionName.d.js +455 -0
  118. package/PluginActionName.d.js.map +1 -0
  119. package/PluginActionName.js +53 -53
  120. package/PluginActionName.js.map +1 -1
  121. package/PluginDependenciesResponse.d.js +455 -0
  122. package/PluginDependenciesResponse.d.js.map +1 -0
  123. package/PluginDependenciesResponse.js +53 -53
  124. package/PluginDependenciesResponse.js.map +1 -1
  125. package/PluginInfo.d.js +19 -0
  126. package/PluginInfo.d.js.map +1 -0
  127. package/PluginInfo.d.ts +5925 -1223
  128. package/PluginInfo.d.ts.map +1 -1
  129. package/PluginInfo.js +53 -53
  130. package/PluginInfo.js.map +1 -1
  131. package/PluginJsonResponse.d.js +455 -0
  132. package/PluginJsonResponse.d.js.map +1 -0
  133. package/PluginJsonResponse.js +53 -53
  134. package/PluginJsonResponse.js.map +1 -1
  135. package/PluginProxyResponse.d.js +455 -0
  136. package/PluginProxyResponse.d.js.map +1 -0
  137. package/PluginProxyResponse.js +53 -53
  138. package/PluginProxyResponse.js.map +1 -1
  139. package/PluginResponseEncoding.d.js +455 -0
  140. package/PluginResponseEncoding.d.js.map +1 -0
  141. package/PluginResponseEncoding.js +53 -53
  142. package/PluginResponseEncoding.js.map +1 -1
  143. package/PluginSchema.d.js +19 -0
  144. package/PluginSchema.d.js.map +1 -0
  145. package/PluginSchema.d.ts +27517 -11308
  146. package/PluginSchema.d.ts.map +1 -1
  147. package/PluginSchema.js +53 -53
  148. package/PluginSchema.js.map +1 -1
  149. package/PositionalArg.d.js +455 -0
  150. package/PositionalArg.d.js.map +1 -0
  151. package/PositionalArg.js +53 -53
  152. package/PositionalArg.js.map +1 -1
  153. package/Provisioner.d.js +455 -0
  154. package/Provisioner.d.js.map +1 -0
  155. package/Provisioner.js +53 -53
  156. package/Provisioner.js.map +1 -1
  157. package/ProvisionerID.d.js +455 -0
  158. package/ProvisionerID.d.js.map +1 -0
  159. package/ProvisionerID.js +53 -53
  160. package/ProvisionerID.js.map +1 -1
  161. package/Provisions.d.js +455 -0
  162. package/Provisions.d.js.map +1 -0
  163. package/Provisions.js +53 -53
  164. package/Provisions.js.map +1 -1
  165. package/ProxyTaskArgs.d.js +455 -0
  166. package/ProxyTaskArgs.d.js.map +1 -0
  167. package/ProxyTaskArgs.js +53 -53
  168. package/ProxyTaskArgs.js.map +1 -1
  169. package/ProxyTemplateArgs.d.js +455 -0
  170. package/ProxyTemplateArgs.d.js.map +1 -0
  171. package/ProxyTemplateArgs.js +53 -53
  172. package/ProxyTemplateArgs.js.map +1 -1
  173. package/PublicKeyHash.d.js +455 -0
  174. package/PublicKeyHash.d.js.map +1 -0
  175. package/PublicKeyHash.js +53 -53
  176. package/PublicKeyHash.js.map +1 -1
  177. package/RequestArgs.d.js +455 -0
  178. package/RequestArgs.d.js.map +1 -0
  179. package/RequestArgs.js +53 -53
  180. package/RequestArgs.js.map +1 -1
  181. package/SHA256.d.js +19 -0
  182. package/SHA256.d.js.map +1 -0
  183. package/SHA256.d.ts +7 -7
  184. package/SHA256.d.ts.map +1 -1
  185. package/SHA256.js.map +1 -1
  186. package/SandboxAccountConfig.d.js +455 -0
  187. package/SandboxAccountConfig.d.js.map +1 -0
  188. package/SandboxAccountConfig.js +53 -53
  189. package/SandboxAccountConfig.js.map +1 -1
  190. package/SandboxConfig.d.js +455 -0
  191. package/SandboxConfig.d.js.map +1 -0
  192. package/SandboxConfig.js +53 -53
  193. package/SandboxConfig.js.map +1 -1
  194. package/SanitizedAbsPath.d.js +19 -0
  195. package/SanitizedAbsPath.d.js.map +1 -0
  196. package/SanitizedAbsPath.d.ts +10 -10
  197. package/SanitizedAbsPath.d.ts.map +1 -1
  198. package/SanitizedAbsPath.js.map +1 -1
  199. package/SanitizedArgs.d.js +19 -0
  200. package/SanitizedArgs.d.js.map +1 -0
  201. package/SanitizedArgs.d.ts +410 -358
  202. package/SanitizedArgs.d.ts.map +1 -1
  203. package/SanitizedArgs.js +53 -53
  204. package/SanitizedArgs.js.map +1 -1
  205. package/SanitizedPath.d.js +455 -0
  206. package/SanitizedPath.d.js.map +1 -0
  207. package/SanitizedPath.js +53 -53
  208. package/SanitizedPath.js.map +1 -1
  209. package/ScaffoldConfig.d.js +455 -0
  210. package/ScaffoldConfig.d.js.map +1 -0
  211. package/ScaffoldConfig.js +53 -53
  212. package/ScaffoldConfig.js.map +1 -1
  213. package/Settings.d.js +455 -0
  214. package/Settings.d.js.map +1 -0
  215. package/Settings.d.ts +1 -0
  216. package/Settings.d.ts.map +1 -1
  217. package/Settings.js +53 -53
  218. package/Settings.js.map +1 -1
  219. package/SingleChar.d.js +455 -0
  220. package/SingleChar.d.js.map +1 -0
  221. package/SingleChar.js +53 -53
  222. package/SingleChar.js.map +1 -1
  223. package/TaqError.d.js +19 -0
  224. package/TaqError.d.js.map +1 -0
  225. package/TaqError.d.ts +0 -1
  226. package/TaqError.d.ts.map +1 -1
  227. package/Task.d.js +455 -0
  228. package/Task.d.js.map +1 -0
  229. package/Task.js +53 -53
  230. package/Task.js.map +1 -1
  231. package/Template.d.js +455 -0
  232. package/Template.d.js.map +1 -0
  233. package/Template.js +53 -53
  234. package/Template.js.map +1 -1
  235. package/Timestamp.d.js +455 -0
  236. package/Timestamp.d.js.map +1 -0
  237. package/Timestamp.js +53 -53
  238. package/Timestamp.js.map +1 -1
  239. package/Tz.d.js +455 -0
  240. package/Tz.d.js.map +1 -0
  241. package/Tz.js +53 -53
  242. package/Tz.js.map +1 -1
  243. package/Url.d.js +455 -0
  244. package/Url.d.js.map +1 -0
  245. package/Url.js +53 -53
  246. package/Url.js.map +1 -1
  247. package/Verb.d.js +455 -0
  248. package/Verb.d.js.map +1 -0
  249. package/Verb.js +53 -53
  250. package/Verb.js.map +1 -1
  251. package/VersionNumber.d.js +455 -0
  252. package/VersionNumber.d.js.map +1 -0
  253. package/VersionNumber.js +53 -53
  254. package/VersionNumber.js.map +1 -1
  255. package/helpers.d.js +19 -0
  256. package/helpers.d.js.map +1 -0
  257. package/helpers.js.map +1 -1
  258. package/i18n.d.js +27 -0
  259. package/i18n.d.js.map +1 -0
  260. package/i18n.d.ts.map +1 -1
  261. package/index.d.js +3531 -0
  262. package/index.d.js.map +1 -0
  263. package/index.js +79 -80
  264. package/index.js.map +1 -1
  265. package/out/types/Alias.d.ts +1 -1
  266. package/out/types/Alias.d.ts.map +1 -1
  267. package/out/types/Alias.js +53 -53
  268. package/out/types/Alias.js.map +1 -1
  269. package/out/types/BuildNumber.d.ts +1 -1
  270. package/out/types/BuildNumber.d.ts.map +1 -1
  271. package/out/types/BuildNumber.js +53 -53
  272. package/out/types/BuildNumber.js.map +1 -1
  273. package/out/types/Command.d.ts +1 -1
  274. package/out/types/Command.d.ts.map +1 -1
  275. package/out/types/Command.js +53 -53
  276. package/out/types/Command.js.map +1 -1
  277. package/out/types/Config.d.ts +154 -155
  278. package/out/types/Config.d.ts.map +1 -1
  279. package/out/types/Config.js +53 -53
  280. package/out/types/Config.js.map +1 -1
  281. package/out/types/ConfigAccount.d.ts +1 -1
  282. package/out/types/ConfigAccount.d.ts.map +1 -1
  283. package/out/types/ConfigAccount.js +53 -53
  284. package/out/types/ConfigAccount.js.map +1 -1
  285. package/out/types/ConfigArtifactsDir.d.ts +1 -1
  286. package/out/types/ConfigArtifactsDir.d.ts.map +1 -1
  287. package/out/types/ConfigArtifactsDir.js +53 -53
  288. package/out/types/ConfigArtifactsDir.js.map +1 -1
  289. package/out/types/ConfigContractsDir.d.ts +1 -1
  290. package/out/types/ConfigContractsDir.d.ts.map +1 -1
  291. package/out/types/ConfigContractsDir.js +53 -53
  292. package/out/types/ConfigContractsDir.js.map +1 -1
  293. package/out/types/ConfigEnvironmentFileV2.d.ts +1 -2
  294. package/out/types/ConfigEnvironmentFileV2.d.ts.map +1 -1
  295. package/out/types/ConfigEnvironmentFileV2.js +53 -53
  296. package/out/types/ConfigEnvironmentFileV2.js.map +1 -1
  297. package/out/types/ConfigFileV1.d.ts +275 -275
  298. package/out/types/ConfigFileV1.d.ts.map +1 -1
  299. package/out/types/ConfigFileV1.js +53 -53
  300. package/out/types/ConfigFileV1.js.map +1 -1
  301. package/out/types/ConfigFileV2.d.ts +73 -74
  302. package/out/types/ConfigFileV2.d.ts.map +1 -1
  303. package/out/types/ConfigFileV2.js +53 -53
  304. package/out/types/ConfigFileV2.js.map +1 -1
  305. package/out/types/Contract.d.ts +1 -1
  306. package/out/types/Contract.d.ts.map +1 -1
  307. package/out/types/Contract.js +53 -53
  308. package/out/types/Contract.js.map +1 -1
  309. package/out/types/CurrencyAmountV2.d.ts +1 -1
  310. package/out/types/CurrencyAmountV2.d.ts.map +1 -1
  311. package/out/types/CurrencyAmountV2.js +53 -53
  312. package/out/types/CurrencyAmountV2.js.map +1 -1
  313. package/out/types/EconomicalProtocolHash.d.ts +1 -1
  314. package/out/types/EconomicalProtocolHash.d.ts.map +1 -1
  315. package/out/types/EconomicalProtocolHash.js +53 -53
  316. package/out/types/EconomicalProtocolHash.js.map +1 -1
  317. package/out/types/Environment.d.ts +10 -11
  318. package/out/types/Environment.d.ts.map +1 -1
  319. package/out/types/Environment.js +53 -53
  320. package/out/types/Environment.js.map +1 -1
  321. package/out/types/EphemeralState.d.ts +16933 -7937
  322. package/out/types/EphemeralState.d.ts.map +1 -1
  323. package/out/types/EphemeralState.js +53 -53
  324. package/out/types/EphemeralState.js.map +1 -1
  325. package/out/types/Faucet.d.ts +1 -1
  326. package/out/types/Faucet.d.ts.map +1 -1
  327. package/out/types/Faucet.js +53 -53
  328. package/out/types/Faucet.js.map +1 -1
  329. package/out/types/HumanReadableIdentifier.d.ts +1 -1
  330. package/out/types/HumanReadableIdentifier.d.ts.map +1 -1
  331. package/out/types/HumanReadableIdentifier.js +53 -53
  332. package/out/types/HumanReadableIdentifier.js.map +1 -1
  333. package/out/types/InstalledPlugin.d.ts +1 -1
  334. package/out/types/InstalledPlugin.d.ts.map +1 -1
  335. package/out/types/InstalledPlugin.js +53 -53
  336. package/out/types/InstalledPlugin.js.map +1 -1
  337. package/out/types/LoadedConfig.d.ts +328 -324
  338. package/out/types/LoadedConfig.d.ts.map +1 -1
  339. package/out/types/LoadedConfig.js +53 -53
  340. package/out/types/LoadedConfig.js.map +1 -1
  341. package/out/types/MetadataConfig.d.ts +1 -1
  342. package/out/types/MetadataConfig.d.ts.map +1 -1
  343. package/out/types/MetadataConfig.js +53 -53
  344. package/out/types/MetadataConfig.js.map +1 -1
  345. package/out/types/NetworkAccountConfig.d.ts +10 -10
  346. package/out/types/NetworkAccountConfig.d.ts.map +1 -1
  347. package/out/types/NetworkAccountConfig.js +53 -53
  348. package/out/types/NetworkAccountConfig.js.map +1 -1
  349. package/out/types/NetworkConfig.d.ts +18 -18
  350. package/out/types/NetworkConfig.d.ts.map +1 -1
  351. package/out/types/NetworkConfig.js +53 -53
  352. package/out/types/NetworkConfig.js.map +1 -1
  353. package/out/types/NonEmptyString.d.ts +1 -1
  354. package/out/types/NonEmptyString.d.ts.map +1 -1
  355. package/out/types/NonEmptyString.js +53 -53
  356. package/out/types/NonEmptyString.js.map +1 -1
  357. package/out/types/Operation.d.ts +2034 -1971
  358. package/out/types/Operation.d.ts.map +1 -1
  359. package/out/types/Operation.js +53 -53
  360. package/out/types/Operation.js.map +1 -1
  361. package/out/types/Option.d.ts +28 -28
  362. package/out/types/Option.d.ts.map +1 -1
  363. package/out/types/Option.js +53 -53
  364. package/out/types/Option.js.map +1 -1
  365. package/out/types/ParsedConfig.d.ts +332 -68
  366. package/out/types/ParsedConfig.d.ts.map +1 -1
  367. package/out/types/ParsedConfig.js +53 -53
  368. package/out/types/ParsedConfig.js.map +1 -1
  369. package/out/types/ParsedOperation.d.ts +1124 -1088
  370. package/out/types/ParsedOperation.d.ts.map +1 -1
  371. package/out/types/ParsedOperation.js +53 -53
  372. package/out/types/ParsedOperation.js.map +1 -1
  373. package/out/types/ParsedTemplate.d.ts +4622 -162
  374. package/out/types/ParsedTemplate.d.ts.map +1 -1
  375. package/out/types/ParsedTemplate.js +53 -53
  376. package/out/types/ParsedTemplate.js.map +1 -1
  377. package/out/types/PersistedOperation.d.ts +1 -1
  378. package/out/types/PersistedOperation.d.ts.map +1 -1
  379. package/out/types/PersistedOperation.js +53 -53
  380. package/out/types/PersistedOperation.js.map +1 -1
  381. package/out/types/PersistedTask.d.ts +1 -1
  382. package/out/types/PersistedTask.d.ts.map +1 -1
  383. package/out/types/PersistedTask.js +53 -53
  384. package/out/types/PersistedTask.js.map +1 -1
  385. package/out/types/PersistentState.d.ts +1 -1
  386. package/out/types/PersistentState.d.ts.map +1 -1
  387. package/out/types/PersistentState.js +53 -53
  388. package/out/types/PersistentState.js.map +1 -1
  389. package/out/types/PluginActionName.d.ts +1 -1
  390. package/out/types/PluginActionName.d.ts.map +1 -1
  391. package/out/types/PluginActionName.js +53 -53
  392. package/out/types/PluginActionName.js.map +1 -1
  393. package/out/types/PluginDependenciesResponse.d.ts +21 -17
  394. package/out/types/PluginDependenciesResponse.d.ts.map +1 -1
  395. package/out/types/PluginDependenciesResponse.js +53 -53
  396. package/out/types/PluginDependenciesResponse.js.map +1 -1
  397. package/out/types/PluginInfo.d.ts +7813 -3313
  398. package/out/types/PluginInfo.d.ts.map +1 -1
  399. package/out/types/PluginInfo.js +53 -53
  400. package/out/types/PluginInfo.js.map +1 -1
  401. package/out/types/PluginJsonResponse.d.ts +5 -5
  402. package/out/types/PluginJsonResponse.d.ts.map +1 -1
  403. package/out/types/PluginJsonResponse.js +53 -53
  404. package/out/types/PluginJsonResponse.js.map +1 -1
  405. package/out/types/PluginProxyResponse.d.ts +5 -5
  406. package/out/types/PluginProxyResponse.d.ts.map +1 -1
  407. package/out/types/PluginProxyResponse.js +53 -53
  408. package/out/types/PluginProxyResponse.js.map +1 -1
  409. package/out/types/PluginResponseEncoding.d.ts +1 -1
  410. package/out/types/PluginResponseEncoding.d.ts.map +1 -1
  411. package/out/types/PluginResponseEncoding.js +53 -53
  412. package/out/types/PluginResponseEncoding.js.map +1 -1
  413. package/out/types/PluginSchema.d.ts +18909 -24722
  414. package/out/types/PluginSchema.d.ts.map +1 -1
  415. package/out/types/PluginSchema.js +53 -53
  416. package/out/types/PluginSchema.js.map +1 -1
  417. package/out/types/PositionalArg.d.ts +19 -19
  418. package/out/types/PositionalArg.d.ts.map +1 -1
  419. package/out/types/PositionalArg.js +53 -53
  420. package/out/types/PositionalArg.js.map +1 -1
  421. package/out/types/Provisioner.d.ts +1 -1
  422. package/out/types/Provisioner.d.ts.map +1 -1
  423. package/out/types/Provisioner.js +53 -53
  424. package/out/types/Provisioner.js.map +1 -1
  425. package/out/types/ProvisionerID.d.ts +1 -1
  426. package/out/types/ProvisionerID.d.ts.map +1 -1
  427. package/out/types/ProvisionerID.js +53 -53
  428. package/out/types/ProvisionerID.js.map +1 -1
  429. package/out/types/Provisions.d.ts +1 -1
  430. package/out/types/Provisions.d.ts.map +1 -1
  431. package/out/types/Provisions.js +53 -53
  432. package/out/types/Provisions.js.map +1 -1
  433. package/out/types/ProxyTaskArgs.d.ts +1181 -1129
  434. package/out/types/ProxyTaskArgs.d.ts.map +1 -1
  435. package/out/types/ProxyTaskArgs.js +53 -53
  436. package/out/types/ProxyTaskArgs.js.map +1 -1
  437. package/out/types/ProxyTemplateArgs.d.ts +1181 -1129
  438. package/out/types/ProxyTemplateArgs.d.ts.map +1 -1
  439. package/out/types/ProxyTemplateArgs.js +53 -53
  440. package/out/types/ProxyTemplateArgs.js.map +1 -1
  441. package/out/types/PublicKeyHash.d.ts +1 -1
  442. package/out/types/PublicKeyHash.d.ts.map +1 -1
  443. package/out/types/PublicKeyHash.js +53 -53
  444. package/out/types/PublicKeyHash.js.map +1 -1
  445. package/out/types/RequestArgs.d.ts +1168 -1129
  446. package/out/types/RequestArgs.d.ts.map +1 -1
  447. package/out/types/RequestArgs.js +53 -53
  448. package/out/types/RequestArgs.js.map +1 -1
  449. package/out/types/RuntimeDependency.d.ts +1 -1
  450. package/out/types/RuntimeDependency.d.ts.map +1 -1
  451. package/out/types/RuntimeDependency.js +53 -53
  452. package/out/types/RuntimeDependency.js.map +1 -1
  453. package/out/types/RuntimeDependencyReport.d.ts +21 -17
  454. package/out/types/RuntimeDependencyReport.d.ts.map +1 -1
  455. package/out/types/RuntimeDependencyReport.js +53 -53
  456. package/out/types/RuntimeDependencyReport.js.map +1 -1
  457. package/out/types/SHA256.d.ts +1 -1
  458. package/out/types/SHA256.d.ts.map +1 -1
  459. package/out/types/SHA256.js +53 -53
  460. package/out/types/SHA256.js.map +1 -1
  461. package/out/types/SandboxAccount.d.ts +1 -1
  462. package/out/types/SandboxAccount.d.ts.map +1 -1
  463. package/out/types/SandboxAccount.js +53 -53
  464. package/out/types/SandboxAccount.js.map +1 -1
  465. package/out/types/SandboxAccountConfig.d.ts +1 -1
  466. package/out/types/SandboxAccountConfig.d.ts.map +1 -1
  467. package/out/types/SandboxAccountConfig.js +53 -53
  468. package/out/types/SandboxAccountConfig.js.map +1 -1
  469. package/out/types/SandboxAccounts.d.ts +1 -1
  470. package/out/types/SandboxAccounts.d.ts.map +1 -1
  471. package/out/types/SandboxAccounts.js +53 -53
  472. package/out/types/SandboxAccounts.js.map +1 -1
  473. package/out/types/SandboxConfig.d.ts +10 -10
  474. package/out/types/SandboxConfig.d.ts.map +1 -1
  475. package/out/types/SandboxConfig.js +53 -53
  476. package/out/types/SandboxConfig.js.map +1 -1
  477. package/out/types/SanitizedAbsPath.d.ts +1 -1
  478. package/out/types/SanitizedAbsPath.d.ts.map +1 -1
  479. package/out/types/SanitizedAbsPath.js +53 -53
  480. package/out/types/SanitizedAbsPath.js.map +1 -1
  481. package/out/types/SanitizedArgs.d.ts +1 -1
  482. package/out/types/SanitizedArgs.d.ts.map +1 -1
  483. package/out/types/SanitizedArgs.js +53 -53
  484. package/out/types/SanitizedArgs.js.map +1 -1
  485. package/out/types/SanitizedPath.d.ts +1 -1
  486. package/out/types/SanitizedPath.d.ts.map +1 -1
  487. package/out/types/SanitizedPath.js +53 -53
  488. package/out/types/SanitizedPath.js.map +1 -1
  489. package/out/types/ScaffoldConfig.d.ts +1 -1
  490. package/out/types/ScaffoldConfig.d.ts.map +1 -1
  491. package/out/types/ScaffoldConfig.js +53 -53
  492. package/out/types/ScaffoldConfig.js.map +1 -1
  493. package/out/types/Settings.d.ts +1 -1
  494. package/out/types/Settings.d.ts.map +1 -1
  495. package/out/types/Settings.js +53 -53
  496. package/out/types/Settings.js.map +1 -1
  497. package/out/types/SingleChar.d.ts +1 -1
  498. package/out/types/SingleChar.d.ts.map +1 -1
  499. package/out/types/SingleChar.js +53 -53
  500. package/out/types/SingleChar.js.map +1 -1
  501. package/out/types/Task.d.ts +167 -167
  502. package/out/types/Task.d.ts.map +1 -1
  503. package/out/types/Task.js +53 -53
  504. package/out/types/Task.js.map +1 -1
  505. package/out/types/Template.d.ts +2532 -5745
  506. package/out/types/Template.d.ts.map +1 -1
  507. package/out/types/Template.js +53 -53
  508. package/out/types/Template.js.map +1 -1
  509. package/out/types/Timestamp.d.ts +1 -1
  510. package/out/types/Timestamp.d.ts.map +1 -1
  511. package/out/types/Timestamp.js +53 -53
  512. package/out/types/Timestamp.js.map +1 -1
  513. package/out/types/Tz.d.ts +1 -1
  514. package/out/types/Tz.d.ts.map +1 -1
  515. package/out/types/Tz.js +53 -53
  516. package/out/types/Tz.js.map +1 -1
  517. package/out/types/TzKtConfig.d.ts +1 -1
  518. package/out/types/TzKtConfig.d.ts.map +1 -1
  519. package/out/types/TzKtConfig.js +53 -53
  520. package/out/types/TzKtConfig.js.map +1 -1
  521. package/out/types/Url.d.ts +1 -1
  522. package/out/types/Url.d.ts.map +1 -1
  523. package/out/types/Url.js +53 -53
  524. package/out/types/Url.js.map +1 -1
  525. package/out/types/Verb.d.ts +1 -1
  526. package/out/types/Verb.d.ts.map +1 -1
  527. package/out/types/Verb.js +53 -53
  528. package/out/types/Verb.js.map +1 -1
  529. package/out/types/VersionNumber.d.ts +1 -1
  530. package/out/types/VersionNumber.d.ts.map +1 -1
  531. package/out/types/VersionNumber.js +53 -53
  532. package/out/types/VersionNumber.js.map +1 -1
  533. package/out/types-strict.d.ts +0 -1
  534. package/out/types-zod.d.js.map +1 -1
  535. package/out/types-zod.d.ts +15769 -13234
  536. package/out/types-zod.d.ts.map +1 -1
  537. package/out/types-zod.js +53 -53
  538. package/out/types-zod.js.map +1 -1
  539. package/package.json +338 -335
  540. package/scripts/exports.sh +0 -0
  541. package/taqueria-protocol-types.d.js +3523 -0
  542. package/taqueria-protocol-types.d.js.map +1 -0
  543. package/taqueria-protocol-types.js +2212 -1335
  544. package/taqueria-protocol-types.js.map +1 -1
  545. package/tsconfig.tsbuildinfo +1 -0
  546. package/tsup.config.d.js +27 -0
  547. package/tsup.config.d.js.map +1 -0
  548. package/tsup.config.d.ts.map +1 -1
  549. package/tsup.config.js +104 -0
  550. package/tsup.config.js.map +1 -0
  551. package/types-config-files.d.js +19 -0
  552. package/types-config-files.d.js.map +1 -0
  553. package/types-config-files.d.ts +1 -2
  554. package/types-config-files.d.ts.map +1 -1
  555. package/types-config-files.js +2 -4
  556. package/types-config-files.js.map +1 -1
  557. package/types.d.js +19 -0
  558. package/types.d.js.map +1 -0
  559. package/types.d.ts +0 -1
  560. package/tzkt-config.d.js +19 -0
  561. package/tzkt-config.d.js.map +1 -0
  562. package/tzkt-config.d.ts +10 -10
  563. package/tzkt-config.d.ts.map +1 -1
  564. package/tzkt-config.js.map +1 -1
  565. package/scripts/build-types.d.ts +0 -2
  566. package/scripts/build-types.d.ts.map +0 -1
  567. package/scripts/post-ts-to-zod.d.ts +0 -2
  568. package/scripts/post-ts-to-zod.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PluginSchema.d.ts","sourceRoot":"","sources":["PluginSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAA4E,MAAM,6BAA6B,CAAC;AACjI,OAAO,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzF,YAAY,EAAE,kBAAkB,IAAI,YAAY,EAAE,CAAC;AAEnD,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,kBAoBrC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,YAAY,KAAG,kBAAiC,CAAC;AAE/E,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAO9E,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,KAAK,kBAAkB,EAAE,QAAQ,CAAC,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAAc,CAAC;AAG3H,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGnB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoB,CAAC;AAC3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEjD,MAAM,MAAM,CAAC,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PluginSchema.d.ts","sourceRoot":"","sources":["PluginSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAA4E,MAAM,6BAA6B,CAAC;AACjI,OAAO,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzF,YAAY,EAAE,kBAAkB,IAAI,YAAY,EAAE,CAAC;AAEnD,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,kBAoBrC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,YAAY,KAAG,kBAAiC,CAAC;AAE/E,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAO9E,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAG,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAc,CAAC;AAG3H,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGnB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoB,CAAC;AAC3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEjD,MAAM,MAAM,CAAC,GAAG,kBAAkB,CAAC"}
@@ -114,6 +114,14 @@ var taskSchema = import_zod.z.object({
114
114
  options: import_zod.z.array(optionSchema).optional(),
115
115
  positionals: import_zod.z.array(positionalArgSchema).optional()
116
116
  });
117
+ var pluginSchemaBaseSchema = import_zod.z.object({
118
+ name: nonEmptyStringSchema,
119
+ version: versionNumberSchema,
120
+ schema: versionNumberSchema,
121
+ alias: aliasSchema,
122
+ tasks: import_zod.z.array(taskSchema).optional(),
123
+ postInstall: import_zod.z.string().optional()
124
+ });
117
125
  var runtimeDependencySchema = import_zod.z.object({
118
126
  name: humanReadableIdentifierSchema,
119
127
  path: import_zod.z.string(),
@@ -240,10 +248,23 @@ var metadataConfigSchema = import_zod.z.object({
240
248
  homepage: import_zod.z.string().optional()
241
249
  });
242
250
  var versionV2Schema = import_zod.z.string().regex(/^v2$/);
251
+ var configAccountSchema = import_zod.z.object({
252
+ balance: currencyAmountV2Schema
253
+ });
243
254
  var sandboxAccountSchema = import_zod.z.object({
244
255
  type: import_zod.z.string().optional()
245
256
  }).passthrough();
246
257
  var sandboxAccountsSchema = import_zod.z.record(sandboxAccountSchema);
258
+ var configEnvironmentFileV2Schema = import_zod.z.object({
259
+ type: import_zod.z.string().optional(),
260
+ accounts: sandboxAccountsSchema.optional(),
261
+ accountDefault: import_zod.z.any().optional(),
262
+ contracts: import_zod.z.record(
263
+ import_zod.z.object({
264
+ address: import_zod.z.string().optional()
265
+ })
266
+ ).optional()
267
+ }).passthrough();
247
268
  var networkAccountConfigSchema = import_zod.z.object({
248
269
  publicKey: nonEmptyStringSchema.optional(),
249
270
  publicKeyHash: publicKeyHashSchema.optional(),
@@ -255,39 +276,28 @@ var sandboxAccountConfigSchema = import_zod.z.object({
255
276
  publicKeyHash: publicKeyHashSchema,
256
277
  secretKey: nonEmptyStringSchema
257
278
  });
279
+ var sandboxConfigSchema = import_zod.z.object({
280
+ label: nonEmptyStringSchema,
281
+ rpcUrl: urlSchema,
282
+ protocol: economicalProtocolHashSchema.optional(),
283
+ plugin: verbSchema.optional(),
284
+ accounts: import_zod.z.record(import_zod.z.union([sandboxAccountConfigSchema, nonEmptyStringSchema])).optional(),
285
+ tzkt: tzKtConfigSchema.optional(),
286
+ annotations: import_zod.z.record(import_zod.z.unknown()).optional()
287
+ });
258
288
  var scaffoldConfigSchema = import_zod.z.object({
259
289
  postInit: import_zod.z.string().optional()
260
290
  });
261
- var pluginSchemaBaseSchema = import_zod.z.object({
262
- name: nonEmptyStringSchema,
263
- version: versionNumberSchema,
264
- schema: versionNumberSchema,
265
- alias: aliasSchema,
266
- tasks: import_zod.z.array(taskSchema).optional(),
267
- postInstall: import_zod.z.string().optional()
268
- });
269
291
  var persistentStateSchema = import_zod.z.object({
270
292
  operations: import_zod.z.record(persistedOperationSchema),
271
293
  tasks: import_zod.z.record(persistedTaskSchema)
272
294
  });
273
- var configAccountSchema = import_zod.z.object({
274
- balance: currencyAmountV2Schema
275
- });
276
295
  var networkConfigSchema = import_zod.z.object({
277
296
  label: humanReadableIdentifierSchema,
278
297
  rpcUrl: urlSchema,
279
298
  accounts: import_zod.z.record(networkAccountConfigSchema).optional(),
280
299
  faucet: faucetSchema.optional()
281
300
  });
282
- var sandboxConfigSchema = import_zod.z.object({
283
- label: nonEmptyStringSchema,
284
- rpcUrl: urlSchema,
285
- protocol: economicalProtocolHashSchema.optional(),
286
- plugin: verbSchema.optional(),
287
- accounts: import_zod.z.record(import_zod.z.union([sandboxAccountConfigSchema, nonEmptyStringSchema])).optional(),
288
- tzkt: tzKtConfigSchema.optional(),
289
- annotations: import_zod.z.record(import_zod.z.unknown()).optional()
290
- });
291
301
  var configFileV1Schema = import_zod.z.object({
292
302
  language: humanLanguageSchema.optional(),
293
303
  plugins: import_zod.z.array(installedPluginSchema).optional(),
@@ -300,28 +310,6 @@ var configFileV1Schema = import_zod.z.object({
300
310
  contracts: import_zod.z.record(contractSchema).optional(),
301
311
  metadata: metadataConfigSchema.optional()
302
312
  });
303
- var configEnvironmentFileV2Schema = import_zod.z.object({
304
- type: import_zod.z.string().optional(),
305
- accounts: sandboxAccountsSchema.optional(),
306
- accountDefault: import_zod.z.any().optional(),
307
- contracts: import_zod.z.record(
308
- import_zod.z.object({
309
- address: import_zod.z.string().optional()
310
- })
311
- ).optional()
312
- }).passthrough();
313
- var configSchema = import_zod.z.object({
314
- language: humanLanguageSchema.optional(),
315
- metadata: metadataConfigSchema.optional(),
316
- artifactsDir: configArtifactsDirSchema.optional(),
317
- contractsDir: configContractsDirSchema.optional(),
318
- contracts: import_zod.z.record(contractSchema).optional(),
319
- plugins: import_zod.z.array(installedPluginSchema).optional(),
320
- accounts: import_zod.z.record(tzSchema).optional(),
321
- environment: import_zod.z.record(import_zod.z.union([environmentSchema, environmentNameSchema])),
322
- network: import_zod.z.record(networkConfigSchema).optional(),
323
- sandbox: import_zod.z.record(sandboxConfigSchema).optional()
324
- });
325
313
  var configFileV2Schema = import_zod.z.object({
326
314
  version: versionV2Schema,
327
315
  language: humanLanguageSchema.optional(),
@@ -334,6 +322,18 @@ var configFileV2Schema = import_zod.z.object({
334
322
  environments: import_zod.z.record(configEnvironmentFileV2Schema).optional(),
335
323
  plugins: import_zod.z.array(installedPluginSchema).optional()
336
324
  });
325
+ var configSchema = import_zod.z.object({
326
+ language: humanLanguageSchema.optional(),
327
+ metadata: metadataConfigSchema.optional(),
328
+ artifactsDir: configArtifactsDirSchema.optional(),
329
+ contractsDir: configContractsDirSchema.optional(),
330
+ contracts: import_zod.z.record(contractSchema).optional(),
331
+ plugins: import_zod.z.array(installedPluginSchema).optional(),
332
+ accounts: import_zod.z.record(tzSchema).optional(),
333
+ environment: import_zod.z.record(import_zod.z.union([environmentSchema, environmentNameSchema])),
334
+ network: import_zod.z.record(networkConfigSchema).optional(),
335
+ sandbox: import_zod.z.record(sandboxConfigSchema).optional()
336
+ });
337
337
  var parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(
338
338
  {
339
339
  sandbox: import_zod.z.record(import_zod.z.union([sandboxConfigSchema, nonEmptyStringSchema]))
@@ -352,11 +352,6 @@ var requestArgsSchema = sanitizedArgsSchema.omit({ quickstart: true }).extend(
352
352
  config: loadedConfigSchema
353
353
  }
354
354
  ).passthrough();
355
- var proxyTaskArgsSchema = requestArgsSchema.extend(
356
- {
357
- task: nonEmptyStringSchema
358
- }
359
- ).passthrough();
360
355
  var proxyTemplateArgsSchema = requestArgsSchema.extend(
361
356
  {
362
357
  template: nonEmptyStringSchema
@@ -393,12 +388,6 @@ var parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(
393
388
  handler: import_zod.z.string()
394
389
  }
395
390
  );
396
- var pluginInfoSchema = pluginSchemaBaseSchema.extend(
397
- {
398
- operations: import_zod.z.array(parsedOperationSchema).optional(),
399
- templates: import_zod.z.array(parsedTemplateSchema).optional()
400
- }
401
- );
402
391
  var pluginSchemaSchema = pluginSchemaBaseSchema.extend(
403
392
  {
404
393
  operations: import_zod.z.array(operationSchema).optional(),
@@ -408,6 +397,17 @@ var pluginSchemaSchema = pluginSchemaBaseSchema.extend(
408
397
  installRuntimeDependencies: import_zod.z.function().args(requestArgsSchema).returns(import_zod.z.promise(pluginDependenciesResponseSchema)).optional()
409
398
  }
410
399
  );
400
+ var proxyTaskArgsSchema = requestArgsSchema.extend(
401
+ {
402
+ task: nonEmptyStringSchema
403
+ }
404
+ ).passthrough();
405
+ var pluginInfoSchema = pluginSchemaBaseSchema.extend(
406
+ {
407
+ operations: import_zod.z.array(parsedOperationSchema).optional(),
408
+ templates: import_zod.z.array(parsedTemplateSchema).optional()
409
+ }
410
+ );
411
411
  var ephemeralStateSchema = import_zod.z.object({
412
412
  build: import_zod.z.string(),
413
413
  configHash: import_zod.z.string(),
@@ -1 +1 @@
1
- {"version":3,"sources":["PluginSchema.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '../../TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PluginSchema } from '../../types';\nimport { PluginSchema as PluginSchemaStrict } from '../types-strict';\nimport { pluginSchemaSchema } from '../types-zod';\n\nexport type { PluginSchemaStrict as PluginSchema };\n\nexport const from = (input: unknown): PluginSchemaStrict => {\n\ttry {\n\t\treturn pluginSchemaSchema.parse(input) as PluginSchemaStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PluginSchema is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PluginSchema.\")\n\t}\n \n};\n\nexport const create = (input: PluginSchema): PluginSchemaStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PluginSchemaStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PluginSchemaStrict, '__type'>): FutureInstance<TaqError, PluginSchemaStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: pluginSchemaSchema,\n\tschema: pluginSchemaSchema.transform(val => val as PluginSchemaStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = pluginSchemaSchema;\n\nexport type t = PluginSchemaStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/,\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema.regex(\n /^([A-Za-z-_ ]+ ?)((\\[.+\\] ?)|(\\<.+\\>) ?)*$/,\n);\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([\n z.literal(\"string\"),\n z.literal(\"number\"),\n z.literal(\"boolean\"),\n z.literal(\"count\"),\n ])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n }),\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n messages: z\n .object({\n header: z.string().optional(),\n footer: z.string().optional(),\n })\n .optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"runPostInstall\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/,\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\",\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n postInstall: z.string().optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n }),\n )\n .optional(),\n}).passthrough();\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n }),\n);\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n }),\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n }),\n ).passthrough();\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n }),\n).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n }),\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)]),\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n }),\n);\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n }),\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n }),\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}
1
+ {"version":3,"sources":["PluginSchema.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '@taqueria/protocol/TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PluginSchema } from '@taqueria/protocol/types';\nimport { PluginSchema as PluginSchemaStrict } from '@taqueria/protocol/out/types-strict';\nimport { pluginSchemaSchema } from '@taqueria/protocol/out/types-zod';\n\nexport type { PluginSchemaStrict as PluginSchema };\n\nexport const from = (input: unknown): PluginSchemaStrict => {\n\ttry {\n\t\treturn pluginSchemaSchema.parse(input) as PluginSchemaStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PluginSchema is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PluginSchema.\")\n\t}\n \n};\n\nexport const create = (input: PluginSchema): PluginSchemaStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PluginSchemaStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PluginSchemaStrict, '__type'>): FutureInstance<TaqError, PluginSchemaStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: pluginSchemaSchema,\n\tschema: pluginSchemaSchema.transform(val => val as PluginSchemaStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = pluginSchemaSchema;\n\nexport type t = PluginSchemaStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/,\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema.regex(\n /^([A-Za-z-_ ]+ ?)((\\[.+\\] ?)|(\\<.+\\>) ?)*$/,\n);\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([\n z.literal(\"string\"),\n z.literal(\"number\"),\n z.literal(\"boolean\"),\n z.literal(\"count\"),\n ])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n postInstall: z.string().optional(),\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n }),\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n messages: z\n .object({\n header: z.string().optional(),\n footer: z.string().optional(),\n })\n .optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"runPostInstall\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/,\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\",\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n }),\n )\n .optional(),\n}).passthrough();\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n }),\n);\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n }),\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n }),\n ).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n }),\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)]),\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n }),\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n }),\n);\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n }),\n).passthrough();\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n }),\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}