@coti-io/coti-contracts 1.2.0 → 1.3.1

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 (481) hide show
  1. package/.github/workflows/npm-publish.yml +1 -1
  2. package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +1 -1
  3. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1 -1
  4. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +2 -4
  5. package/contracts/disperse/disperseToken/MintDisperser.sol +1 -3
  6. package/contracts/disperse/disperseToken/TokenDisperser.sol +1 -1
  7. package/contracts/messaging/PrivateMessaging.sol +456 -0
  8. package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +1 -1
  9. package/contracts/mocks/messaging/PrivateMessagingHarness.sol +54 -0
  10. package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +31 -0
  11. package/contracts/mocks/token/ERC20DecimalsMock.sol +21 -0
  12. package/contracts/mocks/token/ERC20Mock.sol +1 -1
  13. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +1 -1
  14. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +9 -4
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +1 -1
  16. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +1 -1
  17. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +1 -1
  18. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +1 -1
  19. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +1 -1
  20. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +1 -1
  21. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +1 -1
  22. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +1 -1
  23. package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +1 -1
  24. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +1 -1
  25. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +1 -1
  26. package/contracts/mocks/utils/mpc/ArithmeticAddTestsContract.sol +196 -0
  27. package/contracts/mocks/utils/mpc/ArithmeticMulTestsContract.sol +194 -0
  28. package/contracts/mocks/utils/mpc/ArithmeticSigned128TestsContract.sol +63 -0
  29. package/contracts/mocks/utils/mpc/ArithmeticSigned256TestsContract.sol +107 -0
  30. package/contracts/mocks/utils/mpc/ArithmeticSignedNarrowTestsContract.sol +123 -0
  31. package/contracts/mocks/utils/mpc/ArithmeticSubTestsContract.sol +196 -0
  32. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +1 -1
  33. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +1 -1
  34. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +1 -1
  35. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +1 -1
  36. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +1 -1
  37. package/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol +1 -1
  38. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +1 -1
  39. package/contracts/mocks/utils/mpc/Comparison1TestsContract.sol +1 -1
  40. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +1 -1
  41. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +1 -1
  42. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +1 -1
  43. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +1 -1
  44. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +1 -1
  45. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +1 -1
  46. package/contracts/mocks/utils/mpc/MinimalProxy.sol +1 -1
  47. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +1 -1
  48. package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +1 -1
  49. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +1 -1
  50. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +4 -4
  51. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +1 -1
  52. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +1 -1
  53. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +1 -1
  54. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +1 -1
  55. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +1 -1
  56. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +1 -1
  57. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +1 -1
  58. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +1 -1
  59. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +1 -1
  60. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +1 -1
  61. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +1 -1
  62. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +1 -1
  63. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +1 -1
  64. package/contracts/mocks/utils/mpc/StringTestsContract.sol +1 -1
  65. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +1 -1
  66. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +1 -1
  67. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +1 -1
  68. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +1 -1
  69. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +1 -1
  70. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +1 -1
  71. package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +1 -1
  72. package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +1 -1
  73. package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +1 -1
  74. package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +1 -1
  75. package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +1 -1
  76. package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +1 -1
  77. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +1 -1
  78. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +2 -2
  79. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +1 -1
  80. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +1 -1
  81. package/contracts/node/CotiNodeRewards.sol +3 -3
  82. package/contracts/node/SoulboundNodeNFT.sol +23 -24
  83. package/contracts/onboard/AccountOnboard.sol +1 -1
  84. package/contracts/oracle/CotiPriceConsumer.sol +103 -0
  85. package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
  86. package/contracts/oracle/IStdReference.sol +26 -0
  87. package/contracts/pod/IInbox.sol +231 -0
  88. package/contracts/pod/IInboxMiner.sol +53 -0
  89. package/contracts/pod/InboxUser.sol +29 -0
  90. package/contracts/pod/InboxUserCotiTestnet.sol +13 -0
  91. package/contracts/pod/PodNetworkConstants.sol +30 -0
  92. package/contracts/pod/examples/MpcAdder.sol +57 -0
  93. package/contracts/pod/examples/MpcAdderPausable.sol +25 -0
  94. package/contracts/pod/examples/MpcAdderPausable.sol.bak +25 -0
  95. package/contracts/pod/examples/it128/PodAdder128.sol +48 -0
  96. package/contracts/pod/examples/it256/PodAdder256.sol +48 -0
  97. package/contracts/pod/fee/IInboxFeeManager.sol +40 -0
  98. package/contracts/pod/manifest.json +52 -0
  99. package/contracts/pod/mpc/PodLib.sol +10 -0
  100. package/contracts/pod/mpc/PodLib128.sol +361 -0
  101. package/contracts/pod/mpc/PodLib256.sol +361 -0
  102. package/contracts/pod/mpc/PodLib64.sol +385 -0
  103. package/contracts/pod/mpc/PodLibBase.sol +72 -0
  104. package/contracts/pod/mpc/PodUser.sol +58 -0
  105. package/contracts/pod/mpc/PodUserFuji.sol +14 -0
  106. package/contracts/pod/mpc/PodUserSepolia.sol +13 -0
  107. package/contracts/pod/mpc/coti-side/IPodExecutorOps.sol +99 -0
  108. package/contracts/pod/mpccodec/MpcAbiCodec.sol +482 -0
  109. package/contracts/pod/privacy/IPodPriceOracle.sol +20 -0
  110. package/contracts/pod/privacy/IPrivacyPortal.sol +248 -0
  111. package/contracts/pod/privacy/IPrivacyPortalFactory.sol +88 -0
  112. package/contracts/pod/privacy/PortalFeeOracle.sol +51 -0
  113. package/contracts/pod/privacy/PrivacyPortal.sol +871 -0
  114. package/contracts/pod/privacy/PrivacyPortalFactory.sol +492 -0
  115. package/contracts/pod/privacy/PrivacyPortalFeeLib.sol +98 -0
  116. package/contracts/pod/privacy/mocks/CloneHelper.sol +14 -0
  117. package/contracts/pod/privacy/mocks/MockERC20.sol +26 -0
  118. package/contracts/pod/privacy/mocks/MockPodERC20ForPortal.sol +160 -0
  119. package/contracts/pod/privacy/mocks/MockPrivacyPortalFactory.sol +125 -0
  120. package/contracts/pod/privacy/mocks/MockWrappedNative.sol +24 -0
  121. package/contracts/pod/token/erc7984/Erc7984Constants.sol +9 -0
  122. package/contracts/pod/token/erc7984/Erc7984Pointers.sol +29 -0
  123. package/contracts/pod/token/erc7984/IERC7984.sol +69 -0
  124. package/contracts/pod/token/erc7984/IERC7984PortalWrapper.sol +31 -0
  125. package/contracts/pod/token/erc7984/PodErc7984Mixin.sol +125 -0
  126. package/contracts/pod/token/erc7984/README.md +60 -0
  127. package/contracts/pod/token/perc20/IPodERC20.sol +298 -0
  128. package/contracts/pod/token/perc20/PodERC20.sol +1021 -0
  129. package/contracts/pod/token/perc20/PodErc20Mintable.sol +88 -0
  130. package/contracts/pod/token/perc20/PodErc20MintableInitializable.sol +42 -0
  131. package/contracts/pod/token/perc20/cotiside/IPodErc20CotiSide.sol +88 -0
  132. package/contracts/pod/token/perc20/cotiside/PodErc20CotiMother.sol +529 -0
  133. package/contracts/pod/utils/IWrappedNative.sol +11 -0
  134. package/contracts/privacyBridge/PrivacyBridge.sol +376 -94
  135. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +210 -162
  136. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +242 -160
  137. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +8 -2
  138. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +8 -2
  139. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +8 -2
  140. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +8 -2
  141. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +8 -2
  142. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +8 -2
  143. package/contracts/token/PrivateERC20/IPrivateERC20.sol +1 -1
  144. package/contracts/token/PrivateERC20/ITokenReceiver.sol +1 -1
  145. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +1 -1
  146. package/contracts/token/PrivateERC20/PrivateERC20.sol +5 -5
  147. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +1 -1
  148. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +1 -1
  149. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +1 -1
  150. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +1 -1
  151. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +1 -1
  152. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +1 -1
  153. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +1 -1
  154. package/contracts/token/PrivateERC721/IERC721Errors.sol +1 -1
  155. package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
  156. package/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage.sol +1 -1
  157. package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +1 -1
  158. package/contracts/token/points/CotiTokenPoints004.sol +43 -0
  159. package/contracts/utils/mpc/MpcCore.sol +610 -1
  160. package/contracts/utils/mpc/MpcInterface.sol +1 -1
  161. package/hardhat.config.ts +9 -15
  162. package/package.json +4 -4
  163. package/scripts/add-bridge-operators.cjs +87 -0
  164. package/scripts/deploy-coti-price-consumer-mainnet.cjs +49 -0
  165. package/scripts/deployCotiNodeRewards.ts +51 -0
  166. package/scripts/deployCotiTokenPoints004.ts +61 -0
  167. package/scripts/deployFixedRatioCoinDisperserUnlimitedWindow.ts +68 -0
  168. package/scripts/redeploy-private-and-bridges.cjs +201 -0
  169. package/scripts/set-bridge-limits-mainnet.cjs +177 -0
  170. package/scripts/verify-mainnet-private-bridges.cjs +289 -0
  171. package/scripts/verifyCotiTokenPoints004.ts +123 -0
  172. package/scripts/verifyFixedRatioCoinDisperserUnlimitedWindow.ts +112 -0
  173. package/sonar-project.properties +11 -0
  174. package/test/messaging/PrivateMessaging.test.ts +158 -0
  175. package/test/pod/privacy/PrivacyPortal.access.test.ts +756 -0
  176. package/test/pod/privacy/PrivacyPortal.recovery.test.ts +263 -0
  177. package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1665 -0
  178. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +162 -239
  179. package/test/utils/mpc/CheckedSignedArithmetic256.test.ts +163 -0
  180. package/test/utils/mpc/NegativeCases.test.ts +3 -3
  181. package/test/utils/mpc/Precompile.test.ts +6 -6
  182. package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +324 -0
  183. package/typechain-types/@openzeppelin/contracts/access/AccessControlEnumerable.ts +361 -0
  184. package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +292 -0
  185. package/typechain-types/@openzeppelin/contracts/access/IAccessControlEnumerable.ts +329 -0
  186. package/typechain-types/@openzeppelin/contracts/access/extensions/AccessControlEnumerable.ts +375 -0
  187. package/typechain-types/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable.ts +329 -0
  188. package/typechain-types/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  189. package/typechain-types/@openzeppelin/contracts/access/index.ts +6 -0
  190. package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
  191. package/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts +412 -0
  192. package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
  193. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
  194. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
  195. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
  196. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  197. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +4 -0
  198. package/typechain-types/@openzeppelin/contracts/security/Pausable.ts +150 -0
  199. package/typechain-types/@openzeppelin/contracts/security/index.ts +4 -0
  200. package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +286 -0
  201. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +6 -6
  202. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts +313 -0
  203. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.ts +356 -0
  204. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.ts +423 -0
  205. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
  206. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  207. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +3 -0
  208. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts +69 -0
  209. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  210. package/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.ts +420 -0
  211. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +420 -0
  212. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  213. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +3 -0
  214. package/typechain-types/@openzeppelin/contracts/utils/Nonces.ts +85 -0
  215. package/typechain-types/@openzeppelin/contracts/utils/Pausable.ts +150 -0
  216. package/typechain-types/@openzeppelin/contracts/utils/ReentrancyGuard.ts +69 -0
  217. package/typechain-types/@openzeppelin/contracts/utils/ShortStrings.ts +69 -0
  218. package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
  219. package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
  220. package/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.ts +151 -0
  221. package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  222. package/typechain-types/@openzeppelin/contracts/utils/index.ts +9 -0
  223. package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
  224. package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
  225. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.ts +735 -0
  226. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.ts +734 -0
  227. package/typechain-types/contracts/disperse/coinByRatio/index.ts +2 -0
  228. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable.ts +95 -0
  229. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +22 -0
  230. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  231. package/typechain-types/contracts/index.ts +8 -0
  232. package/typechain-types/contracts/messaging/PrivateMessaging.ts +871 -0
  233. package/typechain-types/contracts/messaging/index.ts +4 -0
  234. package/typechain-types/contracts/mocks/index.ts +4 -0
  235. package/typechain-types/contracts/mocks/messaging/PrivateMessagingHarness.ts +951 -0
  236. package/typechain-types/contracts/mocks/messaging/index.ts +4 -0
  237. package/typechain-types/contracts/mocks/oracle/CotiPriceConsumerMock.ts +163 -0
  238. package/typechain-types/contracts/mocks/oracle/index.ts +4 -0
  239. package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +305 -0
  240. package/typechain-types/contracts/mocks/token/ERC20Mock.ts +324 -0
  241. package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
  242. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1906 -0
  243. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +1296 -0
  244. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +1270 -0
  245. package/typechain-types/contracts/mocks/{utils/mpc/Bitwise128BitTestsContract.ts → token/PrivateERC20/PrivateERC20GtCallerMock.ts} +47 -67
  246. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +757 -25
  247. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted.ts +102 -0
  248. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock.ts +154 -0
  249. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  250. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.ts +155 -0
  251. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.ts +107 -0
  252. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.ts +100 -0
  253. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +10 -0
  254. package/typechain-types/contracts/mocks/token/index.ts +2 -0
  255. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +6 -6
  256. package/typechain-types/contracts/node/CotiNodeRewards.ts +566 -0
  257. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/IERC5192.ts +123 -0
  258. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT.ts +975 -0
  259. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  260. package/typechain-types/contracts/node/index.ts +6 -0
  261. package/typechain-types/contracts/oracle/CotiPriceConsumer.ts +256 -0
  262. package/typechain-types/contracts/oracle/ICotiPriceConsumer.ts +119 -0
  263. package/typechain-types/contracts/oracle/IStdReference.ts +136 -0
  264. package/typechain-types/contracts/oracle/index.ts +6 -0
  265. package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +1642 -0
  266. package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1884 -0
  267. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
  268. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1906 -0
  269. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  270. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1906 -0
  271. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1906 -0
  272. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1906 -0
  273. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1906 -0
  274. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1906 -0
  275. package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1906 -0
  276. package/typechain-types/contracts/privacyBridge/index.ts +13 -0
  277. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +439 -19
  278. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiver.ts +100 -0
  279. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiverEncrypted.ts +99 -0
  280. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +763 -15
  281. package/typechain-types/contracts/token/PrivateERC20/index.ts +4 -0
  282. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +1270 -0
  283. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +1270 -0
  284. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +1270 -0
  285. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +1270 -0
  286. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +1270 -0
  287. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +1270 -0
  288. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +1270 -0
  289. package/typechain-types/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  290. package/typechain-types/contracts/token/index.ts +2 -0
  291. package/typechain-types/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004.ts +826 -0
  292. package/typechain-types/contracts/token/points/CotiTokenPoints004.ts +826 -0
  293. package/typechain-types/contracts/token/points/index.ts +4 -0
  294. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
  295. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +250 -0
  296. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
  297. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +218 -0
  298. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +22 -0
  299. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/AccessControlEnumerable__factory.ts +316 -0
  300. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable__factory.ts +265 -0
  301. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  302. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +5 -0
  303. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  304. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts +393 -0
  305. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
  306. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
  307. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
  308. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
  309. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  310. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +3 -0
  311. package/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +61 -0
  312. package/typechain-types/factories/@openzeppelin/contracts/security/index.ts +4 -0
  313. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +330 -0
  314. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +3 -3
  315. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts +364 -0
  316. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.ts +382 -0
  317. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.ts +540 -0
  318. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +247 -0
  319. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  320. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +2 -0
  321. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts +96 -0
  322. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  323. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +455 -0
  324. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +355 -0
  325. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  326. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +2 -0
  327. package/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.ts +57 -0
  328. package/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.ts +71 -0
  329. package/typechain-types/factories/@openzeppelin/contracts/utils/ReentrancyGuard__factory.ts +30 -0
  330. package/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.ts +83 -0
  331. package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
  332. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
  333. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.ts +87 -0
  334. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  335. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +7 -0
  336. package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
  337. package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
  338. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +802 -0
  339. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +749 -0
  340. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +12 -1
  341. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +2 -0
  342. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable__factory.ts +35 -0
  343. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +41 -1
  344. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  345. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +12 -1
  346. package/typechain-types/factories/contracts/index.ts +4 -0
  347. package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1035 -0
  348. package/typechain-types/factories/contracts/messaging/index.ts +4 -0
  349. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  350. package/typechain-types/factories/contracts/mocks/index.ts +2 -0
  351. package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1161 -0
  352. package/typechain-types/factories/contracts/mocks/messaging/index.ts +4 -0
  353. package/typechain-types/factories/contracts/mocks/oracle/CotiPriceConsumerMock__factory.ts +159 -0
  354. package/typechain-types/factories/contracts/mocks/oracle/index.ts +4 -0
  355. package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +432 -0
  356. package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +430 -0
  357. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock__factory.ts +125 -0
  358. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +1885 -0
  359. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1540 -0
  360. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1492 -0
  361. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +165 -0
  362. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +794 -52
  363. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted__factory.ts +54 -0
  364. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock__factory.ts +159 -0
  365. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  366. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock__factory.ts +164 -0
  367. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock__factory.ts +130 -0
  368. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock__factory.ts +102 -0
  369. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +9 -0
  370. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  371. package/typechain-types/factories/contracts/mocks/token/index.ts +2 -0
  372. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +1 -1
  373. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +1 -1
  374. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  375. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +1 -1
  376. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +1 -1
  377. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  378. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +1 -1
  379. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +1 -1
  380. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  381. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +1 -1
  382. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  383. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +1 -1
  384. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  385. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +1 -1
  386. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +1 -1
  387. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  388. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +1 -1
  389. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +1 -1
  390. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  391. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  392. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +1 -1
  393. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1 -1
  394. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +1 -1
  395. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +1 -1
  396. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  397. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +1 -1
  398. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +1 -1
  399. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +1 -1
  400. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +1 -1
  401. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +1 -1
  402. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +1 -1
  403. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +1 -1
  404. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +1 -1
  405. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +1 -1
  406. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  407. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  408. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +1 -1
  409. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +1 -1
  410. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  411. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  412. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +1 -1
  413. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +1 -1
  414. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  415. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  416. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  417. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  418. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  419. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  420. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +1 -1
  421. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +1 -1
  422. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +1 -1
  423. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +4 -22
  424. package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +576 -0
  425. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/IERC5192__factory.ts +54 -0
  426. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +1072 -0
  427. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  428. package/typechain-types/factories/contracts/node/index.ts +5 -0
  429. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  430. package/typechain-types/factories/contracts/oracle/CotiPriceConsumer__factory.ts +295 -0
  431. package/typechain-types/factories/contracts/oracle/ICotiPriceConsumer__factory.ts +73 -0
  432. package/typechain-types/factories/contracts/oracle/IStdReference__factory.ts +107 -0
  433. package/typechain-types/factories/contracts/oracle/index.ts +6 -0
  434. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +1753 -0
  435. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals__factory.ts +38 -0
  436. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +1766 -0
  437. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  438. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1870 -0
  439. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1870 -0
  440. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1870 -0
  441. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1870 -0
  442. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1870 -0
  443. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1444 -0
  444. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1870 -0
  445. package/typechain-types/factories/contracts/privacyBridge/index.ts +12 -0
  446. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +481 -35
  447. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiverEncrypted__factory.ts +53 -0
  448. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiver__factory.ts +54 -0
  449. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +812 -52
  450. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
  451. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1471 -0
  452. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1477 -0
  453. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1468 -0
  454. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1471 -0
  455. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1471 -0
  456. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1471 -0
  457. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1477 -0
  458. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  459. package/typechain-types/factories/contracts/token/index.ts +1 -0
  460. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004__factory.ts +992 -0
  461. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004__factory.ts +992 -0
  462. package/typechain-types/factories/contracts/token/points/index.ts +4 -0
  463. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  464. package/typechain-types/hardhat.d.ts +1414 -118
  465. package/typechain-types/index.ts +138 -2
  466. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +0 -408
  467. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +0 -341
  468. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +0 -347
  469. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +0 -186
  470. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +0 -260
  471. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +0 -260
  472. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +0 -302
  473. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +0 -322
  474. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +0 -349
  475. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +0 -364
  476. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +0 -182
  477. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +0 -182
  478. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +0 -255
  479. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +0 -255
  480. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +0 -332
  481. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +0 -380
