@shogun-sdk/intents-sdk 1.2.31 → 1.4.0

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 (660) hide show
  1. package/README.md +76 -25
  2. package/dist/index.cjs +8997 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1654 -0
  5. package/dist/index.d.ts +1654 -0
  6. package/dist/index.js +9246 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +44 -30
  9. package/src/auth/siwe.ts +8 -3
  10. package/src/chains.ts +6 -0
  11. package/src/constants.ts +71 -15
  12. package/src/core/evm/chain-provider.ts +4 -1
  13. package/src/core/evm/connectors/monad.ts +27 -0
  14. package/src/core/evm/cross-chain-limit-order.ts +14 -14
  15. package/src/core/evm/intent-helpers.ts +162 -21
  16. package/src/core/evm/intent-provider.ts +5 -4
  17. package/src/core/evm/permit2.ts +36 -0
  18. package/src/core/evm/single-chain-dca-order.ts +18 -18
  19. package/src/core/evm/single-chain-limit-order.ts +15 -15
  20. package/src/core/evm/types.ts +4 -4
  21. package/src/core/evm/validator.ts +1 -1
  22. package/src/core/orders/api/fetch.ts +33 -16
  23. package/src/core/orders/api/index.ts +39 -8
  24. package/src/core/orders/common.ts +2 -0
  25. package/src/core/orders/cross-chain.ts +15 -18
  26. package/src/core/orders/single-chain.ts +30 -13
  27. package/src/core/sdk.ts +11 -0
  28. package/src/core/solana/cancel-order.ts +4 -2
  29. package/src/core/solana/client.ts +1 -1
  30. package/src/core/solana/dca/cancel-order.ts +2 -1
  31. package/src/core/solana/dca/single-chain-dca-order.ts +19 -22
  32. package/src/core/solana/dca/single-chain-limit-order.ts +20 -22
  33. package/src/core/solana/generated/cross-chain/accounts/dcaOrder.ts +2 -2
  34. package/src/core/solana/generated/cross-chain/accounts/guard.ts +22 -10
  35. package/src/core/solana/generated/cross-chain/errors/sourceChainGuard.ts +37 -33
  36. package/src/core/solana/generated/cross-chain/instructions/cancelDcaOrder.ts +36 -22
  37. package/src/core/solana/generated/cross-chain/instructions/cancelOrder.ts +32 -18
  38. package/src/core/solana/generated/cross-chain/instructions/claimTokensForDcaInterval.ts +396 -0
  39. package/src/core/solana/generated/cross-chain/instructions/index.ts +5 -0
  40. package/src/core/solana/generated/cross-chain/instructions/preStartDcaOrderExecution.ts +504 -0
  41. package/src/core/solana/generated/cross-chain/instructions/setCancelAuthorities.ts +326 -0
  42. package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecution.ts +440 -0
  43. package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecutionAfterSwap.ts +322 -0
  44. package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +80 -0
  45. package/src/core/solana/generated/cross-chain/types/cancelAuthoritiesUpdated.ts +40 -0
  46. package/src/core/solana/generated/cross-chain/types/index.ts +1 -0
  47. package/src/core/solana/generated/single-chain/accounts/guard.ts +22 -10
  48. package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +24 -20
  49. package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +28 -14
  50. package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +28 -14
  51. package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +30 -4
  52. package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +30 -4
  53. package/src/core/solana/generated/single-chain/instructions/index.ts +1 -0
  54. package/src/core/solana/generated/single-chain/instructions/setCancelAuthorities.ts +326 -0
  55. package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +17 -1
  56. package/src/core/solana/generated/single-chain/types/cancelAuthoritiesUpdated.ts +40 -0
  57. package/src/core/solana/generated/single-chain/types/index.ts +1 -0
  58. package/src/core/solana/intent-helpers.ts +38 -27
  59. package/src/core/solana/sdk.ts +1 -1
  60. package/src/core/solana/utils.ts +10 -1
  61. package/src/core/sui/cross-chain-limit-order.ts +1 -29
  62. package/src/core/sui/intent-helpers.ts +39 -41
  63. package/src/core/sui/order-transaction.ts +1 -1
  64. package/src/core/sui/single-chain-dca-order.ts +19 -32
  65. package/src/core/sui/single-chain-limit-order.ts +19 -34
  66. package/src/index.ts +22 -9
  67. package/src/types/api.ts +22 -2
  68. package/src/types/intent.ts +42 -5
  69. package/src/types/token-list.ts +35 -0
  70. package/src/utils/base-validator.ts +0 -4
  71. package/src/utils/defillama.ts +2 -0
  72. package/src/utils/generate-execution-details-hash.ts +13 -0
  73. package/src/utils/quote/address.ts +4 -0
  74. package/src/utils/quote/aggregator.ts +326 -76
  75. package/src/utils/quote/liquidswap.ts +42 -13
  76. package/src/utils/quote/paraswap.ts +2 -0
  77. package/src/utils/quote/pricing/constants.ts +33 -0
  78. package/src/utils/quote/pricing/decimals.ts +11 -0
  79. package/src/utils/quote/pricing/estimate-amount-out.ts +36 -0
  80. package/src/utils/quote/pricing/expenses.ts +62 -0
  81. package/src/utils/quote/pricing/gas.ts +28 -0
  82. package/src/utils/quote/pumpfun/estimations.ts +206 -0
  83. package/src/utils/quote/pumpfun/estimations_amm.ts +165 -0
  84. package/src/utils/quote/pumpfun/index.ts +266 -0
  85. package/src/utils/quote/pumpfun/models.ts +163 -0
  86. package/src/utils/quote/pumpfun/utils.ts +343 -0
  87. package/src/utils/quote/raydium.ts +506 -0
  88. package/src/utils/quote/relay.ts +99 -0
  89. package/src/utils/quote/stablecoins-tokens.ts +35 -8
  90. package/src/utils/quote/utils.ts +8 -0
  91. package/src/utils/tokens/index.ts +38 -0
  92. package/dist/esm/auth/siwe.js +0 -26
  93. package/dist/esm/auth/siwe.js.map +0 -1
  94. package/dist/esm/chains.js +0 -62
  95. package/dist/esm/chains.js.map +0 -1
  96. package/dist/esm/config.js +0 -2
  97. package/dist/esm/config.js.map +0 -1
  98. package/dist/esm/constants.js +0 -106
  99. package/dist/esm/constants.js.map +0 -1
  100. package/dist/esm/core/evm/abi/erc20.js +0 -313
  101. package/dist/esm/core/evm/abi/erc20.js.map +0 -1
  102. package/dist/esm/core/evm/abi/permit2.js +0 -395
  103. package/dist/esm/core/evm/abi/permit2.js.map +0 -1
  104. package/dist/esm/core/evm/abi/single-chain-guard-limit.js +0 -768
  105. package/dist/esm/core/evm/abi/single-chain-guard-limit.js.map +0 -1
  106. package/dist/esm/core/evm/abi/source-chain-guard.js +0 -1121
  107. package/dist/esm/core/evm/abi/source-chain-guard.js.map +0 -1
  108. package/dist/esm/core/evm/cancel-order.js +0 -130
  109. package/dist/esm/core/evm/cancel-order.js.map +0 -1
  110. package/dist/esm/core/evm/chain-provider.js +0 -118
  111. package/dist/esm/core/evm/chain-provider.js.map +0 -1
  112. package/dist/esm/core/evm/connectors/hyperevm.js +0 -23
  113. package/dist/esm/core/evm/connectors/hyperevm.js.map +0 -1
  114. package/dist/esm/core/evm/cross-chain-limit-order.js +0 -43
  115. package/dist/esm/core/evm/cross-chain-limit-order.js.map +0 -1
  116. package/dist/esm/core/evm/intent-helpers.js +0 -130
  117. package/dist/esm/core/evm/intent-helpers.js.map +0 -1
  118. package/dist/esm/core/evm/intent-provider.js +0 -162
  119. package/dist/esm/core/evm/intent-provider.js.map +0 -1
  120. package/dist/esm/core/evm/order-signature.js +0 -41
  121. package/dist/esm/core/evm/order-signature.js.map +0 -1
  122. package/dist/esm/core/evm/permit2.js +0 -82
  123. package/dist/esm/core/evm/permit2.js.map +0 -1
  124. package/dist/esm/core/evm/sdk.js +0 -175
  125. package/dist/esm/core/evm/sdk.js.map +0 -1
  126. package/dist/esm/core/evm/single-chain-dca-order.js +0 -49
  127. package/dist/esm/core/evm/single-chain-dca-order.js.map +0 -1
  128. package/dist/esm/core/evm/single-chain-limit-order.js +0 -45
  129. package/dist/esm/core/evm/single-chain-limit-order.js.map +0 -1
  130. package/dist/esm/core/evm/types.js +0 -8
  131. package/dist/esm/core/evm/types.js.map +0 -1
  132. package/dist/esm/core/evm/validator.js +0 -111
  133. package/dist/esm/core/evm/validator.js.map +0 -1
  134. package/dist/esm/core/orders/api/fetch.js +0 -17
  135. package/dist/esm/core/orders/api/fetch.js.map +0 -1
  136. package/dist/esm/core/orders/api/index.js +0 -31
  137. package/dist/esm/core/orders/api/index.js.map +0 -1
  138. package/dist/esm/core/orders/common.js +0 -8
  139. package/dist/esm/core/orders/common.js.map +0 -1
  140. package/dist/esm/core/orders/cross-chain.js +0 -319
  141. package/dist/esm/core/orders/cross-chain.js.map +0 -1
  142. package/dist/esm/core/orders/dca-single-chain.js +0 -172
  143. package/dist/esm/core/orders/dca-single-chain.js.map +0 -1
  144. package/dist/esm/core/orders/single-chain.js +0 -197
  145. package/dist/esm/core/orders/single-chain.js.map +0 -1
  146. package/dist/esm/core/sdk.js +0 -86
  147. package/dist/esm/core/sdk.js.map +0 -1
  148. package/dist/esm/core/solana/cancel-order.js +0 -176
  149. package/dist/esm/core/solana/cancel-order.js.map +0 -1
  150. package/dist/esm/core/solana/client.js +0 -19
  151. package/dist/esm/core/solana/client.js.map +0 -1
  152. package/dist/esm/core/solana/cross-chain-limit-order.js +0 -18
  153. package/dist/esm/core/solana/cross-chain-limit-order.js.map +0 -1
  154. package/dist/esm/core/solana/dca/cancel-order.js +0 -61
  155. package/dist/esm/core/solana/dca/cancel-order.js.map +0 -1
  156. package/dist/esm/core/solana/dca/create-order.js +0 -82
  157. package/dist/esm/core/solana/dca/create-order.js.map +0 -1
  158. package/dist/esm/core/solana/dca/single-chain-dca-order.js +0 -23
  159. package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +0 -1
  160. package/dist/esm/core/solana/dca/single-chain-limit-order.js +0 -29
  161. package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +0 -1
  162. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +0 -60
  163. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +0 -1
  164. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +0 -90
  165. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +0 -1
  166. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +0 -64
  167. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +0 -1
  168. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +0 -12
  169. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +0 -1
  170. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +0 -78
  171. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +0 -1
  172. package/dist/esm/core/solana/generated/cross-chain/errors/index.js +0 -9
  173. package/dist/esm/core/solana/generated/cross-chain/errors/index.js.map +0 -1
  174. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +0 -140
  175. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +0 -1
  176. package/dist/esm/core/solana/generated/cross-chain/index.js +0 -13
  177. package/dist/esm/core/solana/generated/cross-chain/index.js.map +0 -1
  178. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +0 -88
  179. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +0 -1
  180. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +0 -118
  181. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +0 -1
  182. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +0 -107
  183. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +0 -1
  184. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +0 -127
  185. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +0 -1
  186. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +0 -133
  187. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +0 -1
  188. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +0 -170
  189. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +0 -1
  190. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +0 -188
  191. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +0 -1
  192. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +0 -166
  193. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +0 -1
  194. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +0 -22
  195. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +0 -1
  196. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +0 -126
  197. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +0 -1
  198. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +0 -110
  199. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +0 -1
  200. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +0 -98
  201. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +0 -1
  202. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +0 -111
  203. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  204. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +0 -98
  205. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +0 -1
  206. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +0 -106
  207. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +0 -1
  208. package/dist/esm/core/solana/generated/cross-chain/programs/index.js +0 -9
  209. package/dist/esm/core/solana/generated/cross-chain/programs/index.js.map +0 -1
  210. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +0 -98
  211. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +0 -1
  212. package/dist/esm/core/solana/generated/cross-chain/shared/index.js +0 -79
  213. package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +0 -1
  214. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js +0 -18
  215. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +0 -1
  216. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js +0 -18
  217. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js.map +0 -1
  218. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js +0 -24
  219. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  220. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +0 -32
  221. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +0 -1
  222. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +0 -42
  223. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +0 -1
  224. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +0 -26
  225. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  226. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +0 -28
  227. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +0 -1
  228. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js +0 -30
  229. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js.map +0 -1
  230. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +0 -26
  231. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +0 -1
  232. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js +0 -28
  233. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js.map +0 -1
  234. package/dist/esm/core/solana/generated/cross-chain/types/index.js +0 -22
  235. package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +0 -1
  236. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js +0 -18
  237. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js.map +0 -1
  238. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js +0 -36
  239. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js.map +0 -1
  240. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js +0 -18
  241. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js.map +0 -1
  242. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js +0 -26
  243. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +0 -1
  244. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +0 -60
  245. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +0 -1
  246. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +0 -75
  247. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +0 -1
  248. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +0 -62
  249. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +0 -1
  250. package/dist/esm/core/solana/generated/single-chain/accounts/index.js +0 -12
  251. package/dist/esm/core/solana/generated/single-chain/accounts/index.js.map +0 -1
  252. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +0 -65
  253. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +0 -1
  254. package/dist/esm/core/solana/generated/single-chain/errors/index.js +0 -9
  255. package/dist/esm/core/solana/generated/single-chain/errors/index.js.map +0 -1
  256. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +0 -101
  257. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +0 -1
  258. package/dist/esm/core/solana/generated/single-chain/index.js +0 -13
  259. package/dist/esm/core/solana/generated/single-chain/index.js.map +0 -1
  260. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +0 -88
  261. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +0 -1
  262. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +0 -84
  263. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +0 -1
  264. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +0 -84
  265. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +0 -1
  266. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +0 -121
  267. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +0 -1
  268. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +0 -172
  269. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +0 -1
  270. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +0 -163
  271. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +0 -1
  272. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +0 -168
  273. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +0 -1
  274. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +0 -146
  275. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +0 -1
  276. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +0 -146
  277. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +0 -1
  278. package/dist/esm/core/solana/generated/single-chain/instructions/index.js +0 -20
  279. package/dist/esm/core/solana/generated/single-chain/instructions/index.js.map +0 -1
  280. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +0 -126
  281. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +0 -1
  282. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +0 -98
  283. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +0 -1
  284. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +0 -111
  285. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  286. package/dist/esm/core/solana/generated/single-chain/programs/index.js +0 -9
  287. package/dist/esm/core/solana/generated/single-chain/programs/index.js.map +0 -1
  288. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +0 -90
  289. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +0 -1
  290. package/dist/esm/core/solana/generated/single-chain/shared/index.js +0 -79
  291. package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +0 -1
  292. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js +0 -18
  293. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +0 -1
  294. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js +0 -18
  295. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js.map +0 -1
  296. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js +0 -24
  297. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  298. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js +0 -42
  299. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js.map +0 -1
  300. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js +0 -18
  301. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +0 -1
  302. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js +0 -30
  303. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  304. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js +0 -26
  305. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +0 -1
  306. package/dist/esm/core/solana/generated/single-chain/types/index.js +0 -18
  307. package/dist/esm/core/solana/generated/single-chain/types/index.js.map +0 -1
  308. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js +0 -36
  309. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +0 -1
  310. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js +0 -24
  311. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +0 -1
  312. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js +0 -18
  313. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js.map +0 -1
  314. package/dist/esm/core/solana/inspect.js +0 -43
  315. package/dist/esm/core/solana/inspect.js.map +0 -1
  316. package/dist/esm/core/solana/intent-helpers.js +0 -177
  317. package/dist/esm/core/solana/intent-helpers.js.map +0 -1
  318. package/dist/esm/core/solana/order-instructions.js +0 -163
  319. package/dist/esm/core/solana/order-instructions.js.map +0 -1
  320. package/dist/esm/core/solana/sdk.js +0 -220
  321. package/dist/esm/core/solana/sdk.js.map +0 -1
  322. package/dist/esm/core/solana/utils.js +0 -19
  323. package/dist/esm/core/solana/utils.js.map +0 -1
  324. package/dist/esm/core/solana/validator.js +0 -28
  325. package/dist/esm/core/solana/validator.js.map +0 -1
  326. package/dist/esm/core/sui/cancel.js +0 -36
  327. package/dist/esm/core/sui/cancel.js.map +0 -1
  328. package/dist/esm/core/sui/client.js +0 -3
  329. package/dist/esm/core/sui/client.js.map +0 -1
  330. package/dist/esm/core/sui/cross-chain-limit-order.js +0 -26
  331. package/dist/esm/core/sui/cross-chain-limit-order.js.map +0 -1
  332. package/dist/esm/core/sui/intent-helpers.js +0 -136
  333. package/dist/esm/core/sui/intent-helpers.js.map +0 -1
  334. package/dist/esm/core/sui/order-transaction.js +0 -58
  335. package/dist/esm/core/sui/order-transaction.js.map +0 -1
  336. package/dist/esm/core/sui/sdk.js +0 -119
  337. package/dist/esm/core/sui/sdk.js.map +0 -1
  338. package/dist/esm/core/sui/single-chain-dca-order.js +0 -99
  339. package/dist/esm/core/sui/single-chain-dca-order.js.map +0 -1
  340. package/dist/esm/core/sui/single-chain-limit-order.js +0 -103
  341. package/dist/esm/core/sui/single-chain-limit-order.js.map +0 -1
  342. package/dist/esm/core/sui/validator.js +0 -31
  343. package/dist/esm/core/sui/validator.js.map +0 -1
  344. package/dist/esm/errors/index.js +0 -68
  345. package/dist/esm/errors/index.js.map +0 -1
  346. package/dist/esm/index.js +0 -38
  347. package/dist/esm/index.js.map +0 -1
  348. package/dist/esm/types/api.js +0 -7
  349. package/dist/esm/types/api.js.map +0 -1
  350. package/dist/esm/types/intent.js +0 -2
  351. package/dist/esm/types/intent.js.map +0 -1
  352. package/dist/esm/utils/base-validator.js +0 -91
  353. package/dist/esm/utils/base-validator.js.map +0 -1
  354. package/dist/esm/utils/defillama.js +0 -104
  355. package/dist/esm/utils/defillama.js.map +0 -1
  356. package/dist/esm/utils/logger.js +0 -109
  357. package/dist/esm/utils/logger.js.map +0 -1
  358. package/dist/esm/utils/order-validator.js +0 -112
  359. package/dist/esm/utils/order-validator.js.map +0 -1
  360. package/dist/esm/utils/parsers.js +0 -28
  361. package/dist/esm/utils/parsers.js.map +0 -1
  362. package/dist/esm/utils/quote/aftermath.js +0 -15
  363. package/dist/esm/utils/quote/aftermath.js.map +0 -1
  364. package/dist/esm/utils/quote/aggregator.js +0 -254
  365. package/dist/esm/utils/quote/aggregator.js.map +0 -1
  366. package/dist/esm/utils/quote/jupiter.js +0 -31
  367. package/dist/esm/utils/quote/jupiter.js.map +0 -1
  368. package/dist/esm/utils/quote/liquidswap.js +0 -22
  369. package/dist/esm/utils/quote/liquidswap.js.map +0 -1
  370. package/dist/esm/utils/quote/paraswap.js +0 -67
  371. package/dist/esm/utils/quote/paraswap.js.map +0 -1
  372. package/dist/esm/utils/quote/stablecoins-tokens.js +0 -13
  373. package/dist/esm/utils/quote/stablecoins-tokens.js.map +0 -1
  374. package/dist/esm/utils/type-utils.js +0 -2
  375. package/dist/esm/utils/type-utils.js.map +0 -1
  376. package/dist/types/auth/siwe.d.ts +0 -13
  377. package/dist/types/auth/siwe.d.ts.map +0 -1
  378. package/dist/types/chains.d.ts +0 -62
  379. package/dist/types/chains.d.ts.map +0 -1
  380. package/dist/types/config.d.ts +0 -21
  381. package/dist/types/config.d.ts.map +0 -1
  382. package/dist/types/constants.d.ts +0 -43
  383. package/dist/types/constants.d.ts.map +0 -1
  384. package/dist/types/core/evm/abi/erc20.d.ts +0 -240
  385. package/dist/types/core/evm/abi/erc20.d.ts.map +0 -1
  386. package/dist/types/core/evm/abi/permit2.d.ts +0 -304
  387. package/dist/types/core/evm/abi/permit2.d.ts.map +0 -1
  388. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts +0 -596
  389. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts.map +0 -1
  390. package/dist/types/core/evm/abi/source-chain-guard.d.ts +0 -877
  391. package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +0 -1
  392. package/dist/types/core/evm/cancel-order.d.ts +0 -28
  393. package/dist/types/core/evm/cancel-order.d.ts.map +0 -1
  394. package/dist/types/core/evm/chain-provider.d.ts +0 -62338
  395. package/dist/types/core/evm/chain-provider.d.ts.map +0 -1
  396. package/dist/types/core/evm/connectors/hyperevm.d.ts +0 -38
  397. package/dist/types/core/evm/connectors/hyperevm.d.ts.map +0 -1
  398. package/dist/types/core/evm/cross-chain-limit-order.d.ts +0 -22
  399. package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +0 -1
  400. package/dist/types/core/evm/intent-helpers.d.ts +0 -105
  401. package/dist/types/core/evm/intent-helpers.d.ts.map +0 -1
  402. package/dist/types/core/evm/intent-provider.d.ts +0 -19
  403. package/dist/types/core/evm/intent-provider.d.ts.map +0 -1
  404. package/dist/types/core/evm/order-signature.d.ts +0 -22
  405. package/dist/types/core/evm/order-signature.d.ts.map +0 -1
  406. package/dist/types/core/evm/permit2.d.ts +0 -261
  407. package/dist/types/core/evm/permit2.d.ts.map +0 -1
  408. package/dist/types/core/evm/sdk.d.ts +0 -63
  409. package/dist/types/core/evm/sdk.d.ts.map +0 -1
  410. package/dist/types/core/evm/single-chain-dca-order.d.ts +0 -26
  411. package/dist/types/core/evm/single-chain-dca-order.d.ts.map +0 -1
  412. package/dist/types/core/evm/single-chain-limit-order.d.ts +0 -23
  413. package/dist/types/core/evm/single-chain-limit-order.d.ts.map +0 -1
  414. package/dist/types/core/evm/types.d.ts +0 -8
  415. package/dist/types/core/evm/types.d.ts.map +0 -1
  416. package/dist/types/core/evm/validator.d.ts +0 -23
  417. package/dist/types/core/evm/validator.d.ts.map +0 -1
  418. package/dist/types/core/orders/api/fetch.d.ts +0 -3
  419. package/dist/types/core/orders/api/fetch.d.ts.map +0 -1
  420. package/dist/types/core/orders/api/index.d.ts +0 -8
  421. package/dist/types/core/orders/api/index.d.ts.map +0 -1
  422. package/dist/types/core/orders/common.d.ts +0 -12
  423. package/dist/types/core/orders/common.d.ts.map +0 -1
  424. package/dist/types/core/orders/cross-chain.d.ts +0 -125
  425. package/dist/types/core/orders/cross-chain.d.ts.map +0 -1
  426. package/dist/types/core/orders/dca-single-chain.d.ts +0 -47
  427. package/dist/types/core/orders/dca-single-chain.d.ts.map +0 -1
  428. package/dist/types/core/orders/single-chain.d.ts +0 -47
  429. package/dist/types/core/orders/single-chain.d.ts.map +0 -1
  430. package/dist/types/core/sdk.d.ts +0 -30
  431. package/dist/types/core/sdk.d.ts.map +0 -1
  432. package/dist/types/core/solana/cancel-order.d.ts +0 -18
  433. package/dist/types/core/solana/cancel-order.d.ts.map +0 -1
  434. package/dist/types/core/solana/client.d.ts +0 -11
  435. package/dist/types/core/solana/client.d.ts.map +0 -1
  436. package/dist/types/core/solana/cross-chain-limit-order.d.ts +0 -9
  437. package/dist/types/core/solana/cross-chain-limit-order.d.ts.map +0 -1
  438. package/dist/types/core/solana/dca/cancel-order.d.ts +0 -5
  439. package/dist/types/core/solana/dca/cancel-order.d.ts.map +0 -1
  440. package/dist/types/core/solana/dca/create-order.d.ts +0 -8
  441. package/dist/types/core/solana/dca/create-order.d.ts.map +0 -1
  442. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +0 -14
  443. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +0 -1
  444. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +0 -19
  445. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +0 -1
  446. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +0 -40
  447. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +0 -1
  448. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +0 -110
  449. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +0 -1
  450. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +0 -52
  451. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +0 -1
  452. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +0 -12
  453. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +0 -1
  454. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +0 -92
  455. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +0 -1
  456. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts +0 -9
  457. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts.map +0 -1
  458. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +0 -97
  459. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +0 -1
  460. package/dist/types/core/solana/generated/cross-chain/index.d.ts +0 -13
  461. package/dist/types/core/solana/generated/cross-chain/index.d.ts.map +0 -1
  462. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +0 -56
  463. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +0 -1
  464. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +0 -124
  465. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  466. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +0 -108
  467. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +0 -1
  468. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +0 -131
  469. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +0 -1
  470. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +0 -91
  471. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  472. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +0 -130
  473. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +0 -1
  474. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +0 -137
  475. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +0 -1
  476. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +0 -122
  477. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +0 -1
  478. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +0 -22
  479. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +0 -1
  480. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +0 -86
  481. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +0 -1
  482. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +0 -105
  483. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +0 -1
  484. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +0 -61
  485. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +0 -1
  486. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  487. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  488. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +0 -85
  489. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +0 -1
  490. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +0 -95
  491. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +0 -1
  492. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts +0 -9
  493. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts.map +0 -1
  494. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +0 -69
  495. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +0 -1
  496. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +0 -52
  497. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +0 -1
  498. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +0 -16
  499. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +0 -1
  500. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +0 -16
  501. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +0 -1
  502. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  503. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  504. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +0 -28
  505. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +0 -1
  506. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +0 -38
  507. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +0 -1
  508. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -18
  509. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  510. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +0 -24
  511. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +0 -1
  512. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +0 -26
  513. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +0 -1
  514. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +0 -18
  515. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +0 -1
  516. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +0 -19
  517. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +0 -1
  518. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +0 -22
  519. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +0 -1
  520. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +0 -16
  521. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +0 -1
  522. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +0 -32
  523. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +0 -1
  524. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +0 -16
  525. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +0 -1
  526. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +0 -22
  527. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +0 -1
  528. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +0 -40
  529. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +0 -1
  530. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +0 -99
  531. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +0 -1
  532. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +0 -48
  533. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +0 -1
  534. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts +0 -12
  535. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts.map +0 -1
  536. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +0 -79
  537. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +0 -1
  538. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts +0 -9
  539. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts.map +0 -1
  540. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +0 -71
  541. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +0 -1
  542. package/dist/types/core/solana/generated/single-chain/index.d.ts +0 -13
  543. package/dist/types/core/solana/generated/single-chain/index.d.ts.map +0 -1
  544. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +0 -56
  545. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +0 -1
  546. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +0 -72
  547. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  548. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +0 -72
  549. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +0 -1
  550. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +0 -91
  551. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  552. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +0 -134
  553. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +0 -1
  554. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +0 -107
  555. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +0 -1
  556. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +0 -126
  557. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +0 -1
  558. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +0 -179
  559. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +0 -1
  560. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +0 -179
  561. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +0 -1
  562. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts +0 -20
  563. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts.map +0 -1
  564. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +0 -86
  565. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +0 -1
  566. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +0 -61
  567. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +0 -1
  568. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  569. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  570. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts +0 -9
  571. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts.map +0 -1
  572. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +0 -63
  573. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +0 -1
  574. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +0 -52
  575. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +0 -1
  576. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +0 -16
  577. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +0 -1
  578. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +0 -16
  579. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +0 -1
  580. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  581. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  582. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +0 -38
  583. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +0 -1
  584. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +0 -16
  585. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +0 -1
  586. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -26
  587. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  588. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +0 -18
  589. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +0 -1
  590. package/dist/types/core/solana/generated/single-chain/types/index.d.ts +0 -18
  591. package/dist/types/core/solana/generated/single-chain/types/index.d.ts.map +0 -1
  592. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +0 -32
  593. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +0 -1
  594. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +0 -20
  595. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +0 -1
  596. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +0 -16
  597. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +0 -1
  598. package/dist/types/core/solana/inspect.d.ts +0 -14
  599. package/dist/types/core/solana/inspect.d.ts.map +0 -1
  600. package/dist/types/core/solana/intent-helpers.d.ts +0 -120
  601. package/dist/types/core/solana/intent-helpers.d.ts.map +0 -1
  602. package/dist/types/core/solana/order-instructions.d.ts +0 -16
  603. package/dist/types/core/solana/order-instructions.d.ts.map +0 -1
  604. package/dist/types/core/solana/sdk.d.ts +0 -73
  605. package/dist/types/core/solana/sdk.d.ts.map +0 -1
  606. package/dist/types/core/solana/utils.d.ts +0 -7
  607. package/dist/types/core/solana/utils.d.ts.map +0 -1
  608. package/dist/types/core/solana/validator.d.ts +0 -11
  609. package/dist/types/core/solana/validator.d.ts.map +0 -1
  610. package/dist/types/core/sui/cancel.d.ts +0 -3
  611. package/dist/types/core/sui/cancel.d.ts.map +0 -1
  612. package/dist/types/core/sui/client.d.ts +0 -3
  613. package/dist/types/core/sui/client.d.ts.map +0 -1
  614. package/dist/types/core/sui/cross-chain-limit-order.d.ts +0 -14
  615. package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +0 -1
  616. package/dist/types/core/sui/intent-helpers.d.ts +0 -89
  617. package/dist/types/core/sui/intent-helpers.d.ts.map +0 -1
  618. package/dist/types/core/sui/order-transaction.d.ts +0 -11
  619. package/dist/types/core/sui/order-transaction.d.ts.map +0 -1
  620. package/dist/types/core/sui/sdk.d.ts +0 -57
  621. package/dist/types/core/sui/sdk.d.ts.map +0 -1
  622. package/dist/types/core/sui/single-chain-dca-order.d.ts +0 -22
  623. package/dist/types/core/sui/single-chain-dca-order.d.ts.map +0 -1
  624. package/dist/types/core/sui/single-chain-limit-order.d.ts +0 -26
  625. package/dist/types/core/sui/single-chain-limit-order.d.ts.map +0 -1
  626. package/dist/types/core/sui/validator.d.ts +0 -11
  627. package/dist/types/core/sui/validator.d.ts.map +0 -1
  628. package/dist/types/errors/index.d.ts +0 -20
  629. package/dist/types/errors/index.d.ts.map +0 -1
  630. package/dist/types/index.d.ts +0 -42
  631. package/dist/types/index.d.ts.map +0 -1
  632. package/dist/types/types/api.d.ts +0 -65
  633. package/dist/types/types/api.d.ts.map +0 -1
  634. package/dist/types/types/intent.d.ts +0 -136
  635. package/dist/types/types/intent.d.ts.map +0 -1
  636. package/dist/types/utils/base-validator.d.ts +0 -46
  637. package/dist/types/utils/base-validator.d.ts.map +0 -1
  638. package/dist/types/utils/defillama.d.ts +0 -61
  639. package/dist/types/utils/defillama.d.ts.map +0 -1
  640. package/dist/types/utils/logger.d.ts +0 -35
  641. package/dist/types/utils/logger.d.ts.map +0 -1
  642. package/dist/types/utils/order-validator.d.ts +0 -64
  643. package/dist/types/utils/order-validator.d.ts.map +0 -1
  644. package/dist/types/utils/parsers.d.ts +0 -6
  645. package/dist/types/utils/parsers.d.ts.map +0 -1
  646. package/dist/types/utils/quote/aftermath.d.ts +0 -9
  647. package/dist/types/utils/quote/aftermath.d.ts.map +0 -1
  648. package/dist/types/utils/quote/aggregator.d.ts +0 -64
  649. package/dist/types/utils/quote/aggregator.d.ts.map +0 -1
  650. package/dist/types/utils/quote/jupiter.d.ts +0 -16
  651. package/dist/types/utils/quote/jupiter.d.ts.map +0 -1
  652. package/dist/types/utils/quote/liquidswap.d.ts +0 -16
  653. package/dist/types/utils/quote/liquidswap.d.ts.map +0 -1
  654. package/dist/types/utils/quote/paraswap.d.ts +0 -23
  655. package/dist/types/utils/quote/paraswap.d.ts.map +0 -1
  656. package/dist/types/utils/quote/stablecoins-tokens.d.ts +0 -11
  657. package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +0 -1
  658. package/dist/types/utils/type-utils.d.ts +0 -2
  659. package/dist/types/utils/type-utils.d.ts.map +0 -1
  660. package/src/core/solana/cross-chain-limit-order.ts +0 -24