@@ -209,7 +209,7 @@ const _abi = [
209
209
  ] as const;
210
210
 
211
211
  const _bytecode =
212
- "0x608060405234801561001057600080fd5b50611923806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638a4ef8541161005b5780638a4ef854146100e857806395bf7bb1146100f0578063acbe845214610103578063f9ce33a91461012057600080fd5b806314f6161f1461008d57806335435c00146100ab57806376ae56a5146100c057806378f7d733146100d5575b600080fd5b610095610133565b6040516100a291906110cb565b60405180910390f35b6100be6100b9366004611133565b6101a1565b005b6100c86101dc565b6040516100a291906111d4565b6100be6100e3366004611133565b61026a565b6100be61029a565b6100be6100fe3660046111e7565b61031a565b6003546101109060ff1681565b60405190151581526020016100a2565b6100be61012e366004611259565b610385565b6040805160208101909152606081526040805160008054602081810284018501855283018181529293919284929091849184018282801561019357602002820191906000526020600020905b81548152602001906001019080831161017f575b505050505081525050905090565b60006101b46101af836114cb565b610413565b90506101bf81610597565b805180516001916101d59183916020019061106b565b5050505050565b600280546101e9906115bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610215906115bb565b80156102625780601f1061023757610100808354040283529160200191610262565b820191906000526020600020905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60006102786101af836114cb565b90506102848133610667565b805180516000916101d59183916020019061106b565b6040805160018054602081810284018501855283018181526000946102fe9493928492918491908401828280156102f057602002820191906000526020600020905b8154815260200190600101908083116102dc575b50505050508152505061073b565b905061030981610803565b6002906103169082611653565b5050565b600061035b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506108c592505050565b90506103678133610667565b8051805160009161037d9183916020019061106b565b505050505050565b60006103936101af856114cb565b905060006103a36101af856114cb565b9050600083156103be576103b78383610a4a565b90506103d3565b6103d06103cb8484610b13565b610bd4565b90505b6103dc81610c70565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055505050505050565b604080516020810190915260608152602082015151825151518114610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d50435f434f52453a20494e56414c49445f494e5055545f5445585400000000604482015260640160405180910390fd5b600060405180602001604052808367ffffffffffffffff8111156104be576104be6112d6565b6040519080825280602002602001820160405280156104e7578160200160208202803683370190505b50905260408051808201909152600081526060602082015290915060005b8381101561058d578551518051829081106105225761052261176d565b60209081029190910181015183528601518051829081106105455761054561176d565b6020026020010151826020018190525061055e82610d01565b83518051839081106105725761057261176d565b6020908102919091010152610586816117cb565b9050610505565b5090949350505050565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff8111156105d1576105d16112d6565b6040519080825280602002602001820160405280156105fa578160200160208202803683370190505b509052905060005b8281101561065f57610630856000015182815181106106235761062361176d565b6020026020010151610d6a565b82518051839081106106445761064461176d565b6020908102919091010152610658816117cb565b9050610602565b509392505050565b6040805160208101909152606081528251516040805160208101909152600090808367ffffffffffffffff8111156106a1576106a16112d6565b6040519080825280602002602001820160405280156106ca578160200160208202803683370190505b509052905060005b8281101561073057610701866000015182815181106106f3576106f361176d565b602002602001015186610d7a565b82518051839081106107155761071561176d565b6020908102919091010152610729816117cb565b90506106d2565b509150505b92915050565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff811115610775576107756112d6565b60405190808252806020026020018201604052801561079e578160200160208202803683370190505b509052905060005b8281101561065f576107d4856000015182815181106107c7576107c761176d565b6020026020010151610e66565b82518051839081106107e8576107e861176d565b60209081029190910101526107fc816117cb565b90506107a6565b8051516060906000610816826008611803565b67ffffffffffffffff81111561082e5761082e6112d6565b6040519080825280601f01601f191660200182016040528015610858576020820181803683370190505b50905060008060005b848110156108ba5761088f876000015182815181106108825761088261176d565b6020026020010151610e76565b60c01b84830160200181905292506108a860088361181a565b91506108b3816117cb565b9050610861565b509195945050505050565b60408051602081019091526060815281518290600060086108e783600761181a565b6108f1919061185c565b9050600060405180602001604052808367ffffffffffffffff811115610919576109196112d6565b604051908082528060200260200182016040528015610942578160200160208202803683370190505b50905290506000805b610956846008611803565b811015610a3e57610968600882611870565b600003610978576000915061099b565b60088277ffffffffffffffffffffffffffffffffffffffffffffffff1916901b91505b848110156109e65760388682815181106109b7576109b761176d565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c91909117905b6109f1600882611870565b600703610a2e57610a048260c01c610e86565b8351610a1160088461185c565b81518110610a2157610a2161176d565b6020026020010181815250505b610a37816117cb565b905061094b565b50909695505050505050565b815151815151600091908114610a6c57610a646000610ef6565b915050610735565b6000610ab48560000151600081518110610a8857610a8861176d565b60200260200101518560000151600081518110610aa757610aa761176d565b6020026020010151610f55565b905060015b8281101561073057610b0182610afc88600001518481518110610ade57610ade61176d565b602002602001015188600001518581518110610aa757610aa761176d565b610fd5565b9150610b0c816117cb565b9050610ab9565b815151815151600091908114610b2d57610a646001610ef6565b6000610b758560000151600081518110610b4957610b4961176d565b60200260200101518560000151600081518110610b6857610b6861176d565b6020026020010151610fe9565b905060015b8281101561073057610bc282610bbd88600001518481518110610b9f57610b9f61176d565b602002602001015188600001518581518110610b6857610b6861176d565b610ffe565b9150610bcd816117cb565b9050610b7a565b60006064631d79e49a825b60f81b846040518363ffffffff1660e01b8152600401610c2d9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906118b3565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf891906118b3565b15159392505050565b805160208201516040517fe4f36e1000000000000000000000000000000000000000000000000000000000815260009260649263e4f36e1092610c2d927f04000000000000000000000000000000000000000000000000000000000000009290916004016118cc565b6000606463c50c9c026004610bdf565b60408051606083901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208201528151601481830301815260348201928390527f3c6f0e6800000000000000000000000000000000000000000000000000000000909252600091606491633c6f0e6891610e1c917f04000000000000000000000000000000000000000000000000000000000000009188916038016118cc565b6020604051808303816000875af1158015610e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5f91906118b3565b9392505050565b6000606463d2c135e56004610bdf565b60006064630cfed5616004610bdf565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401610c2d565b60008082610f05576000610f08565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b6090604401610e1c565b60006064637c12a1eb610f6a6004808561100e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260448101859052606401610e1c565b6000606463fe9c73d1610f6a83808061100e565b600060646342094c56610f6a6004808561100e565b6000606463fb7da35f610f6a8380805b600081600281111561102257611022611884565b60ff16600884600681111561103957611039611884565b61ffff16901b61ffff16601086600681111561105757611057611884565b62ffffff16901b171760e81b949350505050565b8280548282559060005260206000209081019282156110a6579160200282015b828111156110a657825182559160200191906001019061108b565b506110b29291506110b6565b5090565b5b808211156110b257600081556001016110b7565b6020808252825182820182905280516040840181905260009291820190839060608601905b8083101561111057835182529284019260019290920191908401906110f0565b509695505050505050565b60006040828403121561112d57600080fd5b50919050565b60006020828403121561114557600080fd5b813567ffffffffffffffff81111561115c57600080fd5b6111688482850161111b565b949350505050565b6000815180845260005b818110156111965760208185018101518683018201520161117a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610e5f6020830184611170565b600080602083850312156111fa57600080fd5b823567ffffffffffffffff8082111561121257600080fd5b818501915085601f83011261122657600080fd5b81358181111561123557600080fd5b86602082850101111561124757600080fd5b60209290920196919550909350505050565b60008060006060848603121561126e57600080fd5b833567ffffffffffffffff8082111561128657600080fd5b6112928783880161111b565b945060208601359150808211156112a857600080fd5b506112b58682870161111b565b925050604084013580151581146112cb57600080fd5b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611328576113286112d6565b60405290565b6040516020810167ffffffffffffffff81118282101715611328576113286112d6565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611398576113986112d6565b604052919050565b600067ffffffffffffffff8211156113ba576113ba6112d6565b5060051b60200190565b6000601f83818401126113d657600080fd5b823560206113eb6113e6836113a0565b611351565b82815260059290921b8501810191818101908784111561140a57600080fd5b8287015b848110156114bf57803567ffffffffffffffff8082111561142f5760008081fd5b818a0191508a603f8301126114445760008081fd5b8582013560408282111561145a5761145a6112d6565b611489887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08c85011601611351565b92508183528c818386010111156114a05760008081fd5b818185018985013750600090820187015284525091830191830161140e565b50979650505050505050565b6000604082360312156114dd57600080fd5b6114e5611305565b823567ffffffffffffffff808211156114fd57600080fd5b8185019150602080833603121561151357600080fd5b61151b61132e565b83358381111561152a57600080fd5b939093019236601f85011261153e57600080fd5b833561154c6113e6826113a0565b81815260059190911b8501830190838101903683111561156b57600080fd5b958401955b8287101561158957863582529584019590840190611570565b835250508452858101359250818311156115a257600080fd5b6115ae368488016113c4565b9084015250909392505050565b600181811c908216806115cf57607f821691505b60208210810361112d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561164e57600081815260208120601f850160051c8101602086101561162f5750805b601f850160051c820191505b8181101561037d5782815560010161163b565b505050565b815167ffffffffffffffff81111561166d5761166d6112d6565b6116818161167b84546115bb565b84611608565b602080601f8311600181146116d4576000841561169e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561037d565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561172157888601518255948401946001909101908401611702565b508582101561175d57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117fc576117fc61179c565b5060010190565b80820281158282048414176107355761073561179c565b808201808211156107355761073561179c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261186b5761186b61182d565b500490565b60008261187f5761187f61182d565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156118c557600080fd5b5051919050565b7fff000000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061190d6060830184611170565b9594505050505056fea164736f6c6343000813000a";
212
+ "0x6080806040523461001657611963908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c90816314f6161f1461009a5750806335435c001461009557806376ae56a51461009057806378f7d7331461008b5780638a4ef8541461008657806395bf7bb114610081578063acbe84521461007c5763f9ce33a91461007757600080fd5b610887565b610864565b6106a8565b610590565b6104b0565b6103b0565b61014c565b346101085780600319360112610108576100b2610d8e565b506100bb610da1565b90604051918291602091828452604084019051928080860152835180925280606086019401925b8281106100f157505050500390f35b8351855286955093810193928101926001016100e2565b80fd5b908160409103126101195790565b600080fd5b6020600319820112610119576004359067ffffffffffffffff8211610119576101499160040161010b565b90565b346101195761016b610166366101613661011e565b610ae6565b611189565b610173610d8e565b50805151610180816110bc565b90604092835192610190846102ff565b835260005b8281106101a7576101a584610c00565b005b806101b6610218928451611175565b518651907fc50c9c0200000000000000000000000000000000000000000000000000000000825281806020958693600483019190602060408401937f040000000000000000000000000000000000000000000000000000000000000081520152565b0381600060645af1908115610278576102469360009261024b575b5050610240828751611175565b52611107565b610195565b61026a9250803d10610271575b610262818361033c565b81019061102f565b3880610233565b503d610258565b61103e565b90600182811c921680156102c6575b602083101461029757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161028c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761031b57604052565b6102d0565b6040810190811067ffffffffffffffff82111761031b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761031b57604052565b919082519283825260005b84811061038b575050601f19601f8460006020809697860101520116010190565b60208183018101518483018201520161036a565b90602061014992818152019061035f565b34610119576000806003193601126101085760405190806002546103d38161027d565b80855291600191808316908115610468575060011461040d575b610409856103fd8187038261033c565b6040519182918261039f565b0390f35b9250600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106104505750505081016020016103fd826104096103ed565b80546020858701810191909152909301928101610435565b869550610409969350602092506103fd9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010192936103ed565b34610119576104cf6104c8610166366101613661011e565b3390611325565b51805167ffffffffffffffff811161031b5768010000000000000000811161031b57600091825482845580831061054d575b50600080526020908101907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390845b84811061053b578580f35b83518382015592810192600101610530565b838052827f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56391820191015b8181106105855750610501565b848155600101610578565b3461011957600080600319360112610108576105aa610e1e565b6105b2610d8e565b508051516105bf816110bc565b916040908151936105cf856102ff565b8452845b8381106105ef57856105ec6105e7876114e5565b610f0a565b80f35b806105fe610660928451611175565b518451907fd2c135e500000000000000000000000000000000000000000000000000000000825281806020958693600483019190602060408401937f040000000000000000000000000000000000000000000000000000000000000081520152565b03818b60645af19081156102785761068693899261068b575b5050610240828851611175565b6105d3565b6106a19250803d1061027157610262818361033c565b3880610679565b346101195760206003193601126101195767ffffffffffffffff6004358181116101195736602382011215610119578060040135918211610119573660248383010111610119576106fd916024369201610a1c565b610705610d8e565b50805161071a6107148261143e565b60031c90565b90610724826110bc565b9061072d6109d9565b918252600093845b61073e85610be5565b811015610852576007818116968761082757506000965b848310610792575b916107709161073e931461077757611107565b9050610735565b6107838860c01c61146b565b61024087518360031c90611175565b96916107709161073e9361081b6107fa6107d56107af868a61145a565b517fff000000000000000000000000000000000000000000000000000000000000001690565b7fff000000000000000000000000000000000000000000000000000000000000001690565b60381c78ff0000000000000000000000000000000000000000000000001690565b1798919350915061075d565b60081b7fffffffffffffff000000000000000000000000000000000000000000000000001696610755565b6101a561085f3386611325565b610ccb565b3461011957600060031936011261011957602060ff600354166040519015158152f35b346101195760606003193601126101195767ffffffffffffffff600435818111610119576108b990369060040161010b565b90602435908111610119576108d290369060040161010b565b604435918215158303610119576101666108f36101666108fb933690610ae6565b923690610ae6565b916000901561094b57506109156101a59261091a9261161c565b61104a565b60ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600354169115151617600355565b9061095b61099a936020926117bc565b604051809481927f1d79e49a00000000000000000000000000000000000000000000000000000000835260048301919060206040840193600081520152565b03818460645af18015610278576101a59261091a92916109bb575b5061104a565b6109d3915060203d811161027157610262818361033c565b386109b5565b604051906109e6826102ff565b565b67ffffffffffffffff811161031b5760051b60200190565b67ffffffffffffffff811161031b57601f01601f191660200190565b929192610a2882610a00565b91610a36604051938461033c565b829481845281830111610119578281602093846000960137010152565b81601f8201121561011957803590610a6a826109e8565b92604092610a7a8451958661033c565b808552602093848087019260051b8501019383851161011957858101925b858410610aa9575050505050505090565b833567ffffffffffffffff811161011957820185603f82011215610119578791610adb87838786809601359101610a1c565b815201930192610a98565b91906040838203126101195760405190610aff82610320565b819380359167ffffffffffffffff928381116101195782019260209384818403126101195760405190610b31826102ff565b803590838211610119570183601f8201121561011957803590610b53826109e8565b91610b61604051938461033c565b808352878084019160051b830101918683116101195788809101915b838310610ba65750505050815285528383013590811161011957610ba19201610a53565b910152565b8235815291810191899101610b7d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b908160031b9180830460081490151715610bfb57565b610bb6565b51805167ffffffffffffffff811161031b5768010000000000000000811161031b576001918254828455808310610c83575b5060016000526020908101907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69060005b848110610c7257505050505050565b835183820155928101928501610c63565b600084815284847fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf693840193015b838110610cc057505050610c32565b828155018590610cb1565b5180519067ffffffffffffffff821161031b5768010000000000000000821161031b5760008054838255808410610d4b575b50600080526020918201917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563915b848110610d39575050505050565b83518382015592810192600101610d2b565b818052837f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56391820191015b818110610d835750610cfd565b828155600101610d76565b60405190610d9b826102ff565b60608252565b60405190610dae826102ff565b81604051908182600054808352602080930190600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563936000905b828210610e0457505050610e019250038361033c565b52565b855484526001958601958895509381019390910190610deb565b60405190610e2b826102ff565b604051600180548083526000828152859284926020808501937fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69392915b828210610e8157505050505090610e0191038361033c565b84548652889650948501949383019390830190610e69565b601f8111610ea5575050565b600090600282527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace906020601f850160051c83019410610f00575b601f0160051c01915b828110610ef557505050565b818155600101610ee9565b9092508290610ee0565b90815167ffffffffffffffff811161031b57610f3081610f2b60025461027d565b610e99565b602080601f8311600114610f895750819293600092610f7e575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c191617600255565b015190503880610f4a565b90601f19831694610fbc60026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90565b926000905b878210611017575050836001959610610fe0575b505050811b01600255565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610fd5565b80600185968294968601518155019501930190610fc1565b90816020910312610119575190565b6040513d6000823e3d90fd5b604051907f0cfed561000000000000000000000000000000000000000000000000000000008252600060048301526024820152602081604481600060645af19081156102785760009161109e575b50151590565b6110b6915060203d811161027157610262818361033c565b38611098565b906110c6826109e8565b6110d3604051918261033c565b828152601f196110e382946109e8565b0190602036910137565b604051906110fa82610320565b6060602083600081520152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfb5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051156111705760200190565b611134565b80518210156111705760209160051b010190565b611191610d8e565b50602081019081515191828251515103611217576111b08392936110bc565b926111b96109d9565b9384526111c46110ed565b91602083019160005b8581106111dd5750505050505090565b806111ed61121292845151611175565b5186526111fb818551611175565b518552611207866112b2565b610240828a51611175565b6111cd565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d50435f434f52453a20494e56414c49445f494e5055545f54455854000000006044820152fd5b60609061014993927f040000000000000000000000000000000000000000000000000000000000000082526020820152816040820152019061035f565b60206112f3918181519101519060405193849283927fe4f36e1000000000000000000000000000000000000000000000000000000000845260048401611275565b0381600060645af19081156102785760009161130d575090565b610149915060203d811161027157610262818361033c565b919061132f610d8e565b5082515161133c816110bc565b9160409081519361134c856102ff565b8452600091825b848110611364575093955050505050565b61136f818951611175565b51906113f683519260209384916113c3826113b58a8683017fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060149260601b1681520190565b03601f19810184528361033c565b865193849283927f3c6f0e6800000000000000000000000000000000000000000000000000000000845260048401611275565b03818960645af19081156102785761141c938792611421575b5050610240828951611175565b611353565b6114379250803d1061027157610262818361033c565b388061140f565b9060078201809211610bfb57565b9060088201809211610bfb57565b908151811015611170570160200190565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156102785760009161130d575090565b805151908160031b9180830460081481151715610bfb5761150583610a00565b92601f1961152360409261151b8451978861033c565b808752610a00565b01926020933685870137600090815b8483106115425750505050505090565b61154d838351611175565b51908451917f0cfed5610000000000000000000000000000000000000000000000000000000083527f0400000000000000000000000000000000000000000000000000000000000000600484015260248301528682604481600060645af1908115610278577fffffffffffffffff0000000000000000000000000000000000000000000000006115f3926115f9946000916115ff575b5060c01b1688828b01015261144c565b92611107565b91611532565b61161691508a3d8c1161027157610262818361033c565b386115e3565b9081515190805151820361169c578251805115611170576020611650919493929401516116498551611163565b5190611747565b926001925b828410611663575050505090565b9091929361168e6116949161168861167c888651611175565b51611649898851611175565b906116f1565b94611107565b929190611655565b5050506040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260006024820152602081604481600060645af19081156102785760009161130d575090565b90604051917ffe9c73d100000000000000000000000000000000000000000000000000000000835260006004840152602483015260448201526020816064816000825af19081156102785760009161130d575090565b90604051917f7c12a1eb0000000000000000000000000000000000000000000000000000000083527f04040000000000000000000000000000000000000000000000000000000000006004840152602483015260448201526020816064816000825af19081156102785760009161130d575090565b908151519080515182036118365782518051156111705760206117f0919493929401516117e98551611163565b51906118e1565b926001925b828410611803575050505090565b9091929361168e61182e9161182861181c888651611175565b516117e9898851611175565b9061188b565b9291906117f5565b5050506040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260016024820152602081604481600060645af19081156102785760009161130d575090565b90604051917ffb7da35f00000000000000000000000000000000000000000000000000000000835260006004840152602483015260448201526020816064816000825af19081156102785760009161130d575090565b90604051917f42094c560000000000000000000000000000000000000000000000000000000083527f04040000000000000000000000000000000000000000000000000000000000006004840152602483015260448201526020816064816000825af19081156102785760009161130d57509056fea164736f6c6343000814000a";
213
213
 
214
214
  type StringTestsContractConstructorParams =
215
215
  | [signer?: Signer]
@@ -80,7 +80,7 @@ const _abi = [
80
80
  ] as const;
81
81
 
82
82
  const _bytecode =
83
- "0x608060405234801561001057600080fd5b506105d3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634717f97c1461003b578063e6724d7b146100a5575b600080fd5b6000546001546fffffffffffffffffffffffffffffffff808316927001000000000000000000000000000000009004169060ff165b604080516fffffffffffffffffffffffffffffffff948516815293909216602084015215159082015260600160405180910390f35b6100706100b336600461050d565b6000806000806100c2876101f5565b905060006100cf876101f5565b905060006100dc876101f5565b905060008060006100ee8686866102b2565b9250925092506100fd83610370565b600080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561014782610370565b600080546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055610183816103d7565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591821790556000546fffffffffffffffffffffffffffffffff8082169f700100000000000000000000000000000000909204169d5060ff9091169b509950505050505050505050565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f050000000000000000000000000000000000000000000000000000000000000060048201526fffffffffffffffffffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af1158015610288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ac919061057f565b92915050565b6000808080808060646356c72d286102cd6005808086610468565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af115801561033a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035e9190610598565b919b909a509098509650505050505050565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0500000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed56190604401610269565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af115801561043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045f919061057f565b15159392505050565b600081600281111561047c5761047c610550565b60ff16600884600681111561049357610493610550565b61ffff16901b61ffff1660108660068111156104b1576104b1610550565b62ffffff16901b62ffffff1660188860068111156104d1576104d1610550565b63ffffffff16901b17171760e01b95945050505050565b80356fffffffffffffffffffffffffffffffff8116811461050857600080fd5b919050565b60008060006060848603121561052257600080fd5b61052b846104e8565b9250610539602085016104e8565b9150610547604085016104e8565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561059157600080fd5b5051919050565b6000806000606084860312156105ad57600080fd5b835192506020840151915060408401519050925092509256fea164736f6c6343000813000a";
83
+ "0x6080806040523461001657610524908161001c8239f35b600080fdfe6080604090808252600436101561001557600080fd5b600090813560e01c9081634717f97c146102c3575063e6724d7b1461003957600080fd5b346102c05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102c0576fffffffffffffffffffffffffffffffff906004358281168103610260576024359083821682036102bc576044359084821682036102b8576100b56100af6100bb92610397565b93610397565b91610397565b908551927f56c72d280000000000000000000000000000000000000000000000000000000084527f050505000000000000000000000000000000000000000000000000000000000060048501526024840152604483015260648201526060816084818560645af190811561026c57838384928594610276575b508161014261017292610453565b16927fffffffffffffffffffffffffffffffff000000000000000000000000000000009384875416178655610453565b9184549260801b1691161782558351907f0cfed56100000000000000000000000000000000000000000000000000000000825282600483015260248201526020816044818560645af190811561026c578291610235575b50600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff921515929092169182179055905492519183166fffffffffffffffffffffffffffffffff16825260809290921c60208201529015156040820152606090f35b0390f35b90506020813d8211610264575b8161024f60209383610327565b8101031261026057516102316101c9565b5080fd5b3d9150610242565b84513d84823e3d90fd5b93505050506060813d82116102b0575b8161029360609383610327565b810103126102605780516020820151918501519190849081610134565b3d9150610286565b8380fd5b8280fd5b80fd5b90503461026057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102605790546001546fffffffffffffffffffffffffffffffff8216835260809190911c602083015260ff1615156040820152606090f35b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761036857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6fffffffffffffffffffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f05000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561044757600091610419575090565b906020823d821161043f575b8161043260209383610327565b810103126102c057505190565b3d9150610425565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f050000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af18015610447576000906104d6575b6fffffffffffffffffffffffffffffffff91501690565b6020823d821161050f575b816104ee60209383610327565b810103126102c057506fffffffffffffffffffffffffffffffff90516104bf565b3d91506104e156fea164736f6c6343000814000a";
84
84
 
85
85
  type Transfer128TestsContractConstructorParams =
86
86
  | [signer?: Signer]
@@ -80,7 +80,7 @@ const _abi = [
80
80
  ] as const;
81
81
 
82
82
  const _bytecode =