@@ -1 +0,0 @@
1
- {"version":3,"file":"chain-provider.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/chain-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAMX,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAKtE,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE1D,MAAM,EAAE,SAAS;IAQ7B,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAS7E,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1C,UAAU,IAAI,OAAO;IAIrB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;IAUjF,kBAAkB,CAAC,cAAc,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAa1C,gCAAgC,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcjD,+BAA+B,CAAC,iBAAiB,EAAE,OAAO,GAAG,GAAG;IAahE,gBAAgB,CAAC,YAAY,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYvC"}
@@ -1,38 +0,0 @@
1
- export declare const hyperEVM: {
2
- blockExplorers: {
3
- readonly default: {
4
- readonly name: "HyperEVM Explorer";
5
- readonly url: "https://hyperevmscan.io/";
6
- };
7
- };
8
- blockTime?: number | undefined | undefined;
9
- contracts?: {
10
- [x: string]: import("viem").ChainContract | {
11
- [sourceId: number]: import("viem").ChainContract | undefined;
12
- } | undefined;
13
- ensRegistry?: import("viem").ChainContract | undefined;
14
- ensUniversalResolver?: import("viem").ChainContract | undefined;
15
- multicall3?: import("viem").ChainContract | undefined;
16
- universalSignatureVerifier?: import("viem").ChainContract | undefined;
17
- } | undefined;
18
- ensTlds?: readonly string[] | undefined;
19
- id: 999;
20
- name: "HyperEVM";
21
- nativeCurrency: {
22
- readonly decimals: 18;
23
- readonly name: "HyperEVM";
24
- readonly symbol: "HYPE";
25
- };
26
- rpcUrls: {
27
- readonly default: {
28
- readonly http: readonly ["https://rpc.hyperliquid.xyz/evm"];
29
- };
30
- };
31
- sourceId?: number | undefined | undefined;
32
- testnet: false;
33
- custom?: Record<string, unknown> | undefined;
34
- fees?: import("viem").ChainFees<undefined> | undefined;
35
- formatters?: undefined;
36
- serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
37
- };
38
- //# sourceMappingURL=hyperevm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyperevm.d.ts","sourceRoot":"","sources":["../../../../../src/core/evm/connectors/hyperevm.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBnB,CAAC"}
@@ -1,22 +0,0 @@
1
- import { ethers, type TypedDataField, type AddressLike, type BigNumberish } from "ethers";
2
- export declare const OrderInfoType: Record<string, TypedDataField[]>;
3
- export type OrderInfoStruct = {
4
- user: AddressLike;
5
- tokenIn: AddressLike;
6
- srcChainId: BigNumberish;
7
- deadline: BigNumberish;
8
- amountIn: BigNumberish;
9
- minStablecoinsAmount: BigNumberish;
10
- executionDetailsHash: string;
11
- nonce: BigNumberish;
12
- };
13
- /**
14
- * Signs Permit2 struct with OrderInfo
15
- */
16
- export declare function signCrossChainLimitOrder(signer: ethers.Wallet, orderInfo: OrderInfoStruct, chainId: number, guardAddress: string, permit2Address: string): Promise<{
17
- domain: any;
18
- types: any;
19
- values: any;
20
- signature: string;
21
- }>;
22
- //# sourceMappingURL=cross-chain-limit-order.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cross-chain-limit-order.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/cross-chain-limit-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG1F,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAW1D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,oBAAoB,EAAE,YAAY,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAkCD"}
@@ -1,105 +0,0 @@
1
- import type { SupportedEvmChain } from '../../chains.js';
2
- import type { SingleChainUserIntentRequest, CrossChainUserIntentRequest, DcaSingleChainUserIntentRequest } from '../../types/intent.js';
3
- import type { SingleChainOrder } from '../orders/single-chain.js';
4
- import type { CrossChainOrder } from '../orders/cross-chain.js';
5
- import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
6
- import type { ExtraTransfer } from '../orders/common.js';
7
- export type CreateEvmSingleChainLimitOrderIntentParams = {
8
- user: `0x${string}`;
9
- chainId: SupportedEvmChain;
10
- tokenIn: string;
11
- tokenOut: string;
12
- amountIn: bigint;
13
- amountOutMin: bigint;
14
- destinationAddress: string;
15
- extraTransfers?: ExtraTransfer[];
16
- deadline: number;
17
- nonce?: string;
18
- signature?: string;
19
- stopLossMaxOut?: bigint;
20
- takeProfitMinOut?: bigint;
21
- };
22
- export type CreateEvmSingleChainDcaOrderIntentParams = {
23
- user: `0x${string}`;
24
- chainId: SupportedEvmChain;
25
- tokenIn: string;
26
- tokenOut: string;
27
- amountInPerInterval: bigint;
28
- totalIntervals: number;
29
- intervalDuration: number;
30
- amountOutMin: bigint;
31
- destinationAddress: string;
32
- extraTransfers?: ExtraTransfer[];
33
- deadline: number;
34
- startTime: number;
35
- nonce?: string;
36
- signature?: string;
37
- };
38
- export type CreateEvmCrossChainOrderIntentParams = {
39
- user: `0x${string}`;
40
- sourceChainId: SupportedEvmChain;
41
- sourceTokenAddress: string;
42
- sourceTokenAmount: bigint;
43
- destinationChainId: number;
44
- destinationTokenAddress: string;
45
- destinationTokenMinAmount?: bigint;
46
- destinationAddress: string;
47
- minStablecoinAmount?: bigint;
48
- deadline: number;
49
- extraTransfers?: ExtraTransfer[];
50
- nonce?: string;
51
- signature?: string;
52
- stopLossMaxOut?: bigint;
53
- takeProfitMinOut?: bigint;
54
- };
55
- /**
56
- * Creates an EVM single-chain limit order intent request
57
- * @param params Parameters for creating the intent request
58
- * @returns Formatted intent request ready to send to auctioneer
59
- */
60
- export declare function createEvmSingleChainLimitOrderIntentRequest(params: CreateEvmSingleChainLimitOrderIntentParams): SingleChainUserIntentRequest;
61
- /**
62
- * Creates an EVM single-chain DCA order intent request
63
- * @param params Parameters for creating the intent request
64
- * @returns Formatted intent request ready to send to auctioneer
65
- */
66
- export declare function createEvmSingleChainDcaOrderIntentRequest(params: CreateEvmSingleChainDcaOrderIntentParams): DcaSingleChainUserIntentRequest;
67
- /**
68
- * Creates an EVM cross-chain order intent request
69
- * @param params Parameters for creating the intent request
70
- * @returns Formatted intent request ready to send to auctioneer
71
- */
72
- export declare function createEvmCrossChainOrderIntentRequest(params: CreateEvmCrossChainOrderIntentParams): CrossChainUserIntentRequest;
73
- /**
74
- * Generates EVM typed data and nonce for single-chain limit orders
75
- * @param order The single-chain order
76
- * @returns Object containing typed data and nonce for signing
77
- */
78
- export declare function generateEvmSingleChainLimitOrderTypedData(order: SingleChainOrder): Promise<{
79
- orderTypedData: import("viem").TypedDataDefinition;
80
- nonce: bigint;
81
- }>;
82
- /**
83
- * Generates EVM typed data and nonce for single-chain DCA orders
84
- * @param order The DCA order
85
- * @returns Object containing typed data and nonce for signing
86
- */
87
- export declare function generateEvmSingleChainDcaOrderTypedData(order: DcaSingleChainOrder): Promise<{
88
- orderTypedData: import("viem").TypedDataDefinition;
89
- nonce: bigint;
90
- }>;
91
- /**
92
- * Generates EVM typed data and nonce for cross-chain orders
93
- * @param order The cross-chain order
94
- * @returns Object containing typed data and nonce for signing
95
- */
96
- export declare function generateEvmCrossChainOrderTypedData(order: CrossChainOrder): Promise<{
97
- orderTypedData: import("viem").TypedDataDefinition;
98
- nonce: bigint;
99
- }>;
100
- /**
101
- * Generates a random nonce for EVM orders
102
- * @returns Random nonce as string
103
- */
104
- export declare function generateEvmRandomNonce(): string;
105
- //# sourceMappingURL=intent-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/intent-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,MAAM,0CAA0C,GAAG;IACvD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACrD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,iBAAiB,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2CAA2C,CACzD,MAAM,EAAE,0CAA0C,GACjD,4BAA4B,CAwB9B;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,wCAAwC,GAC/C,+BAA+B,CAyBjC;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,oCAAoC,GAC3C,2BAA2B,CAmC7B;AAED;;;;GAIG;AACH,wBAAsB,yCAAyC,CAAC,KAAK,EAAE,gBAAgB;;;GAEtF;AAED;;;;GAIG;AACH,wBAAsB,uCAAuC,CAAC,KAAK,EAAE,mBAAmB;;;GAEvF;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,eAAe;;;GAE/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
@@ -1,19 +0,0 @@
1
- import type { EVMConfig } from '../../config.js';
2
- import { type CrossChainPermitTransferFrom, type DcaSingleChainPermitTransferFrom, type SingleChainPermitTransferFrom } from './permit2.js';
3
- import { ChainProvider } from './chain-provider.js';
4
- import type { CrossChainOrder } from '../orders/cross-chain.js';
5
- import type { SingleChainOrder } from '../orders/single-chain.js';
6
- import type { CrossChainOrderPrepared, DcaSingleChainOrderPrepared, SingleChainOrderPrepared } from '../../types/intent.js';
7
- import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
8
- export declare class EVMIntentProvider {
9
- provider: ChainProvider;
10
- constructor(config: EVMConfig);
11
- prepareSingleChainOrder(order: SingleChainOrder): Promise<SingleChainOrderPrepared>;
12
- prepareCrossChainOrder(order: CrossChainOrder): Promise<CrossChainOrderPrepared>;
13
- static getCrossChainPermissionMessage(order: CrossChainOrder, nonce: bigint): CrossChainPermitTransferFrom;
14
- static getSingleChainLimitPermissionMessage(order: SingleChainOrder, nonce: bigint): SingleChainPermitTransferFrom;
15
- static getRandomNonce(): bigint;
16
- prepareDcaSingleChainOrder(order: DcaSingleChainOrder): Promise<DcaSingleChainOrderPrepared>;
17
- static getDcaSingleChainPermissionMessage(order: DcaSingleChainOrder, nonce: bigint): DcaSingleChainPermitTransferFrom;
18
- }
19
- //# sourceMappingURL=intent-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-provider.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/intent-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAYjD,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAEnC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,aAAa,CAAC;gBAEZ,MAAM,EAAE,SAAS;IAIvB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoBnF,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAoBtF,MAAM,CAAC,8BAA8B,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,4BAA4B;IAwB1G,MAAM,CAAC,oCAAoC,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,6BAA6B;IAoClH,MAAM,CAAC,cAAc,IAAI,MAAM;IAIzB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAoBlG,MAAM,CAAC,kCAAkC,CACvC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GACZ,gCAAgC;CAyCpC"}
@@ -1,22 +0,0 @@
1
- import type { TypedDataDefinition } from 'viem';
2
- import type { CrossChainOrder } from '../orders/cross-chain.js';
3
- import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
4
- import type { SingleChainOrder } from '../orders/single-chain.js';
5
- export declare function getEVMSingleChainOrderTypedData(order: SingleChainOrder): Promise<{
6
- orderTypedData: TypedDataDefinition;
7
- nonce: bigint;
8
- }>;
9
- /**
10
- * Generates typed data for EVM order signatures
11
- * @param order The order to generate typed data for
12
- * @returns Object containing the typed data and nonce
13
- */
14
- export declare function getEVMCrossChainOrderTypedData(order: CrossChainOrder): Promise<{
15
- orderTypedData: TypedDataDefinition;
16
- nonce: bigint;
17
- }>;
18
- export declare function getEVMDcaSingleChainOrderTypedData(order: DcaSingleChainOrder): Promise<{
19
- orderTypedData: TypedDataDefinition;
20
- nonce: bigint;
21
- }>;
22
- //# sourceMappingURL=order-signature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"order-signature.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/order-signature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,cAAc,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAYjE;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,cAAc,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAYjE;AAED,wBAAsB,kCAAkC,CACtD,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC;IAAE,cAAc,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAYjE"}
@@ -1,261 +0,0 @@
1
- import type { Address, Hex, TypedDataDomain } from 'viem';
2
- import type { SupportedEvmChain } from '../../chains.js';
3
- export type TokenPermissions = {
4
- token: Address;
5
- amount: bigint;
6
- };
7
- export type TransferData = {
8
- token: Address;
9
- receiver: Address;
10
- amount: bigint;
11
- };
12
- export type CrossChainOrderInfo = {
13
- user: Address;
14
- tokenIn: Address;
15
- srcChainId: number;
16
- deadline: number;
17
- amountIn: bigint;
18
- minStablecoinsAmount: bigint;
19
- executionDetailsHash: Hex;
20
- nonce: bigint;
21
- };
22
- export type SingleChainLimitOrder = {
23
- user: Address;
24
- tokenIn: Address;
25
- amountIn: bigint;
26
- requestedOutput: TransferData;
27
- extraTransfers: TransferData[];
28
- encodedExternalCallData: Hex;
29
- deadline: number;
30
- nonce: bigint;
31
- };
32
- export type DcaOrderInfo = {
33
- user: Address;
34
- tokenIn: Address;
35
- srcChainId: number;
36
- startTime: number;
37
- deadline: number;
38
- totalIntervals: number;
39
- intervalDuration: number;
40
- amountInPerInterval: bigint;
41
- minStablecoinsAmountPerInterval: bigint;
42
- executionDetailsHash: Hex;
43
- nonce: bigint;
44
- };
45
- export type CrossChainPermitTransferFrom = {
46
- permitted: TokenPermissions;
47
- spender: Address;
48
- nonce: bigint;
49
- deadline: bigint;
50
- witness: CrossChainOrderInfo;
51
- };
52
- export type SingleChainPermitTransferFrom = {
53
- permitted: TokenPermissions;
54
- spender: Address;
55
- nonce: bigint;
56
- deadline: bigint;
57
- witness: SingleChainLimitOrder;
58
- };
59
- export type PermitTransferFrom = CrossChainPermitTransferFrom | SingleChainPermitTransferFrom;
60
- export declare const CROSS_CHAIN_PERMIT2_TYPES: {
61
- readonly TokenPermissions: readonly [{
62
- readonly name: "token";
63
- readonly type: "address";
64
- }, {
65
- readonly name: "amount";
66
- readonly type: "uint256";
67
- }];
68
- readonly OrderInfo: readonly [{
69
- readonly name: "user";
70
- readonly type: "address";
71
- }, {
72
- readonly name: "tokenIn";
73
- readonly type: "address";
74
- }, {
75
- readonly name: "srcChainId";
76
- readonly type: "uint32";
77
- }, {
78
- readonly name: "deadline";
79
- readonly type: "uint32";
80
- }, {
81
- readonly name: "amountIn";
82
- readonly type: "uint128";
83
- }, {
84
- readonly name: "minStablecoinsAmount";
85
- readonly type: "uint128";
86
- }, {
87
- readonly name: "executionDetailsHash";
88
- readonly type: "bytes32";
89
- }, {
90
- readonly name: "nonce";
91
- readonly type: "uint256";
92
- }];
93
- readonly PermitWitnessTransferFrom: readonly [{
94
- readonly name: "permitted";
95
- readonly type: "TokenPermissions";
96
- }, {
97
- readonly name: "spender";
98
- readonly type: "address";
99
- }, {
100
- readonly name: "nonce";
101
- readonly type: "uint256";
102
- }, {
103
- readonly name: "deadline";
104
- readonly type: "uint256";
105
- }, {
106
- readonly name: "witness";
107
- readonly type: "OrderInfo";
108
- }];
109
- };
110
- export declare const SINGLE_CHAIN_LIMIT_PERMIT2_TYPES: {
111
- readonly TokenPermissions: readonly [{
112
- readonly name: "token";
113
- readonly type: "address";
114
- }, {
115
- readonly name: "amount";
116
- readonly type: "uint256";
117
- }];
118
- readonly TransferData: readonly [{
119
- readonly name: "token";
120
- readonly type: "address";
121
- }, {
122
- readonly name: "receiver";
123
- readonly type: "address";
124
- }, {
125
- readonly name: "amount";
126
- readonly type: "uint256";
127
- }];
128
- readonly SingleChainLimitOrder: readonly [{
129
- readonly name: "user";
130
- readonly type: "address";
131
- }, {
132
- readonly name: "tokenIn";
133
- readonly type: "address";
134
- }, {
135
- readonly name: "amountIn";
136
- readonly type: "uint256";
137
- }, {
138
- readonly name: "requestedOutput";
139
- readonly type: "TransferData";
140
- }, {
141
- readonly name: "extraTransfers";
142
- readonly type: "TransferData[]";
143
- }, {
144
- readonly name: "encodedExternalCallData";
145
- readonly type: "bytes";
146
- }, {
147
- readonly name: "deadline";
148
- readonly type: "uint32";
149
- }, {
150
- readonly name: "nonce";
151
- readonly type: "uint256";
152
- }];
153
- readonly PermitWitnessTransferFrom: readonly [{
154
- readonly name: "permitted";
155
- readonly type: "TokenPermissions";
156
- }, {
157
- readonly name: "spender";
158
- readonly type: "address";
159
- }, {
160
- readonly name: "nonce";
161
- readonly type: "uint256";
162
- }, {
163
- readonly name: "deadline";
164
- readonly type: "uint256";
165
- }, {
166
- readonly name: "witness";
167
- readonly type: "SingleChainLimitOrder";
168
- }];
169
- };
170
- export declare const PERMIT2_DOMAIN: (chainId: SupportedEvmChain) => TypedDataDomain;
171
- type DcaSingleChainOrderWitness = {
172
- user: Address;
173
- tokenIn: Address;
174
- startTime: number;
175
- amountInPerInterval: bigint;
176
- totalIntervals: number;
177
- intervalDuration: number;
178
- requestedOutput: TransferData;
179
- extraTransfers: TransferData[];
180
- encodedExternalCallData: Hex;
181
- deadline: number;
182
- nonce: bigint;
183
- };
184
- export type DcaSingleChainPermitTransferFrom = {
185
- permitted: TokenPermissions;
186
- spender: Address;
187
- nonce: bigint;
188
- deadline: bigint;
189
- witness: DcaSingleChainOrderWitness;
190
- };
191
- export declare const DCA_SINGLE_CHAIN_PERMIT2_TYPES: {
192
- readonly TokenPermissions: readonly [{
193
- readonly name: "token";
194
- readonly type: "address";
195
- }, {
196
- readonly name: "amount";
197
- readonly type: "uint256";
198
- }];
199
- readonly TransferData: readonly [{
200
- readonly name: "token";
201
- readonly type: "address";
202
- }, {
203
- readonly name: "receiver";
204
- readonly type: "address";
205
- }, {
206
- readonly name: "amount";
207
- readonly type: "uint256";
208
- }];
209
- readonly SingleChainDcaOrder: readonly [{
210
- readonly type: "address";
211
- readonly name: "user";
212
- }, {
213
- readonly type: "address";
214
- readonly name: "tokenIn";
215
- }, {
216
- readonly type: "uint32";
217
- readonly name: "startTime";
218
- }, {
219
- readonly type: "uint256";
220
- readonly name: "amountInPerInterval";
221
- }, {
222
- readonly type: "uint24";
223
- readonly name: "totalIntervals";
224
- }, {
225
- readonly type: "uint32";
226
- readonly name: "intervalDuration";
227
- }, {
228
- readonly type: "TransferData";
229
- readonly name: "requestedOutput";
230
- }, {
231
- readonly type: "TransferData[]";
232
- readonly name: "extraTransfers";
233
- }, {
234
- readonly type: "bytes";
235
- readonly name: "encodedExternalCallData";
236
- }, {
237
- readonly type: "uint32";
238
- readonly name: "deadline";
239
- }, {
240
- readonly type: "uint256";
241
- readonly name: "nonce";
242
- }];
243
- readonly PermitWitnessTransferFrom: readonly [{
244
- readonly name: "permitted";
245
- readonly type: "TokenPermissions";
246
- }, {
247
- readonly name: "spender";
248
- readonly type: "address";
249
- }, {
250
- readonly name: "nonce";
251
- readonly type: "uint256";
252
- }, {
253
- readonly name: "deadline";
254
- readonly type: "uint256";
255
- }, {
256
- readonly name: "witness";
257
- readonly type: "SingleChainDcaOrder";
258
- }];
259
- };
260
- export {};
261
- //# sourceMappingURL=permit2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../../src/core/evm/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,GAAG,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,YAAY,CAAC;IAC9B,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,uBAAuB,EAAE,GAAG,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+BAA+B,EAAE,MAAM,CAAC;IACxC,oBAAoB,EAAE,GAAG,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,4BAA4B,GAAG,6BAA6B,CAAC;AAc9F,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB5B,CAAC;AAEX,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC;AAEX,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,KAAG,eAI1D,CAAC;AAEH,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,YAAY,CAAC;IAC9B,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,uBAAuB,EAAE,GAAG,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,0BAA0B,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBjC,CAAC"}