83
- "0x608060405234801561001057600080fd5b50610457806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634717f97c1461003b5780639b3c28a914610069575b600080fd5b60005460015460025460ff165b60408051938452602084019290925215159082015260600160405180910390f35b6100486100773660046103a8565b60008060008061008687610126565b9050600061009387610126565b905060006100a087610126565b905060008060006100b28686866101c9565b9250925092506100c183610287565b6000556100cd82610287565b6001556100d981610297565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159182179055600054600154909e909d5060ff9091169b509950505050505050505050565b6000606463d9b60b6060065b60f81b846040518363ffffffff1660e01b81526004016101809291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af115801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c39190610403565b92915050565b6000808080808060646356c72d286101e46006808086610328565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015610251573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610275919061041c565b919b909a509098509650505050505050565b60006064630cfed5616006610132565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af11580156102fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031f9190610403565b15159392505050565b600081600281111561033c5761033c6103d4565b60ff166008846006811115610353576103536103d4565b61ffff16901b61ffff166010866006811115610371576103716103d4565b62ffffff16901b62ffffff166018886006811115610391576103916103d4565b63ffffffff16901b17171760e01b95945050505050565b6000806000606084860312156103bd57600080fd5b505081359360208301359350604090920135919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561041557600080fd5b5051919050565b60008060006060848603121561043157600080fd5b835192506020840151915060408401519050925092509256fea164736f6c6343000813000a";
83
+ "0x6080806040523461001657610427908161001c8239f35b600080fdfe6080604090808252600436101561001557600080fd5b600090813560e01c9081634717f97c146102415750639b3c28a91461003957600080fd5b346102365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023657610073600435610300565b9061007f602435610300565b61008a604435610300565b908451937f56c72d280000000000000000000000000000000000000000000000000000000085527f060606000000000000000000000000000000000000000000000000000000000060048601526024850152604484015260648301526060826084818460645af19182156101f15781829183946101fd575b5090610110610117926103aa565b83556103aa565b6001558251917f0cfed56100000000000000000000000000000000000000000000000000000000835281600484015260248301526020826044818460645af19182156101f15781926101b8575b506002805492151560ff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931683179055546001549251908152602081019290925215156040820152606090f35b0390f35b9091506020813d82116101e9575b816101d360209383610290565b810103126101e55751906101b4610164565b5080fd5b3d91506101c6565b508251903d90823e3d90fd5b935050506060823d8211610239575b8161021960609383610290565b810103126102365781516020830151928401519290610110610102565b80fd5b3d915061020c565b9050346101e557817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101e5579054600154600254918352602083015260ff1615156040820152606090f35b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176102d157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051907fd9b60b600000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af190811561039e57600091610370575090565b906020823d8211610396575b8161038960209383610290565b8101031261023657505190565b3d915061037c565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af190811561039e5760009161037057509056fea164736f6c6343000814000a";
84
84
 
85
85
  type Transfer256TestsContractConstructorParams =
86
86
  | [signer?: Signer]
@@ -305,7 +305,7 @@ const _abi = [
305
305
  ] as const;
306
306
 
307
307
  const _bytecode =
308
- "0x608060405234801561001057600080fd5b50611685806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806352fdcece1161005057806352fdcece146100c1578063df6d2101146100d4578063ea8fe3d5146100e757600080fd5b806319902cb11461006c5780634717f97c14610081575b600080fd5b61007f61007a3660046114b2565b6100fa565b005b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b61007f6100cf3660046114b2565b61065b565b61009b6100e23660046115bf565b610823565b61007f6100f53660046114b2565b610a40565b60008060006101158860c001518960e001518660ff16610d88565b92509250925061012483610e51565b67ffffffffffffffff168760ff16148015610153575061014382610e51565b67ffffffffffffffff168660ff16145b801561016a575061016381610ef4565b1515851515145b6101c55760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084015b60405180910390fd5b6101db88600001518960e001518660ff16610f85565b919450925090506101eb83610e51565b67ffffffffffffffff168760ff1614801561021a575061020a82610e51565b67ffffffffffffffff168660ff16145b8015610231575061022a81610ef4565b1515851515145b6102875760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61029d8860c0015189602001518660ff16610fa1565b919450925090506102ad83610e51565b67ffffffffffffffff168760ff161480156102dc57506102cc82610e51565b67ffffffffffffffff168660ff16145b80156102f357506102ec81610ef4565b1515851515145b6103495760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61035f88604001518960e001518660ff16610fbd565b9194509250905061036f83610e51565b67ffffffffffffffff168760ff1614801561039e575061038e82610e51565b67ffffffffffffffff168660ff16145b80156103b557506103ae81610ef4565b1515851515145b61040b5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6104218860c0015189606001518660ff16610fda565b9194509250905061043183610e51565b67ffffffffffffffff168760ff16148015610460575061045082610e51565b67ffffffffffffffff168660ff16145b8015610477575061047081610ef4565b1515851515145b6104cd5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6104e388608001518960e001518660ff16610ff7565b919450925090506104f383610e51565b67ffffffffffffffff168760ff16148015610522575061051282610e51565b67ffffffffffffffff168660ff16145b8015610539575061053281610ef4565b1515851515145b61058f5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6105a58860c001518960a001518660ff16611014565b919450925090506105b583610e51565b67ffffffffffffffff168760ff161480156105e457506105d482610e51565b67ffffffffffffffff168660ff16145b80156105fb57506105f481610ef4565b1515851515145b6106515760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b5050505050505050565b6000806000610676886040015189606001518660ff16611031565b925092509250610685836110a3565b61ffff168760ff161480156106a8575061069e826110a3565b61ffff168660ff16145b80156106bf57506106b881610ef4565b1515851515145b6107155760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61072b886000015189606001518660ff166110b3565b9194509250905061073b836110a3565b61ffff168760ff1614801561075e5750610754826110a3565b61ffff168660ff16145b8015610775575061076e81610ef4565b1515851515145b6107cb5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6107e1886040015189602001518660ff166110cf565b919450925090506107f1836110a3565b61ffff168760ff161480156105e4575061080a826110a3565b61ffff168660ff161480156105fb57506105f481610ef4565b600080600061087060405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610879876110eb565b8152610884866110eb565b602082015261089560ff8816611154565b60408201526108a660ff8716611154565b60608201526108b760ff88166111be565b60808201526108c860ff87166111be565b60a08201526108d960ff881661122a565b60c08201526108ea60ff871661122a565b60e08201528051602082015160009182918291610907918a61129a565b9250925092506109168361130a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556109518261130a565b600060016101000a81548160ff021916908360ff16021790555061097481610ef4565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff84168117928390556109cf93889360ff928316918316919091179261010082048316929104168c61065b565b6000546109f490859060ff80821691610100810482169162010000909104168c610a40565b600054610a1990859060ff80821691610100810482169162010000909104168c6100fa565b505060005460ff8082169a610100830482169a506201000090920416975095505050505050565b6000806000610a5b88608001518960a001518660ff1661131a565b925092509250610a6a8361138e565b63ffffffff168760ff16148015610a915750610a858261138e565b63ffffffff168660ff16145b8015610aa85750610aa181610ef4565b1515851515145b610afe5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610b1488600001518960a001518660ff1661139e565b91945092509050610b248361138e565b63ffffffff168760ff16148015610b4b5750610b3f8261138e565b63ffffffff168660ff16145b8015610b625750610b5b81610ef4565b1515851515145b610bb85760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610bce886080015189602001518660ff166113ba565b91945092509050610bde8361138e565b63ffffffff168760ff16148015610c055750610bf98261138e565b63ffffffff168660ff16145b8015610c1c5750610c1581610ef4565b1515851515145b610c725760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610c8888604001518960a001518660ff166113d6565b91945092509050610c988361138e565b63ffffffff168760ff16148015610cbf5750610cb38261138e565b63ffffffff168660ff16145b8015610cd65750610ccf81610ef4565b1515851515145b610d2c5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610d42886080015189606001518660ff166113f3565b91945092509050610d528361138e565b63ffffffff168760ff161480156105e45750610d6d8261138e565b63ffffffff168660ff161480156105fb57506105f481610ef4565b6000808080808060646356c72d28610da460048080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905267ffffffffffffffff8a1660648201526084015b6060604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190611602565b919b909a509098509650505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401610eab9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee919061165f565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c919061165f565b15159392505050565b6000808080808060646356c72d28610da460016004808261140c565b6000808080808060646356c72d28610da460046001818161140c565b6000808080808060646356c72d28610da46002600480600161140c565b6000808080808060646356c72d28610da46004600281600161140c565b6000808080808060646356c72d28610da46003600480600161140c565b6000808080808060646356c72d28610da46004600381600161140c565b6000808080808060646356c72d2861104d60028080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905261ffff8a166064820152608401610dfc565b60006064630cfed5616002610e5d565b6000808080808060646356c72d2861104d60016002808261140c565b6000808080808060646356c72d2861104d60026001818161140c565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401610eab565b6000808080808060646356c72d286112b5600180808061140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905260ff8a166064820152608401610dfc565b60006064630cfed5616001610e5d565b6000808080808060646356c72d2861133660038080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905263ffffffff8a166064820152608401610dfc565b60006064630cfed5616003610e5d565b6000808080808060646356c72d2861133660016003808261140c565b6000808080808060646356c72d2861133660036001818161140c565b6000808080808060646356c72d286113366002600380600161140c565b6000808080808060646356c72d28611336600360028160015b600081600281111561142057611420611630565b60ff16600884600681111561143757611437611630565b61ffff16901b61ffff16601086600681111561145557611455611630565b62ffffff16901b62ffffff16601888600681111561147557611475611630565b63ffffffff16901b17171760e01b95945050505050565b803560ff8116811461149d57600080fd5b919050565b8035801515811461149d57600080fd5b60008060008060008587036101808112156114cc57600080fd5b610100808212156114dc57600080fd5b604051915080820182811067ffffffffffffffff82111715611527577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061158481890161148c565b95505050611595610120870161148c565b92506115a461014087016114a2565b91506115b3610160870161148c565b90509295509295909350565b6000806000606084860312156115d457600080fd5b6115dd8461148c565b92506115eb6020850161148c565b91506115f96040850161148c565b90509250925092565b60008060006060848603121561161757600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561167157600080fd5b505191905056fea164736f6c6343000813000a";
308
+ "0x60808060405234610016576116ae908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b600090813560e01c90816319902cb1146103d55781634717f97c1461037957816352fdcece1461035e578163df6d210114610078575063ea8fe3d51461005857600080fd5b34610075576100726100693661047d565b939290926108cb565b80f35b80fd5b90503461035a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035a5760ff9160043583811690818103610356576024359085821680830361035257604435938785169283860361034e5787939287610165819461016c948851809a6100f1826103f0565b858252602082019a868c5282018681526101396060840192888452608085019489865261013260a08201978b895260c083019b8c5260e083019e8f526111d3565b90526111d3565b8c526101448561131a565b905261014f8761131a565b905261015a83611436565b905261016585611436565b9052611558565b905282519151865192630ad8e5a560e31b84527f010101010000000000000000000000000000000000000000000000000000000060048501526024840152604483015260648201526060816084818760645af1908115610344579161029e846102548796946102d2968b6103059a8a928b94610309575b50906101f261021f9392611274565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008b5416178a55611274565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff008a549260081b16911617885561113f565b151562ff000087549160101b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff821617908188558a80808460101c169360081c169116856105c7565b6102ba828554898160101c16908a808260081c169116856108cb565b8354878160101c169188808360081c16921690610c69565b54915160ff84841681168252600884901c851616602082015260109290921c909216151560408201529081906060820190565b0390f35b6101f2945061021f9350610334915060603d811161033d575b61032c818361043c565b810190611686565b949093506101e3565b503d610322565b85513d86823e3d90fd5b8680fd5b8480fd5b8280fd5b5080fd5b8234610075576100726103703661047d565b939290926105c7565b90503461035a57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035a579054905160ff8083168252600883901c8116602083015260109290921c90911615156040820152606090f35b8234610075576100726103e73661047d565b93929092610c69565b610100810190811067ffffffffffffffff82111761040d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761040d57604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0161018081126105375761010013610537576040516104bc816103f0565b6004358152602435602082015260443560408201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e0820152906101043560ff8116810361053757906101243560ff81168103610537579061014435801515810361053757906101643560ff811681036105375790565b600080fd5b1561054357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b929190936040840151606085015160405191630ad8e5a560e31b83527f020202010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610666916000809260009261089f575b5061064c61ffff9161138e565b1660ff8916149182610883575b508161086d575b5061053c565b835190606085015160405192630ad8e5a560e31b84527f010202010000000000000000000000000000000000000000000000000000000060048501526024840152604483015260ff81166064830152606082608481600060645af180156108045760ff926106ff9160008092600092610841575b506106e761ffff9161138e565b16858a16149182610826575b5081610810575061053c565b6020604086015195015160405195630ad8e5a560e31b87527f0201020100000000000000000000000000000000000000000000000000000000600488015260248701526044860152166064840152606083608481600060645af19081156108045761079994600080956000946107d1575b5061ffff61077f60ff9261138e565b1691161493846107b3575b50508261079b575b505061053c565b565b6107a691925061113f565b1515901515143880610792565b60ff919294506107c561ffff9161138e565b1691161491388061078a565b61ffff965061077f945060ff91506107f79060603d60601161033d5761032c818361043c565b9097909550909150610770565b6040513d6000823e3d90fd5b61081a915061113f565b15158515151438610660565b61ffff9192506108359061138e565b168486161490386106f3565b61ffff93506106e79250610864915060603d60601161033d5761032c818361043c565b909350916106da565b610877915061113f565b15158415151438610660565b61ffff9192506108929061138e565b1660ff8516149038610659565b61ffff935061064c92506108c2915060603d60601161033d5761032c818361043c565b9093509161063f565b92919093608084015160a085015160405191630ad8e5a560e31b83527f030303010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af19081156108045761096a9160008092600092610c3b575b5061095263ffffffff916114ac565b1660ff8916149182610c2a57508161086d575061053c565b835160a085015160405191630ad8e5a560e31b83527f010303010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af1908115610804576109e99160008092600092610c3b575061095263ffffffff916114ac565b6080840151602085015160405191630ad8e5a560e31b83527f030103010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610a6b9160008092600092610c3b575061095263ffffffff916114ac565b60408401519060a085015160405192630ad8e5a560e31b84527f020303010000000000000000000000000000000000000000000000000000000060048501526024840152604483015260ff81166064830152606082608481600060645af180156108045760ff92610b089160008092600092610bfc575b50610af163ffffffff916114ac565b16858a16149182610beb575081610810575061053c565b6060608086015195015160405195630ad8e5a560e31b87527f0302030100000000000000000000000000000000000000000000000000000000600488015260248701526044860152166064840152606083608481600060645af1908115610804576107999460008095600094610bb6575b5063ffffffff610b8a60ff926114ac565b169116149384610ba25750508261079b57505061053c565b60ff919294506107c563ffffffff916114ac565b63ffffffff9650610b8a945060ff9150610bde9060603d60601161033d5761032c818361043c565b9097909550909150610b79565b63ffffffff919250610835906114ac565b63ffffffff9350610af19250610c21915060603d60601161033d5761032c818361043c565b90935091610ae2565b63ffffffff919250610892906114ac565b63ffffffff93506109529250610c60915060603d60601161033d5761032c818361043c565b90935091610943565b9291909360c084015160e085015160405191630ad8e5a560e31b83527f040404010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610d0c916000809260009261110d575b50610cf467ffffffffffffffff916115d2565b1660ff89161491826110f857508161086d575061053c565b835160e085015160405191630ad8e5a560e31b83527f010404010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610d8f916000809260009261110d5750610cf467ffffffffffffffff916115d2565b60c0840151602085015160405191630ad8e5a560e31b83527f040104010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610e15916000809260009261110d5750610cf467ffffffffffffffff916115d2565b604084015160e085015160405191630ad8e5a560e31b83527f020404010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610e9b916000809260009261110d5750610cf467ffffffffffffffff916115d2565b60c0840151606085015160405191630ad8e5a560e31b83527f040204010000000000000000000000000000000000000000000000000000000060048401526024830152604482015260ff82166064820152606081608481600060645af190811561080457610f21916000809260009261110d5750610cf467ffffffffffffffff916115d2565b60808401519060e085015160405192630ad8e5a560e31b84527f030404010000000000000000000000000000000000000000000000000000000060048501526024840152604483015260ff81166064830152606082608481600060645af180156108045760ff92610fc291600080926000926110c6575b50610fab67ffffffffffffffff916115d2565b16858a161491826110b1575081610810575061053c565b60a060c086015195015160405195630ad8e5a560e31b87527f0403040100000000000000000000000000000000000000000000000000000000600488015260248701526044860152166064840152606083608481600060645af1908115610804576107999460008095600094611078575b5067ffffffffffffffff61104860ff926115d2565b1691161493846110605750508261079b57505061053c565b60ff919294506107c567ffffffffffffffff916115d2565b67ffffffffffffffff9650611048945060ff91506110a49060603d60601161033d5761032c818361043c565b9097909550909150611033565b67ffffffffffffffff919250610835906115d2565b67ffffffffffffffff9350610fab92506110ef915060603d60601161033d5761032c818361043c565b90935091610f98565b67ffffffffffffffff919250610892906115d2565b67ffffffffffffffff9350610cf49250611136915060603d60601161033d5761032c818361043c565b90935091610ce1565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af19182156111c7578092611193575b5050151590565b9091506020823d82116111bf575b816111ae6020938361043c565b81010312610075575051388061118c565b3d91506111a1565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561080457600091611246575090565b906020823d821161126c575b8161125f6020938361043c565b8101031261007557505190565b3d9150611252565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af18015610804576000906112e8575b60ff91501690565b6020823d8211611312575b816113006020938361043c565b81010312610075575060ff90516112e0565b3d91506112f3565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561080457600091611246575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f020000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561080457600090611403575b61ffff91501690565b6020823d821161142e575b8161141b6020938361043c565b81010312610075575061ffff90516113fa565b3d915061140e565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561080457600091611246575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f030000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561080457600090611523575b63ffffffff91501690565b6020823d8211611550575b8161153b6020938361043c565b81010312610075575063ffffffff9051611518565b3d915061152e565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561080457600091611246575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156108045760009061164d575b67ffffffffffffffff91501690565b6020823d821161167e575b816116656020938361043c565b81010312610075575067ffffffffffffffff905161163e565b3d9150611658565b9081606091031261053757805191604060208301519201519056fea164736f6c6343000814000a";
309
309
 
310
310
  type TransferScalarTestsContractConstructorParams =
311
311
  | [signer?: Signer]
@@ -386,7 +386,7 @@ const _abi = [
386
386
  ] as const;
387
387
 
388
388
  const _bytecode =
389
- "0x608060405234801561001057600080fd5b50613308806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063701251311161005057806370125131146100c1578063d7b0fe63146100d4578063f6029cb3146100e757600080fd5b80634717f97c1461006c5780636a3ae654146100ac575b600080fd5b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b6100bf6100ba36600461317a565b6100fa565b005b6100866100cf366004613242565b610b69565b6100bf6100e236600461317a565b610e0a565b6100bf6100f536600461317a565b6112c6565b600080600061011688608001518960a0015189604001516126af565b9250925092506101258361276d565b63ffffffff168660ff1614801561014c57506101408261276d565b63ffffffff168560ff16145b8015610163575061015c81612810565b1515841515145b6101b45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064015b60405180910390fd5b6101cb88600001518960a0015189604001516128a1565b919450925090506101db8361276d565b63ffffffff168660ff1614801561020257506101f68261276d565b63ffffffff168560ff16145b8015610219575061021281612810565b1515841515145b6102655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61027c8860800151896020015189604001516128bd565b9194509250905061028c8361276d565b63ffffffff168660ff161480156102b357506102a78261276d565b63ffffffff168560ff16145b80156102ca57506102c381612810565b1515841515145b6103165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61032d88604001518960a0015189604001516128d9565b9194509250905061033d8361276d565b63ffffffff168660ff1614801561036457506103588261276d565b63ffffffff168560ff16145b801561037b575061037481612810565b1515841515145b6103c75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6103de8860800151896060015189604001516128f5565b919450925090506103ee8361276d565b63ffffffff168660ff1614801561041557506104098261276d565b63ffffffff168560ff16145b801561042c575061042581612810565b1515841515145b6104785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61048f88608001518960a001518960000151612911565b9194509250905061049f8361276d565b63ffffffff168660ff161480156104c657506104ba8261276d565b63ffffffff168560ff16145b80156104dd57506104d681612810565b1515841515145b6105295760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b875160a0890151885161053d92919061292d565b9194509250905061054d8361276d565b63ffffffff168660ff1614801561057457506105688261276d565b63ffffffff168560ff16145b801561058b575061058481612810565b1515841515145b6105d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6105ee886080015189602001518960000151612949565b919450925090506105fe8361276d565b63ffffffff168660ff1614801561062557506106198261276d565b63ffffffff168560ff16145b801561063c575061063581612810565b1515841515145b6106885760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61069f88604001518960a001518960000151612965565b919450925090506106af8361276d565b63ffffffff168660ff161480156106d657506106ca8261276d565b63ffffffff168560ff16145b80156106ed57506106e681612810565b1515841515145b6107395760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610750886080015189606001518960000151612982565b919450925090506107608361276d565b63ffffffff168660ff16148015610787575061077b8261276d565b63ffffffff168560ff16145b801561079e575061079781612810565b1515841515145b6107ea5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61080188608001518960a00151896020015161299f565b919450925090506108118361276d565b63ffffffff168660ff16148015610838575061082c8261276d565b63ffffffff168560ff16145b801561084f575061084881612810565b1515841515145b61089b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6108b288600001518960a0015189602001516129bb565b919450925090506108c28361276d565b63ffffffff168660ff161480156108e957506108dd8261276d565b63ffffffff168560ff16145b801561090057506108f981612810565b1515841515145b61094c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6109638860800151896020015189602001516129d8565b919450925090506109738361276d565b63ffffffff168660ff1614801561099a575061098e8261276d565b63ffffffff168560ff16145b80156109b157506109aa81612810565b1515841515145b6109fd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610a1488604001518960a0015189602001516129f5565b91945092509050610a248361276d565b63ffffffff168660ff16148015610a4b5750610a3f8261276d565b63ffffffff168560ff16145b8015610a625750610a5b81612810565b1515841515145b610aae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610ac5886080015189606001518960200151612a11565b91945092509050610ad58361276d565b63ffffffff168660ff16148015610afc5750610af08261276d565b63ffffffff168560ff16145b8015610b135750610b0c81612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b5050505050505050565b6000806000610bb660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610beb6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b610bf488612a2d565b8252610bff87612a2d565b6020830152610c1060ff8916612a96565b6040830152610c2160ff8816612a96565b6060830152610c3260ff8916612b00565b6080830152610c4360ff8816612b00565b60a0830152610c5460ff8916612b6c565b60c0830152610c6560ff8816612b6c565b60e0830152610c7386612a2d565b8152610c8160ff8716612a96565b6020820152610c9260ff8716612b00565b6040820152610ca360ff8716612b6c565b606082015260ff8616608082015281516020830151825160009283928392610ccc929190612bdc565b925092509250610cdb83612bf7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055610d1682612bf7565b600060016101000a81548160ff021916908360ff160217905550610d3981612810565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff8416811792839055610d96938993899360ff9384169284169290921792610100820481169290910416610e0a565b600054610dbc908690869060ff80821691610100810482169162010000909104166100fa565b600054610de2908690869060ff80821691610100810482169162010000909104166112c6565b505060005460ff8082169b610100830482169b50620100009092041698509650505050505050565b6000806000610e26886040015189606001518960000151612c07565b925092509250610e3583612c23565b61ffff168660ff16148015610e585750610e4e82612c23565b61ffff168560ff16145b8015610e6f5750610e6881612810565b1515841515145b610ebb5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b875160608901518851610ecf929190612c33565b91945092509050610edf83612c23565b61ffff168660ff16148015610f025750610ef882612c23565b61ffff168560ff16145b8015610f195750610f1281612810565b1515841515145b610f655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b610f7c886040015189602001518960000151612c4f565b91945092509050610f8c83612c23565b61ffff168660ff16148015610faf5750610fa582612c23565b61ffff168560ff16145b8015610fc65750610fbf81612810565b1515841515145b6110125760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611029886040015189606001518960200151612c6b565b9194509250905061103983612c23565b61ffff168660ff1614801561105c575061105282612c23565b61ffff168560ff16145b8015611073575061106c81612810565b1515841515145b6110bf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6110d6886000015189606001518960200151612c86565b919450925090506110e683612c23565b61ffff168660ff1614801561110957506110ff82612c23565b61ffff168560ff16145b8015611120575061111981612810565b1515841515145b61116c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611183886040015189602001518960200151612ca2565b9194509250905061119383612c23565b61ffff168660ff161480156111b657506111ac82612c23565b61ffff168560ff16145b80156111cd57506111c681612810565b1515841515145b6112195760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611230886040015189606001518960000151612c07565b9194509250905061124083612c23565b61ffff168660ff16148015611263575061125982612c23565b61ffff168560ff16145b801561127a575061127381612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b60008060006112e28860c001518960e001518960600151612cbe565b9250925092506112f183612cd9565b67ffffffffffffffff168660ff16148015611320575061131082612cd9565b67ffffffffffffffff168560ff16145b8015611337575061133081612810565b1515841515145b6113835760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61139a88600001518960e001518960600151612ce9565b919450925090506113aa83612cd9565b67ffffffffffffffff168660ff161480156113d957506113c982612cd9565b67ffffffffffffffff168560ff16145b80156113f057506113e981612810565b1515841515145b61143c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6114538860c0015189602001518960600151612d05565b9194509250905061146383612cd9565b67ffffffffffffffff168660ff16148015611492575061148282612cd9565b67ffffffffffffffff168560ff16145b80156114a957506114a281612810565b1515841515145b6114f55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61150c88604001518960e001518960600151612d21565b9194509250905061151c83612cd9565b67ffffffffffffffff168660ff1614801561154b575061153b82612cd9565b67ffffffffffffffff168560ff16145b8015611562575061155b81612810565b1515841515145b6115ae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6115c58860c0015189606001518960600151612d3d565b919450925090506115d583612cd9565b67ffffffffffffffff168660ff1614801561160457506115f482612cd9565b67ffffffffffffffff168560ff16145b801561161b575061161481612810565b1515841515145b6116675760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61167e88608001518960e001518960600151612d59565b9194509250905061168e83612cd9565b67ffffffffffffffff168660ff161480156116bd57506116ad82612cd9565b67ffffffffffffffff168560ff16145b80156116d457506116cd81612810565b1515841515145b6117205760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117378860c001518960a001518960600151612d75565b9194509250905061174783612cd9565b67ffffffffffffffff168660ff16148015611776575061176682612cd9565b67ffffffffffffffff168560ff16145b801561178d575061178681612810565b1515841515145b6117d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117f08860c001518960e001518960400151612d91565b9194509250905061180083612cd9565b67ffffffffffffffff168660ff1614801561182f575061181f82612cd9565b67ffffffffffffffff168560ff16145b8015611846575061183f81612810565b1515841515145b6118925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6118a988600001518960e001518960400151612dad565b919450925090506118b983612cd9565b67ffffffffffffffff168660ff161480156118e857506118d882612cd9565b67ffffffffffffffff168560ff16145b80156118ff57506118f881612810565b1515841515145b61194b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6119628860c0015189602001518960400151612dca565b9194509250905061197283612cd9565b67ffffffffffffffff168660ff161480156119a1575061199182612cd9565b67ffffffffffffffff168560ff16145b80156119b857506119b181612810565b1515841515145b611a045760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611a1b88604001518960e001518960400151612de7565b91945092509050611a2b83612cd9565b67ffffffffffffffff168660ff16148015611a5a5750611a4a82612cd9565b67ffffffffffffffff168560ff16145b8015611a715750611a6a81612810565b1515841515145b611abd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611ad48860c0015189606001518960400151612e04565b91945092509050611ae483612cd9565b67ffffffffffffffff168660ff16148015611b135750611b0382612cd9565b67ffffffffffffffff168560ff16145b8015611b2a5750611b2381612810565b1515841515145b611b765760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611b8d88608001518960e001518960400151612e21565b91945092509050611b9d83612cd9565b67ffffffffffffffff168660ff16148015611bcc5750611bbc82612cd9565b67ffffffffffffffff168560ff16145b8015611be35750611bdc81612810565b1515841515145b611c2f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611c468860c001518960a001518960400151612e3d565b91945092509050611c5683612cd9565b67ffffffffffffffff168660ff16148015611c855750611c7582612cd9565b67ffffffffffffffff168560ff16145b8015611c9c5750611c9581612810565b1515841515145b611ce85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611cff8860c001518960e001518960000151612e59565b91945092509050611d0f83612cd9565b67ffffffffffffffff168660ff16148015611d3e5750611d2e82612cd9565b67ffffffffffffffff168560ff16145b8015611d555750611d4e81612810565b1515841515145b611da15760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b875160e08901518851611db5929190612e75565b91945092509050611dc583612cd9565b67ffffffffffffffff168660ff16148015611df45750611de482612cd9565b67ffffffffffffffff168560ff16145b8015611e0b5750611e0481612810565b1515841515145b611e575760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611e6e8860c0015189602001518960000151612e91565b91945092509050611e7e83612cd9565b67ffffffffffffffff168660ff16148015611ead5750611e9d82612cd9565b67ffffffffffffffff168560ff16145b8015611ec45750611ebd81612810565b1515841515145b611f105760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611f2788604001518960e001518960000151612ead565b91945092509050611f3783612cd9565b67ffffffffffffffff168660ff16148015611f665750611f5682612cd9565b67ffffffffffffffff168560ff16145b8015611f7d5750611f7681612810565b1515841515145b611fc95760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611fe08860c0015189606001518960000151612eca565b91945092509050611ff083612cd9565b67ffffffffffffffff168660ff1614801561201f575061200f82612cd9565b67ffffffffffffffff168560ff16145b8015612036575061202f81612810565b1515841515145b6120825760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61209988608001518960e001518960000151612ee7565b919450925090506120a983612cd9565b67ffffffffffffffff168660ff161480156120d857506120c882612cd9565b67ffffffffffffffff168560ff16145b80156120ef57506120e881612810565b1515841515145b61213b5760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b6121528860c001518960a001518960000151612f04565b9194509250905061216283612cd9565b67ffffffffffffffff168660ff16148015612191575061218182612cd9565b67ffffffffffffffff168560ff16145b80156121a857506121a181612810565b1515841515145b6121f45760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61220b8860c001518960e001518960200151612f21565b9194509250905061221b83612cd9565b67ffffffffffffffff168660ff1614801561224a575061223a82612cd9565b67ffffffffffffffff168560ff16145b8015612261575061225a81612810565b1515841515145b6122ad5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6122c488600001518960e001518960200151612f3d565b919450925090506122d483612cd9565b67ffffffffffffffff168660ff1614801561230357506122f382612cd9565b67ffffffffffffffff168560ff16145b801561231a575061231381612810565b1515841515145b6123665760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61237d8860c0015189602001518960200151612f5a565b9194509250905061238d83612cd9565b67ffffffffffffffff168660ff161480156123bc57506123ac82612cd9565b67ffffffffffffffff168560ff16145b80156123d357506123cc81612810565b1515841515145b61241f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61243688604001518960e001518960200151612f77565b9194509250905061244683612cd9565b67ffffffffffffffff168660ff16148015612475575061246582612cd9565b67ffffffffffffffff168560ff16145b801561248c575061248581612810565b1515841515145b6124d85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6124ef8860c0015189606001518960200151612f93565b919450925090506124ff83612cd9565b67ffffffffffffffff168660ff1614801561252e575061251e82612cd9565b67ffffffffffffffff168560ff16145b8015612545575061253e81612810565b1515841515145b6125915760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6125a888608001518960e001518960200151612faf565b919450925090506125b883612cd9565b67ffffffffffffffff168660ff161480156125e757506125d782612cd9565b67ffffffffffffffff168560ff16145b80156125fe57506125f781612810565b1515841515145b61264a5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6126618860c001518960a001518960200151612fcc565b9194509250905061267183612cd9565b67ffffffffffffffff168660ff16148015611263575061269082612cd9565b67ffffffffffffffff168560ff1614801561127a575061127381612810565b6000808080808060646356c72d286126ca6003808086612fe5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613285565b919b909a509098509650505050505050565b60006064630cfed56160035b60f81b846040518363ffffffff1660e01b81526004016127c79291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a91906132e2565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015612874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289891906132e2565b15159392505050565b6000808080808060646356c72d286126ca600160038086612fe5565b6000808080808060646356c72d286126ca600360018186612fe5565b6000808080808060646356c72d286126ca600260038086612fe5565b6000808080808060646356c72d286126ca600360028186612fe5565b6000808080808060646356c72d286126ca600380600186612fe5565b6000808080808060646356c72d286126ca600160038186612fe5565b6000808080808060646356c72d286126ca600360018086612fe5565b6000808080808060646356c72d286126ca60026003600186612fe5565b6000808080808060646356c72d286126ca60036002600186612fe5565b6000808080808060646356c72d286126ca600380600286612fe5565b6000808080808060646356c72d286126ca60016003600286612fe5565b6000808080808060646356c72d286126ca60036001600286612fe5565b6000808080808060646356c72d286126ca600260038186612fe5565b6000808080808060646356c72d286126ca600360028086612fe5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016127c7565b6000808080808060646356c72d286126ca6001808086612fe5565b60006064630cfed5616001612779565b6000808080808060646356c72d286126ca600280600186612fe5565b60006064630cfed5616002612779565b6000808080808060646356c72d286126ca600160028186612fe5565b6000808080808060646356c72d286126ca600260018086612fe5565b6000808080808060646356c72d286126ca6002808086612fe5565b6000808080808060646356c72d286126ca600160028086612fe5565b6000808080808060646356c72d286126ca600260018186612fe5565b6000808080808060646356c72d286126ca6004808086612fe5565b60006064630cfed5616004612779565b6000808080808060646356c72d286126ca600160048086612fe5565b6000808080808060646356c72d286126ca600460018186612fe5565b6000808080808060646356c72d286126ca600260048086612fe5565b6000808080808060646356c72d286126ca600460028186612fe5565b6000808080808060646356c72d286126ca600360048086612fe5565b6000808080808060646356c72d286126ca600460038186612fe5565b6000808080808060646356c72d286126ca600480600386612fe5565b6000808080808060646356c72d286126ca60016004600386612fe5565b6000808080808060646356c72d286126ca60046001600386612fe5565b6000808080808060646356c72d286126ca60026004600386612fe5565b6000808080808060646356c72d286126ca60046002600386612fe5565b6000808080808060646356c72d286126ca600360048186612fe5565b6000808080808060646356c72d286126ca600460038086612fe5565b6000808080808060646356c72d286126ca600480600186612fe5565b6000808080808060646356c72d286126ca600160048186612fe5565b6000808080808060646356c72d286126ca600460018086612fe5565b6000808080808060646356c72d286126ca60026004600186612fe5565b6000808080808060646356c72d286126ca60046002600186612fe5565b6000808080808060646356c72d286126ca60036004600186612fe5565b6000808080808060646356c72d286126ca60046003600186612fe5565b6000808080808060646356c72d286126ca600480600286612fe5565b6000808080808060646356c72d286126ca60016004600286612fe5565b6000808080808060646356c72d286126ca60046001600286612fe5565b6000808080808060646356c72d286126ca600260048186612fe5565b6000808080808060646356c72d286126ca600460028086612fe5565b6000808080808060646356c72d286126ca60036004600286612fe5565b6000808080808060646356c72d286126ca600460036002865b6000816002811115612ff957612ff96132b3565b60ff166008846006811115613010576130106132b3565b61ffff16901b61ffff16601086600681111561302e5761302e6132b3565b62ffffff16901b62ffffff16601888600681111561304e5761304e6132b3565b63ffffffff16901b17171760e01b95945050505050565b604051610100810167ffffffffffffffff811182821017156130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146130c757600080fd5b919050565b600060a082840312156130de57600080fd5b60405160a0810181811067ffffffffffffffff82111715613128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508091508235815260208301356020820152604083013560408201526060830135606082015261315e608084016130b6565b60808201525092915050565b803580151581146130c757600080fd5b600080600080600085870361020081121561319457600080fd5b610100808212156131a457600080fd5b6131ac613065565b9150873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061320789828a016130cc565b955050506132186101a087016130b6565b92506132276101c087016130b6565b91506132366101e0870161316a565b90509295509295909350565b60008060006060848603121561325757600080fd5b613260846130b6565b925061326e602085016130b6565b915061327c604085016130b6565b90509250925092565b60008060006060848603121561329a57600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156132f457600080fd5b505191905056fea164736f6c6343000813000a";
389
+ "0x6080806040523461001657612ba9908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081634717f97c14610433575080636a3ae654146104195780637012513114610091578063d7b0fe63146100775763f6029cb31461005657600080fd5b346100725761007061006736610534565b939290926114a0565b005b600080fd5b346100725761007061008836610534565b939290926106af565b346100725760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100725760ff8060043516600435036100725780602435166024350361007257806044351660443503610072576040516100f58161048b565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e0820152604051610136816104d7565b600081526000602082015260006040820152600060608201526000608082015261016160043561263e565b825261016e60243561263e565b602083015261018083600435166127a0565b604083015261019283602435166127a0565b60608301526101a483600435166128bc565b60808301526101b683602435166128bc565b60a08301526101c883600435166129de565b60c08301526101da83602435166129de565b60e08301526101ea60443561263e565b81526101f983604435166127a0565b602082015261020b83604435166128bc565b604082015261021d83604435166129de565b606082015282604435166080820152815191602081015182519060405194630ad8e5a560e31b86527f01010100000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af1801561040d576103196103669161039d9587600080926000946103d1575b50906102b36102e293926126df565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000556126df565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b169116176000556125a7565b151562ff00006000549160101b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff82161790816000558680808460101c169360081c16911685856106af565b610383600054858160101c169086808260081c1691168585610b26565b60005490848260101c169285808460081c169316916114a0565b6000546040805160ff84841681168252600884901c851616602082015260109290921c909216151591810191909152606090f35b6102b394506102e293506103fd915060603d606011610406575b6103f581836104f3565b810190612785565b949093506102a4565b503d6103eb565b6040513d6000823e3d90fd5b346100725761007061042a36610534565b93929092610b26565b346100725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100725760005460ff8082168352600882901c8116602084015260109190911c1615156040820152606090f35b610100810190811067ffffffffffffffff8211176104a857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176104a857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104a857604052565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201610200811261007257610100136100725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc6040516105988161048b565b6004358152602435602082015260443560408201526064356060820152608435608082015260a4358382015260c43560c082015260e43560e0820152930112610072576040516105e7816104d7565b6101043581526101243560208201526101443560408201526101643560608201526101843560ff81168103610072576080820152906101a43560ff8116810361007257906101c43560ff8116810361007257906101e43580151581036100725790565b1561065157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c6564000000006044820152fd5b929391936106f56106db61ffff6106d160408801516060890151875191612b0c565b9291939093612814565b1660ff8916149182610a79575b5081610a63575b5061064a565b8351606085015183519060405192630ad8e5a560e31b84527f01020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576107729160008092600092610a95575b506106db61ffff91612814565b6040840151602085015183519060405192630ad8e5a560e31b84527f02010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576107f19160008092600092610a9557506106db61ffff91612814565b6040840151606085015160208401519060405192630ad8e5a560e31b84527f02020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576108739160008092600092610a9557506106db61ffff91612814565b8351606085015160208401519060405192630ad8e5a560e31b84527f01020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576108f29160008092600092610a9557506106db61ffff91612814565b604084015194602085015160208401519060405197630ad8e5a560e31b89527f020102000000000000000000000000000000000000000000000000000000000060048a0152602489015260448801526064870152606086608481600060645af1801561040d576109ae6109b89661ffff9561099c6109d29a60ff9560008092600092610a39575b506109848b91612814565b16878916149182610a20575b5081610a0a575061064a565b60606040830151920151905191612b0c565b9591979097612814565b1691161493846109ec575b5050826109d4575b505061064a565b565b6109df9192506125a7565b15159015151438806109cb565b60ff919294506109fe61ffff91612814565b169116149138806109c3565b610a1491506125a7565b151589151514386106ef565b8a919250610a2d90612814565b16868916149038610990565b8b93506109849250610a5a915060603d606011610406576103f581836104f3565b90935091610979565b610a6d91506125a7565b151584151514386106ef565b61ffff919250610a8890612814565b1660ff84161490386106e8565b61ffff93506106db9250610ab8915060603d606011610406576103f581836104f3565b90935091610765565b15610ac857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c6564000000006044820152fd5b9290939193608084015160a085015160408301519060405192630ad8e5a560e31b84527f03030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610bca91600080926000926113a8575b50610bb063ffffffff91612932565b1660ff891614918261138a575b5081611374575b50610ac1565b835160a085015160408301519060405192630ad8e5a560e31b84527f01030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610c4b91600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015160408301519060405192630ad8e5a560e31b84527f03010300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610ccf91600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015160408301519060405192630ad8e5a560e31b84527f02030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610d5391600080926000926113a85750610bb063ffffffff91612932565b6080840151606085015160408301519060405192630ad8e5a560e31b84527f03020300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610dd791600080926000926113a85750610bb063ffffffff91612932565b608084015160a085015182519060405192630ad8e5a560e31b84527f03030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610e5891600080926000926113a85750610bb063ffffffff91612932565b835160a085015182519060405192630ad8e5a560e31b84527f01030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610ed691600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015182519060405192630ad8e5a560e31b84527f03010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610f5791600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015182519060405192630ad8e5a560e31b84527f02030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610fd891600080926000926113a85750610bb063ffffffff91612932565b6080840151606085015182519060405192630ad8e5a560e31b84527f03020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761105991600080926000926113a85750610bb063ffffffff91612932565b608084015160a085015160208301519060405192630ad8e5a560e31b84527f03030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576110dd91600080926000926113a85750610bb063ffffffff91612932565b835160a085015160208301519060405192630ad8e5a560e31b84527f01030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761115e91600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015160208301519060405192630ad8e5a560e31b84527f03010200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576111e291600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015160208301519060405192630ad8e5a560e31b84527f02030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761126691600080926000926113a85750610bb063ffffffff91612932565b6020606060808601519501519101519060405194630ad8e5a560e31b86527f03020200000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af190811561040d576109d2946000809560009461133f575b5063ffffffff6112ed60ff92612932565b16911614938461131f575b505082611307575b5050610ac1565b6113129192506125a7565b1515901515143880611300565b60ff9192945061133363ffffffff91612932565b169116149138806112f8565b63ffffffff96506112ed945060ff91506113679060603d606011610406576103f581836104f3565b90979095509091506112dc565b61137e91506125a7565b15158415151438610bc4565b63ffffffff91925061139b90612932565b1660ff8516149038610bbd565b63ffffffff9350610bb092506113cd915060603d606011610406576103f581836104f3565b90935091610ba1565b156113dd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b1561144257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c656400000000006044820152fd5b929093919360c084015160e085015160608301519060405192630ad8e5a560e31b84527f04040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576115489160008092600092612575575b5061152e67ffffffffffffffff91612a58565b1660ff8916149182612553575b508161253d575b506113d6565b835160e085015160608301519060405192630ad8e5a560e31b84527f01040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576115cd9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c0840151602085015160608301519060405192630ad8e5a560e31b84527f04010400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576116559160008092600092612575575061152e67ffffffffffffffff91612a58565b604084015160e085015160608301519060405192630ad8e5a560e31b84527f02040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576116dd9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c0840151606085015160608301519060405192630ad8e5a560e31b84527f04020400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576117659160008092600092612575575061152e67ffffffffffffffff91612a58565b608084015160e085015160608301519060405192630ad8e5a560e31b84527f03040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576117ed9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c084015160a085015160608301519060405192630ad8e5a560e31b84527f04030400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576118759160008092600092612575575061152e67ffffffffffffffff91612a58565b60c084015160e085015160408301519060405192630ad8e5a560e31b84527f04040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611916916000809260009261250b575b506118fe67ffffffffffffffff91612a58565b1660ff89161491826124f65750816113745750610ac1565b835160e085015160408301519060405192630ad8e5a560e31b84527f01040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761199b916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c0840151602085015160408301519060405192630ad8e5a560e31b84527f04010300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611a23916000809260009261250b57506118fe67ffffffffffffffff91612a58565b604084015160e085015160408301519060405192630ad8e5a560e31b84527f02040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611aab916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c0840151606085015160408301519060405192630ad8e5a560e31b84527f04020300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611b33916000809260009261250b57506118fe67ffffffffffffffff91612a58565b608084015160e085015160408301519060405192630ad8e5a560e31b84527f03040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611bbb916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c084015160a085015160408301519060405192630ad8e5a560e31b84527f04030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611c43916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c084015160e085015182519060405192630ad8e5a560e31b84527f04040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ce391600080926000926124c4575b50611cc967ffffffffffffffff91612a58565b1660ff89161491826124a2575b508161248c575b5061143b565b835160e085015182519060405192630ad8e5a560e31b84527f01040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611d6591600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c0840151602085015182519060405192630ad8e5a560e31b84527f04010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611dea91600080926000926124c45750611cc967ffffffffffffffff91612a58565b604084015160e085015182519060405192630ad8e5a560e31b84527f02040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611e6f91600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c0840151606085015182519060405192630ad8e5a560e31b84527f04020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ef491600080926000926124c45750611cc967ffffffffffffffff91612a58565b608084015160e085015182519060405192630ad8e5a560e31b84527f03040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611f7991600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c084015160a085015182519060405192630ad8e5a560e31b84527f04030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ffe91600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c084015160e085015160208301519060405192630ad8e5a560e31b84527f04040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761209f916000809260009261245a575b5061208767ffffffffffffffff91612a58565b1660ff8916149182612438575081610a63575061064a565b835160e085015160208301519060405192630ad8e5a560e31b84527f01040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612124916000809260009261245a575061208767ffffffffffffffff91612a58565b60c0840151602085015160208301519060405192630ad8e5a560e31b84527f04010200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576121ac916000809260009261245a575061208767ffffffffffffffff91612a58565b604084015160e085015160208301519060405192630ad8e5a560e31b84527f02040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612234916000809260009261245a575061208767ffffffffffffffff91612a58565b60c0840151606085015160208301519060405192630ad8e5a560e31b84527f04020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576122bc916000809260009261245a575061208767ffffffffffffffff91612a58565b608084015160e085015160208301519060405192630ad8e5a560e31b84527f03040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612344916000809260009261245a575061208767ffffffffffffffff91612a58565b602060a060c08601519501519101519060405194630ad8e5a560e31b86527f04030200000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af190811561040d576109d294600080956000946123ff575b5067ffffffffffffffff6123cf60ff92612a58565b1691161493846123e7575050826109d457505061064a565b60ff919294506109fe67ffffffffffffffff91612a58565b67ffffffffffffffff96506123cf945060ff915061242b9060603d606011610406576103f581836104f3565b90979095509091506123ba565b67ffffffffffffffff91925061244d90612a58565b1660ff85161490386106e8565b67ffffffffffffffff93506120879250612483915060603d606011610406576103f581836104f3565b90935091612074565b61249691506125a7565b15158415151438611cdd565b67ffffffffffffffff9192506124b790612a58565b1660ff8516149038611cd6565b67ffffffffffffffff9350611cc992506124ed915060603d606011610406576103f581836104f3565b90935091611cb6565b67ffffffffffffffff91925061139b90612a58565b67ffffffffffffffff93506118fe9250612534915060603d606011610406576103f581836104f3565b909350916118eb565b61254791506125a7565b15158415151438611542565b67ffffffffffffffff91925061256890612a58565b1660ff851614903861153b565b67ffffffffffffffff935061152e925061259e915060603d606011610406576103f581836104f3565b9093509161151b565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af19182156126325780926125fb575b5050151590565b9091506020823d821161262a575b81612616602093836104f3565b8101031261262757505138806125f4565b80fd5b3d9150612609565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b906020823d82116126d7575b816126ca602093836104f3565b8101031261262757505190565b3d91506126bd565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612753575b60ff91501690565b6020823d821161277d575b8161276b602093836104f3565b81010312612627575060ff905161274b565b3d915061275e565b90816060910312610072578051916040602083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f020000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612889575b61ffff91501690565b6020823d82116128b4575b816128a1602093836104f3565b81010312612627575061ffff9051612880565b3d9150612894565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f030000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d576000906129a9575b63ffffffff91501690565b6020823d82116129d6575b816129c1602093836104f3565b81010312612627575063ffffffff905161299e565b3d91506129b4565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612ad3575b67ffffffffffffffff91501690565b6020823d8211612b04575b81612aeb602093836104f3565b81010312612627575067ffffffffffffffff9051612ac4565b3d9150612ade565b92919060405193630ad8e5a560e31b85527f02020100000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152606082608481600060645af190811561040d57600080938193612b76575b50929190565b91935050612b92915060603d8111610406576103f581836104f3565b9290929138612b7056fea164736f6c6343000814000a";
390
390
 
391
391
  type TransferTestsContractConstructorParams =
392
392
  | [signer?: Signer]
@@ -95,7 +95,7 @@ const _abi = [
95
95
  ] as const;
96
96
 
97
97
  const _bytecode =
98
- "0x608060405234801561001057600080fd5b506106ed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806342568eca1461003b5780634717f97c1461008b575b600080fd5b61004e61004936600461060e565b6100ce565b604080516fffffffffffffffffffffffffffffffff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b6000546001546fffffffffffffffffffffffffffffffff80831692700100000000000000000000000000000000900481169160ff8116916101009091041661004e565b60008060008060006100df896102a4565b905060006100ec896102a4565b905060006100f9896102a4565b90506000610106896102a4565b905060008060008061011a88888888610361565b935093509350935061012b8461044c565b600080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556101758361044c565b600080546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556101b1826104b3565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556101e98161044c565b6001806101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008054906101000a90046fffffffffffffffffffffffffffffffff16600060109054906101000a90046fffffffffffffffffffffffffffffffff16600160009054906101000a900460ff1660018054906101000a90046fffffffffffffffffffffffffffffffff169b509b509b509b505050505050505050945094509450949050565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f050000000000000000000000000000000000000000000000000000000000000060048201526fffffffffffffffffffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af1158015610337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b9190610691565b92915050565b600080808080808080606463c2ff267a61037f600580808087610544565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015610412573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043691906106aa565b929f919e509c50909a5098505050505050505050565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0500000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed56190604401610318565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b9190610691565b15159392505050565b600081600281111561055857610558610662565b60ff16600884600681111561056f5761056f610662565b61ffff16901b61ffff16601086600681111561058d5761058d610662565b62ffffff16901b62ffffff1660188860068111156105ad576105ad610662565b63ffffffff16901b63ffffffff1660208a60068111156105cf576105cf610662565b64ffffffffff16901b1717171760d81b9695505050505050565b80356fffffffffffffffffffffffffffffffff8116811461060957600080fd5b919050565b6000806000806080858703121561062457600080fd5b61062d856105e9565b935061063b602086016105e9565b9250610649604086016105e9565b9150610657606086016105e9565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156106a357600080fd5b5051919050565b600080600080608085870312156106c057600080fd5b50508251602084015160408501516060909501519196909550909250905056fea164736f6c6343000813000a";
98
+ "0x60808060405234610016576105cf908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b6000803560e01c806342568eca146100ab57634717f97c1461003457600080fd5b346100a857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a8575460015491516fffffffffffffffffffffffffffffffff8083168252608092831c602083015260ff84161515604083015260089390931c909216606083015290f35b0390f35b80fd5b50346100a857608091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103ce576fffffffffffffffffffffffffffffffff9260043584811681036103ae5760243590858216820361035a576044359086821682036103ca576064359087821682036103c65761014061013a61013461014693610442565b95610442565b93610442565b91610442565b918551937fc2ff267a0000000000000000000000000000000000000000000000000000000085527f050505050000000000000000000000000000000000000000000000000000000060048601526024850152604484015260648301526084820152818160a4818760645af19081156103b9578486869187938895610370575b50816101d3610203926104fe565b16927fffffffffffffffffffffffffffffffff0000000000000000000000000000000093848a54161789556104fe565b91875492861b1691161785558351907f0cfed56100000000000000000000000000000000000000000000000000000000825285600483015260248201526020816044818860645af19081156103665790869291869161032a575b509161029e60ff926100a4969594847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006001541691151516176001556104fe565b600180547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff8116600893841b70ffffffffffffffffffffffffffffffff00161791829055975495516fffffffffffffffffffffffffffffffff938716841681529590941c8216602086015291909516151560408401521c90931691909116606083015281906080820190565b919250506020813d821161035e575b81610346602093836103d2565b8101031261035a575185919061029e61025d565b8480fd5b3d9150610339565b84513d87823e3d90fd5b9450505050508181813d83116103b2575b61038b81836103d2565b810103126103ae57805160208201518483015160609093015192918790816101c5565b8380fd5b503d610381565b50505051903d90823e3d90fd5b8680fd5b8580fd5b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761041357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6fffffffffffffffffffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f05000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104f2576000916104c4575090565b906020823d82116104ea575b816104dd602093836103d2565b810103126100a857505190565b3d91506104d0565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f050000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104f257600090610581575b6fffffffffffffffffffffffffffffffff91501690565b6020823d82116105ba575b81610599602093836103d2565b810103126100a857506fffffffffffffffffffffffffffffffff905161056a565b3d915061058c56fea164736f6c6343000814000a";
99
99
 
100
100
  type TransferWithAllowance128TestsContractConstructorParams =
101
101
  | [signer?: Signer]
@@ -95,7 +95,7 @@ const _abi = [
95
95
  ] as const;
96
96
 
97
97
  const _bytecode =
98
- "0x608060405234801561001057600080fd5b506104ed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634717f97c1461003b57806393e243cb14610074575b600080fd5b60005460015460025460035460ff909116905b604080519485526020850193909352901515838301526060830152519081900360800190f35b61004e610082366004610430565b60008060008060006100938961015c565b905060006100a08961015c565b905060006100ad8961015c565b905060006100ba8961015c565b90506000806000806100ce888888886101ff565b93509350935093506100df846102ea565b6000556100eb836102ea565b6001556100f7826102fa565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905561012f816102ea565b6003819055600054600154600254919e509c5060ff169a5098505050505050505050945094509450949050565b6000606463d9b60b6060065b60f81b846040518363ffffffff1660e01b81526004016101b69291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f99190610491565b92915050565b600080808080808080606463c2ff267a61021d60068080808761038b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af11580156102b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d491906104aa565b929f919e509c50909a5098505050505050505050565b60006064630cfed5616006610168565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af115801561035e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103829190610491565b15159392505050565b600081600281111561039f5761039f610462565b60ff1660088460068111156103b6576103b6610462565b61ffff16901b61ffff1660108660068111156103d4576103d4610462565b62ffffff16901b62ffffff1660188860068111156103f4576103f4610462565b63ffffffff16901b63ffffffff1660208a600681111561041657610416610462565b64ffffffffff16901b1717171760d81b9695505050505050565b6000806000806080858703121561044657600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156104a357600080fd5b5051919050565b600080600080608085870312156104c057600080fd5b50508251602084015160408501516060909501519196909550909250905056fea164736f6c6343000813000a";
98
+ "0x6080806040523461001657610476908161001c8239f35b600080fdfe6080604090808252600436101561001557600080fd5b600090813560e01c9081634717f97c1461028557506393e243cb1461003957600080fd5b346102825760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102825761007360043561034f565b61007e60243561034f565b61008960443561034f565b61009460643561034f565b918551937fc2ff267a0000000000000000000000000000000000000000000000000000000085527f06060606000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a4818560645af1908115610278578283908492859461022c575b5090610121610128926103f9565b85556103f9565b6001558351907f0cfed56100000000000000000000000000000000000000000000000000000000825283600483015260248201526020816044818660645af19081156102225783916101eb575b506101e7916101b29160ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541691151516176002556103f9565b918260035554916001549360ff6002541690519485948590949392606092608083019683526020830152151560408201520152565b0390f35b90506020813d821161021a575b81610205602093836102df565b8101031261021657516101e7610175565b8280fd5b3d91506101f8565b84513d85823e3d90fd5b93505050506080813d8211610270575b81610249608093836102df565b8101031261026c5780516020820151848301516060909301519291610121610113565b5080fd5b3d915061023c565b83513d84823e3d90fd5b80fd5b90503461026c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261026c579054600154600254600354928452602084019190915260ff16151560408301526060820152608090f35b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761032057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051907fd9b60b600000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af19081156103ed576000916103bf575090565b906020823d82116103e5575b816103d8602093836102df565b8101031261028257505190565b3d91506103cb565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af19081156103ed576000916103bf57509056fea164736f6c6343000814000a";
99
99
 
100
100
  type TransferWithAllowance256TestsContractConstructorParams =
101
101
  | [signer?: Signer]
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063bb30c2f411610050578063bb30c2f4146100f0578063d4ba41d414610103578063f4fa21101461011657600080fd5b80630aaef195146100775780634717f97c1461008c578063a37f8f11146100dd575b600080fd5b61008a610085366004612471565b610129565b005b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100eb366004612471565b610766565b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100af61012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c606001518c60200151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c606001518c60200151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b60c001518c60e001518c606001518c60200151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b604001518c60e001518c606001518c60200151611dbb565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b60c001518c606001518c606001518c60200151611dda565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b608001518c60e001518c606001518c60200151611df9565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60200151611e19565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c604001518c60200151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c604001518c60200151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c604001518c60200151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c604001518c60200151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b608001518c60e001518c604001518c60200151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b60c001518c60a001518c604001518c60200151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60200151611efb565b600080600080610cee8b600001518c60e001518c600001518c60200151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c600001518c60200151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c600001518c60200151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c600001518c60200151611f7b565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c600001518c60200151611f9b565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c600001518c60200151611fbb565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c60200151611fdc565b6000806000806112548b600001518c60e001518c602001518c60200151611ffd565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c602001518c6020015161201d565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b604001518c60e001518c602001518c6020015161203d565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b60c001518c606001518c602001518c6020015161205c565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c60e001518c602001518c6020015161207b565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c602001518c6020015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c602001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416610ccc565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416611232565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004806002876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001816002876122b7565b600080808080808080606463c2ff267a611b7b600480806002876122b7565b600080808080808080606463c2ff267a611b7b600260048082876122b7565b600080808080808080606463c2ff267a611b7b600460028181876122b7565b600080808080808080606463c2ff267a611b7b60036004806002876122b7565b600080808080808080606463c2ff267a611b7b60046003816002876122b7565b600080808080808080606463c2ff267a611b7b6001600460036002876122b7565b600080808080808080606463c2ff267a611b7b6004600160036002876122b7565b600080808080808080606463c2ff267a611b7b60026004600382876122b7565b600080808080808080606463c2ff267a611b7b60046002600381876122b7565b600080808080808080606463c2ff267a611b7b60036004816002876122b7565b600080808080808080606463c2ff267a611b7b60046003806002876122b7565b600080808080808080606463c2ff267a611b7b60048060036002876122b7565b600080808080808080606463c2ff267a611b7b60016004816002876122b7565b600080808080808080606463c2ff267a611b7b60046001806002876122b7565b600080808080808080606463c2ff267a611b7b60048060016002876122b7565b600080808080808080606463c2ff267a611b7b60026004600182876122b7565b600080808080808080606463c2ff267a611b7b60046002600181876122b7565b600080808080808080606463c2ff267a611b7b6003600460016002876122b7565b600080808080808080606463c2ff267a611b7b6004600360016002876122b7565b600080808080808080606463c2ff267a611b7b60016004600280876122b7565b600080808080808080606463c2ff267a611b7b60046001600280876122b7565b600080808080808080606463c2ff267a611b7b600260048180876122b7565b600080808080808080606463c2ff267a611b7b600460028080876122b7565b600080808080808080606463c2ff267a611b7b600480600280876122b7565b600080808080808080606463c2ff267a611b7b60036004600280876122b7565b600080808080808080606463c2ff267a611b7b60046003600280876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460068111156122e2576122e26125e7565b61ffff16901b61ffff166010866006811115612300576123006125e7565b62ffffff16901b62ffffff166018886006811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6006811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x6080806040523461001657611e98908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630aaef195146105995780634717f97c1461052f578063a37f8f1114610512578063bb30c2f4146104f5578063d4ba41d4146104d65763f4fa21101461005e57600080fd5b346104d15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d15760ff60043516600435036104d15760ff60243516602435036104d15760ff60443516604435036104d15760ff60643516606435036104d1576040516100d1816105b6565b6000815260006020820152604081016000815260608201600081526080830160008152600060a0850152600060c0850152600060e0850152610111611a48565b9161011a611a48565b93610126600435611b0a565b8652610133602435611b0a565b602087015261014660ff60043516611c73565b905261015660ff60243516611c73565b905261016660ff60043516611ce7565b905261017660ff60243516611ce7565b60a084015261018960ff60043516611d5d565b60c084015261019c60ff60243516611d5d565b60e08401526101ac604435611b0a565b81526101bc60ff60443516611c73565b60208201526101cf60ff60443516611ce7565b60408201526101e260ff60443516611d5d565b606082015260ff6044351660808201526101fd606435611b0a565b825261020d60ff60643516611c73565b602083015261022060ff60643516611ce7565b604083015261023360ff60643516611d5d565b606083015260ff606435166080830152825192602081015182518451916040519663617f933d60e11b88527f01010101000000000000000000000000000000000000000000000000000000006004890152602488015260448701526064860152608485015260808460a481600060645af19384156104c5576103796103ce916104429660008060009160009361047d575b61033f9394509060ff6102d961030893611bab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055611bab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b16911617600055611a73565b15157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055611bab565b63ff0000006000549160181b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8216178060005560ff8160181c169160ff80808460101c169360081c169116878787610854565b6103f660005460ff8160181c169060ff8160101c169060ff808260081c169116878787610dd7565b61041e60005460ff8160181c169060ff8160101c169060ff808260081c1691168787876111fc565b6000549060ff8260181c169360ff8360101c169360ff808560081c16941692611622565b6000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b5050505061033f60ff6103086104ad6102d99460803d6080116104be575b6104a5818361061e565b810190611c51565b9296509194509092509050836102c4565b503d61049b565b6040513d6000823e3d90fd5b600080fd5b346104d1576104f36104e73661065f565b95949094939193610dd7565b005b346104d1576104f36105063661065f565b95949094939193610854565b346104d1576104f36105233661065f565b959490949391936111fc565b346104d15760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d1576000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b346104d1576104f36105aa3661065f565b95949094939193611622565b610100810190811067ffffffffffffffff8211176105d357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176105d357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176105d357604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81016102c081126104d157610100136104d15760409182516106a1816105b6565b60043581526024356020820152604435848201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e08201529260a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc8401126104d157805161071381610602565b61010435815261012435602082015261014435828201526101643560608201526101843560ff811681036104d157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c91608060a09401529401126104d15780519061077e82610602565b6101a43582526101c43560208301526101e435908201526102043560608201526102243560ff811681036104d1576080820152906102443560ff811681036104d157906102643560ff811681036104d157906102843580151581036104d157906102a43560ff811681036104d15790565b156107f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b929491959395835160e085015183516020840151916040519363617f933d60e11b85527f01040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761090d91600091600092600091600093610d9f575b506108ec67ffffffffffffffff91611dd7565b1660ff8b16149283610d7d575b5082610d65575b5081610d45575b506107ef565b60c0840151602085015183516020840151916040519363617f933d60e11b85527f04010102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576109a191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015183516020840151916040519363617f933d60e11b85527f04040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610a3591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015183516020840151916040519363617f933d60e11b85527f02040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610ac991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015183516020840151916040519363617f933d60e11b85527f04020102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610b5d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015183516020840151916040519363617f933d60e11b85527f03040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610bf191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b602060a060c08601519501519251910151916040519463617f933d60e11b86527f04030102000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575b5067ffffffffffffffff610c8860ff92611dd7565b169116149586610ce8575b505084610cce575b505082610cac575b50506107ef565b565b60ff919250610cc367ffffffffffffffff91611dd7565b169116143880610ca3565b610cda91929450611a73565b151590151514913880610c9b565b60ff91929650610d0067ffffffffffffffff91611dd7565b16911614933880610c93565b67ffffffffffffffff9850610c88965060ff9450610d39915060803d6080116104be576104a5818361061e565b91999197509450610c73565b67ffffffffffffffff9150610d5990611dd7565b1660ff87161438610907565b610d70919250611a73565b1515851515149038610900565b67ffffffffffffffff919350610d9290611dd7565b1660ff8b161491386108f9565b905067ffffffffffffffff93506108ec9250610dca915060803d6080116104be576104a5818361061e565b91945090929091906108d9565b929491959395835160e085015160208401516020840151916040519363617f933d60e11b85527f01040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610e7191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160208401516020840151916040519363617f933d60e11b85527f04010202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f0891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160208401516020840151916040519363617f933d60e11b85527f02040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f9f91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160208401516020840151916040519363617f933d60e11b85527f04020202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761103691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160208401516020840151916040519363617f933d60e11b85527f04040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576110cd91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160208401516020840151916040519363617f933d60e11b85527f03040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761116491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60208060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030202000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160408401516020840151916040519363617f933d60e11b85527f01040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761129691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160408401516020840151916040519363617f933d60e11b85527f04010302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761132d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160408401516020840151916040519363617f933d60e11b85527f02040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576113c491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160408401516020840151916040519363617f933d60e11b85527f04020302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761145b91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160408401516020840151916040519363617f933d60e11b85527f03040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576114f291600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160a085015160408401516020840151916040519363617f933d60e11b85527f04030302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761158991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6020604060e060c0870151960151930151910151916040519463617f933d60e11b86527f04040302000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160608401516020840151916040519363617f933d60e11b85527f01040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576116bc91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160608401516020840151916040519363617f933d60e11b85527f04010402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761175391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160608401516020840151916040519363617f933d60e11b85527f04040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576117ea91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160608401516020840151916040519363617f933d60e11b85527f02040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761188191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160608401516020840151916040519363617f933d60e11b85527f04020402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761191891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160608401516020840151916040519363617f933d60e11b85527f03040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576119af91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6020606060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030402000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b60405190611a5582610602565b60006080838281528260208201528260408201528260608201520152565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af1918215611afe578092611ac7575b5050151590565b9091506020823d8211611af6575b81611ae26020938361061e565b81010312611af35750513880611ac0565b80fd5b3d9150611ad5565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b906020823d8211611ba3575b81611b966020938361061e565b81010312611af357505190565b3d9150611b89565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611c1f575b60ff91501690565b6020823d8211611c49575b81611c376020938361061e565b81010312611af3575060ff9051611c17565b3d9150611c2a565b91908260809103126104d1578151916020810151916060604083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611e52575b67ffffffffffffffff91501690565b6020823d8211611e83575b81611e6a6020938361061e565b81010312611af3575067ffffffffffffffff9051611e43565b3d9150611e5d56fea164736f6c6343000814000a";
667
667
 
668
668
  type TransferWithAllowance64_16TestsContractConstructorParams =
669
669
  | [signer?: Signer]
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063b371a05811610050578063b371a058146100f0578063d5ea40aa14610103578063f4fa21101461011657600080fd5b8063205093f2146100775780633391d5a81461008c5780634717f97c1461009f575b600080fd5b61008a610085366004612471565b610129565b005b61008a61009a366004612471565b610766565b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100c261012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c604001518c60400151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c604001518c60400151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b604001518c60e001518c604001518c60400151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b60c001518c606001518c604001518c60400151611dbc565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b608001518c60e001518c604001518c60400151611ddc565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b60c001518c60a001518c604001518c60400151611dfb565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60400151611e1a565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c602001518c60400151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c602001518c60400151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c602001518c60400151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c602001518c60400151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b60c001518c60e001518c602001518c60400151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b608001518c60e001518c602001518c60400151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c60400151611efb565b600080600080610cee8b600001518c60e001518c606001518c60400151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c606001518c60400151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c606001518c60400151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c606001518c60400151611f7a565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c606001518c60400151611f9a565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c606001518c60400151611fba565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60400151611fd9565b6000806000806112548b600001518c60e001518c600001518c60400151611ff8565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c600001518c60400151612018565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b60c001518c60e001518c600001518c60400151612038565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b604001518c60e001518c600001518c60400151612058565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c606001518c600001518c60400151612079565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c600001518c6040015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c604001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416611232565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610ccc565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004600380876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001600380876122b7565b600080808080808080606463c2ff267a611b7b60026004600380876122b7565b600080808080808080606463c2ff267a611b7b60046002600380876122b7565b600080808080808080606463c2ff267a611b7b600360048180876122b7565b600080808080808080606463c2ff267a611b7b600460038080876122b7565b600080808080808080606463c2ff267a611b7b600480600380876122b7565b600080808080808080606463c2ff267a611b7b6001600460026003876122b7565b600080808080808080606463c2ff267a611b7b6004600160026003876122b7565b600080808080808080606463c2ff267a611b7b60026004816003876122b7565b600080808080808080606463c2ff267a611b7b60046002806003876122b7565b600080808080808080606463c2ff267a611b7b60048060026003876122b7565b600080808080808080606463c2ff267a611b7b60036004600282876122b7565b600080808080808080606463c2ff267a611b7b60046003600281876122b7565b600080808080808080606463c2ff267a611b7b60016004806003876122b7565b600080808080808080606463c2ff267a611b7b60046001816003876122b7565b600080808080808080606463c2ff267a611b7b600480806003876122b7565b600080808080808080606463c2ff267a611b7b60026004806003876122b7565b600080808080808080606463c2ff267a611b7b60046002816003876122b7565b600080808080808080606463c2ff267a611b7b600360048082876122b7565b600080808080808080606463c2ff267a611b7b600460038181876122b7565b600080808080808080606463c2ff267a611b7b60016004816003876122b7565b600080808080808080606463c2ff267a611b7b60046001806003876122b7565b600080808080808080606463c2ff267a611b7b60048060016003876122b7565b600080808080808080606463c2ff267a611b7b6002600460016003876122b7565b600080808080808080606463c2ff267a611b7b6004600260016003876122b7565b600080808080808080606463c2ff267a611b7b60036004600182876122b7565b600080808080808080606463c2ff267a611b7b60046003600181876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460068111156122e2576122e26125e7565b61ffff16901b61ffff166010866006811115612300576123006125e7565b62ffffff16901b62ffffff166018886006811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6006811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x6080806040523461001657611e98908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063205093f2146105995780633391d5a81461057c5780634717f97c14610512578063b371a058146104f5578063d5ea40aa146104d65763f4fa21101461005e57600080fd5b346104d15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d15760ff60043516600435036104d15760ff60243516602435036104d15760ff60443516604435036104d15760ff60643516606435036104d1576040516100d1816105b6565b6000815260006020820152604081016000815260608201600081526080830160008152600060a0850152600060c0850152600060e0850152610111611a48565b9161011a611a48565b93610126600435611b0a565b8652610133602435611b0a565b602087015261014660ff60043516611c73565b905261015660ff60243516611c73565b905261016660ff60043516611ce7565b905261017660ff60243516611ce7565b60a084015261018960ff60043516611d5d565b60c084015261019c60ff60243516611d5d565b60e08401526101ac604435611b0a565b81526101bc60ff60443516611c73565b60208201526101cf60ff60443516611ce7565b60408201526101e260ff60443516611d5d565b606082015260ff6044351660808201526101fd606435611b0a565b825261020d60ff60643516611c73565b602083015261022060ff60643516611ce7565b604083015261023360ff60643516611d5d565b606083015260ff606435166080830152825192602081015182518451916040519663617f933d60e11b88527f01010101000000000000000000000000000000000000000000000000000000006004890152602488015260448701526064860152608485015260808460a481600060645af19384156104c5576103796103ce916104429660008060009160009361047d575b61033f9394509060ff6102d961030893611bab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055611bab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b16911617600055611a73565b15157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055611bab565b63ff0000006000549160181b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8216178060005560ff8160181c169160ff80808460101c169360081c169116878787610854565b6103f660005460ff8160181c169060ff8160101c169060ff808260081c169116878787610dd7565b61041e60005460ff8160181c169060ff8160101c169060ff808260081c1691168787876111fd565b6000549060ff8260181c169360ff8360101c169360ff808560081c16941692611622565b6000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b5050505061033f60ff6103086104ad6102d99460803d6080116104be575b6104a5818361061e565b810190611c51565b9296509194509092509050836102c4565b503d61049b565b6040513d6000823e3d90fd5b600080fd5b346104d1576104f36104e73661065f565b95949094939193610854565b005b346104d1576104f36105063661065f565b95949094939193611622565b346104d15760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d1576000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b346104d1576104f361058d3661065f565b95949094939193610dd7565b346104d1576104f36105aa3661065f565b959490949391936111fd565b610100810190811067ffffffffffffffff8211176105d357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176105d357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176105d357604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81016102c081126104d157610100136104d15760409182516106a1816105b6565b60043581526024356020820152604435848201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e08201529260a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc8401126104d157805161071381610602565b61010435815261012435602082015261014435828201526101643560608201526101843560ff811681036104d157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c91608060a09401529401126104d15780519061077e82610602565b6101a43582526101c43560208301526101e435908201526102043560608201526102243560ff811681036104d1576080820152906102443560ff811681036104d157906102643560ff811681036104d157906102843580151581036104d157906102a43560ff811681036104d15790565b156107f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b929491959395835160e085015183516040840151916040519363617f933d60e11b85527f01040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761090d91600091600092600091600093610d9f575b506108ec67ffffffffffffffff91611dd7565b1660ff8b16149283610d7d575b5082610d65575b5081610d45575b506107ef565b60c0840151602085015183516040840151916040519363617f933d60e11b85527f04010103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576109a191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015183516040840151916040519363617f933d60e11b85527f04040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610a3591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015183516040840151916040519363617f933d60e11b85527f02040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610ac991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015183516040840151916040519363617f933d60e11b85527f04020103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610b5d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015183516040840151916040519363617f933d60e11b85527f03040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610bf191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604060a060c08601519501519251910151916040519463617f933d60e11b86527f04030103000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575b5067ffffffffffffffff610c8860ff92611dd7565b169116149586610ce8575b505084610cce575b505082610cac575b50506107ef565b565b60ff919250610cc367ffffffffffffffff91611dd7565b169116143880610ca3565b610cda91929450611a73565b151590151514913880610c9b565b60ff91929650610d0067ffffffffffffffff91611dd7565b16911614933880610c93565b67ffffffffffffffff9850610c88965060ff9450610d39915060803d6080116104be576104a5818361061e565b91999197509450610c73565b67ffffffffffffffff9150610d5990611dd7565b1660ff87161438610907565b610d70919250611a73565b1515851515149038610900565b67ffffffffffffffff919350610d9290611dd7565b1660ff8b161491386108f9565b905067ffffffffffffffff93506108ec9250610dca915060803d6080116104be576104a5818361061e565b91945090929091906108d9565b929491959395835160e085015160208401516040840151916040519363617f933d60e11b85527f01040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610e7191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160208401516040840151916040519363617f933d60e11b85527f04010203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f0891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160208401516040840151916040519363617f933d60e11b85527f02040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f9f91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160208401516040840151916040519363617f933d60e11b85527f04020203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761103691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160208401516040840151916040519363617f933d60e11b85527f04040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576110cd91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160208401516040840151916040519363617f933d60e11b85527f03040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761116491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6040602060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030203000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160408401516040840151916040519363617f933d60e11b85527f01040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761129791600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160408401516040840151916040519363617f933d60e11b85527f04010303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761132e91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160408401516040840151916040519363617f933d60e11b85527f02040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576113c591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160408401516040840151916040519363617f933d60e11b85527f04020303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761145c91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160408401516040840151916040519363617f933d60e11b85527f03040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576114f391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160a085015160408401516040840151916040519363617f933d60e11b85527f04030303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761158a91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60408060e060c0870151960151930151910151916040519463617f933d60e11b86527f04040303000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160608401516040840151916040519363617f933d60e11b85527f01040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576116bc91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160608401516040840151916040519363617f933d60e11b85527f04010403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761175391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160608401516040840151916040519363617f933d60e11b85527f04040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576117ea91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160608401516040840151916040519363617f933d60e11b85527f02040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761188191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160608401516040840151916040519363617f933d60e11b85527f04020403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761191891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160608401516040840151916040519363617f933d60e11b85527f03040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576119af91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6040606060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030403000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b60405190611a5582610602565b60006080838281528260208201528260408201528260608201520152565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af1918215611afe578092611ac7575b5050151590565b9091506020823d8211611af6575b81611ae26020938361061e565b81010312611af35750513880611ac0565b80fd5b3d9150611ad5565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b906020823d8211611ba3575b81611b966020938361061e565b81010312611af357505190565b3d9150611b89565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611c1f575b60ff91501690565b6020823d8211611c49575b81611c376020938361061e565b81010312611af3575060ff9051611c17565b3d9150611c2a565b91908260809103126104d1578151916020810151916060604083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611e52575b67ffffffffffffffff91501690565b6020823d8211611e83575b81611e6a6020938361061e565b81010312611af3575067ffffffffffffffff9051611e43565b3d9150611e5d56fea164736f6c6343000814000a";
667
667
 
668
668
  type TransferWithAllowance64_32TestsContractConstructorParams =
669
669
  | [signer?: Signer]